Well, I also compile with -Wmissing-noreturn. If I add the noreturn attribute to main, gcc complains that the function returns. If I remove the noreturn, gcc complains that the function does not return.
gcc can't have it both ways. ;) On Mon, Nov 18, 2002 at 10:55:07PM -0000, [EMAIL PROTECTED] wrote: > Synopsis: Superfluous warning when -std=c99/gnu99 and noreturn on main() > > State-Changed-From-To: open->analyzed > State-Changed-By: bangerth > State-Changed-When: Mon Nov 18 14:55:06 2002 > State-Changed-Why: > I can reproduce this. I think, the warning comes from the fact > that in C99, main() has an implicit "return 0" at its end, > indicating that if you fall off the end of main(), the > programs return value is zero. This also explains why it > only happens with main(), not if you rename the function. > > That being said, since you cannot control who calls main > and how, what reason should you have to mark main() as > noreturn? It should not make any difference, so why do > it? I have difficulty seeing this as a bug... > > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8609 >