------- Comment #2 from prigault at oricom dot ca 2006-04-12 14:00 ------- IMO, the line defining c should trigger an error message because it needs to use c before creating the variable, or else undefined behaviour occurs. This message could be: error: ‘c’ was not declared in this scope or: error: 'c' is used uninitialized
Consider: $ more test.cc #include <stdio.h> static const float f = 1 - a; int main(void) { printf("%f\n", f); return 0; } $ g++ -Wall -O2 -o test test.cc test.cc:3: error: ‘a’ was not declared in this scope $ more test1.cc #include <stdio.h> static const float f = 1 - f; int main(void) { printf("%f\n", f); return 0; } $ g++ -Wall -O2 -o test1 test1.cc $ There should be an error message there as well. -- prigault at oricom dot ca changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |prigault at oricom dot ca http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27129