From e2248be8746e0ebb01e9a3b823bc0e129283bef4 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 30 Aug 2010 16:00:47 +0000 Subject: [PATCH] Fix an corner-case assertion introduced by the refactoring in r112258; when we're taking the address of a unresolvable value, it might be an implicit member access. Fixes some Boost.Spirit regressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112487 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaExpr.cpp | 2 ++ test/SemaTemplate/member-access-expr.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 06b742ddba..80500714f4 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -1263,6 +1263,8 @@ ExprResult Sema::ActOnIdExpression(Scope *S, MightBeImplicitMember = false; else if (R.isOverloadedResult()) MightBeImplicitMember = false; + else if (R.isUnresolvableResult()) + MightBeImplicitMember = true; else MightBeImplicitMember = isa(R.getFoundDecl()); diff --git a/test/SemaTemplate/member-access-expr.cpp b/test/SemaTemplate/member-access-expr.cpp index 24db791e01..16b9515a15 100644 --- a/test/SemaTemplate/member-access-expr.cpp +++ b/test/SemaTemplate/member-access-expr.cpp @@ -121,3 +121,14 @@ namespace test4 { } }; } + +namespace test5 { + template + struct X { + using T::value; + + T &getValue() { + return &value; + } + }; +} -- 2.40.0