<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Looks good</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Reviewed-by: Jose Fonseca <jfonseca@vmware.com></div>
<div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Brian Paul <brianp@vmware.com><br>
<b>Sent:</b> Friday, March 29, 2019 16:57<br>
<b>To:</b> mesa-dev@lists.freedesktop.org<br>
<b>Cc:</b> Ian Romanick; Jose Fonseca; Neha Bhende<br>
<b>Subject:</b> [PATCH] util: no-op __builtin_types_compatible_p() for non-GCC compilers</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">__builtin_types_compatible_p() is GCC-specific and breaks the<br>
MSVC build.<br>
<br>
This intrinsic has been in u_vector_foreach() for a long time, but<br>
that macro has only recently been used in code<br>
(nir/nir_opt_comparison_pre.c) that's built with MSVC.<br>
<br>
Fixes: 2cf59861a ("nir: Add partial redundancy elimination for compares")<br>
---<br>
 src/util/u_vector.h | 4 ++++<br>
 1 file changed, 4 insertions(+)<br>
<br>
diff --git a/src/util/u_vector.h b/src/util/u_vector.h<br>
index cd8a95d..6807748 100644<br>
--- a/src/util/u_vector.h<br>
+++ b/src/util/u_vector.h<br>
@@ -80,6 +80,10 @@ u_vector_finish(struct u_vector *queue)<br>
    free(queue->data);<br>
 }<br>
 <br>
+#ifndef __GNUC__<br>
+#define __builtin_types_compatible_p(x) 1<br>
+#endif<br>
+<br>
 #define u_vector_foreach(elem, queue)                                  \<br>
    STATIC_ASSERT(__builtin_types_compatible_p(__typeof__(queue), struct u_vector *)); \<br>
    for (uint32_t __u_vector_offset = (queue)->tail;                                \<br>
-- <br>
1.8.5.6<br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>