1/* PR tree-optimization/33136 */
2/* { dg-require-effective-target alloca } */
3
4extern void abort (void);
5
6struct S
7{
8  struct S *a;
9  int b;
10};
11
12int
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