1  /* PR target/39082 */
       2  /* { dg-do compile { target { ! ia32 } } } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-additional-options "-mabi=sysv" { target x86_64-*-mingw* } } */
       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) /* { dg-message "note: the ABI of passing union with 'long double' has changed in GCC 4.4" } */
      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);
      34    return u.i;
      35  }