« Previous | Next » 

Revision 5bf58abf

ID5bf58abf1cb7220d9f7d8e18f113a353cd6f260d

Added by Michael S. Tsirkin over 10 years ago

target-arm: fix build with gcc 4.8.2

commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3
"target-arm: A64: add set_pc cpu method"

introduces an array aarch64_cpus which is zero
size if this code is built without CONFIG_USER_ONLY.
In particular an attempt to iterate over this array produces a warning
under gcc 4.8.2:

CC    aarch64-softmmu/target-arm/cpu64.o
/scm/qemu/target-arm/cpu64.c: In function ‘aarch64_cpu_register_types’:
/scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned
expression < 0 is always false [-Werror=type-limits]
for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) {
^
cc1: all warnings being treated as errors

This is the result of ARRAY_SIZE being an unsigned type,
causing "i" to be promoted to unsigned int as well.

As zero size arrays are a gcc extension, it seems
cleanest to add a dummy element with NULL name,
and test for it during registration.

We'll be able to drop this when we add more CPUs.

Cc: Alexander Graf <>
Cc: Peter Maydell <>
Cc: Richard Henderson <>
Signed-off-by: Michael S. Tsirkin <>
Reviewed-by: Peter Maydell <>
Reviewed-by: Stefan Weil <>

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences