Allow building with clang-cl on Windows.
This commit is contained in:
parent
336425b588
commit
2ac7b55797
@ -31,38 +31,38 @@
|
||||
* implicit promotion. int and larger types, as well as pointers, can be
|
||||
* converted to a non-qualified type just by applying a binary operator.
|
||||
*/
|
||||
#define typeof_strip_qual(expr) \
|
||||
typeof( \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(typeof(expr), bool) || \
|
||||
__builtin_types_compatible_p(typeof(expr), const bool) || \
|
||||
__builtin_types_compatible_p(typeof(expr), volatile bool) || \
|
||||
__builtin_types_compatible_p(typeof(expr), const volatile bool), \
|
||||
(bool)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(typeof(expr), 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), const volatile signed char), \
|
||||
(signed char)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(typeof(expr), 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), const volatile unsigned char), \
|
||||
(unsigned char)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(typeof(expr), 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), const volatile signed short), \
|
||||
(signed short)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(typeof(expr), 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), const volatile unsigned short), \
|
||||
(unsigned short)1, \
|
||||
#define typeof_strip_qual(expr) \
|
||||
__typeof__( \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof__(expr), bool) || \
|
||||
__builtin_types_compatible_p(__typeof__(expr), const bool) || \
|
||||
__builtin_types_compatible_p(__typeof__(expr), volatile bool) || \
|
||||
__builtin_types_compatible_p(__typeof__(expr), const volatile bool), \
|
||||
(bool)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof__(expr), 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), const volatile signed char), \
|
||||
(signed char)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof__(expr), 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), const volatile unsigned char), \
|
||||
(unsigned char)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof__(expr), 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), const volatile signed short), \
|
||||
(signed short)1, \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof__(expr), 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), const volatile unsigned short), \
|
||||
(unsigned short)1, \
|
||||
(expr)+0))))))
|
||||
|
||||
#ifdef __ATOMIC_RELAXED
|
||||
|
@ -146,7 +146,9 @@ static inline Int128 bswap128(Int128 a)
|
||||
#else /* !CONFIG_INT128 */
|
||||
|
||||
typedef struct Int128 Int128;
|
||||
#if !(defined(_MSC_VER) && defined(__clang__))
|
||||
typedef Int128 __int128_t;
|
||||
#endif
|
||||
|
||||
struct Int128 {
|
||||
uint64_t lo;
|
||||
|
@ -1061,7 +1061,11 @@ void helper_store_msr(CPUPPCState *env, target_ulong val)
|
||||
}
|
||||
|
||||
#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)
|
||||
#endif
|
||||
{
|
||||
CPUState *cs;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user