]> granicus.if.org Git - clang/commitdiff
Fix incorrect comparison operator causing loooong formatting times.
authorDaniel Jasper <djasper@google.com>
Sat, 12 Jan 2013 07:36:22 +0000 (07:36 +0000)
committerDaniel Jasper <djasper@google.com>
Sat, 12 Jan 2013 07:36:22 +0000 (07:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172308 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/Format.cpp
unittests/Format/FormatTest.cpp

index ec8b02ffcadf8a5e2451c5248605fab8e3976384..61d2f7fb63feb5c589b8ca47aee2588b7d85a14e 100644 (file)
@@ -282,7 +282,9 @@ private:
         return FirstLessLess < Other.FirstLessLess;
       if (BreakBeforeClosingBrace != Other.BreakBeforeClosingBrace)
         return BreakBeforeClosingBrace;
-      return BreakAfterComma;
+      if (BreakAfterComma != Other.BreakAfterComma)
+        return BreakAfterComma;
+      return false;
     }
   };
 
index 84ce0c1e06d3b7e8fc7575e13dbacb779d5e9664..668e8af76bc586a8b610933d2e5ecfb446e9aaae 100644 (file)
@@ -681,6 +681,24 @@ TEST_F(FormatTest, ConstructorInitializers) {
                      "    : some_var_(var),  // 4 space indent\n"
                      "      some_other_var_(var + 1) {  // lined up\n"
                      "}");
+
+  // This test takes VERY long when memoization is broken.
+  verifyGoogleFormat(
+      "Constructor()\n"
+      "    : aaaa(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a)\n"
+      "      aaaa(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,"
+      " a, a, a,\n"
+      "           a, a, a, a, a, a, a, a, a, a, a) {}\n");
 }
 
 TEST_F(FormatTest, BreaksAsHighAsPossible) {