c/8609: Superfluous warning when -std=c99/gnu99 and noreturn on main()

Agthorr agthorr@barsoom.org
Sun Nov 24 17:24:00 GMT 2002


The following reply was made to PR c/8609; it has been noted by GNATS.

From: Agthorr <agthorr@barsoom.org>
To: bangerth@dealii.org, 141015@bugs.debian.org, gcc-bugs@gcc.gnu.org,
	gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@Gcc.gnu.org
Cc:  
Subject: Re: c/8609: Superfluous warning when -std=c99/gnu99 and noreturn on main()
Date: Mon, 18 Nov 2002 15:47:24 -0800

 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, bangerth@dealii.org 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
 > 



More information about the Gcc-prs mailing list