On 07/04/2018 11:38 AM, Laurent Vivier wrote: > When I try to build a ppc64 target on a ppc64 host (gcc 8.1.1), I have: > > .../target/ppc/int_helper.c: In function 'helper_vinsertb': > .../target/ppc/int_helper.c:1954:32: error: array subscript > 18446744073709551608 is above array bounds of 'uint8_t[16]' {aka 'unsigned > char[16]'} [-Werror=array-bounds] > memmove(&r->u8[index], &b->u8[8 - sizeof(r->element)], \ > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > .../target/ppc/int_helper.c:1965:1: note: in expansion of macro 'VINSERT' > > If we compare with the macro for ppc64le, we can see > sizeof(r->element[0]) should be used instead of sizeof(r->element). > > And VINSERT uses only u8, u16, u32 and u64, so the maximum value > of sizeof(r->element[0]) is 8 > > Suggested-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > --- > target/ppc/int_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~