SPV: Fix #1783: Don't do bounds checking for spec-const-expression size
It's okay for symbolic spec-consts, but without constant folding, not okay when the array size is an expression.
This commit is contained in:
parent
4b4b41a634
commit
96524f9168
5 changed files with 29 additions and 2 deletions
6
Test/baseResults/spv.specConstArrayCheck.vert.out
Executable file
6
Test/baseResults/spv.specConstArrayCheck.vert.out
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
spv.specConstArrayCheck.vert
|
||||
ERROR: 0:13: '[' : array index out of range '6'
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
14
Test/spv.specConstArrayCheck.vert
Executable file
14
Test/spv.specConstArrayCheck.vert
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#version 450
|
||||
|
||||
layout(constant_id = 0) const uint a = 1;
|
||||
layout(constant_id = 1) const uint b = 2;
|
||||
layout(location = 0) out uint o;
|
||||
|
||||
void main() {
|
||||
uint arr1[a+a];
|
||||
uint arr2[b];
|
||||
o = arr1[1];
|
||||
o = arr2[1];
|
||||
o = arr1[6];
|
||||
o = arr2[6];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue