1 /* This test case used to abort due to a reload bug with
2    elimination offsets.  */
3 
4 /* { dg-do run } */
5 /* { dg-options "-O2 -mpacked-stack" } */
6 
7 extern void abort (void);
8 
9 double bar (double) __attribute__ ((noinline));
bar(double x)10 double bar (double x) { return x; }
11 
12 double
13 foo (int j, double f0, double f2, double f4, double f6, double x) __attribute__ ((noinline));
14 
15 double
foo(int j,double f0,double f2,double f4,double f6,double x)16 foo (int j, double f0, double f2, double f4, double f6, double x)
17 {
18   if (j)
19     return bar (x) + 4.0;
20   else
21     return bar (x);
22 }
23 
24 int
main(void)25 main (void)
26 {
27   if (foo (0, 0, 0, 0, 0, 10) != 10)
28     abort ();
29   if (foo (1, 0, 0, 0, 0, 10) != 14)
30     abort ();
31 
32   return 0;
33 }
34 
35