[Bug tree-optimization/88693] New: Wrong code since r263511
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 4 13:08:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88693
Bug ID: 88693
Summary: Wrong code since r263511
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: msebor at gcc dot gnu.org
Target Milestone: ---
Following test-case (isolated from icu package) is miscompiled with -O2:
$ cat isolate.c
void
foo (char *p)
{
unsigned l = __builtin_strlen (p);
unsigned expected = 9;
__builtin_printf ("expected: %d, got: %d\n", expected, l);
if (l != expected)
__builtin_abort ();
}
int main()
{
static unsigned char
utf8[]={
0xe4, 0xb8, 0x80, 0xe3, 0x82, 0xa1, 0xef, 0xbd, 0xa1
};
char srcBuffer[100];
__builtin_memcpy(srcBuffer, utf8, sizeof(utf8));
srcBuffer[sizeof(utf8)]=0;
foo (srcBuffer);
return 0;
}
$ gcc isolate.c -O2 && ./a.out
expected: 9, got: 11
Aborted (core dumped)
More information about the Gcc-bugs
mailing list