# cat x.c extern void foo (void) __attribute__ ((weak)); int main () { if (&foo) foo (); return 0; } # g++ -S -O -Wall x.c x.c: In function `int main ()': x.c:6: warning: the address of `foo ()', will always be `true' gcc is ok. gcc 3.0 has the same bug.
Created attachment 26172 [details] A patch
This will be included in gcc3-3.0-6 and gcc-2.96-96. Thanks.
Fix confirmed with gcc-2.96-107.