[gcc]
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr12329.c
blobe7b43a78ea3dc26ab1bb87d6c5321e5d8fab4db8
1 /* { dg-do run } */
2 /* { dg-require-effective-target ia32 } */
3 /* { dg-options "-O2" } */
5 extern void abort (void);
7 int test_nested1 (int i)
9 int __attribute__ ((__noinline__, __regparm__(3))) foo(int j, int k, int l)
11 return i + j + k + l;
14 return foo (i, i+1, i+2);
17 int test_nested2 (int i)
19 int x;
21 int __attribute__ ((__noinline__, __regparm__(3))) foo(int j, int k, int l)
23 return i + j + k + l;
26 x = foo (i+3, i+1, i+2);
27 if (x != (4*i + 6))
28 abort ();
30 return x;
33 int
34 main ()
36 int i = test_nested1 (3);
38 if (i != 15)
39 abort ();
41 i = test_nested2 (4);
43 if (i != 22)
44 abort ();
46 return 0;