This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3362fa59ec40: [clang-format] extern with new line brace
without indentation (authored by MyDeveloperDay).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D115879/new/
https://reviews.llvm.org/D115879
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -3835,36 +3835,66 @@
Style.IndentWidth = 2;
Style.IndentExternBlock = FormatStyle::IEBS_Indent;
- verifyFormat("extern \"C\" { /*9*/\n}", Style);
+ verifyFormat("extern \"C\" { /*9*/\n"
+ "}",
+ Style);
verifyFormat("extern \"C\" {\n"
" int foo10();\n"
"}",
Style);
Style.IndentExternBlock = FormatStyle::IEBS_NoIndent;
- verifyFormat("extern \"C\" { /*11*/\n}", Style);
+ verifyFormat("extern \"C\" { /*11*/\n"
+ "}",
+ Style);
verifyFormat("extern \"C\" {\n"
"int foo12();\n"
"}",
Style);
- Style.IndentExternBlock = FormatStyle::IEBS_AfterExternBlock;
Style.BreakBeforeBraces = FormatStyle::BS_Custom;
Style.BraceWrapping.AfterExternBlock = true;
- verifyFormat("extern \"C\"\n{ /*13*/\n}", Style);
+ Style.IndentExternBlock = FormatStyle::IEBS_Indent;
+ verifyFormat("extern \"C\"\n"
+ "{ /*13*/\n"
+ "}",
+ Style);
verifyFormat("extern \"C\"\n{\n"
" int foo14();\n"
"}",
Style);
- Style.IndentExternBlock = FormatStyle::IEBS_AfterExternBlock;
- Style.BreakBeforeBraces = FormatStyle::BS_Custom;
Style.BraceWrapping.AfterExternBlock = false;
- verifyFormat("extern \"C\" { /*15*/\n}", Style);
+ Style.IndentExternBlock = FormatStyle::IEBS_NoIndent;
+ verifyFormat("extern \"C\" { /*15*/\n"
+ "}",
+ Style);
verifyFormat("extern \"C\" {\n"
"int foo16();\n"
"}",
Style);
+
+ Style.BraceWrapping.AfterExternBlock = true;
+ verifyFormat("extern \"C\"\n"
+ "{ /*13*/\n"
+ "}",
+ Style);
+ verifyFormat("extern \"C\"\n"
+ "{\n"
+ "int foo14();\n"
+ "}",
+ Style);
+
+ Style.IndentExternBlock = FormatStyle::IEBS_Indent;
+ verifyFormat("extern \"C\"\n"
+ "{ /*13*/\n"
+ "}",
+ Style);
+ verifyFormat("extern \"C\"\n"
+ "{\n"
+ " int foo14();\n"
+ "}",
+ Style);
}
TEST_F(FormatTest, FormatsInlineASM) {
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -1279,17 +1279,18 @@
if (FormatTok->Tok.is(tok::string_literal)) {
nextToken();
if (FormatTok->Tok.is(tok::l_brace)) {
- if (!Style.IndentExternBlock) {
- if (Style.BraceWrapping.AfterExternBlock) {
- addUnwrappedLine();
- }
- unsigned AddLevels = Style.BraceWrapping.AfterExternBlock ? 1u : 0u;
- parseBlock(/*MustBeDeclaration=*/true, AddLevels);
- } else {
- unsigned AddLevels =
- Style.IndentExternBlock == FormatStyle::IEBS_Indent ? 1u : 0u;
- parseBlock(/*MustBeDeclaration=*/true, AddLevels);
- }
+ if (Style.BraceWrapping.AfterExternBlock)
+ addUnwrappedLine();
+ // Either we indent or for backwards compatibility we follow the
+ // AfterExternBlock style.
+ unsigned AddLevels =
+ (Style.IndentExternBlock == FormatStyle::IEBS_Indent) ||
+ (Style.BraceWrapping.AfterExternBlock &&
+ Style.IndentExternBlock ==
+ FormatStyle::IEBS_AfterExternBlock)
+ ? 1u
+ : 0u;
+ parseBlock(/*MustBeDeclaration=*/true, AddLevels);
addUnwrappedLine();
return;
}
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits