[PATCH] D137052: [clang-format] Don't skip #else/#elif of #if 0
Owen Pan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 2 13:33:54 PDT 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG117d792f35e6: [clang-format] Don't skip #else/#elif of #if 0 (authored by owenpan).
Changed prior to commit:
https://reviews.llvm.org/D137052?vs=472204&id=472743#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137052/new/
https://reviews.llvm.org/D137052
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
@@ -6127,6 +6127,33 @@
"#endif\n"
" x;\n"
"}");
+
+ verifyFormat("#if 0\n"
+ "#endif\n"
+ "#if X\n"
+ "int something_fairly_long; // Align here please\n"
+ "#endif // Should be aligned");
+
+ verifyFormat("#if 0\n"
+ "#endif\n"
+ "#if X\n"
+ "#else // Align\n"
+ ";\n"
+ "#endif // Align");
+
+ verifyFormat("void SomeFunction(int param1,\n"
+ " template <\n"
+ "#ifdef A\n"
+ "#if 0\n"
+ "#endif\n"
+ " MyType<Some>>\n"
+ "#else\n"
+ " Type1, Type2>\n"
+ "#endif\n"
+ " param2,\n"
+ " param3) {\n"
+ " f();\n"
+ "}");
}
TEST_F(FormatTest, GraciouslyHandleIncorrectPreprocessorConditions) {
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -1144,12 +1144,10 @@
++PPBranchLevel;
assert(PPBranchLevel >= 0 && PPBranchLevel <= (int)PPLevelBranchIndex.size());
if (PPBranchLevel == (int)PPLevelBranchIndex.size()) {
- // If the first branch is unreachable, set the BranchIndex to 1. This way
- // the next branch will be parsed if there is one.
- PPLevelBranchIndex.push_back(Unreachable ? 1 : 0);
+ PPLevelBranchIndex.push_back(0);
PPLevelBranchCount.push_back(0);
}
- PPChainBranchIndex.push(0);
+ PPChainBranchIndex.push(Unreachable ? -1 : 0);
bool Skip = PPLevelBranchIndex[PPBranchLevel] > 0;
conditionalCompilationCondition(Unreachable || Skip);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137052.472743.patch
Type: text/x-patch
Size: 2111 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221102/d7cc5c76/attachment.bin>
More information about the cfe-commits
mailing list