[clang] [HLSL][Sema] Validate that occupied register numbers never exceed UINT32_MAX (PR #174028)

Damyan Pepper via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 30 14:50:42 PST 2025


================
@@ -13336,6 +13336,7 @@ def warn_hlsl_register_type_c_packoffset: Warning<"binding type 'c' ignored in b
 def warn_hlsl_deprecated_register_type_b: Warning<"binding type 'b' only applies to constant buffers. The 'bool constant' binding type is no longer supported">, InGroup<LegacyConstantRegisterBinding>, DefaultError;
 def warn_hlsl_deprecated_register_type_i: Warning<"binding type 'i' ignored. The 'integer constant' binding type is no longer supported">, InGroup<LegacyConstantRegisterBinding>, DefaultError;
 def err_hlsl_unsupported_register_number : Error<"register number should be an integer">;
+def err_hlsl_register_number_too_large : Error<"register number should not exceed UINT32_MAX, 4294967295">;
----------------
damyanp wrote:

I'm not sure we should mention `UINT32_MAX` in the diagnostic message? It isn't defined by default in HLSL, and if we're going to write the number out in full then we have enough info.

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


More information about the cfe-commits mailing list