From 4abbb535f0f050aea6373e26e769643c3c61a9b1 Mon Sep 17 00:00:00 2001
From: Daniel Jasper <djasper@google.com>
Date: Mon, 14 Jan 2013 12:18:19 +0000
Subject: [PATCH] Improve understanding post increment and decrement.

Before: (a->f()) ++;
        a[42] ++;
After:  (a->f())++;
        a[42]++;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172400 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Format/Format.cpp           | 5 ++++-
 unittests/Format/FormatTest.cpp | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 548bdee2b2d..57e9a769892 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -1060,7 +1060,10 @@ private:
 
   /// \brief Determine whether ++/-- are pre- or post-increments/-decrements.
   TokenType determineIncrementUsage(const AnnotatedToken &Tok) {
-    if (Tok.Parent != NULL && Tok.Parent->is(tok::identifier))
+    if (Tok.Parent == NULL)
+      return TT_UnaryOperator;
+    if (Tok.Parent->is(tok::r_paren) || Tok.Parent->is(tok::r_square) ||
+        Tok.Parent->is(tok::identifier))
       return TT_TrailingUnaryOperator;
 
     return TT_UnaryOperator;
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index eb87a3b9657..9565e3a8553 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -978,6 +978,8 @@ TEST_F(FormatTest, UnderstandsUnaryOperators) {
   verifyFormat("if (i < -1) {}");
   verifyFormat("++(a->f());");
   verifyFormat("--(a->f());");
+  verifyFormat("(a->f())++;");
+  verifyFormat("a[42]++;");
   verifyFormat("if (!(a->f())) {}");
 
   verifyFormat("a-- > b;");
-- 
GitLab