qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-trivial] [PATCH v2 00/12] Avoid shifting left into sign bit


From: Peter Maydell
Subject: [Qemu-trivial] [PATCH v2 00/12] Avoid shifting left into sign bit
Date: Mon, 17 Mar 2014 16:00:29 +0000

This is a set of patches which silence clang -fsanitize=undefined
warnings about shifting left into the sign bit of a signed value.
Typically this is the result of "1 << 31" and similar constructs;
the fix is to add a "U" suffix to the 1 so that we do unsigned
arithmetic rather than signed arithmetic.

Since these patches are very minor changes to a fairly
wide ranging set of files, it seems easiest to send these
through the -trivial queue. Happy to split the series up
if people disagree.

Mostly I think these warnings are not particularly exciting
(even the adversarial optimizations preferred by modern
compilers will probably not break "1 << 31") but there are
a lot of them, the fix is pretty trivial, and getting rid of
them allows us to see the interesting sanitizer warnings more
clearly.

My method here has been just to look at the warnings produced
during a 'make check' run; no doubt actually running a guest
for various platforms would identify more of these.

Changes v1->v2:
 * minor tweak to foreach_apic to merge declaration
   and initialization of 'mask'
 * add U suffix to other constants in the same group
   for consistency, as suggested by mst

thanks
-- PMM


Peter Maydell (12):
  target-i386: Avoid shifting left into sign bit
  hw/intc/apic.c: Use uint32_t for mask word in foreach_apic
  hw/pci/pci_host.c: Avoid shifting left into sign bit
  hw/i386/acpi_build.c: Avoid shifting left into sign bit
  target-mips: Avoid shifting left into sign bit
  hw/usb/hcd-ohci.c: Avoid shifting left into sign bit
  hw/intc/openpic: Avoid shifting left into sign bit
  hw/ppc: Avoid shifting left into sign bit
  tests/libqos/pci-pc: Avoid shifting left into sign bit
  hw/intc/slavio_intctl: Avoid shifting left into sign bit
  hw/intc/xilinx_intc: Avoid shifting left into sign bit
  hw/pci-host/apb.c: Avoid shifting left into sign bit

 hw/i386/acpi-build.c         |   2 +-
 hw/intc/apic.c               |   6 +-
 hw/intc/openpic.c            |  14 +-
 hw/intc/slavio_intctl.c      |   2 +-
 hw/intc/xilinx_intc.c        |   3 +-
 hw/pci-host/apb.c            |  10 +-
 hw/pci/pci_host.c            |   3 +-
 hw/ppc/ppc.c                 |   2 +-
 hw/ppc/ppc440_bamboo.c       |   4 +-
 hw/ppc/ppc4xx_devs.c         |   2 +-
 hw/ppc/ppc_booke.c           |  24 ++--
 hw/ppc/virtex_ml507.c        |   4 +-
 hw/usb/hcd-ohci.c            |  32 ++---
 target-i386/cpu.h            | 334 +++++++++++++++++++++----------------------
 target-mips/cpu.h            |   2 +-
 target-mips/helper.c         |   8 +-
 target-mips/op_helper.c      |   2 +-
 target-mips/translate_init.c |  22 +--
 tests/libqos/pci-pc.c        |  12 +-
 19 files changed, 245 insertions(+), 243 deletions(-)

-- 
1.9.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]