From e26f0432c20de7034f414809628d10bfd961ca04 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 9 Aug 2010 22:38:14 +0000 Subject: [PATCH] When attempting to recover from a failed unqualified name lookup, make sure to clear out the LookupResult structure after looking into each class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110615 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaExpr.cpp | 2 ++ test/SemaCXX/crash-PR7625.cpp | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 test/SemaCXX/crash-PR7625.cpp diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 96ac69c7ff..d573ca9bbb 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -917,6 +917,8 @@ bool Sema::DiagnoseEmptyLookup(Scope *S, CXXScopeSpec &SS, LookupResult &R, // Tell the callee to try to recover. return false; } + + R.clear(); } } diff --git a/test/SemaCXX/crash-PR7625.cpp b/test/SemaCXX/crash-PR7625.cpp new file mode 100644 index 0000000000..3ddf5e5ed2 --- /dev/null +++ b/test/SemaCXX/crash-PR7625.cpp @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +template struct a : T { + struct x : T { + int aa() { return p; } // expected-error{{use of undeclared identifier 'p'}} + }; +}; -- 2.50.1