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)13 main (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