This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c/8609: Superfluous warning when -std=c99/gnu99 and noreturn on main()
- From: bangerth at dealii dot org
- To: 141015 at bugs dot debian dot org, agthorr at barsoom dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org
- Date: 18 Nov 2002 22:55:07 -0000
- Subject: Re: c/8609: Superfluous warning when -std=c99/gnu99 and noreturn on main()
- Reply-to: bangerth at dealii dot org, 141015 at bugs dot debian dot org, agthorr at barsoom dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
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