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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168317 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kaelyn Uhrain 2012-11-19 18:49:53 +00:00
Родитель 529a73de04
Коммит 728948fba8
2 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -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();

Просмотреть файл

@ -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'?}}
}
}