// RUN: %clang_cc1 -std=c++11 -verify %s -fexceptions -fcxx-exceptions
structA{struct X {virtual~X()throw(Y);};struct Y : X {};};structB{struct X {virtualvoidf()throw(Y);};struct Y : X {voidf()throw(Y);};};structC{struct X {virtualvoidf()throw(Y);};struct Y : X {voidf()throw();};};structD{struct X {virtualvoidf()throw(Y);};struct Y : X {voidf()noexcept;};};structE{struct Y;struct X {virtual Y &operator=(const Y&)throw(Y);};struct Y : X {};};structF{structX{virtualvoidf()throw(Y);// expected-note {{here}}
};structY:X{voidf()throw(int);// expected-error {{more lax}}
};};