// { dg-do assemble } // Origin: David Margery // Bug: We fail to set DECL_TEMPLATE_PARM_P when reducing template // parameter level. template class A2 { public: A2() {} virtual ~A2() {} template A2 & operator=(const A2 o) { i=o.i; return *this; } T i; T j; }; template class A1 { public: A1() {} virtual ~A1() {} template A1 & operator=(const A1 o) { i=o.i; return *this; } template A1 & operator=(const A2 o) { i=o.i; return *this; } T i; }; template