qemu/hw
Radim Krčmář c6dc3dd72b milkymist-pfpu: fix GCC 5.0.0 aggressive-loop-optimizations warning
man gcc:
  Warn if in a loop with constant number of iterations the compiler
  detects undefined behavior in some statement during one or more of
  the iterations.

Milkymist pfpu has no jump instructions, so checking for MICROCODE_WORDS
instructions should have kept us in bounds of s->microcode, but i++
allowed one loop too many,

  hw/misc/milkymist-pfpu.c: In function ‘pfpu_write’:
  hw/misc/milkymist-pfpu.c:365:20: error: loop exit may only be reached after undefined behavior [-Werror=aggressive-loop-optimizations]
                   if (i++ >= MICROCODE_WORDS) {
                      ^
  hw/misc/milkymist-pfpu.c:167:14: note: possible undefined statement is here
       uint32_t insn = s->microcode[pc];
                ^

The code can still access out of bounds, because it presumes that PC register
always begins at 0, and we allow writing to it.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Acked-by: Michael Walle <michael@walle.cc>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2015-03-10 08:15:34 +03:00
..
9pfs virtio: feature bit manipulation helpers 2015-02-26 13:04:07 +01:00
acpi aml-build: fix build for glib < 2.22 2015-03-03 17:42:18 +01:00
alpha QOM infrastructure fixes and device conversions 2015-03-02 13:20:43 +00:00
arm arm/digic_boards: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
audio pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
block block: remove superfluous '\n' around error_report/error_setg 2015-03-10 08:15:33 +03:00
bt l2cap: fix access to freed memory 2014-08-15 19:12:48 +04:00
char spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
core sysbus: fix memory leak 2015-03-10 08:15:34 +03:00
cpu icc_bus: fix typo ICC_BRIGDE -> ICC_BRIDGE 2014-11-03 19:51:56 +03:00
cris hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
display vga: Expose framebuffer byteorder as a QOM property 2015-03-09 15:00:02 +01:00
dma pl330.c: remove superfluous '\n' around error_setg 2015-03-10 08:15:33 +03:00
gpio PPC: Add MPC8XXX gpio controller 2014-11-04 23:26:12 +01:00
i2c pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
i386 pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
ide Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
input adb.c: include ADBDevice parent state in KBDState and MouseState 2015-03-09 15:00:04 +01:00
intc openpic: convert to vmstate 2015-03-09 15:00:07 +01:00
ipack pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
isa acpi, ich9: Add unplug cb for ich9. 2015-02-26 12:42:18 +01:00
lm32 milkymist.c: fix memory leak 2015-03-10 08:15:34 +03:00
m68k hw/core/loader: implement address translation in uimage loader 2014-11-03 00:59:10 +03:00
mem pc-dimm: add a function to calculate VM's current RAM size 2015-03-04 13:00:04 -05:00
microblaze Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
mips QOM infrastructure fixes and device conversions 2015-03-02 13:20:43 +00:00
misc milkymist-pfpu: fix GCC 5.0.0 aggressive-loop-optimizations warning 2015-03-10 08:15:34 +03:00
moxie memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
net fix GCC 5.0.0 logical-not-parentheses warnings 2015-03-10 08:15:34 +03:00
nvram spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
openrisc hw/core/loader: implement address translation in uimage loader 2014-11-03 00:59:10 +03:00
pci pci-hotplug-old: Has been dead for five major releases, bury 2015-03-01 12:37:54 +01:00
pci-bridge pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
pci-host pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
pcmcia hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
ppc e500: fix memory leak 2015-03-10 08:15:34 +03:00
s390x balloon: call qdev_alias_all_properties for proxy dev in balloon class init 2015-03-01 12:32:59 +01:00
scsi vhost-scsi: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
sd pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
sh4 r2d: Don't use legacy -usbdevice support for setting up board 2015-02-18 10:53:10 +01:00
sparc sparc/leon3.c: fix memory leak 2015-03-10 08:15:34 +03:00
sparc64 QOM infrastructure fixes and device conversions 2015-03-02 13:20:43 +00:00
ssi ssi: xilinx_spi: Initialise CS GPIOs as NULL 2014-08-15 18:54:40 +04:00
timer a9gtimer: remove superfluous '\n' around error_setg 2015-03-10 08:15:33 +03:00
tpm tpm: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
tricore target-tricore: check return value before using it 2014-11-02 10:04:34 +03:00
unicore32 memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
usb pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
vfio vfio: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
virtio vhost: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
watchdog pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
xen xen-pt: fix Out-of-bounds read 2015-03-10 08:15:33 +03:00
xenpv hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
xtensa xtensa: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
Makefile.objs vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00