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" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits