llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Sarah Spall (spall)

<details>
<summary>Changes</summary>

Remove groupshared from isLambdaSpecifier. Add a test showing this is rejected.

---
Full diff: https://github.com/llvm/llvm-project/pull/233621.diff


2 Files Affected:

- (modified) clang/lib/Parse/ParseExprCXX.cpp (+2-2) 
- (modified) clang/test/ParserHLSL/group_shared.hlsl (+5) 


``````````diff
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}}
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/233621
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to