// { dg-do assemble } | |
// Origin: Jakub Jelinek <jakub@redhat.com> | |
namespace N | |
{ | |
class X; | |
template <class T> | |
class Y | |
{ | |
public: | |
inline Y () {} | |
inline operator const Y<X> & () const | |
{ | |
return *reinterpret_cast<const Y<X> *>(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 "" } parse error | |
} |