summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-01-16 07:02:34 +0000
committerDaniel Jasper <djasper@google.com>2013-01-16 07:02:34 +0000
commitc36492b598e9cb710be2c053b15d9acc36a3168d (patch)
tree713280b5f17e17dc0aa5aff818d3a29f8c43158b
parent6a9355f8d7a2352a443499eaee3ac87fc41e1037 (diff)
downloadbcm5719-llvm-c36492b598e9cb710be2c053b15d9acc36a3168d.tar.gz
bcm5719-llvm-c36492b598e9cb710be2c053b15d9acc36a3168d.zip
Remove errors were if statements were incorrectly put on a single line.
Before: if (a) // This comment confused clang-format f(); After: if (a) // No more confusion f(); llvm-svn: 172600
-rw-r--r--clang/lib/Format/Format.cpp7
-rw-r--r--clang/unittests/Format/FormatTest.cpp12
2 files changed, 18 insertions, 1 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 445a4064b46..9477f5e014d 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -1480,6 +1480,11 @@ private:
unsigned Length = 0;
if (!fitsIntoLimit(I->First, Limit, &Length))
return false;
+
+ // We can never merge stuff if there are trailing line comments.
+ if (I->Last->Type == TT_LineComment)
+ return true;
+
if (Limit == Length)
return true; // Couldn't fit a space.
Limit -= Length + 1; // One space.
@@ -1516,6 +1521,8 @@ private:
if (!Style.AllowShortIfStatementsOnASingleLine)
return;
AnnotatedLine &Line = *I;
+ if (Line.Last->isNot(tok::r_paren))
+ return;
if (!fitsIntoLimit((I + 1)->First, Limit))
return;
if ((I + 1)->First.is(tok::kw_if) || (I + 1)->First.Type == TT_LineComment)
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index eb00d017ff3..ac61af3bfae 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -145,7 +145,17 @@ TEST_F(FormatTest, FormatIfWithoutCompountStatement) {
verifyFormat("if (a) return;", getGoogleStyleWithColumns(14));
verifyFormat("if (a)\n return;", getGoogleStyleWithColumns(13));
verifyFormat("if (aaaaaaaaa)\n"
- " return;", getGoogleStyleWithColumns(14));
+ " return;", getGoogleStyleWithColumns(14));
+ verifyGoogleFormat("if (a) // Can't merge this\n"
+ " f();\n");
+ verifyGoogleFormat("if (a) /* still don't merge */\n"
+ " f();");
+ verifyGoogleFormat("if (a) { // Never merge this\n"
+ " f();\n"
+ "}");
+ verifyGoogleFormat("if (a) { /* Never merge this */\n"
+ " f();\n"
+ "}");
}
TEST_F(FormatTest, ParseIfElse) {
OpenPOWER on IntegriCloud