I believe the following happened in the last 48 or so hours; I saw
this triggered by my nightly Wine builds which in turn use my nightly
GCC builds. ;-)

For code like the following where we have an infinite loop in a
non-void function, we now (incorrectly) issue a warning with all
of -O0, -O1 and -O2 whereas previously we would not:

  void g();

  int f() {
    for(;;)
      g();
  }

  % gccvs -c -Wall x.c
  x.c: In function 'int f()':
  x.c:6: warning: no return statement in function returning non-void

Looking at the ChangeLog changes that look most plausible are the 
unit-at-a-time ones, though I'm not sure how that would apply since
this is independent of optimization level.

Tested on i386-unknown-freebsd6.  I verified that i586-suse-linux
does not warn with GCC 4.2.1 and am just building current trunk 
there as well.

Gerald

Reply via email to