OSDN Git Service

2010-05-02 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / torture / pr43879-3.c
1 /* { dg-do run } */
2 /* { dg-options "-fipa-pta" } */
3
4 typedef unsigned long ulong;
5
6 int __attribute__((noinline, noclone))
7 f4 (int a, int b, int c, int d, int e)
8 {
9   return a + b + c + d + e;
10 }
11
12 void __attribute__((noinline, noclone))
13 f3 (int *p)
14 {
15   *p = f4(1, 2, 3, 4, 5);
16 }
17
18 void __attribute__((noinline, noclone))
19 f2 ()
20 {
21   int unused;
22   f3 (&unused);
23 }
24
25 void __attribute__((noinline, noclone))
26 f1 (ulong e, ulong f)
27 {
28   if (e > 5 || f > 5) __builtin_abort();
29   f2 ();
30 }
31
32
33 int main()
34 {
35  ulong e, f;
36  for (e = 5; e > 0; e--)
37    for (f = 5; f > 0; f--)
38      f1(e, f);
39  return 0;
40 }
41