This PR changes the validation logic for Root Descriptor and Descriptor Range flags to properly check if the `uint32_t` values are within range before casting into the enums.
19 lines
579 B
LLVM
19 lines
579 B
LLVM
; RUN: not opt -passes='print<dxil-root-signature>' %s -S -o - 2>&1 | FileCheck %s
|
|
|
|
target triple = "dxil-unknown-shadermodel6.0-compute"
|
|
|
|
|
|
; CHECK: error: Invalid value for RootDescriptorFlag: 666
|
|
; CHECK-NOT: Root Signature Definitions
|
|
define void @main() #0 {
|
|
entry:
|
|
ret void
|
|
}
|
|
attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
|
|
|
|
|
|
!dx.rootsignatures = !{!2} ; list of function/root signature pairs
|
|
!2 = !{ ptr @main, !3, i32 2 } ; function, root signature
|
|
!3 = !{ !5 } ; list of root signature elements
|
|
!5 = !{ !"RootCBV", i32 0, i32 1, i32 2, i32 666 }
|