[clang] [llvm] [SemaHLSL] Correct descriptor range overflow validation (PR #159475)

via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 19 20:35:07 PDT 2025


================
@@ -1377,32 +1378,28 @@ bool SemaHLSL::handleRootSignatureElements(
         if (Clause->NumDescriptors == 0)
           return true;
 
-        if (Clause->Offset !=
-            llvm::hlsl::rootsig::DescriptorTableOffsetAppend) {
-          // Manually specified the offset
+        bool IsAppending =
+            Clause->Offset == llvm::hlsl::rootsig::DescriptorTableOffsetAppend;
+        if (!IsAppending)
           Offset = Clause->Offset;
-        }
 
         uint64_t RangeBound = llvm::hlsl::rootsig::computeRangeBound(
             Offset, Clause->NumDescriptors);
 
-        if (!llvm::hlsl::rootsig::verifyBoundOffset(Offset)) {
-          // Trying to append onto unbound offset
+        if (Unbound && IsAppending)
----------------
joaosaffran wrote:

nit: Since that reference to the previous clause, maybe something like: `IsPrevUnbound`, would make it clearer, IMHO

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


More information about the llvm-commits mailing list