Mercurial > hg > CbC > CbC_gcc
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" } } */ |