[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: |
Fri, 12 Aug 2016 13:20:17 +0100 |
On 11 August 2016 at 11:50, Peter Maydell <address@hidden> wrote:
> 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>
Applied to master, thanks.
-- PMM
[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 1/5] atomic: strip "const" from variables declared with typeof, Paolo Bonzini, 2016/08/09