blob: 85b5671e920585e6b33afb96262c2a633e14107c [file] [log] [blame]
/* PR target/39082 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O2" } */
/* { dg-additional-options "-mabi=sysv" { target x86_64-*-mingw* } } */
union un
{
long double x;
int i;
};
extern int bar1 (union un);
extern union un bar2 (int);
int
foo1 (union un u) /* { dg-message "note: the ABI of passing union with 'long double' has changed in GCC 4.4" } */
{
bar1 (u);
return u.i;
}
int
foo2 (void)
{
union un u;
u.i = 1;
return foo1 (u) + bar1 (u);
}
int
foo3 (int x)
{
union un u = bar2 (x);
return u.i;
}