summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2013-02-06 16:08:09 +0000
committerManuel Klimek <klimek@google.com>2013-02-06 16:08:09 +0000
commit046b9306d4b39b48dc74a84ce40a7f6931aea7d4 (patch)
tree0251fff3645a46debaed63123b4202df8ea14eb3 /clang
parentc485b4e5b8adf751794c2fab702b2ef62deb3fa7 (diff)
downloadbcm5719-llvm-046b9306d4b39b48dc74a84ce40a7f6931aea7d4.tar.gz
bcm5719-llvm-046b9306d4b39b48dc74a84ce40a7f6931aea7d4.zip
Much semicolon after namespaces.
We now leave the semicolon in the line of the closing brace in: namespace { ... }; llvm-svn: 174514
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Format/UnwrappedLineParser.cpp4
-rw-r--r--clang/unittests/Format/FormatTest.cpp9
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
index f79cc712f43..5af60a47c59 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -505,6 +505,10 @@ void UnwrappedLineParser::parseNamespace() {
nextToken();
if (FormatTok.Tok.is(tok::l_brace)) {
parseBlock(/*MustBeDeclaration=*/ true, 0);
+ // Munch the semicolon after a namespace. This is more common than one would
+ // think. Puttin the semicolon into its own line is very ugly.
+ if (FormatTok.Tok.is(tok::semi))
+ nextToken();
addUnwrappedLine();
}
// FIXME: Add error handling.
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index c2e845b9be1..4dc6ea75928 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -617,6 +617,15 @@ TEST_F(FormatTest, FormatsNamespaces) {
verifyFormat("using namespace some_namespace;\n"
"class A {\n};\n"
"void f() { f(); }");
+
+ // This code is more common than we thought; if we
+ // layout this correctly the semicolon will go into
+ // its own line, which is undesireable.
+ verifyFormat("namespace {\n};");
+ verifyFormat("namespace {\n"
+ "class A {\n"
+ "};\n"
+ "};");
}
TEST_F(FormatTest, FormatsExternC) {
OpenPOWER on IntegriCloud