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