[clang] [clang-format] Don't format comments in SkipMacroDefinitionBody (PR #94425)
Owen Pan via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 4 21:11:56 PDT 2024
https://github.com/owenca created https://github.com/llvm/llvm-project/pull/94425
Fixes #94326.
>From 7e4c3e6b5b77085f795d6ccdfbf7279e32741b16 Mon Sep 17 00:00:00 2001
From: Owen Pan <owenpiano at gmail.com>
Date: Tue, 4 Jun 2024 21:10:14 -0700
Subject: [PATCH] [clang-format] Don't format comments in
SkipMacroDefinitionBody
Fixes #94326.
---
clang/lib/Format/UnwrappedLineParser.cpp | 6 +++---
clang/unittests/Format/FormatTest.cpp | 11 ++++++++++-
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
index d6061c2666c2a..eb96b54ec4c96 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -1181,10 +1181,10 @@ void UnwrappedLineParser::parsePPDefine() {
Line->InMacroBody = true;
if (Style.SkipMacroDefinitionBody) {
- do {
+ while (!eof()) {
FormatTok->Finalized = true;
- nextToken();
- } while (!eof());
+ FormatTok = Tokens->getNextToken();
+ }
addUnwrappedLine();
return;
}
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 004ecb63f6620..4e427268fb82a 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -24879,7 +24879,7 @@ TEST_F(FormatTest, SkipMacroDefinitionBody) {
Style);
// With comments.
- verifyFormat("/* */ #define A a // a a", "/* */ # define A a // a a",
+ verifyFormat("/* */ #define A a // a a", "/* */ # define A a // a a",
Style);
verifyNoChange("/* */ #define A a // a a", Style);
@@ -24891,6 +24891,15 @@ TEST_F(FormatTest, SkipMacroDefinitionBody) {
"int aaa; // a",
Style);
+ verifyNoChange(
+ "#define MACRO_WITH_COMMENTS() \\\n"
+ " public: \\\n"
+ " /* Documentation parsed by Doxygen for the following method. */ \\\n"
+ " static MyType getClassTypeId(); \\\n"
+ " /** Normal comment for the following method. */ \\\n"
+ " virtual MyType getTypeId() const;",
+ Style);
+
// multiline macro definitions
verifyNoChange("#define A a\\\n"
" A a \\\n "
More information about the cfe-commits
mailing list