1 // PR c++/61659
2 // { dg-options "-O3" }
3 // { dg-final { scan-assembler-not "_ZN6parserIiE9getOptionEv" } }
4 
5 struct generic_parser_base {
6   virtual void getOption();
getExtraOptionNamesgeneric_parser_base7   void getExtraOptionNames() { getOption(); }
8 };
9 template <class DataType> struct parser : public generic_parser_base {
getOptionparser10   virtual void getOption() {}
11 };
12 struct PassNameParser : public parser<int> {
13   PassNameParser();
14 };
15 struct list {
16   PassNameParser Parser;
getExtraOptionNameslist17   virtual void getExtraOptionNames() { return Parser.getExtraOptionNames(); }
18 };
19 list PassList;
20