1/* PR target/39082 */
2/* { dg-do compile } */
3/* { dg-require-effective-target lp64 } */
4/* { dg-options "-O2" } */
5
6union un
7{
8  long double x;
9  int i;
10};
11
12extern int bar1 (union un);
13extern union un bar2 (int);
14
15int
16foo1 (union un u)
17{
18  bar1 (u);
19  return u.i;
20}
21
22int
23foo2 (void)
24{
25  union un u;
26  u.i = 1;
27  return foo1 (u) + bar1 (u);
28}
29
30int
31foo3 (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}
36