[PATCH] D17143: [Sema] PR25156 Crash when parsing dtor call on incomplete type
don hinton via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 9 10:12:49 PDT 2017
hintonda updated this revision to Diff 102049.
hintonda added a comment.
Rebase and move test to existing file.
https://reviews.llvm.org/D17143
Files:
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/nested-name-spec.cpp
Index: test/SemaCXX/nested-name-spec.cpp
===================================================================
--- test/SemaCXX/nested-name-spec.cpp
+++ test/SemaCXX/nested-name-spec.cpp
@@ -169,6 +169,13 @@
struct Y; // expected-note{{forward declaration of 'Y'}}
Y::foo y; // expected-error{{incomplete type 'Y' named in nested name specifier}}
+namespace PR25156 {
+struct Y; // expected-note{{forward declaration of 'PR25156::Y'}}
+void foo() {
+ Y::~Y(); // expected-error{{incomplete type 'PR25156::Y' named in nested name specifier}}
+}
+}
+
X::X() : a(5) { } // expected-error{{use of undeclared identifier 'X'}}
struct foo_S {
Index: lib/Sema/SemaExprCXX.cpp
===================================================================
--- lib/Sema/SemaExprCXX.cpp
+++ lib/Sema/SemaExprCXX.cpp
@@ -189,7 +189,7 @@
// have one) and, if that fails to find a match, in the scope (if
// we're allowed to look there).
Found.clear();
- if (Step == 0 && LookupCtx)
+ if (Step == 0 && LookupCtx && !RequireCompleteDeclContext(SS, LookupCtx))
LookupQualifiedName(Found, LookupCtx);
else if (Step == 1 && LookInScope && S)
LookupName(Found, S);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17143.102049.patch
Type: text/x-patch
Size: 1184 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170609/8dd94093/attachment-0001.bin>
More information about the cfe-commits
mailing list