1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fdump-tree-tailc-details" } */ 3 extern void *alloca (__SIZE_TYPE__); 4 int q(int a); 5 int *v; 6 int t(int a)7t(int a) 8 { 9 int r,r1; 10 if (a) 11 r1=r = q(a-1); 12 else 13 return 0; 14 /* Dead alloca should not disturb us. */ 15 if (r!=r1) 16 v=alloca(r); 17 return r; 18 } 19 /* { dg-final { scan-tree-dump-times "Found tail call" 1 "tailc"} } */ 20