aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/other/final2.C
blob: 92e753796424d56eaa9f6ae97bc47e19c38ba9e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// PR c++/53186
// { dg-do compile { target c++11 } }
// { dg-options "-fdump-tree-original"  }

struct F1
{
  virtual void operator()() final;
  virtual operator int() final;
  virtual int operator++() final;
};

struct F2 final
{
  virtual void operator()();
  virtual operator int();
  virtual int operator++();
};

void fooF1(F1& a) { a(); int m = a; ++a; }
void fooF2(F2& a) { a(); int m = a; ++a; }

// { dg-final { scan-tree-dump-times "F1::operator\\(\\)" 1 "original" } }
// { dg-final { scan-tree-dump-times "F1::operator int" 1 "original" } }
// { dg-final { scan-tree-dump-times "F1::operator\\+\\+" 1 "original" } }
// { dg-final { scan-tree-dump-times "F2::operator\\(\\)" 1 "original" } }
// { dg-final { scan-tree-dump-times "F2::operator int" 1 "original" } }
// { dg-final { scan-tree-dump-times "F2::operator\\+\\+" 1 "original" } }
// { dg-final { cleanup-tree-dump "original" } }