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))
15 bar (unsigned short u, union y v)
16 {
17 if (u != 1)
18 abort ();
19 }
20
21 void __attribute__ ((noinline))
22 foo (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
34 main ()
35 {
36 foo (1);
37 return 0;
38 }