diff options
Diffstat (limited to 'lib/Sema/SemaLookup.cpp')
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index e6f3d9ec3b..4d25f5b480 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -325,7 +325,9 @@ Sema::LookupResult::CreateLookupResult(ASTContext &Context, NamedDecl *D) { if (ObjCCompatibleAliasDecl *Alias = dyn_cast_or_null<ObjCCompatibleAliasDecl>(D)) D = Alias->getClassInterface(); - + if (UsingDecl *UD = dyn_cast_or_null<UsingDecl>(D)) + D = UD->getTargetDecl(); + LookupResult Result; Result.StoredKind = (D && isa<OverloadedFunctionDecl>(D))? OverloadedDeclSingleDecl : SingleDecl; @@ -358,7 +360,9 @@ Sema::LookupResult::CreateLookupResult(ASTContext &Context, if (ObjCCompatibleAliasDecl *Alias = dyn_cast_or_null<ObjCCompatibleAliasDecl>(D)) D = Alias->getClassInterface(); - + if (UsingDecl *UD = dyn_cast_or_null<UsingDecl>(D)) + D = UD->getTargetDecl(); + Result.StoredKind = SingleDecl; Result.First = reinterpret_cast<uintptr_t>(D); Result.Last = 0; |