1 /* { dg-do run } */ 2 /* { dg-options "-O1" } */ 3 4 /* This failed because if conversion didn't handle insv patterns properly. */ 5 6 void abort (void); 7 8 union y 9 { 10 int a; 11 unsigned short b; 12 }; 13 14 void __attribute__ ((noinline)) bar(unsigned short u,union y v)15bar (unsigned short u, union y v) 16 { 17 if (u != 1) 18 abort (); 19 } 20 21 void __attribute__ ((noinline)) foo(int check)22foo (int check) 23 { 24 union y x; 25 26 if (check != 0) 27 x.b = 1; 28 else 29 x.b = 2; 30 bar (x.b, x); 31 } 32 33 int main()34main () 35 { 36 foo (1); 37 return 0; 38 } 39