summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-05-14 01:58:49 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-05-14 01:58:49 +0000
commit9385d704c115891e0beae99f46cc1df2de8bc5f6 (patch)
tree6b8e6bc3e73b9474f811d270c28d0e09f911bbe8 /clang/lib
parent81ef0e1adbdb457113623b6469844ae6616bb5e5 (diff)
downloadbcm5719-llvm-9385d704c115891e0beae99f46cc1df2de8bc5f6.tar.gz
bcm5719-llvm-9385d704c115891e0beae99f46cc1df2de8bc5f6.zip
When typo-correcting a using-declaration, actually correct the name of the
UsingDecl (so that redeclaration lookup can find it). llvm-svn: 269530
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index ee81bbc2872..ca8ed71fcef 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -7998,6 +7998,9 @@ public:
if (Candidate.WillReplaceSpecifier() && !Candidate.getCorrectionSpecifier())
return false;
+ // FIXME: Don't correct to a name that CheckUsingDeclRedeclaration would
+ // reject.
+
if (RequireMemberOf) {
auto *FoundRecord = dyn_cast<CXXRecordDecl>(ND);
if (FoundRecord && FoundRecord->isInjectedClassName()) {
@@ -8207,6 +8210,7 @@ NamedDecl *Sema::BuildUsingDeclaration(Scope *S, AccessSpecifier AS,
R.addDecl(Ctor);
} else {
// FIXME: Pick up all the declarations if we found an overloaded function.
+ NameInfo.setName(ND->getDeclName());
R.addDecl(ND);
}
} else {
OpenPOWER on IntegriCloud