This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
odd array subscript is above array bounds error
- From: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 4 Mar 2009 22:00:05 -0500
- Subject: odd array subscript is above array bounds error
While compiling the current pymol svn with gcc trunk
I ran across a compilation warning...
Ortho.c: In function 'OrthoFree':
Ortho.c:1973: warning: array subscript is above array bounds
which doesn't seem to make sense. The reduced test case that
triggers it with -O3 -Wall is...
#define CMD_QUEUE_MASK 0x3
void OrthoFree()
{
typedef struct {
char *ptr;
unsigned int inp,out;
unsigned int mask,size;
} CQueue;
struct _COrtho {
int X,Y,Height,Width;
CQueue *cmdQueue[CMD_QUEUE_MASK+1];
};
typedef struct _COrtho COrtho;
register COrtho *I=((void *)0);
int a;
for(a=0;a<=CMD_QUEUE_MASK;a++)
;
I->cmdQueue[a] = ((void *)0);
}
which produces the warning...
test.c: In function âOrthoFreeâ:
test.c:24: warning: array subscript is above array bounds
...for the last assignment of I->cmdQueue[a] = ((void *)0).
It would seem to me that 'a' should be CMD_QUEUE_MASK+1
on exiting the for statement so that the assignment should
be valid. Thanks in advance for any feedback as to whether
I should open a PR for this against gcc trunk.
Jack