Author: Owen Pan Date: 2024-06-05T17:57:36-07:00 New Revision: 798f2019a2fb608450c5ad5dc261d6496cf1eb15
URL: https://github.com/llvm/llvm-project/commit/798f2019a2fb608450c5ad5dc261d6496cf1eb15 DIFF: https://github.com/llvm/llvm-project/commit/798f2019a2fb608450c5ad5dc261d6496cf1eb15.diff LOG: [clang-format] Don't format comments in SkipMacroDefinitionBody (#94425) Fixes #94326. Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ 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 " _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits