forked from OSchip/llvm-project
Handle unresolved using decls in bare lookups. These are not being adequately
tested. Fixes PR5727. llvm-svn: 90893
This commit is contained in:
parent
8775727b39
commit
3a60c87a59
clang
|
@ -1346,9 +1346,9 @@ Sema::OwningExprResult
|
|||
Sema::BuildDeclarationNameExpr(const CXXScopeSpec &SS,
|
||||
LookupResult &R,
|
||||
bool NeedsADL) {
|
||||
// If this isn't an overloaded result and we don't need ADL, just
|
||||
// build an ordinary singleton decl ref.
|
||||
if (!NeedsADL && !R.isOverloadedResult())
|
||||
// If this is a single, fully-resolved result and we don't need ADL,
|
||||
// just build an ordinary singleton decl ref.
|
||||
if (!NeedsADL && R.isSingleResult())
|
||||
return BuildDeclarationNameExpr(SS, R.getNameLoc(), R.getFoundDecl());
|
||||
|
||||
// We only need to check the declaration if there's exactly one
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// RUN: clang -fsyntax-only -verify %s
|
||||
|
||||
// PR5727
|
||||
namespace test0 {
|
||||
template<typename> struct RefPtr { };
|
||||
template<typename> struct PtrHash {
|
||||
static void f() { }
|
||||
};
|
||||
template<typename T> struct PtrHash<RefPtr<T> > : PtrHash<T*> {
|
||||
using PtrHash<T*>::f;
|
||||
static void f() { f(); }
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue