On Fri, Jun 15, 2018 at 11:41:28 +0100, Peter Maydell wrote: > Hi; I get compile failures with clang I'm afraid > (seen on x86-64 Linux, OSX and FreeBSD): > > /home/petmay01/linaro/qemu-for-merges/accel/tcg/translate-all.c:1800:44: > error: incompatible integer to pointer conversion passing 'uintptr_t' > (aka 'unsigned long') to parameter of type 'void *' > [-Werror,-Wint-conversion] > atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned);
Fixed with: --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -1797,7 +1797,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, uintptr_t orig_aligned = (uintptr_t)gen_code_buf; orig_aligned -= ROUND_UP(sizeof(*tb), qemu_icache_linesize); - atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); + atomic_set(&tcg_ctx->code_gen_ptr, (void *)orig_aligned); return existing_tb; } tcg_tb_insert(tb); This applies to patch 14/18 ("translate-all: discard TB when tb_link_page returns an existing matching TB") of the pull request. The rest compiles OK for me on clang 7.0.0. Richard: can you fold this fixup into patch 14? Thanks, Emilio