From: Brian Paul Date: Fri, 29 Mar 2019 16:45:44 +0000 (-0600) Subject: util: no-op __builtin_types_compatible_p() for non-GCC compilers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8e077daee4d6369d774efaa99879a9871c68194;p=mesa.git util: no-op __builtin_types_compatible_p() for non-GCC compilers __builtin_types_compatible_p() is GCC-specific and breaks the MSVC build. This intrinsic has been in u_vector_foreach() for a long time, but that macro has only recently been used in code (nir/nir_opt_comparison_pre.c) that's built with MSVC. Fixes: 2cf59861a ("nir: Add partial redundancy elimination for compares") Reviewed-by: José Fonseca Reviewed-by: Ian Romanick --- diff --git a/src/util/u_vector.h b/src/util/u_vector.h index cd8a95dcbe3..6807748e3b1 100644 --- a/src/util/u_vector.h +++ b/src/util/u_vector.h @@ -80,6 +80,10 @@ u_vector_finish(struct u_vector *queue) free(queue->data); } +#ifndef __GNUC__ +#define __builtin_types_compatible_p(x) 1 +#endif + #define u_vector_foreach(elem, queue) \ STATIC_ASSERT(__builtin_types_compatible_p(__typeof__(queue), struct u_vector *)); \ for (uint32_t __u_vector_offset = (queue)->tail; \