bad_scope(void)1 static int bad_scope(void)
2 {
3 int r = 0;
4
5 for (int i = 0; i < 10; i++) {
6 r = i;
7 }
8
9 return i; /* check-should-fail */
10 }
11
c99(void)12 static int c99(void)
13 {
14 int r = 0;
15
16 for ( int i = 0; i < 10; i++) /* check-should-pass */
17 r = i;
18 for ( auto int j = 0; j < 10; j++) /* check-should-pass */
19 r = j;
20 for (register int k = 0; k < 10; k++) /* check-should-pass */
21 r = k;
22 for ( extern int l = 0; l < 10; l++) /* check-should-fail */
23 r = l;
24 for ( extern int m; m < 10; m++) /* check-should-fail */
25 r = m;
26 for ( static int n = 0; n < 10; n++) /* check-should-fail */
27 r = n;
28 return r;
29 }
30
31 /*
32 * check-name: C99 for-loop declarations
33 *
34 * check-error-start
35 c99-for-loop-decl.c:22:27: error: non-local var 'l' in for-loop initializer
36 c99-for-loop-decl.c:24:27: error: non-local var 'm' in for-loop initializer
37 c99-for-loop-decl.c:26:27: error: non-local var 'n' in for-loop initializer
38 c99-for-loop-decl.c:9:16: error: undefined identifier 'i'
39 * check-error-end
40 */
41