// { dg-do assemble } // GROUPS passed templates template class ChainElem { public: ET data; }; template class Chain { public: ChainElem *first; virtual ~Chain() {} }; struct B { }; struct X : B { ~X (); }; struct TBNFexpression { }; struct TCaseLabelPair { }; struct TVariant { Chain CaseLabelList; }; struct TCaseConstruct { Chain TagFieldPrefixes; Chain Variants; }; struct Production { X TypeName; }; struct SimpleSyntax { Chain Productions; };