https://github.com/HazardyKnusperkeks created https://github.com/llvm/llvm-project/pull/189200
It did merge the wrong brace. Fixes #189155 From 012161062e2b789d59b954d9303750232038b2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= <[email protected]> Date: Sun, 29 Mar 2026 00:24:00 +0100 Subject: [PATCH] [clang-format] Don't merge short records with directly created objects It did merge the wrong brace. Fixes #189155 --- clang/lib/Format/UnwrappedLineFormatter.cpp | 4 +++- clang/unittests/Format/FormatTest.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp index 9c28f64dc6a95..492e0901385b4 100644 --- a/clang/lib/Format/UnwrappedLineFormatter.cpp +++ b/clang/lib/Format/UnwrappedLineFormatter.cpp @@ -988,8 +988,10 @@ class LineJoiner { if (I[1]->Last->is(TT_LineComment)) return 0; do { - if (Tok->is(tok::l_brace) && Tok->isNot(BK_BracedInit)) + if (Tok->isOneOf(tok::l_brace, tok::r_brace) && + Tok->isNot(BK_BracedInit)) { return 0; + } Tok = Tok->Next; } while (Tok); diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 3d55a814e6027..676aa5ad42d2e 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -15563,6 +15563,12 @@ TEST_F(FormatTest, AllowShortRecordOnASingleLine) { verifyFormat("class foo {};\n" "class bar { int i; };", Style); + verifyFormat("namespace foo {\n" + "struct S {\n" + "} s;\n" + "} // namespace foo", + Style); + Style.BreakBeforeBraces = FormatStyle::BS_Custom; Style.BraceWrapping.AfterClass = true; verifyFormat("class foo\n" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
