[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03 |
Date: |
Fri, 5 Jun 2015 15:40:04 +0100 |
On 5 June 2015 at 15:35, Paolo Bonzini <address@hidden> wrote:
>
>
> On 05/06/2015 15:33, Peter Maydell wrote:
>> This is applied, but can you fix the clang sanitizer warnings,
>> please?
>>
>> hw/ppc/spapr_drc.c:59:24: runtime error: left shift of negative value -1
>> hw/ppc/spapr_drc.c:587:19: runtime error: left shift of negative value -1
>>
>> Problem looks to be in:
>> #define DRC_INDEX_ID_MASK (~(~0 << DRC_INDEX_TYPE_SHIFT))
>>
>> which is doing left shifts on a negative signed number.
>
> Speaking in general, I find that this makes code worse. If you're using
> ~0 you probably want the value to extend with infinite ones.
>
> Using ~0u instead of ~0ull may cause problems down the line, and ~0ul
> is even worse because it is not 64-bit safe.
I agree that C's semantics are terrible here (ideally
left shift of negative values should Just Work in the 2s
complement style, and right shift of negative values should
be an arithmetic shift). Unfortunately we're stuck with
the standard, which says this is undefined behaviour :-(
-- PMM
- Re: [Qemu-devel] [PULL 34/40] machine: add default_ram_size to machine class, (continued)
- [Qemu-devel] [PULL 36/40] pseries: Enable in-kernel H_LOGICAL_CI_{LOAD, STORE} implementations, Alexander Graf, 2015/06/03
- [Qemu-devel] [PULL 28/40] spapr_drc: add spapr_drc_populate_dt(), Alexander Graf, 2015/06/03
- [Qemu-devel] [PULL 19/40] docs: add sPAPR hotplug/dynamic-reconfiguration documentation, Alexander Graf, 2015/06/03
- [Qemu-devel] [PULL 26/40] spapr_events: re-use EPOW event infrastructure for hotplug events, Alexander Graf, 2015/06/03
- [Qemu-devel] [PULL 32/40] spapr_pci: enable basic hotplug operations, Alexander Graf, 2015/06/03
- [Qemu-devel] [PULL 20/40] spapr_drc: initial implementation of sPAPRDRConnector device, Alexander Graf, 2015/06/03
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Peter Maydell, 2015/06/04
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Peter Maydell, 2015/06/05
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Paolo Bonzini, 2015/06/05
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03,
Peter Maydell <=
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Paolo Bonzini, 2015/06/05
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Peter Maydell, 2015/06/05
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Paolo Bonzini, 2015/06/05
- Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Peter Maydell, 2015/06/05
- [Qemu-devel] undefined behavior of signed left shifts (was Re: [PULL 00/40] ppc patch queue 2015-06-03), Paolo Bonzini, 2015/06/05
- Re: [Qemu-devel] undefined behavior of signed left shifts (was Re: [PULL 00/40] ppc patch queue 2015-06-03), Peter Maydell, 2015/06/05
- Re: [Qemu-devel] undefined behavior of signed left shifts (was Re: [PULL 00/40] ppc patch queue 2015-06-03), Joseph Myers, 2015/06/05
Re: [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03, Eric Blake, 2015/06/05