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