// { dg-do assemble } // Origin: Jakub Jelinek namespace N { class X; template class Y { public: inline Y () {} inline operator const Y & () const { return *reinterpret_cast *>(this); } }; } class bar { public: inline bar () {} inline bar (const ::N::Y< ::N::X>& a); }; class foo { bool b; public: foo(); void x () throw(bar); }; void foo::x() throw(bar) { if (!b) throw bar (static_cast<::N::X*>(this)); // { dg-error "lambda expressions|expected|invalid" } parse error }