111
|
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 }
|