1 /* PR tree-optimization/33136 */ 2 /* { dg-require-effective-target alloca } */ 3 4 extern void abort (void); 5 6 struct S 7 { 8 struct S *a; 9 int b; 10 }; 11 12 int main(void)13main (void) 14 { 15 struct S *s = (struct S *) 0, **p, *n; 16 for (p = &s; *p; p = &(*p)->a); 17 n = (struct S *) __builtin_alloca (sizeof (*n)); 18 n->a = *p; 19 n->b = 1; 20 *p = n; 21 22 if (!s) 23 abort (); 24 return 0; 25 } 26