------- Additional Comments From joseph at codesourcery dot com  2005-05-31 
11:48 -------
Subject: Re:  New: C++/C99 standard violation in for loop

On Tue, 31 May 2005, ahelm at gmx dot net wrote:

>   for(int i=2;i<4;i++)
>   {
>     int j = i;
>     int i;
>     i = 555;
>     printf("%d %d\n", i, j);
>   }

I don't see why you think there's any problem in C99 terms.  The for 
statement forms a block (6.8.5#5 first sentence); its body forms a block 
whose scope is a strict subset of that of the for statement (second 
sentence) and the compound statement is itself a block (whether the same 
block or a different one from that of the body as body doesn't matter in 
this case, but if the body is a labeled compound statement then you'd have 
distinct scopes).  As these are distinct blocks, they are distinct scopes; 
you can declare i in the block which contains the for statement, and in 
the declaration part of the for statement, and in the body of the for 
statement.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21837

Reply via email to