From b8e077daee4d6369d774efaa99879a9871c68194 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 29 Mar 2019 10:45:44 -0600 Subject: [PATCH] util: no-op __builtin_types_compatible_p() for non-GCC compilers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit __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 --- src/util/u_vector.h | 4 ++++ 1 file changed, 4 insertions(+) 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; \