https://github.com/owenca created https://github.com/llvm/llvm-project/pull/94119
Fixes #92657. >From 0ef24a51b4f831c49efe956662764f0b2c2cca61 Mon Sep 17 00:00:00 2001 From: Owen Pan <owenpi...@gmail.com> Date: Sat, 1 Jun 2024 12:53:08 -0700 Subject: [PATCH] [clang-format] Handle attributes before lambda return arrow Fixes #92657. --- clang/lib/Format/UnwrappedLineParser.cpp | 2 +- clang/unittests/Format/FormatTest.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 5c0ff0f6132b2..053fd3d4df559 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -2236,7 +2236,7 @@ bool UnwrappedLineParser::tryToParseLambda() { bool InTemplateParameterList = false; while (FormatTok->isNot(tok::l_brace)) { - if (FormatTok->isTypeName(LangOpts)) { + if (FormatTok->isTypeName(LangOpts) || FormatTok->isAttribute()) { nextToken(); continue; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 59f1ff6a4b296..6057d5b724bf9 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -22664,6 +22664,7 @@ TEST_F(FormatTest, FormatsLambdas) { verifyFormat("SomeFunction({[]() -> int *[] { return {}; }});"); verifyFormat("SomeFunction({[]() -> int (*)[] { return {}; }});"); verifyFormat("SomeFunction({[]() -> ns::type<int (*)[]> { return {}; }});"); + verifyFormat("foo([&](u32 bar) __attribute__((always_inline)) -> void {});"); verifyFormat("return int{[x = x]() { return x; }()};"); // Lambdas with explicit template argument lists. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits