[clang] [llvm] [Sema][Parse][HLSL] Implement front-end rootsignature validations (PR #156754)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 9 09:09:56 PDT 2025


================
@@ -37,8 +37,18 @@ bool RootSignatureParser::parse() {
   // Iterate as many RootSignatureElements as possible, until we hit the
   // end of the stream
   bool HadError = false;
+  bool HasRootFlags = false;
   while (!peekExpectedToken(TokenKind::end_of_stream)) {
     if (tryConsumeExpectedToken(TokenKind::kw_RootFlags)) {
+      if (HasRootFlags) {
+        reportDiag(diag::err_hlsl_rootsig_repeat_param)
+            << TokenKind::kw_RootFlags;
+        HadError = true;
+        skipUntilExpectedToken(RootElementKeywords);
+        continue;
+      }
+      HasRootFlags = true;
----------------
joaosaffran wrote:

nit: This doesn't seem related to this change, is it checking if we are defining multiple `RootFlags` in a root signature?

https://github.com/llvm/llvm-project/pull/156754


More information about the llvm-commits mailing list