diff options
author | Daniel Jasper <djasper@google.com> | 2015-05-26 07:03:42 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-05-26 07:03:42 +0000 |
commit | 1a028227041034ea7c8e8f1826a97d18dab32e89 (patch) | |
tree | 8dc3564ad73f6cdba5c94ce3175fd88afed8dee1 /clang/lib/Format/UnwrappedLineFormatter.cpp | |
parent | e59cd0b9ec44f5ae514634c6f08d12ac9fe0a815 (diff) | |
download | bcm5719-llvm-1a028227041034ea7c8e8f1826a97d18dab32e89.tar.gz bcm5719-llvm-1a028227041034ea7c8e8f1826a97d18dab32e89.zip |
clang-format: Fix child-formatting in macros.
This fixes a case where the column limit was incorrectly calculated
leading to a macro like this:
#define A \
[] { \
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx( \
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx); \
}
exceeding the column limit.
llvm-svn: 238182
Diffstat (limited to 'clang/lib/Format/UnwrappedLineFormatter.cpp')
-rw-r--r-- | clang/lib/Format/UnwrappedLineFormatter.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp index 9c8b5ba08eb..cbf8c6c9221 100644 --- a/clang/lib/Format/UnwrappedLineFormatter.cpp +++ b/clang/lib/Format/UnwrappedLineFormatter.cpp @@ -934,10 +934,14 @@ UnwrappedLineFormatter::getColumnLimit(bool InPPDirective, // In preprocessor directives reserve two chars for trailing " \" if the // next line continues the preprocessor directive. bool ContinuesPPDirective = - InPPDirective && NextLine && NextLine->InPPDirective && - // If there is an unescaped newline between this line and the next, the - // next line starts a new preprocessor directive. - !NextLine->First->HasUnescapedNewline; + InPPDirective && + // If there is no next line, this is likely a child line and the parent + // continues the preprocessor directive. + (!NextLine || + (NextLine->InPPDirective && + // If there is an unescaped newline between this line and the next, the + // next line starts a new preprocessor directive. + !NextLine->First->HasUnescapedNewline)); return Style.ColumnLimit - (ContinuesPPDirective ? 2 : 0); } |