[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/5] target-arm: Fix warn about implicit convers
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 5/5] target-arm: Fix warn about implicit conversion |
Date: |
Thu, 11 Aug 2016 11:50:43 +0100 |
On 9 August 2016 at 20:02, Pranith Kumar <address@hidden> wrote:
> Clang warns about an implicit conversion as follows:
>
> /mnt/devops/code/qemu/target-arm/neon_helper.c:1075:1: warning: implicit
> conversion from 'int' to 'int8_t' (aka 'signed char') changes value from 128
> to -128 [-Wconstant-conversion]
> NEON_VOP_ENV(qrshl_s8, neon_s8, 4)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /mnt/devops/code/qemu/target-arm/neon_helper.c:116:83: note: expanded from
> macro 'NEON_VOP_ENV'
> uint32_t HELPER(glue(neon_,name))(CPUARMState *env, uint32_t arg1, uint32_t
> arg2) \
>
> ^
> /mnt/devops/code/qemu/target-arm/neon_helper.c:106:5: note: expanded from
> macro '\
> NEON_VOP_BODY'
> NEON_DO##n; \
> ^~~~~~~~~~
> <scratch space>:21:1: note: expanded from here
> NEON_DO4
> ^~~~~~~~
> /mnt/devops/code/qemu/target-arm/neon_helper.c:93:5: note: expanded from
> macro 'NEON_DO4'
> NEON_FN(vdest.v1, vsrc1.v1, vsrc2.v1); \
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /mnt/devops/code/qemu/target-arm/neon_helper.c:1054:23: note: expanded from
> macro 'NEON_FN'
> dest = (1 << (sizeof(src1) * 8 - 1)); \
> ~ ~~^~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fix it by casting to appropriate type.
>
> Signed-off-by: Pranith Kumar <address@hidden>
> ---
> target-arm/neon_helper.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target-arm/neon_helper.c b/target-arm/neon_helper.c
> index 1f1844f..ebdf7c9 100644
> --- a/target-arm/neon_helper.c
> +++ b/target-arm/neon_helper.c
> @@ -1051,7 +1051,7 @@ uint64_t HELPER(neon_qrshl_u64)(CPUARMState *env,
> uint64_t val, uint64_t shiftop
> if (tmp >= (ssize_t)sizeof(src1) * 8) { \
> if (src1) { \
> SET_QC(); \
> - dest = (1 << (sizeof(src1) * 8 - 1)); \
> + dest = (typeof(dest))(1 << (sizeof(src1) * 8 - 1)); \
> if (src1 > 0) { \
> dest--; \
> } \
A bit ugly but I guess it works. (The code is
deliberately setting dest to "most negative integer
that fits into src1 type".)
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM
- [Qemu-devel] [PATCH 2/5] softfloat: Fix warn about implicit conversion from int to int8_t, (continued)
[Qemu-devel] [PATCH 3/5] Disable warn about left shifts of negative values, Pranith Kumar, 2016/08/09
[Qemu-devel] [PATCH 4/5] clang: Fix warning reg. expansion to 'defined', Pranith Kumar, 2016/08/09
[Qemu-devel] [PATCH 5/5] target-arm: Fix warn about implicit conversion, Pranith Kumar, 2016/08/09
- Re: [Qemu-devel] [PATCH 5/5] target-arm: Fix warn about implicit conversion,
Peter Maydell <=
Re: [Qemu-devel] [PATCH 1/5] atomic: strip "const" from variables declared with typeof, Paolo Bonzini, 2016/08/09