Over-sensitive warning, or some quirk of C++ language rules?

Ross Smith r-smith@ihug.co.nz
Sat Jan 9 12:17:00 GMT 2010


On 2010-01-10, at 00:31, Dave Korn wrote:

> Simple testcase, using HEAD@155680.
> 
> ------------------------------------------------------------------------
> $ cat badwarn.cpp
> 
> extern void bar (void);
> int foo (void) __attribute__ ((__noreturn__));
> 
> int
> foo (void)
> {
>  while (1)
>  {
>    bar ();
>  }
> }
> 
> $ g++-4 -c badwarn.cpp  -Wall
> badwarn.cpp: In function 'int foo()':
> badwarn.cpp:12:1: warning: no return statement in function returning non-void
> ------------------------------------------------------------------------

gcc 4.0.1, 4.2.1, and 4.3.4 don't warn about this. Looks like a regression.

-- Ross Smith



More information about the Gcc mailing list