shadowed "for" scope variables not throwing up a warning (gcc 3.1.1/cygwin)

Dylan Cuthbert dylan@q-games.com
Mon Aug 5 05:20:00 GMT 2002


for ( int i = 0; i < 10; i++ )
{
    int i = 10;       <===== shadowing the i variable
    printf( "%d\n", i  );
}


To my understanding, the "int i" in the for statement is within the scope of
the following curly brackets?

If this isn't an error (ie. there is a special "mini" scope created around
the for statement's scope), then it *definitely* *definitely* (pretty
please) should throw up a warning.  I just spent a while looking at some
code before realising it was something as silly as this.

Regards

---------------------------------
Q-Games, Dylan Cuthbert.
http://www.q-games.com
P2P internet radio - http://www.peercast.org






More information about the Gcc mailing list