https://github.com/spall created https://github.com/llvm/llvm-project/pull/233621
Remove groupshared from isLambdaSpecifier. Add a test showing this is rejected. >From 6c9f0aaf3bb4a807e0eaea3791ea2e5dfe3cb89c Mon Sep 17 00:00:00 2001 From: Sarah Spall <[email protected]> Date: Mon, 19 Oct 2026 15:41:05 -0700 Subject: [PATCH] remove groupshared from lambda specifiers --- clang/lib/Parse/ParseExprCXX.cpp | 4 ++-- clang/test/ParserHLSL/group_shared.hlsl | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index 3745ea53fc6d0..993a688c0ed34 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -1223,8 +1223,8 @@ bool Parser::isLambdaSpecifier() { return Tok.isOneOf(tok::kw_mutable, tok::arrow, tok::kw___attribute, tok::kw_constexpr, tok::kw_consteval, tok::kw_static, tok::kw___private, tok::kw___global, tok::kw___local, - tok::kw___constant, tok::kw___generic, tok::kw_groupshared, - tok::kw_requires, tok::kw_noexcept) || + tok::kw___constant, tok::kw___generic, tok::kw_requires, + tok::kw_noexcept) || Tok.isRegularKeywordAttribute() || (Tok.is(tok::l_square) && NextToken().is(tok::l_square)); } diff --git a/clang/test/ParserHLSL/group_shared.hlsl b/clang/test/ParserHLSL/group_shared.hlsl index d518f7f69d7ca..3f531a813db9b 100644 --- a/clang/test/ParserHLSL/group_shared.hlsl +++ b/clang/test/ParserHLSL/group_shared.hlsl @@ -8,6 +8,11 @@ extern float groupshared f; // Ok, redeclaration? // expected-warning@#gs_lambda {{'auto' type specifier is a HLSL 202y extension}} auto l = []() groupshared {}; // #gs_lambda +// expected-warning@#gs_no_parens {{lambdas are a clang HLSL extension}} +// expected-warning@#gs_no_parens {{'auto' type specifier is a HLSL 202y extension}} +// expected-error@#gs_no_parens {{expected body of lambda expression}} +auto l_no_parens = [] groupshared {}; // #gs_no_parens + float groupshared [[]] i = 12; // expected-error@-1{{initializer of groupshared variable will be ignored}} _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
