repo.or.cz
/
gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Fortran: Fix PR 47485.
[gcc.git]
/
gcc
/
testsuite
/
g++.dg
/
torture
/
pr37146-2.C
blob
2a541769492232b830e354223a9353f12c18d5ed
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
}