Author: nico
Date: Thu Jan 29 22:05:15 2015
New Revision: 227555
URL: http://llvm.org/viewvc/llvm-project?rev=227555&view=rev
Log:
Follow-up to r217302: Don't crash on ~A::A() if A is undeclared.
Modified:
cfe/trunk/lib/Parse/ParseExprCXX.cpp
cfe/trunk/test/Parser/cxx-class.cpp
Modified: cfe/trunk/lib/Parse/ParseExprCXX.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExprCXX.cpp?rev=227555&r1=227554&r2=227555&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/ParseExprCXX.cpp (original)
+++ cfe/trunk/lib/Parse/ParseExprCXX.cpp Thu Jan 29 22:05:15 2015
@@ -2516,7 +2516,8 @@ bool Parser::ParseUnqualifiedId(CXXScope
}
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;
}
Modified: cfe/trunk/test/Parser/cxx-class.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx-class.cpp?rev=227555&r1=227554&r2=227555&view=diff
==============================================================================
--- cfe/trunk/test/Parser/cxx-class.cpp (original)
+++ cfe/trunk/test/Parser/cxx-class.cpp Thu Jan 29 22:05:15 2015
@@ -157,6 +157,8 @@ namespace DtorErrors {
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 {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits