Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7555>
return false;
/* See also _vtn_fail() */
- if (setjmp(b->fail_jump)) {
+ if (vtn_setjmp(b->fail_jump)) {
ralloc_free(b);
return false;
}
if (dump_path)
vtn_dump_shader(b, dump_path, "fail");
- longjmp(b->fail_jump, 1);
+ vtn_longjmp(b->fail_jump, 1);
}
static struct vtn_ssa_value *
return NULL;
/* See also _vtn_fail() */
- if (setjmp(b->fail_jump)) {
+ if (vtn_setjmp(b->fail_jump)) {
ralloc_free(b);
return NULL;
}
struct vtn_builder;
struct vtn_decoration;
+/* setjmp/longjmp is broken on MinGW: https://sourceforge.net/p/mingw-w64/bugs/406/ */
+#ifdef __MINGW32__
+ #define vtn_setjmp __builtin_setjmp
+ #define vtn_longjmp __builtin_longjmp
+#else
+ #define vtn_setjmp setjmp
+ #define vtn_longjmp longjmp
+#endif
+
void vtn_log(struct vtn_builder *b, enum nir_spirv_debug_level level,
size_t spirv_offset, const char *message);