voidS::a()noexcept{}// expected-error {{does not match previous}}
S::~S()noexcept{}// expected-warning {{function previously declared with an implicit exception specification redeclared with an explicit exception specification}}
voidS::operatordelete(void*)noexcept{}// expected-warning {{function previously declared with an implicit exception specification redeclared with an explicit exception specification}}
T::~T(){}// expected-warning {{function previously declared with an explicit exception specification redeclared with an implicit exception specification}}
voidT::operatordelete(void*){}// expected-warning {{function previously declared with an explicit exception specification redeclared with an implicit exception specification}}
// The extension does not extend to function templates.
template<typenameT>U<T>::~U()noexcept(true){}// expected-error {{exception specification in declaration does not match previous declaration}}
template<typenameT>voidU<T>::operatordelete(void*)noexcept(false){}// expected-error {{exception specification in declaration does not match previous declaration}}