| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fdump-tree-tailc-details" } */ | |
| extern void *alloca (__SIZE_TYPE__); | |
| int q(int a); | |
| int *v; | |
| int | |
| t(int a) | |
| { | |
| int r,r1; | |
| if (a) | |
| r1=r = q(a-1); | |
| else | |
| return 0; | |
| /* Dead alloca should not disturb us. */ | |
| if (r!=r1) | |
| v=alloca(r); | |
| return r; | |
| } | |
| /* { dg-final { scan-tree-dump-times "Found tail call" 1 "tailc"} } */ |