diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-11-16 19:13:03 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-11-16 19:13:03 +0000 |
commit | f2f534d12a6eaa2e5b51f3f6437c3486753c311c (patch) | |
tree | 5f24a782cf12934d7eddb7b3121e8410769b95b4 /clang/lib/Sema | |
parent | b3b44ce433a459ad49531c5528259580ee4cc6ee (diff) | |
download | bcm5719-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')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 3 |
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 |