diff options
Diffstat (limited to 'clang/lib/Parse/ParseExprCXX.cpp')
| -rw-r--r-- | clang/lib/Parse/ParseExprCXX.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index 07de34dcb52..a72ab70d6cc 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -240,7 +240,9 @@ bool Parser::ParseOptionalCXXScopeSpecifier(CXXScopeSpec &SS,      // If we get foo:bar, this is almost certainly a typo for foo::bar.  Recover      // and emit a fixit hint for it.      if (Next.is(tok::colon) && !ColonIsSacred) { -      if (CheckForDestructor && GetLookAheadToken(2).is(tok::tilde)) { +      if (CheckForDestructor && GetLookAheadToken(2).is(tok::tilde) && +          !Actions.isNonTypeNestedNameSpecifier(CurScope, SS, Tok.getLocation(), +                                                II, ObjectType)) {          *MayBePseudoDestructor = true;          return HasScopeSpecifier;        } @@ -261,7 +263,9 @@ bool Parser::ParseOptionalCXXScopeSpecifier(CXXScopeSpec &SS,      }      if (Next.is(tok::coloncolon)) { -      if (CheckForDestructor && GetLookAheadToken(2).is(tok::tilde)) { +      if (CheckForDestructor && GetLookAheadToken(2).is(tok::tilde) && +          !Actions.isNonTypeNestedNameSpecifier(CurScope, SS, Tok.getLocation(), +                                                II, ObjectType)) {          *MayBePseudoDestructor = true;          return HasScopeSpecifier;        } | 

