comparison gcc/testsuite/g++.dg/ipa/devirt-53.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 // { dg-do assemble }
2 // { dg-options "-O2 -fdump-tree-fre1-details -std=c++11 -Wno-return-type" }
3 typedef unsigned a;
4 enum b : a;
5 class c {
6 public:
7 virtual a d();
8 };
9 using e = int;
10 class f;
11 class h {
12 public:
13 f *operator->();
14 };
15 class i {
16 public:
17 ~i() { j->d(); }
18 c *j;
19 };
20 template <class g> class k : i {
21 public:
22 k(g *);
23 };
24 class l;
25 class m {
26 virtual b n(const e &, l **);
27 };
28 class o {
29 protected:
30 h p;
31 };
32 class G {
33 virtual b r(const e &, l **);
34 };
35 class l : G {};
36 class q {
37 public:
38 q(l *);
39 template <class t> void s(t);
40 };
41 class f : c {
42 a d();
43 virtual b r(e);
44
45 public:
46 class L : public l, o, m {
47 b r(const e &y, l **) { p->r(y); }
48 b n(const e &, l **) { k<l> a = this; }
49 };
50 };
51 c u;
52 void fn1() {
53 c v;
54 k<c> b(&u);
55 q(new f::L).s(v);
56 }
57 /* Check that f::d appears as possible target. */
58 /* { dg-final { scan-tree-dump "f::d" "fre1" } } */