blob: 847f2d531165759f123e0fcbcf8807d586f599e4 [file] [log] [blame]
// { 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 ()
#if __cplusplus <= 201402L
throw(bar) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
#endif
;
};
void foo::x()
#if __cplusplus <= 201402L
throw(bar) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
#endif
{
if (!b) throw bar (static_cast<::N::X*>(this)); // { dg-error "lambda expressions|expected|invalid" } parse error
}