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
|
* implicit promotion. int and larger types, as well as pointers, can be
|
||||||
* 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))))))
|
||||||
|
|
||||||
#ifdef __ATOMIC_RELAXED
|
#ifdef __ATOMIC_RELAXED
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user