[llvm-branch-commits] [clang] 0a32d93 - [clang-format] Avoid considering include directive as a template closer.
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jan 29 21:45:50 PST 2021
Author: Marek Kurdej
Date: 2021-01-29T21:43:35-08:00
New Revision: 0a32d93bd95b7ad0a4c7f91955c6c815150df84c
URL: https://github.com/llvm/llvm-project/commit/0a32d93bd95b7ad0a4c7f91955c6c815150df84c
DIFF: https://github.com/llvm/llvm-project/commit/0a32d93bd95b7ad0a4c7f91955c6c815150df84c.diff
LOG: [clang-format] Avoid considering include directive as a template closer.
This fixes a bug [[ http://llvm.org/PR48891 | PR48891 ]] introduced in D93839 where:
```
#include <stdint.h>
namespace rep {}
```
got formatted as
```
#include <stdint.h>
namespace rep {
}
```
Reviewed By: MyDeveloperDay, leonardchan
Differential Revision: https://reviews.llvm.org/D95479
(cherry picked from commit e3713f156b8cb65a2b74f150afb824ce1e2a2fab)
Added:
Modified:
clang/lib/Format/UnwrappedLineFormatter.cpp
clang/unittests/Format/FormatTest.cpp
Removed:
################################################################################
diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp
index d1138bbc9c36..5dd0ccdfa6fd 100644
--- a/clang/lib/Format/UnwrappedLineFormatter.cpp
+++ b/clang/lib/Format/UnwrappedLineFormatter.cpp
@@ -371,7 +371,7 @@ class LineJoiner {
if (Previous->is(tok::comment))
Previous = Previous->getPreviousNonComment();
if (Previous) {
- if (Previous->is(tok::greater))
+ if (Previous->is(tok::greater) && !I[-1]->InPPDirective)
return 0;
if (Previous->is(tok::identifier)) {
const FormatToken *PreviousPrevious =
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 855cf0242fe9..c1f88b9ae17a 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -10248,6 +10248,21 @@ TEST_F(FormatTest, SplitEmptyClass) {
"{\n"
"};",
Style);
+
+ verifyFormat("#include \"stdint.h\"\n"
+ "namespace rep {}",
+ Style);
+ verifyFormat("#include <stdint.h>\n"
+ "namespace rep {}",
+ Style);
+ verifyFormat("#include <stdint.h>\n"
+ "namespace rep {}",
+ "#include <stdint.h>\n"
+ "namespace rep {\n"
+ "\n"
+ "\n"
+ "}",
+ Style);
}
TEST_F(FormatTest, SplitEmptyStruct) {
More information about the llvm-branch-commits
mailing list