| // PR c++/37146 | |
| // { dg-do run } | |
| extern "C" void abort (); | |
| int a, b; | |
| struct A { int i:8; int j:8; int k:16; int l:32; } c; | |
| int | |
| f1 (int x) | |
| { | |
| return x ? a : b; | |
| } | |
| int | |
| f2 (int x) | |
| { | |
| return x ? c.i : c.j; | |
| } | |
| int | |
| f3 (int x) | |
| { | |
| return x ? c.i : a; | |
| } | |
| int | |
| f4 (int x) | |
| { | |
| return x ? c.i : c.k; | |
| } | |
| int | |
| f5 (int x) | |
| { | |
| return x ? c.l : b; | |
| } | |
| int | |
| main () | |
| { | |
| a = 17; | |
| b = 18; | |
| c.i = 19; | |
| c.j = 20; | |
| c.k = 21; | |
| c.l = 22; | |
| if (f1 (1) != a) | |
| abort (); | |
| if (f1 (0) != b) | |
| abort (); | |
| if (f2 (1) != c.i) | |
| abort (); | |
| if (f2 (0) != c.j) | |
| abort (); | |
| if (f3 (1) != c.i) | |
| abort (); | |
| if (f3 (0) != a) | |
| abort (); | |
| if (f4 (1) != c.i) | |
| abort (); | |
| if (f4 (0) != c.k) | |
| abort (); | |
| if (f5 (1) != c.l) | |
| abort (); | |
| if (f5 (0) != b) | |
| abort (); | |
| } |