icc doesn't like -fomit-frame-pointer without -O
[libfirm] / ir / be / test / llvm / 2004-08-12-InlinerAndAllocas.c
1 // A compiler cannot inline Callee into main unless it is prepared to reclaim
2 // the stack memory allocated in it.
3
4 #if defined(__FreeBSD__) || defined(__OpenBSD__)
5 #include <stdlib.h>
6 #else
7 #include <alloca.h>
8 #endif
9 #include <stdio.h>
10
11 static int Callee(int i) {
12   if (i != 0) {
13     char *X = alloca(1000);
14     sprintf(X, "%d\n", i);
15     return X[0];
16   }
17   return 0;
18 }
19
20 int main() {
21   int i, j = 0;
22   for (i = 0; i < 10000; ++i)
23     j += Callee(i);
24   printf("%d\n", j);
25   return 0;
26 }