Author: Marek Kurdej Date: 2022-02-17T22:12:39+01:00 New Revision: 331e8e4e27be5dd673898a89a7cf00e76903216a
URL: https://github.com/llvm/llvm-project/commit/331e8e4e27be5dd673898a89a7cf00e76903216a DIFF: https://github.com/llvm/llvm-project/commit/331e8e4e27be5dd673898a89a7cf00e76903216a.diff LOG: [clang-format] Do not add space after return-like keywords in macros. Fixes https://github.com/llvm/llvm-project/issues/33336. Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D120028 Added: Modified: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 206fa4541217c..9a020eb6ca7dc 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -2989,7 +2989,8 @@ bool TokenAnnotator::spaceRequiredBeforeParens(const FormatToken &Right) const { bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line, const FormatToken &Left, const FormatToken &Right) { - if (Left.is(tok::kw_return) && Right.isNot(tok::semi)) + if (Left.is(tok::kw_return) && + !Right.isOneOf(tok::semi, tok::r_paren, tok::hashhash)) return true; if (Style.isJson() && Left.is(tok::string_literal) && Right.is(tok::colon)) return false; @@ -3026,7 +3027,7 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line, return false; // co_await (x), co_yield (x), co_return (x) if (Left.isOneOf(tok::kw_co_await, tok::kw_co_yield, tok::kw_co_return) && - Right.isNot(tok::semi)) + !Right.isOneOf(tok::semi, tok::r_paren)) return true; if (Left.is(tok::l_paren) || Right.is(tok::r_paren)) diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 73503696741a7..f71f8dc5de456 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -1861,6 +1861,16 @@ TEST_F(FormatTest, UnderstandsMacros) { "#define BBB }\n", Style); // verifyFormat("#define AAA N { //\n", Style); + + verifyFormat("MACRO(return)"); + verifyFormat("MACRO(co_await)"); + verifyFormat("MACRO(co_return)"); + verifyFormat("MACRO(co_yield)"); + verifyFormat("MACRO(return, something)"); + verifyFormat("MACRO(co_return, something)"); + verifyFormat("MACRO(something##something)"); + verifyFormat("MACRO(return##something)"); + verifyFormat("MACRO(co_return##something)"); } TEST_F(FormatTest, ShortBlocksInMacrosDontMergeWithCodeAfterMacro) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits