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