1 /* { dg-do run } */ 2 3 extern void abort (void); 4 5 int i, j, *pj = &j, **ppj = &pj; 6 int x, *px = &x; 7 8 short s, *ps = &s, k; 9 10 unsigned short u, *pu = &u, **ppu = &pu; 11 12 char c, *pc = &c; 13 14 unsigned char v = 48; 15 16 static int bar(int p)17bar (int p) 18 { 19 p = k; 20 *px = **ppu = i; 21 *ppj = &p; 22 if (**ppj) 23 *pj = p; 24 return p; 25 } 26 27 void __attribute__((noinline)) foo()28foo () 29 { 30 for (; i <= 3; i++) 31 for (; j; j--); 32 33 u ^= bar (*pj); 34 35 for (k = 1; k >= 0; k--) 36 { 37 int l; 38 bar (0); 39 for (l = 1; l < 5; l++) 40 { 41 int m; 42 for (m = 6; m; m--) 43 { 44 v--; 45 *ps = *pc; 46 } 47 } 48 } 49 } 50 51 int main()52main () 53 { 54 foo (); 55 if (v != 0) 56 abort (); 57 return 0; 58 } 59