]> granicus.if.org Git - clang/commitdiff
Fix an corner-case assertion introduced by the refactoring in r112258;
authorDouglas Gregor <dgregor@apple.com>
Mon, 30 Aug 2010 16:00:47 +0000 (16:00 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 30 Aug 2010 16:00:47 +0000 (16:00 +0000)
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
test/SemaTemplate/member-access-expr.cpp

index 06b742ddbae2fcd182c40d42b1c5f26a50309b5f..80500714f427cc8055a75051ff1b2cab970ad682 100644 (file)
@@ -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<FieldDecl>(R.getFoundDecl());
 
index 24db791e01151de941a209458220870fb7f1441a..16b9515a15dc29af0d4b566f6a38d77cfd1f721c 100644 (file)
@@ -121,3 +121,14 @@ namespace test4 {
     }
   };
 }
+
+namespace test5 {
+  template<typename T>
+  struct X {
+    using T::value;
+
+    T &getValue() {
+      return &value;
+    }
+  };
+}