repo.or.cz
/
official-gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
.
[official-gcc.git]
/
gcc
/
testsuite
/
g++.dg
/
ipa
/
pr69649.C
blob
1ad70dc8af7c5a7f5d5cddc164da3839c675a0e1
1
// PR c++/69649
2
// { dg-do compile }
3
// { dg-options "-O2" }
4
5
struct A { virtual void m1 (); };
6
struct C : A { void m1 () { m1 (); } };
7
template <class T> struct B
8
{
9
T *t;
10
B (T *x) : t (x) { if (t) t->m1 (); }
11
B (const B &);
12
};
13
struct D : public C {};
14
struct F : public D
15
{
16
virtual B<D> m2 ();
17
virtual B<D> m3 ();
18
int m4 ();
19
};
20
struct G : F
21
{
22
B<D> m2 ();
23
B<D> m3 ();
24
};
25
B<D> G::m2 ()
26
{
27
if (m4 () == 0)
28
return this;
29
return 0;
30
}
31
B<D> G::m3 ()
32
{
33
if (m4 () == 0)
34
return this;
35
return 0;
36
}