#
e71c537a |
| 20-May-2020 |
mydeveloperday <mydeveloperday@gmail.com> |
[clang-format] Fix line lengths w/ comments in align
Summary: https://bugs.llvm.org/show_bug.cgi?id=43845
When a '//comment' trails a consecutive alignment, it adds a whitespace replacement within
[clang-format] Fix line lengths w/ comments in align
Summary: https://bugs.llvm.org/show_bug.cgi?id=43845
When a '//comment' trails a consecutive alignment, it adds a whitespace replacement within the comment token. This wasn't handled correctly in the alignment code, which treats it as a whole token and thus double counts it.
This can wrongly trigger the "line too long, it'll wrap" alignment-break condition with specific lengths, causing the alignment to break for seemingly no reason.
Patch By: JakeMerdichAMD
Reviewed By: MyDeveloperDay
Subscribers: kostyakozko, cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79465
show more ...
|
Revision tags: llvmorg-10.0.1-rc1 |
|
#
4db94094 |
| 23-Apr-2020 |
Francois Ferrand <thetypz@gmail.com> |
clang-format: support aligned nested conditionals formatting
Summary: When multiple ternary operators are chained, e.g. like an if/else-if/ else-if/.../else sequence, clang-format will keep aligning
clang-format: support aligned nested conditionals formatting
Summary: When multiple ternary operators are chained, e.g. like an if/else-if/ else-if/.../else sequence, clang-format will keep aligning the colon with the question mark, which increases the indent for each conditionals:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
This patch detects the situation (e.g. conditionals used in false branch of another conditional), to avoid indenting in that case:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
When BreakBeforeTernaryOperators is false, this will format like this:
int a = condition1 ? result1 : condition2 ? result2 : conditino3 ? result3 : result4;
This formatting style is referenced here: https://www.fluentcpp.com/2018/02/27/replace-else-if-ternary-operator/ and here: https://marcmutz.wordpress.com/2010/10/14/top-5-reasons-you-should-love-your-ternary-operator/
Reviewers: krasimir, djasper, klimek, MyDeveloperDay
Reviewed By: MyDeveloperDay
Subscribers: hokein, dyung, MyDeveloperDay, acoomans, cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D50078
show more ...
|
#
b2eb4393 |
| 13-May-2020 |
mydeveloperday <mydeveloperday@gmail.com> |
[clang-format] Fix AlignConsecutive on PP blocks
Summary: Currently the 'AlignConsecutive*' options incorrectly align across elif and else statements, even if they are very far away and across unrel
[clang-format] Fix AlignConsecutive on PP blocks
Summary: Currently the 'AlignConsecutive*' options incorrectly align across elif and else statements, even if they are very far away and across unrelated preprocessor macros.
This failed since on preprocessor run 2+, there is not enough context about the #ifdefs to actually differentiate one block from another, causing them to align across different blocks or even large sections of the file.
Eg, with AlignConsecutiveAssignments:
``` \#if FOO // Run 1 \#else // Run 1 int a = 1; // Run 2, wrong \#endif // Run 1
\#if FOO // Run 1 \#else // Run 1 int bar = 1; // Run 2 \#endif // Run 1 ```
is read as
``` int a = 1; // Run 2, wrong int bar = 1; // Run 2 ```
The approach taken to fix this was to add a new flag to Token that forces breaking alignment across groups of lines (MustBreakAlignBefore) in a similar manner to the existing flag that forces a line break (MustBreakBefore). This flag is set for the first Token after a preprocessor statement or diff conflict marker.
Fixes #25167,#31281
Patch By: JakeMerdichAMD
Reviewed By: MyDeveloperDay
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79388
show more ...
|
#
47ef09e4 |
| 23-Apr-2020 |
Haojian Wu <hokein.wu@gmail.com> |
Revert "clang-format: support aligned nested conditionals formatting"
This reverts 3d61b1120e8267aa39f4c9a33d618dbaec4ec6fa, 5daa25fd7a184524759b6ad065a8bd7e95aa149a
The clang-format test (FormatTe
Revert "clang-format: support aligned nested conditionals formatting"
This reverts 3d61b1120e8267aa39f4c9a33d618dbaec4ec6fa, 5daa25fd7a184524759b6ad065a8bd7e95aa149a
The clang-format test (FormatTest.ConfigurableUseOfTab) is failing in the buildbot:
http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/31811/steps/ninja%20check%201/logs/stdio
show more ...
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1, llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1, llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
5daa25fd |
| 15-Jun-2018 |
Francois Ferrand <thetypz@gmail.com> |
clang-format: support aligned nested conditionals formatting
When multiple ternary operators are chained, e.g. like an if/else-if/ else-if/.../else sequence, clang-format will keep aligning the colo
clang-format: support aligned nested conditionals formatting
When multiple ternary operators are chained, e.g. like an if/else-if/ else-if/.../else sequence, clang-format will keep aligning the colon with the question mark, which increases the indent for each conditionals:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
This patch detects the situation (e.g. conditionals used in false branch of another conditional), to avoid indenting in that case:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
When BreakBeforeTernaryOperators is false, this will format like this:
int a = condition1 ? result1 : condition2 ? result2 : conditino3 ? result3 : result4;
show more ...
|
#
e8111502 |
| 13-Apr-2020 |
mydeveloperday <mydeveloperday@gmail.com> |
[clang-format] use spaces for alignment with UT_ForContinuationAndIndentation
Summary: Use spaces instead of tabs for alignment with UT_ForContinuationAndIndentation to make the code aligned for any
[clang-format] use spaces for alignment with UT_ForContinuationAndIndentation
Summary: Use spaces instead of tabs for alignment with UT_ForContinuationAndIndentation to make the code aligned for any tab/indent width.
Fixes https://bugs.llvm.org/show_bug.cgi?id=38381
Reviewed By: MyDeveloperDay
Patch By: fickert
Tags: #clang-format
Differential Revision: https://reviews.llvm.org/D75034
show more ...
|
#
79983be5 |
| 18-Sep-2019 |
Paul Hoad <mydeveloperday@gmail.com> |
[clang-format][PR41964] Fix crash with SIGFPE when TabWidth is set to 0 and line starts with tab
Summary: clang-format 8.0 crashes with SIGFPE (floating point exception) when formatting following fi
[clang-format][PR41964] Fix crash with SIGFPE when TabWidth is set to 0 and line starts with tab
Summary: clang-format 8.0 crashes with SIGFPE (floating point exception) when formatting following file: app.cpp: void a() { //line starts with '\t' }
$ clang-format -style='{TabWidth: 0}' app.cpp
Reviewers: owenpan, klimek, russellmcc, timwoj
Reviewed By: klimek
Subscribers: cfe-commits
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D67670
llvm-svn: 372246
show more ...
|
#
ff9f4b54 |
| 29-Jul-2019 |
Nico Weber <nicolasweber@gmx.de> |
clang-format clang/lib/Format
llvm-svn: 367225
|
#
04ee232f |
| 02-Jul-2019 |
Sam McCall <sam.mccall@gmail.com> |
clang-format: Add new style option AlignConsecutiveMacros
This option behaves similarly to AlignConsecutiveDeclarations and AlignConsecutiveAssignments, aligning the assignment of C/C++ preprocessor
clang-format: Add new style option AlignConsecutiveMacros
This option behaves similarly to AlignConsecutiveDeclarations and AlignConsecutiveAssignments, aligning the assignment of C/C++ preprocessor macros on consecutive lines.
I've worked in many projects (embedded, mostly) where header files full of large, well-aligned "#define" blocks are a common pattern. We normally avoid using clang-format on these files, since it ruins any existing alignment in said blocks. This style option will align "simple" PP macros (no parameters) and PP macros with parameter lists on consecutive lines.
Related Bugzilla entry (thanks mcuddie): https://llvm.org/bugs/show_bug.cgi?id=20637
Patch by Nick Renieris (VelocityRa)!
Differential Revision: https://reviews.llvm.org/D28462
llvm-svn: 364938
show more ...
|
#
a0df4d37 |
| 01-May-2019 |
Owen Pan <owenpiano@gmail.com> |
[clang-format] Fix a bug in AlignConsecutiveDeclarations.
Fixes PR37175
Differential Revision: https://reviews.llvm.org/D61222
llvm-svn: 359711
|
#
5bcf99b4 |
| 01-Mar-2019 |
Paul Hoad <mydeveloperday@gmail.com> |
[clang-format] [NFC] clang-format the Format library
Previously revisions commited non-clang-formatted changes to the Format library, this means submitting any revision e.g. {D55170} can cause addit
[clang-format] [NFC] clang-format the Format library
Previously revisions commited non-clang-formatted changes to the Format library, this means submitting any revision e.g. {D55170} can cause additional whitespace changes to potentially be included in a revision.
Commit a non functional change using latest build Windows clang-format r351376 with no other changes, to remove these differences
All FormatTests pass [==========] 652 tests from 20 test cases ran.
llvm-svn: 355182
show more ...
|
#
027f5f56 |
| 15-Feb-2019 |
Alexander Kornienko <alexfh@google.com> |
clang-format with UseTab: Always sometimes doesn't insert the right amount of tabs.
Trailing comments are not always aligned properly when UseTab is set to Always.
Consider:
int a; // x int
clang-format with UseTab: Always sometimes doesn't insert the right amount of tabs.
Trailing comments are not always aligned properly when UseTab is set to Always.
Consider:
int a; // x int bbbbbbbb; // x With .clang-format:
--- Language: Cpp BasedOnStyle: LLVM UseTab: Always ... The trailing comments of this code block should be aligned, but aren't
To align the first trailing comment it needs to insert 8 spaces. This should be one tab plus six spaces. It skips the logic of the first partial tab in FirstTabWidth (=2) + Style.TabWidth (=8) <= Spaces (=8) and only inserts one tab. Proposed fix and test is attached.
Patch by Hylke Kleve.
Differential revision: https://reviews.llvm.org/D57655
llvm-svn: 354183
show more ...
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
#
55fab260 |
| 26-Sep-2018 |
Fangrui Song <maskray@google.com> |
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: rsmith, #clang, dblaikie
Reviewed By: rsmith, #clang
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: rsmith, #clang, dblaikie
Reviewed By: rsmith, #clang
Subscribers: mgrang, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D52576
llvm-svn: 343147
show more ...
|
#
f16a6fa8 |
| 01-Aug-2018 |
Ilya Biryukov <ibiryukov@google.com> |
[Format] Fix for bug 35641
Summary: Bug was caused due to comments at the start of scope. For a code like: ``` int func() { // int b; int c; } ``` the comment at the first line gets IndentAndNes
[Format] Fix for bug 35641
Summary: Bug was caused due to comments at the start of scope. For a code like: ``` int func() { // int b; int c; } ``` the comment at the first line gets IndentAndNestingLevel (1,1) whereas the following declarations get only (0,1) which prevents them from insertion of a new scope. So, I changed the AlignTokenSequence to look at previous *non-comment* token when deciding whether to introduce a new scope into stack or not.
Patch by Kadir Cetinkaya!
Reviewers: rsmith, djasper
Reviewed By: djasper
Subscribers: lebedev.ri, cfe-commits, klimek
Tags: #clang
Differential Revision: https://reviews.llvm.org/D43303
llvm-svn: 338578
show more ...
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
#
9fc8faf9 |
| 09-May-2018 |
Adrian Prantl <aprantl@apple.com> |
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. Thi
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all.
Patch produced by
for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
Differential Revision: https://reviews.llvm.org/D46320
llvm-svn: 331834
show more ...
|
Revision tags: llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2 |
|
#
c205d8cc |
| 27-Mar-2018 |
Mandeep Singh Grang <mgrang@codeaurora.org> |
[clang] Change std::sort to llvm::sort in response to r327219
r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism c
[clang] Change std::sort to llvm::sort in response to r327219
r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key.
To make use of that infrastructure we need to invoke llvm::sort instead of std::sort.
llvm-svn: 328636
show more ...
|
Revision tags: llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1, llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1 |
|
#
9ad83fe7 |
| 30-Oct-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Format raw string literals
Summary: This patch adds raw string literal formatting.
Reviewers: djasper, klimek
Reviewed By: klimek
Subscribers: klimek, mgorny
Differential Revision
[clang-format] Format raw string literals
Summary: This patch adds raw string literal formatting.
Reviewers: djasper, klimek
Reviewed By: klimek
Subscribers: klimek, mgorny
Differential Revision: https://reviews.llvm.org/D35943
llvm-svn: 316903
show more ...
|
#
89628f64 |
| 20-Sep-2017 |
Manuel Klimek <klimek@google.com> |
clang-format clang-format.
llvm-svn: 313744
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3 |
|
#
4917af67 |
| 25-Aug-2017 |
Daniel Jasper <djasper@google.com> |
[Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for alignments
Indent should be compared before nesting level to determine if a token is on the same scope as the one we align wi
[Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for alignments
Indent should be compared before nesting level to determine if a token is on the same scope as the one we align with. Because it was inverted, clang-format sometimes tried to align tokens with tokens from outer scopes, causing the assert(Shift >= 0) to fire.
This fixes bug #33507. Patch by Beren Minor, thank you!
llvm-svn: 311792
show more ...
|
#
4a9c2607 |
| 23-Aug-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Align trailing comments if ColumnLimit is 0
Summary: ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with
https://llvm.org/svn/llv
[clang-format] Align trailing comments if ColumnLimit is 0
Summary: ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with
https://llvm.org/svn/llvm-project/cfe/trunk@304687
introduced via
https://reviews.llvm.org/D33830
and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.
Should go into clang-5.0 IMHO.
Contributed by @pboettch!
Reviewers: djasper, krasimir
Reviewed By: djasper, krasimir
Subscribers: hans, klimek
Differential Revision: https://reviews.llvm.org/D36967
llvm-svn: 311532
show more ...
|
Revision tags: llvmorg-5.0.0-rc2 |
|
#
d6a7e983 |
| 10-Aug-2017 |
Jacob Bandes-Storch <jacob@bandes-stor.ch> |
clang-format: Fix bug with ENAS_DontAlign and empty lines
This fixes a bug in `ENAS_DontAlign` (introduced in D32733) where blank lines had an EscapedNewlineColumn of 0, causing a subtraction to ove
clang-format: Fix bug with ENAS_DontAlign and empty lines
This fixes a bug in `ENAS_DontAlign` (introduced in D32733) where blank lines had an EscapedNewlineColumn of 0, causing a subtraction to overflow when converted back to unsigned and leading to runaway memory allocation.
Differential Revision: https://reviews.llvm.org/D36019
llvm-svn: 310539
show more ...
|
Revision tags: llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3 |
|
#
e1518822 |
| 07-Jun-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Fix alignment of preprocessor trailing comments
Summary: This patch is a follow-up of https://reviews.llvm.org/rL304687, which fixed an overflow in the comment alignment code in clang
[clang-format] Fix alignment of preprocessor trailing comments
Summary: This patch is a follow-up of https://reviews.llvm.org/rL304687, which fixed an overflow in the comment alignment code in clang-format. The token length of trailing comments of preprocessor directives is calculated incorrectly by including the text between consecutive directives. That causes them to not being aligned.
For example, in this code with column limit 20 ``` #if A #else // A int iiii; #endif // B ``` the length of the token `// A` was wrongly calculated as 14 = 5 (the size of `// A\n`) plus 9 (the size of `int iiii;`) and so `// A` wouldn't be aligned with `// B` and this was produced: ``` #if A #else // A int iiii; #endif // B ```
This patch fixes this case.
Reviewers: alexfh
Reviewed By: alexfh
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D33982
llvm-svn: 304912
show more ...
|
#
59ed77b8 |
| 04-Jun-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Don't align too long broken trailing comments
Summary: This patch fixes a bug where clang-format will align newly broken trailing comments even if this will make them exceed the line
[clang-format] Don't align too long broken trailing comments
Summary: This patch fixes a bug where clang-format will align newly broken trailing comments even if this will make them exceed the line limit. The bug was caused by a combination of unsigned arithmetic overflow and an imprecise computation of the length of broken comment lines.
Reviewers: djasper, alexfh
Reviewed By: alexfh
Subscribers: klimek
Differential Revision: https://reviews.llvm.org/D33830
llvm-svn: 304687
show more ...
|
Revision tags: llvmorg-4.0.1-rc2 |
|
#
7fdbb3fe |
| 08-May-2017 |
Daniel Jasper <djasper@google.com> |
[clang-format] Convert AlignEscapedNewlinesLeft to an enum, adding DontAlign
This converts the clang-format option AlignEscapedNewlinesLeft from a boolean to an enum, named AlignEscapedNewlines, wit
[clang-format] Convert AlignEscapedNewlinesLeft to an enum, adding DontAlign
This converts the clang-format option AlignEscapedNewlinesLeft from a boolean to an enum, named AlignEscapedNewlines, with options Left (prev. true), Right (prev. false), and a new option DontAlign.
When set to DontAlign, the backslashes are placed just after the last token in each line: #define EXAMPLE \ do { \ int x = aaaaa; \ int b; \ int dddddddddd; \ } while (0)
Patch by jtbandes. Thank you!
llvm-svn: 302428
show more ...
|