Now that vtn_type has piles of unions, we should assert sanity before setting fields that may stomp others. --- src/compiler/spirv/spirv_to_nir.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 763dbf4..89ebc5f 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -599,12 +599,16 @@ type_decoration_cb(struct vtn_builder *b, switch (dec->decoration) { case SpvDecorationArrayStride: + assert(type->base_type == vtn_base_type_matrix || + type->base_type == vtn_base_type_array); type->stride = dec->literals[0]; break; case SpvDecorationBlock: + assert(type->base_type == vtn_base_type_struct); type->block = true; break; case SpvDecorationBufferBlock: + assert(type->base_type == vtn_base_type_struct); type->buffer_block = true; break; case SpvDecorationGLSLShared: -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev