aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/opt/devirt5.C
blob: f839cbeae2062832820ffbe6eea9a98c028e82b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// PR c++/61659
// { dg-options "-O3" }
// { dg-final { scan-assembler-not "_ZN6parserIiE9getOptionEv" } }

struct generic_parser_base {
  virtual void getOption();
  void getExtraOptionNames() { getOption(); }
};
template <class DataType> struct parser : public generic_parser_base {
  virtual void getOption() {}
};
struct PassNameParser : public parser<int> {
  PassNameParser();
};
struct list {
  PassNameParser Parser;
  virtual void getExtraOptionNames() { return Parser.getExtraOptionNames(); }
};
list PassList;