diff --git a/clang/lib/Parse/ParseTentative.cpp b/clang/lib/Parse/ParseTentative.cpp --- a/clang/lib/Parse/ParseTentative.cpp +++ b/clang/lib/Parse/ParseTentative.cpp @@ -88,10 +88,8 @@ } case tok::kw_operator: return true; - case tok::annot_cxxscope: // Check if this is a dtor. - if (NextToken().is(tok::tilde)) - return true; - break; + case tok::tilde: + return true; default: break; } diff --git a/clang/test/Interpreter/disambiguate-decl-stmt.cpp b/clang/test/Interpreter/disambiguate-decl-stmt.cpp --- a/clang/test/Interpreter/disambiguate-decl-stmt.cpp +++ b/clang/test/Interpreter/disambiguate-decl-stmt.cpp @@ -26,6 +26,10 @@ x.I::~I(); x = 20; +struct Dtor1 {~Dtor1();}; +Dtor1::~Dtor1() { printf("Dtor1\n"); } +Dtor1 d1; + // Ctors // Deduction guide