diff options
author | Kaelyn Uhrain <rikka@google.com> | 2012-04-03 18:20:11 +0000 |
---|---|---|
committer | Kaelyn Uhrain <rikka@google.com> | 2012-04-03 18:20:11 +0000 |
commit | 6d858d96ea294baecdf3e7ad3f3c5395c00dec8e (patch) | |
tree | 66841fb215eefc47865e390f1f0f203ce53af5a7 /lib/Sema/SemaLookup.cpp | |
parent | b3f904f79bbe55f3e088d7174d64d20d186914a1 (diff) |
Replace the workaround from r153445 with a proper fix.
Infinite recursion was happening when DiagnoseInvalidRedeclaration
called ActOnFunctionDeclarator to check if a typo correction works when
the correction was just to the nested-name-specifier because the wrong
DeclContext was being passed in. Unlike a number of functions
surrounding typo correction, the DeclContext passed in for a function is
the context of the function name after applying any nested name
specifiers, not the lexical DeclContext where the
function+nested-name-specifier appears.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153962 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaLookup.cpp')
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index a8d7b1e971..adbfedc641 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -3815,7 +3815,7 @@ TypoCorrection Sema::CorrectTypo(const DeclarationNameInfo &TypoName, // Determine whether we are going to search in the various namespaces for // corrections. bool SearchNamespaces - = getLangOpts().CPlusPlus && CCC.AllowAddedQualifier && + = getLangOpts().CPlusPlus && (IsUnqualifiedLookup || (QualifiedDC && QualifiedDC->isNamespace())); if (IsUnqualifiedLookup || SearchNamespaces) { |