Message ID | 20141007083129.GB3503@redhat.com |
---|---|
State | New |
Headers | show |
On 10/07/2014 09:31 AM, Marek Polacek wrote:
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
OK, thanks.
Andrew.
>>>>> "Marek" == Marek Polacek <polacek@redhat.com> writes:
Marek> [CCing java-patches now]
Marek> Java testsuite breaks with -std=gnu11 as a default and/or with
Marek> -Wimplicit-function-declaration on
I don't recall how one gets warnings when compiling this generated code,
but if it is generally possible then I think this:
Marek> + if (indirect)
Marek> + fprintf (stream, "extern void JvRunMainName ();\n");
Marek> + else
Marek> + fprintf (stream, "extern void JvRunMain ();\n");
... will fail with -Wstrict-prototypes, since in C those should
read "(void)" rather than "()".
If it's not possible then no big deal.
Tom
On Tue, Oct 07, 2014 at 10:03:26AM -0600, Tom Tromey wrote: > >>>>> "Marek" == Marek Polacek <polacek@redhat.com> writes: > > Marek> [CCing java-patches now] > Marek> Java testsuite breaks with -std=gnu11 as a default and/or with > Marek> -Wimplicit-function-declaration on > > I don't recall how one gets warnings when compiling this generated code, > but if it is generally possible then I think this: I'm not sure I understand, but this piece of code gets compiled when running the libjava testsuite. And when the warning triggers, we get many fails. > Marek> + if (indirect) > Marek> + fprintf (stream, "extern void JvRunMainName ();\n"); > Marek> + else > Marek> + fprintf (stream, "extern void JvRunMain ();\n"); > > ... will fail with -Wstrict-prototypes, since in C those should > read "(void)" rather than "()". > > If it's not possible then no big deal. I saw declarations of JvRunMain{,Name} with no parameters and with some parameters. So I decided to make it prototype-less function declaration for now. I think we don't have to worry about -Wstrict-prototypes for now. Marek
Marek> I saw declarations of JvRunMain{,Name} with no parameters and with Marek> some parameters. Oh yeah, duh. Marek> So I decided to make it prototype-less function Marek> declaration for now. I think we don't have to worry about Marek> -Wstrict-prototypes for now. Thanks for looking. Tom
diff --git gcc/java/jvgenmain.c gcc/java/jvgenmain.c index 5b14258..82e468d 100644 --- gcc/java/jvgenmain.c +++ gcc/java/jvgenmain.c @@ -127,6 +127,10 @@ main (int argc, char **argv) /* At this point every element of ARGV from 1 to LAST_ARG is a `-D' option. Process them appropriately. */ fprintf (stream, "extern const char **_Jv_Compiler_Properties;\n"); + if (indirect) + fprintf (stream, "extern void JvRunMainName ();\n"); + else + fprintf (stream, "extern void JvRunMain ();\n"); fprintf (stream, "static const char *props[] =\n{\n"); for (i = 1; i < last_arg; ++i) {