[Bug c/62058] New: Undefined behaviour in tree-data-ref.c with options -O1 -ftree-loop-vectorize
zeccav at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Aug 8 08:05:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62058
Bug ID: 62058
Summary: Undefined behaviour in tree-data-ref.c with options
-O1 -ftree-loop-vectorize
Product: gcc
Version: 4.9.1
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: zeccav at gmail dot com
/* from testsuite p60183.c */
/* gcc 4.9.1 -S -O1 -ftree-loop-vectorize */
/* ../../gcc-4.9.1/gcc/tree-data-ref.c:2423:16: runtime error: signed integer
overflow: 65536 * -65536 cannot be represented in type 'int' */
/* ../../gcc-4.9.1/gcc/tree-data-ref.c:2334:38: runtime error: signed integer
overflow: 1073741824 + 1073741824 cannot be represented in type 'int' */
/* ../../gcc-4.9.1/gcc/tree-data-ref.c:2425:16: runtime error: negation of
-2147483648 (INT_MIN) cannot be represented in type 'int'; cast to an unsigned
type to negate this value to itself */
/* ../../gcc-4.9.1/gcc/tree-data-ref.c:2424:16: runtime error: negation of
-2147483648 (INT_MIN) cannot be represented in type 'int'; cast to an unsigned
type to negate this value to itself */
/* on x86-64 from testsuite pr60183.c */
unsigned char c[0x30001] = { 1 };
int j = 0; /* independent of the j initialization value */
static void
foo (unsigned long *x, unsigned char *y)
{
int i;
unsigned long w = x[0];
for (i = 0; i < j; i++)
{
w += *y;
y += 0x10000;
w += *y;
}
x[1] = w;
}
void
bar (unsigned long *x)
{
foo (x, c);
}
More information about the Gcc-bugs
mailing list