Package: gcc-4.7
Version: 4.7.1-2
User: debian-...@lists.debian.org
Usertags: kfreebsd
Hi,
current gcc produces (at least on kfreebsd-amd64) misleading warning
during compilation of xserver-xorg-input-mouse.
It together with -Werror leads to #665390.
Attached please find reduced testcase, it probably produces the same
warning also on (linux-)amd64.
gcc -Wall -O2 bsd_mouse-bounds.c -c
bsd_mouse-bounds.c: In function 'CheckProtocol':
bsd_mouse-bounds.c:35:30: warning: array subscript is above array bounds
[-Warray-bounds]
Petr
extern int xf86NameCmp(const char *s1, const char *s2);
extern void *xcalloc(int, int);
typedef const char **(*BuiltinNamesProc)(void);
typedef int (*CheckProtocolProc)(const char *protocol);
typedef struct {
BuiltinNamesProc BuiltinNames;
CheckProtocolProc CheckProtocol;
} OSMouseInfoRec, *OSMouseInfoPtr;
static const char *internalNames[] = {
((void *)0)
};
static const char *miscNames[] = {
"SysMouse",
((void *)0)
};
static const char **
BuiltinNames(void)
{
return internalNames;
}
static int
CheckProtocol(const char *protocol)
{
int i;
for (i = 0; internalNames[i]; i++)
if (xf86NameCmp(protocol, internalNames[i]) == 0)
return 1;
for (i = 0; miscNames[i]; i++)
if (xf86NameCmp(protocol, miscNames[i]) == 0)
return 1;
return 0;
}
OSMouseInfoPtr
OSMouseInit(int flags)
{
OSMouseInfoPtr p;
p = xcalloc(sizeof(OSMouseInfoRec), 1);
if (!p)
return ((void *)0);
p->BuiltinNames = BuiltinNames;
p->CheckProtocol = CheckProtocol;
return p;
}