1/* PR tree-optimization/58277 */ 2 3extern void abort (void); 4static int a[2]; 5int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p; 6static int **volatile j = &e; 7const int m; 8char u; 9 10int 11bar () 12{ 13 u = 0; 14 return m; 15} 16 17__attribute__((noinline, noclone)) void 18baz () 19{ 20 asm (""); 21} 22 23static int 24foo () 25{ 26 int t1; 27 g = bar (); 28 if (l) 29 ; 30 else 31 for (;; h++) 32 { 33 *i = 0; 34 o = *e = 0; 35 if (p) 36 { 37 f = 0; 38 return 0; 39 } 40 for (;; k++) 41 { 42 int *t2 = 0; 43 int *const *t3[] = { 44 0, 0, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, &t2, &t2, &t2, 45 &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 46 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, &t2, 47 &t2, &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 48 &t2, 0, 0, 0, &t2, 0, &t2, 0, 0, &t2, 0, 0, 0, 0, 49 0, &t2, 0, 0, 0, 0, &t2, &t2, 0, 0, 0, 0, &t2, 0, 50 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 51 &t2, &t2 52 }; 53 int *const **t4[] = {&t3[0]}; 54 **i = 0; 55 if (**j) 56 break; 57 u = 0; 58 } 59 *i = *j; 60 t1 = 0; 61 for (; t1 < 5; t1++) 62 *i = *j; 63 } 64 *j = 0; 65 return 1; 66} 67 68int 69main () 70{ 71 int t5; 72 a[0] = 1; 73 { 74 int *t6[6] = {&d, &d}; 75 for (n = 1; n; n--) 76 if (foo()) 77 { 78 int *t7[] = {0}; 79 d = 0; 80 for (; u < 1; u++) 81 *i = *j; 82 *i = 0; 83 *i = 0; 84 int t8[5] = {0}; 85 *i = &t8[0]; 86 int *const *t9 = &t6[0]; 87 int *const **t10 = &t9; 88 *t10 = &t7[0]; 89 } 90 } 91 u = 0; 92 for (; b; b++) 93 for (t5 = 0; t5 < 10; t5++) 94 c = a[a[a[a[a[a[a[a[c]]]]]]]]; 95 96 baz (); 97 98 if (!a[a[a[a[a[a[a[a[a[a[a[a[a[a[a[u]]]]]]]]]]]]]]]) 99 abort (); 100 101 return 0; 102} 103