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