On 23 December 2013 14:52, Michael S. Tsirkin <m...@redhat.com> wrote:
> 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 <ag...@suse.de>
> Cc: Peter Maydell <peter.mayd...@linaro.org>
> Cc: Richard Henderson <r...@twiddle.net>
> Signed-off-by: Michael S. Tsirkin <m...@redhat.com>

Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>

thanks
-- PMM

Reply via email to