[PATCH] D137181: [clang-format] Don't use 'PPIndentWidth' inside multi-line macros
Owen Pan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 8 23:42:54 PST 2022
owenpan added a comment.
In D137181#3916558 <https://reviews.llvm.org/D137181#3916558>, @goldstein.w.n wrote:
> In D137181#3916547 <https://reviews.llvm.org/D137181#3916547>, @owenpan wrote:
>
>> Yes, if there is a header guard. Otherwise, set `PPLevel` to `PPBranchLevel + 1`.
>
> That fails alot of the tests for me.
>
> maybe you did something different?
Here is what I did:
$ git diff UnwrappedLineParser.cpp
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
index 25d9018fa109..ab3b9c53ee54 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -197,6 +197,7 @@ public:
PreBlockLine = std::move(Parser.Line);
Parser.Line = std::make_unique<UnwrappedLine>();
Parser.Line->Level = PreBlockLine->Level;
+ Parser.Line->PPLevel = PreBlockLine->PPLevel;
Parser.Line->InPPDirective = PreBlockLine->InPPDirective;
Parser.Line->InMacroBody = PreBlockLine->InMacroBody;
}
@@ -1274,6 +1275,10 @@ void UnwrappedLineParser::parsePPDefine() {
addUnwrappedLine();
++Line->Level;
Line->InMacroBody = true;
+ if (Style.IndentPPDirectives != FormatStyle::PPDIS_None) {
+ Line->PPLevel =
+ IncludeGuard == IG_Defined ? PPBranchLevel : PPBranchLevel + 1;
+ }
// Errors during a preprocessor directive can only affect the layout of the
// preprocessor directive, and thus we ignore them. An alternative approach
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137181/new/
https://reviews.llvm.org/D137181
More information about the cfe-commits
mailing list