[clang] 892a996 - [clang-format] Indent tokens after hash only if it starts a line
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 20 21:53:19 PDT 2022
Author: owenca
Date: 2022-07-20T21:52:17-07:00
New Revision: 892a9968ec7753467a7663cb91ee1e5a299844cf
URL: https://github.com/llvm/llvm-project/commit/892a9968ec7753467a7663cb91ee1e5a299844cf
DIFF: https://github.com/llvm/llvm-project/commit/892a9968ec7753467a7663cb91ee1e5a299844cf.diff
LOG: [clang-format] Indent tokens after hash only if it starts a line
Fixes #56602.
Differential Revision: https://reviews.llvm.org/D130136
Added:
Modified:
clang/lib/Format/ContinuationIndenter.cpp
clang/unittests/Format/FormatTest.cpp
Removed:
################################################################################
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index 6c13e09282fc..651ec80d6196 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -656,6 +656,7 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun,
int PPColumnCorrection = 0;
if (Style.IndentPPDirectives == FormatStyle::PPDIS_AfterHash &&
Previous.is(tok::hash) && State.FirstIndent > 0 &&
+ &Previous == State.Line->First &&
(State.Line->Type == LT_PreprocessorDirective ||
State.Line->Type == LT_ImportStatement)) {
Spaces += State.FirstIndent;
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 038c29914ef6..e26cfb0ee88a 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -5385,6 +5385,10 @@ TEST_F(FormatTest, IndentPreprocessorDirectives) {
"#endif",
Style);
Style.IndentPPDirectives = FormatStyle::PPDIS_AfterHash;
+ verifyFormat("#if 1\n"
+ "# define __STR(x) #x\n"
+ "#endif",
+ Style);
verifyFormat("#ifdef _WIN32\n"
"# define A 0\n"
"# ifdef VAR2\n"
More information about the cfe-commits
mailing list