[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
This revision was automatically updated to reflect the committed changes. Closed by commit rGba475a4a3440: [clang-repl] Disambiguate global namespace identifiers (authored by Hahnfeld). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157480/new/ https://reviews.llvm.org/D157480 Files: clang/lib/Parse/ParseTentative.cpp clang/test/Interpreter/disambiguate-decl-stmt.cpp Index: clang/test/Interpreter/disambiguate-decl-stmt.cpp === --- clang/test/Interpreter/disambiguate-decl-stmt.cpp +++ clang/test/Interpreter/disambiguate-decl-stmt.cpp @@ -38,6 +38,10 @@ Dtor1::~Dtor1() { printf("Dtor1\n"); } Dtor1 d1; +struct Dtor2 { ~Dtor2(); }; +::Dtor2::~Dtor2() { printf("Dtor2\n"); } +Dtor2 d2; + struct ANestedDtor { struct A1 { struct A2 { ~A2(); }; }; }; ANestedDtor::A1::A2::~A2() { printf("Dtor A::A1::A2::~A2\n"); } Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); Index: clang/test/Interpreter/disambiguate-decl-stmt.cpp === --- clang/test/Interpreter/disambiguate-decl-stmt.cpp +++ clang/test/Interpreter/disambiguate-decl-stmt.cpp @@ -38,6 +38,10 @@ Dtor1::~Dtor1() { printf("Dtor1\n"); } Dtor1 d1; +struct Dtor2 { ~Dtor2(); }; +::Dtor2::~Dtor2() { printf("Dtor2\n"); } +Dtor2 d2; + struct ANestedDtor { struct A1 { struct A2 { ~A2(); }; }; }; ANestedDtor::A1::A2::~A2() { printf("Dtor A::A1::A2::~A2\n"); } Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
v.g.vassilev accepted this revision. v.g.vassilev added a comment. This revision is now accepted and ready to land. LGTM! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157480/new/ https://reviews.llvm.org/D157480 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
Hahnfeld added inline comments. Comment at: clang/test/Interpreter/global-namespace-disambiguate.cpp:6 +struct A { ~A(); }; +::A::~A() {} + v.g.vassilev wrote: > Can we add this test to `disambiguate-decl-stmt.cpp` instead where we track > these things? done CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157480/new/ https://reviews.llvm.org/D157480 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
Hahnfeld updated this revision to Diff 548562. Hahnfeld marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157480/new/ https://reviews.llvm.org/D157480 Files: clang/lib/Parse/ParseTentative.cpp clang/test/Interpreter/disambiguate-decl-stmt.cpp Index: clang/test/Interpreter/disambiguate-decl-stmt.cpp === --- clang/test/Interpreter/disambiguate-decl-stmt.cpp +++ clang/test/Interpreter/disambiguate-decl-stmt.cpp @@ -34,6 +34,10 @@ Dtor1::~Dtor1() { printf("Dtor1\n"); } Dtor1 d1; +struct Dtor2 { ~Dtor2(); }; +::Dtor2::~Dtor2() { printf("Dtor2\n"); } +Dtor2 d2; + struct ANestedDtor { struct A1 { struct A2 { ~A2(); }; }; }; ANestedDtor::A1::A2::~A2() { printf("Dtor A::A1::A2::~A2\n"); } Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); Index: clang/test/Interpreter/disambiguate-decl-stmt.cpp === --- clang/test/Interpreter/disambiguate-decl-stmt.cpp +++ clang/test/Interpreter/disambiguate-decl-stmt.cpp @@ -34,6 +34,10 @@ Dtor1::~Dtor1() { printf("Dtor1\n"); } Dtor1 d1; +struct Dtor2 { ~Dtor2(); }; +::Dtor2::~Dtor2() { printf("Dtor2\n"); } +Dtor2 d2; + struct ANestedDtor { struct A1 { struct A2 { ~A2(); }; }; }; ANestedDtor::A1::A2::~A2() { printf("Dtor A::A1::A2::~A2\n"); } Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
v.g.vassilev added inline comments. Comment at: clang/test/Interpreter/global-namespace-disambiguate.cpp:6 +struct A { ~A(); }; +::A::~A() {} + Can we add this test to `disambiguate-decl-stmt.cpp` instead where we track these things? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157480/new/ https://reviews.llvm.org/D157480 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157480: [clang-repl] Disambiguate global namespace identifiers
Hahnfeld created this revision. Hahnfeld added reviewers: v.g.vassilev, aaron.ballman. Herald added a project: All. Hahnfeld requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. A double colon starts an identifier name in the global namespace and must be tentatively parsed as such. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D157480 Files: clang/lib/Parse/ParseTentative.cpp clang/test/Interpreter/global-namespace-disambiguate.cpp Index: clang/test/Interpreter/global-namespace-disambiguate.cpp === --- /dev/null +++ clang/test/Interpreter/global-namespace-disambiguate.cpp @@ -0,0 +1,8 @@ +// UNSUPPORTED: system-aix + +// RUN: cat %s | clang-repl 2>&1 | FileCheck %s + +struct A { ~A(); }; +::A::~A() {} + +// CHECK-NOT: error Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); Index: clang/test/Interpreter/global-namespace-disambiguate.cpp === --- /dev/null +++ clang/test/Interpreter/global-namespace-disambiguate.cpp @@ -0,0 +1,8 @@ +// UNSUPPORTED: system-aix + +// RUN: cat %s | clang-repl 2>&1 | FileCheck %s + +struct A { ~A(); }; +::A::~A() {} + +// CHECK-NOT: error Index: clang/lib/Parse/ParseTentative.cpp === --- clang/lib/Parse/ParseTentative.cpp +++ clang/lib/Parse/ParseTentative.cpp @@ -62,6 +62,7 @@ case tok::kw_static_assert: case tok::kw__Static_assert: return true; + case tok::coloncolon: case tok::identifier: { if (DisambiguatingWithExpression) { RevertingTentativeParsingAction TPA(*this); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits