Allow building with clang-cl on Windows.

This commit is contained in:
relapids 2022-08-15 05:26:48 -07:00
parent 336425b588
commit 2ac7b55797
3 changed files with 38 additions and 32 deletions

View File

@ -32,36 +32,36 @@
* converted to a non-qualified type just by applying a binary operator. * converted to a non-qualified type just by applying a binary operator.
*/ */
#define typeof_strip_qual(expr) \ #define typeof_strip_qual(expr) \
typeof( \ __typeof__( \
__builtin_choose_expr( \ __builtin_choose_expr( \
__builtin_types_compatible_p(typeof(expr), bool) || \ __builtin_types_compatible_p(__typeof__(expr), bool) || \
__builtin_types_compatible_p(typeof(expr), const bool) || \ __builtin_types_compatible_p(__typeof__(expr), const bool) || \
__builtin_types_compatible_p(typeof(expr), volatile bool) || \ __builtin_types_compatible_p(__typeof__(expr), volatile bool) || \
__builtin_types_compatible_p(typeof(expr), const volatile bool), \ __builtin_types_compatible_p(__typeof__(expr), const volatile bool), \
(bool)1, \ (bool)1, \
__builtin_choose_expr( \ __builtin_choose_expr( \
__builtin_types_compatible_p(typeof(expr), signed char) || \ __builtin_types_compatible_p(__typeof__(expr), signed char) || \
__builtin_types_compatible_p(typeof(expr), const signed char) || \ __builtin_types_compatible_p(__typeof__(expr), const signed char) || \
__builtin_types_compatible_p(typeof(expr), volatile signed char) || \ __builtin_types_compatible_p(__typeof__(expr), volatile signed char) || \
__builtin_types_compatible_p(typeof(expr), const volatile signed char), \ __builtin_types_compatible_p(__typeof__(expr), const volatile signed char), \
(signed char)1, \ (signed char)1, \
__builtin_choose_expr( \ __builtin_choose_expr( \
__builtin_types_compatible_p(typeof(expr), unsigned char) || \ __builtin_types_compatible_p(__typeof__(expr), unsigned char) || \
__builtin_types_compatible_p(typeof(expr), const unsigned char) || \ __builtin_types_compatible_p(__typeof__(expr), const unsigned char) || \
__builtin_types_compatible_p(typeof(expr), volatile unsigned char) || \ __builtin_types_compatible_p(__typeof__(expr), volatile unsigned char) || \
__builtin_types_compatible_p(typeof(expr), const volatile unsigned char), \ __builtin_types_compatible_p(__typeof__(expr), const volatile unsigned char), \
(unsigned char)1, \ (unsigned char)1, \
__builtin_choose_expr( \ __builtin_choose_expr( \
__builtin_types_compatible_p(typeof(expr), signed short) || \ __builtin_types_compatible_p(__typeof__(expr), signed short) || \
__builtin_types_compatible_p(typeof(expr), const signed short) || \ __builtin_types_compatible_p(__typeof__(expr), const signed short) || \
__builtin_types_compatible_p(typeof(expr), volatile signed short) || \ __builtin_types_compatible_p(__typeof__(expr), volatile signed short) || \
__builtin_types_compatible_p(typeof(expr), const volatile signed short), \ __builtin_types_compatible_p(__typeof__(expr), const volatile signed short), \
(signed short)1, \ (signed short)1, \
__builtin_choose_expr( \ __builtin_choose_expr( \
__builtin_types_compatible_p(typeof(expr), unsigned short) || \ __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \
__builtin_types_compatible_p(typeof(expr), const unsigned short) || \ __builtin_types_compatible_p(__typeof__(expr), const unsigned short) || \
__builtin_types_compatible_p(typeof(expr), volatile unsigned short) || \ __builtin_types_compatible_p(__typeof__(expr), volatile unsigned short) || \
__builtin_types_compatible_p(typeof(expr), const volatile unsigned short), \ __builtin_types_compatible_p(__typeof__(expr), const volatile unsigned short), \
(unsigned short)1, \ (unsigned short)1, \
(expr)+0)))))) (expr)+0))))))

View File

@ -146,7 +146,9 @@ static inline Int128 bswap128(Int128 a)
#else /* !CONFIG_INT128 */ #else /* !CONFIG_INT128 */
typedef struct Int128 Int128; typedef struct Int128 Int128;
#if !(defined(_MSC_VER) && defined(__clang__))
typedef Int128 __int128_t; typedef Int128 __int128_t;
#endif
struct Int128 { struct Int128 {
uint64_t lo; uint64_t lo;

View File

@ -1061,7 +1061,11 @@ void helper_store_msr(CPUPPCState *env, target_ulong val)
} }
#if defined(TARGET_PPC64) #if defined(TARGET_PPC64)
#if defined(_MSC_VER) && defined(__clang__)
void helper_pminsn(CPUPPCState *env, uint32_t insn)
#else
void helper_pminsn(CPUPPCState *env, powerpc_pm_insn_t insn) void helper_pminsn(CPUPPCState *env, powerpc_pm_insn_t insn)
#endif
{ {
CPUState *cs; CPUState *cs;