OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / pr58209.c
1 /* PR tree-optimization/58209 */
2
3 extern void abort (void);
4 typedef __INTPTR_TYPE__ T;
5 T buf[1024];
6
7 T *
8 foo (T n)
9 {
10   if (n == 0)
11     return (T *) buf;
12   T s = (T) foo (n - 1);
13   return (T *) (s + sizeof (T));
14 }
15
16 T *
17 bar (T n)
18 {
19   if (n == 0)
20     return buf;
21   return foo (n - 1) + 1;
22 }
23
24 int
25 main ()
26 {
27   int i;
28   for (i = 0; i < 27; i++)
29     if (foo (i) != buf + i || bar (i) != buf + i)
30       abort ();
31   return 0;
32 }