blob: ef1b7515dd35fa20d8ab14032814ab2bd79a95b9 [file] [log] [blame]
// { dg-do assemble }
// { dg-options "-O2 -fdump-tree-fre1-details -std=c++11 -Wno-return-type" }
typedef unsigned a;
enum b : a;
class c {
public:
virtual a d();
};
using e = int;
class f;
class h {
public:
f *operator->();
};
class i {
public:
~i() { j->d(); }
c *j;
};
template <class g> class k : i {
public:
k(g *);
};
class l;
class m {
virtual b n(const e &, l **);
};
class o {
protected:
h p;
};
class G {
virtual b r(const e &, l **);
};
class l : G {};
class q {
public:
q(l *);
template <class t> void s(t);
};
class f : c {
a d();
virtual b r(e);
public:
class L : public l, o, m {
b r(const e &y, l **) { p->r(y); }
b n(const e &, l **) { k<l> a = this; }
};
};
c u;
void fn1() {
c v;
k<c> b(&u);
q(new f::L).s(v);
}
/* Check that f::d appears as possible target. */
/* { dg-final { scan-tree-dump "f::d" "fre1" } } */