* [Java PATCH] Generate declarations in jvgenmain.c
@ 2014-10-07 8:31 Marek Polacek
2014-10-07 12:21 ` Andrew Haley
2014-10-07 16:03 ` Tom Tromey
0 siblings, 2 replies; 5+ messages in thread
From: Marek Polacek @ 2014-10-07 8:31 UTC (permalink / raw)
To: java-patches, GCC Patches
[CCing java-patches now]
Java testsuite breaks with -std=gnu11 as a default and/or with
-Wimplicit-function-declaration on, since the jvgenmain.c program
that generates a C file containing 'main' function which calls either
'JvRunMainName' or 'JvRunMain' does not generate forward declarations
for these functions. The following patch generates such a declaration
depending on whether -findirect-dispatch is given.
Bootstrapped/regtested on x86_64-linux, ok for trunk?
2014-10-07 Marek Polacek <polacek@redhat.com>
* jvgenmain.c (main): Provide declaration for JvRunMain{,Name}.
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)
{
Marek
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Java PATCH] Generate declarations in jvgenmain.c
2014-10-07 8:31 [Java PATCH] Generate declarations in jvgenmain.c Marek Polacek
@ 2014-10-07 12:21 ` Andrew Haley
2014-10-07 16:03 ` Tom Tromey
1 sibling, 0 replies; 5+ messages in thread
From: Andrew Haley @ 2014-10-07 12:21 UTC (permalink / raw)
To: Marek Polacek, java-patches, GCC Patches
On 10/07/2014 09:31 AM, Marek Polacek wrote:
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
OK, thanks.
Andrew.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Java PATCH] Generate declarations in jvgenmain.c
2014-10-07 8:31 [Java PATCH] Generate declarations in jvgenmain.c Marek Polacek
2014-10-07 12:21 ` Andrew Haley
@ 2014-10-07 16:03 ` Tom Tromey
2014-10-07 16:15 ` Marek Polacek
1 sibling, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2014-10-07 16:03 UTC (permalink / raw)
To: Marek Polacek; +Cc: java-patches, GCC Patches
>>>>> "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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Java PATCH] Generate declarations in jvgenmain.c
2014-10-07 16:03 ` Tom Tromey
@ 2014-10-07 16:15 ` Marek Polacek
2014-10-07 16:41 ` Tom Tromey
0 siblings, 1 reply; 5+ messages in thread
From: Marek Polacek @ 2014-10-07 16:15 UTC (permalink / raw)
To: Tom Tromey; +Cc: java-patches, GCC Patches
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Java PATCH] Generate declarations in jvgenmain.c
2014-10-07 16:15 ` Marek Polacek
@ 2014-10-07 16:41 ` Tom Tromey
0 siblings, 0 replies; 5+ messages in thread
From: Tom Tromey @ 2014-10-07 16:41 UTC (permalink / raw)
To: Marek Polacek; +Cc: Tom Tromey, java-patches, GCC Patches
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-10-07 16:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-07 8:31 [Java PATCH] Generate declarations in jvgenmain.c Marek Polacek
2014-10-07 12:21 ` Andrew Haley
2014-10-07 16:03 ` Tom Tromey
2014-10-07 16:15 ` Marek Polacek
2014-10-07 16:41 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).