OSDN Git Service

PR middle-end/29274
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / pr39082-1.c
1 /* PR target/39082 */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-options "-O2" } */
5
6 union un
7 {
8   long double x;
9   int i;
10 };
11
12 extern int bar1 (union un);
13 extern union un bar2 (int);
14
15 int
16 foo1 (union un u)
17 {
18   bar1 (u);
19   return u.i;
20 }
21
22 int
23 foo2 (void)
24 {
25   union un u;
26   u.i = 1;
27   return foo1 (u) + bar1 (u);
28 }
29
30 int
31 foo3 (int x)
32 {
33   union un u = bar2 (x); /* { dg-message "note: The ABI of passing union with long double has changed in GCC 4.4" } */
34   return u.i;
35 }