OSDN Git Service

* lib/lto.exp (lto_prune_vis_warns): Renamed to lto_prune_warns.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / torture / pr37146-2.C
1 // PR c++/37146
2 // { dg-do run }
3
4 extern "C" void abort ();
5 int a, b;
6 struct A { int i:8; int j:8; int k:16; int l:32; } c;
7
8 int
9 f1 (int x)
10 {
11   return x ? a : b;
12 }
13
14 int
15 f2 (int x)
16 {
17   return x ? c.i : c.j;
18 }
19
20 int
21 f3 (int x)
22 {
23   return x ? c.i : a;
24 }
25
26 int
27 f4 (int x)
28 {
29   return x ? c.i : c.k;
30 }
31
32 int
33 f5 (int x)
34 {
35   return x ? c.l : b;
36 }
37
38 int
39 main ()
40 {
41   a = 17;
42   b = 18;
43   c.i = 19;
44   c.j = 20;
45   c.k = 21;
46   c.l = 22;
47   if (f1 (1) != a)
48     abort ();
49   if (f1 (0) != b)
50     abort ();
51   if (f2 (1) != c.i)
52     abort ();
53   if (f2 (0) != c.j)
54     abort ();
55   if (f3 (1) != c.i)
56     abort ();
57   if (f3 (0) != a)
58     abort ();
59   if (f4 (1) != c.i)
60     abort ();
61   if (f4 (0) != c.k)
62     abort ();
63   if (f5 (1) != c.l)
64     abort ();
65   if (f5 (0) != b)
66     abort ();
67 }