diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-12-21 01:42:38 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-12-21 01:42:38 +0000 |
commit | 9025ec2ee55bf8098f928c2f55e2316c861fcb55 (patch) | |
tree | c89cfea6fad81efc66999f90f44c13e535fa3f5b /clang/lib/Sema | |
parent | a26001bf96b52e24d4f1020f75d849f45ca513d9 (diff) | |
download | bcm5719-llvm-9025ec2ee55bf8098f928c2f55e2316c861fcb55.tar.gz bcm5719-llvm-9025ec2ee55bf8098f928c2f55e2316c861fcb55.zip |
Fix for PR5840: fix the kind of name lookup used for classes in
Sema::getTypeName.
"LookupNestedNameSpecifierName" isn't quite the right kind of lookup, though;
it doesn't ignore namespaces. Someone more familiar with the lookup code
should fix this properly.
llvm-svn: 91809
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index f087bcb95cf..d83f8527486 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -106,8 +106,12 @@ Sema::TypeTy *Sema::getTypeName(IdentifierInfo &II, SourceLocation NameLoc, if (!LookupCtx->isDependentContext() && RequireCompleteDeclContext(*SS)) return 0; } - - LookupResult Result(*this, &II, NameLoc, LookupOrdinaryName); + + // FIXME: LookupNestedNameSpecifierName isn't the right kind of + // lookup for class-names. + LookupNameKind Kind = isClassName ? LookupNestedNameSpecifierName : + LookupOrdinaryName; + LookupResult Result(*this, &II, NameLoc, Kind); if (LookupCtx) { // Perform "qualified" name lookup into the declaration context we // computed, which is either the type of the base of a member access |