1/* { dg-do run } */ 2 3extern void abort (void); 4 5int i, j, *pj = &j, **ppj = &pj; 6int x, *px = &x; 7 8short s, *ps = &s, k; 9 10unsigned short u, *pu = &u, **ppu = &pu; 11 12char c, *pc = &c; 13 14unsigned char v = 48; 15 16static int 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 27void __attribute__((noinline)) 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 51int 52main () 53{ 54 foo (); 55 if (v != 0) 56 abort (); 57 return 0; 58} 59