From: Douglas Gregor Date: Mon, 30 Aug 2010 16:00:47 +0000 (+0000) Subject: Fix an corner-case assertion introduced by the refactoring in r112258; X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e2248be8746e0ebb01e9a3b823bc0e129283bef4;p=clang 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 --- 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; + } + }; +}