summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 31d69cbac35..81c56c2f2c6 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -9128,8 +9128,18 @@ TreeTransform<Derived>::TransformUnresolvedLookupExpr(
// If we have neither explicit template arguments, nor the template keyword,
// it's a normal declaration name.
- if (!Old->hasExplicitTemplateArgs() && !TemplateKWLoc.isValid())
+ if (!Old->hasExplicitTemplateArgs() && !TemplateKWLoc.isValid()) {
+ // If an UnresolvedLookupExpr resolved to an instance member, that's an
+ // error.
+ NamedDecl *D = R.getAsSingle<NamedDecl>();
+ if (D && D->isCXXInstanceMember()) {
+ SemaRef.DiagnoseInstanceReference(SS, D, Old->getNameInfo());
+ R.clear();
+ return ExprError();
+ }
+
return getDerived().RebuildDeclarationNameExpr(SS, R, Old->requiresADL());
+ }
// If we have template arguments, rebuild them, then rebuild the
// templateid expression.
OpenPOWER on IntegriCloud