summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-11-16 19:13:03 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-11-16 19:13:03 +0000
commitf2f534d12a6eaa2e5b51f3f6437c3486753c311c (patch)
tree5f24a782cf12934d7eddb7b3121e8410769b95b4 /clang/lib/Sema/TreeTransform.h
parentb3b44ce433a459ad49531c5528259580ee4cc6ee (diff)
downloadbcm5719-llvm-f2f534d12a6eaa2e5b51f3f6437c3486753c311c.tar.gz
bcm5719-llvm-f2f534d12a6eaa2e5b51f3f6437c3486753c311c.zip
Fix PR5488: special-case the overloaded arrow operator so that we don't try to
treat it as a unary operator. llvm-svn: 88938
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h3
1 files changed, 3 insertions, 0 deletions
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<Derived>::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
OpenPOWER on IntegriCloud