spirv: Add vtn_fail and vtn_assert helpers
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 16 Aug 2017 23:15:23 +0000 (16:15 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 4 Dec 2017 17:21:09 +0000 (09:21 -0800)
commit94ca8e04adf681b0cad6ade1c9f28856efe35ae6
treec23833164f50cab767bfb953f1fb0ac121276847
parent0c49aa0624c289164b5501a8724b6d9fdbae7f49
spirv: Add vtn_fail and vtn_assert helpers

These helpers are much nicer than just using assert because they don't
kill your process.  Instead, it longjmps back to spirv_to_nir(), cleans
up all the temporary memory, and nicely returns NULL.  While crashing is
completely OK in the Vulkan world, it's not considered to be quite so
nice in GL.  This should help us to make SPIR-V parsing much more
robust.  The one downside here is that vtn_assert is not compiled out in
release builds like assert() is so it isn't free.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
src/compiler/spirv/spirv_to_nir.c
src/compiler/spirv/vtn_private.h