util: Promote __builtin_types_compatible_p compat

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>
This commit is contained in:
Rob Clark
2020-12-05 11:26:44 -08:00
committed by Marge Bot
parent f63c595a73
commit 5a082911cd
3 changed files with 7 additions and 5 deletions

View File

@@ -947,7 +947,7 @@ endif
# Check for GCC style builtins
foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs',
'ffsll', 'popcount', 'popcountll', 'unreachable']
'ffsll', 'popcount', 'popcountll', 'unreachable', 'types_compatible_p']
if cc.has_function(b)
pre_args += '-DHAVE___BUILTIN_@0@'.format(b.to_upper())
endif

View File

@@ -57,6 +57,12 @@
# endif
#endif
/**
* __builtin_types_compatible_p compat
*/
#if defined(__cplusplus) || !defined(HAVE___BUILTIN_TYPES_COMPATIBLE_P)
# define __builtin_types_compatible_p(type1, type2) (1)
#endif
/**
* Static (compile-time) assertion.

View File

@@ -84,10 +84,6 @@ u_vector_finish(struct u_vector *queue)
free(queue->data);
}
#if !defined(__GNUC__) || defined(__cplusplus)
#define __builtin_types_compatible_p(t1, t2) 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; \