summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorKaelyn Uhrain <rikka@google.com>2012-11-19 18:49:53 +0000
committerKaelyn Uhrain <rikka@google.com>2012-11-19 18:49:53 +0000
commitf60b55ae49037d03934e5dc56dfbf1511ab0f576 (patch)
treef9368cb649a4fc0b01c4eb06d9c4365016f225c0 /clang
parent26786bacd131d8b2b349749e55eefb7fc1e1e557 (diff)
downloadbcm5719-llvm-f60b55ae49037d03934e5dc56dfbf1511ab0f576.tar.gz
bcm5719-llvm-f60b55ae49037d03934e5dc56dfbf1511ab0f576.zip
When adding a NamedDecl to a correction, add the underlying Decl (via
getUnderlyingDecl()) so that derivatives of CorrectionCandidateCallback::ValidateCandidate(...) don't have to worry about being thrown by UsingDecls and such. llvm-svn: 168317
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaLookup.cpp2
-rw-r--r--clang/test/SemaCXX/typo-correction.cpp14
2 files changed, 15 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index f6987e7bfbe..f257a499d4c 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -4094,7 +4094,7 @@ void TypoCorrection::addCorrectionDecl(NamedDecl *CDecl) {
if (isKeyword())
CorrectionDecls.clear();
- CorrectionDecls.push_back(CDecl);
+ CorrectionDecls.push_back(CDecl->getUnderlyingDecl());
if (!CorrectionName)
CorrectionName = CDecl->getDeclName();
diff --git a/clang/test/SemaCXX/typo-correction.cpp b/clang/test/SemaCXX/typo-correction.cpp
index c21ef51a7da..4a3f0f6b294 100644
--- a/clang/test/SemaCXX/typo-correction.cpp
+++ b/clang/test/SemaCXX/typo-correction.cpp
@@ -236,3 +236,17 @@ void test() {
return status; // expected-error-re{{use of undeclared identifier 'status'$}}
}
}
+
+namespace PR13387 {
+struct A {
+ void CreateFoo(float, float); // expected-note {{'CreateFoo' declared here}}
+ void CreateBar(float, float);
+};
+struct B : A {
+ using A::CreateFoo;
+ void CreateFoo(int, int);
+};
+void f(B &x) {
+ x.Createfoo(0,0); // expected-error {{no member named 'Createfoo' in 'PR13387::B'; did you mean 'CreateFoo'?}}
+}
+}
OpenPOWER on IntegriCloud