}
if (ParseOptionalCXXScopeSpecifier(SS, ObjectType, EnteringContext))
return true;
- if (Tok.isNot(tok::identifier) || NextToken().is(tok::coloncolon)) {
+ if (Tok.isNot(tok::identifier) || NextToken().is(tok::coloncolon) ||
+ SS.isInvalid()) {
Diag(TildeLoc, diag::err_destructor_tilde_scope);
return true;
}
struct D { struct X {}; ~D() throw(X); };
~D::D() throw(X) {} // expected-error {{'~' in destructor name should be after nested name specifier}}
+
+ ~Undeclared::Undeclared() {} // expected-error {{use of undeclared identifier 'Undeclared'}} expected-error {{'~' in destructor name should be after nested name specifier}}
}
namespace BadFriend {