build failure with gcc 4.6.0 "array subscript is above array bounds"
Ian Campbell
Ian.Campbell at citrix.com
Thu Aug 18 18:27:12 EST 2011
I noticed this with a defconfig build:
CC arch/powerpc/kernel/ptrace.o
arch/powerpc/kernel/ptrace.c: In function 'arch_ptrace':
arch/powerpc/kernel/ptrace.c:1502:5: error: array subscript is above array bounds [-Werror=array-bounds]
arch/powerpc/kernel/ptrace.c:1530:5: error: array subscript is above array bounds [-Werror=array-bounds]
That corresponds to:
tmp = ((unsigned long *)child->thread.fpr)
[TS_FPRWIDTH * (index - PT_FPR0)];
child->thread.fpr is "double fpr[32][TS_FPRWIDTH]".
index has already been bounds checked so we know it is <= PT_FPSCR.
I tried to fix but I don't really know enough about PPC to figure out
the correct fix is. PT_FPSCR is "PT_FPR0 + 32" on ppc64, which seems
consistent with the fpr definition.
On ppc32 PT_FPSCR is "PT_FPR0 + 2*32 + 1", I tried replacing the 32 with
"PT_FPSCR - PT_FPR0" (+ 1) but that got me into the BUILD_BUG_ONs at
line 346 and 374. At this point I'm afraid gave up trying to fix things,
I hope the report is useful anyway...
Ian.
More information about the Linuxppc-dev
mailing list