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 
  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  */