repo.or.cz
/
netbsd-mini2440.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
No empty .Rs/.Re
[netbsd-mini2440.git]
/
gnu
/
dist
/
gcc4
/
gcc
/
testsuite
/
g++.dg
/
opt
/
preinc1.C
blob
89a0116b03547b23d7014d333638c90cc5f0b71b
1
// PR optimization/6086
2
// { dg-do run }
3
// { dg-options "-O" }
4
5
extern "C" void abort (void);
6
7
struct A
8
{
9
A (int x, int y);
10
int a, b;
11
int foo () { return a; }
12
int bar () { return b; }
13
};
14
15
struct B
16
{
17
virtual ~B ();
18
virtual A baz () const;
19
};
20
21
struct C
22
{
23
A foo () const;
24
B *c;
25
};
26
27
A C::foo () const
28
{
29
int x, y;
30
x = c->baz ().foo ();
31
y = c->baz ().bar ();
32
return A (x, y);
33
}
34
35
A B::baz () const
36
{
37
return A (4, 8);
38
}
39
40
A::A (int x, int y)
41
{
42
a = x;
43
b = y;
44
}
45
46
B::~B ()
47
{
48
}
49
50
int
51
main ()
52
{
53
C the_c;
54
B the_b;
55
the_c.c = &the_b;
56
if (the_c.foo().a != 4)
57
abort ();
58
return 0;
59
}