https://github.com/akasakariko updated https://github.com/llvm/llvm-project/pull/233414
From 88782ee1bffe7c7f7a32425c63ad03076b07d19d Mon Sep 17 00:00:00 2001 From: akasakariko <[email protected]> Date: Mon, 19 Oct 2026 10:28:39 +0900 Subject: [PATCH 1/2] [clang-format] Prevent line comment continuation across formatting-disabled boundary Fixes #222510 Assisted-by: pi coding agent --- clang/lib/Format/FormatToken.h | 3 +++ clang/unittests/Format/FormatTest.cpp | 31 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h index 691ecdd24f448f..b3f5aeffac8f5d 100644 --- a/clang/lib/Format/FormatToken.h +++ b/clang/lib/Format/FormatToken.h @@ -2128,6 +2128,9 @@ inline bool continuesLineComment(const FormatToken &FormatTok, const FormatToken *MinColumnToken) { if (!Previous || !MinColumnToken) return false; + // Do not continue a comment section across a formatting-disabled boundary. + if (FormatTok.Finalized != Previous->Finalized) + return false; unsigned MinContinueColumn = MinColumnToken->OriginalColumn + (isLineComment(*MinColumnToken) ? 0 : 1); return isLineComment(FormatTok) && FormatTok.NewlinesBefore == 1 && diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index d346036448140c..ba95e6f1aa47a0 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -22638,6 +22638,37 @@ TEST_F(FormatTest, OneLineFormatOffRegex) { " tm t; // FormatOff\n" " int i;", Style); + + Style = getLLVMStyle(); + Style.UseTab = FormatStyle::UT_Always; + Style.TabWidth = 4; + Style.IndentWidth = 4; + Style.ReflowComments = FormatStyle::RCS_Never; + Style.OneLineFormatOffRegex = "// #if"; + verifyFormat("void f() {\n" + "#if !X\n" + "#else\n" + "\t{\n" + "#if Y\n" + "#else // #if Y\n" + "\t\t// comment\n" + "#endif\n" + "\t}\n" + "#endif\n" + "}", + "void f()\n" + "{\n" + "#if !X\n" + "#else\n" + " {\n" + "#if Y\n" + "#else // #if Y\n" + " // comment\n" + "#endif\n" + " }\n" + "#endif\n" + "}", + Style); } TEST_F(FormatTest, DoNotCrashOnInvalidInput) { From 3d070f0ac6b434476052926601edf8e52144cac1 Mon Sep 17 00:00:00 2001 From: KayanoLiam <[email protected]> Date: Sat, 24 Oct 2026 15:43:16 +0800 Subject: [PATCH 2/2] [clang-format] Simplify formatting stability regression test Use the two-argument verifyFormat helper to check the expected code directly Assisted-by: pi coding agent --- clang/unittests/Format/FormatTest.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index ba95e6f1aa47a0..ad792cd4c6ef35 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -22656,18 +22656,6 @@ TEST_F(FormatTest, OneLineFormatOffRegex) { "\t}\n" "#endif\n" "}", - "void f()\n" - "{\n" - "#if !X\n" - "#else\n" - " {\n" - "#if Y\n" - "#else // #if Y\n" - " // comment\n" - "#endif\n" - " }\n" - "#endif\n" - "}", Style); } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
