From f2f534d12a6eaa2e5b51f3f6437c3486753c311c Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Mon, 16 Nov 2009 19:13:03 +0000 Subject: Fix PR5488: special-case the overloaded arrow operator so that we don't try to treat it as a unary operator. llvm-svn: 88938 --- clang/lib/Sema/TreeTransform.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'clang/lib/Sema/TreeTransform.h') diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index e46f9c75d28..d3dab4b8e13 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -5390,6 +5390,9 @@ TreeTransform::RebuildCXXOperatorCallExpr(OverloadedOperatorKind Op, return getSema().CreateBuiltinArraySubscriptExpr(move(First), DRE->getLocStart(), move(Second), OpLoc); + } else if (Op == OO_Arrow) { + // -> is never a builtin operation. + return SemaRef.BuildOverloadedArrowExpr(0, move(First), OpLoc); } else if (SecondExpr == 0 || isPostIncDec) { if (!FirstExpr->getType()->isOverloadableType()) { // The argument is not of overloadable type, so try to create a -- cgit v1.2.3