spirv: Rework error checking for decorations
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 12 Dec 2017 16:47:56 +0000 (08:47 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 8 Jan 2018 22:57:44 +0000 (14:57 -0800)
commit71ea4dded503cb68d40a144451bafaa80248c32b
tree98913c070a5cc4c9c488ab45c5bfa4f134f00686
parentd6a40993031b2ba088d92ce6ab832c50364d0f00
spirv: Rework error checking for decorations

This reworks the error checking on our generic handling of decorations.
The objective is to validate all of the SPIR-V assumptions we make
up-front and convert redundant checks to compiled-out asserts.  The most
important part of this is to ensure that member decorations only occur
on OpTypeStruct and that the member is never out-of-bounds.  This way
later code can assume that the member is sane and not have to worry
about OOB array access due to a misplaced OpMemberDecorate.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/compiler/spirv/spirv_to_nir.c