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