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