[Bug tree-optimization/92683] New: [10 Regression] strncmp incorrect result with equal substrings and non-const bound
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 26 22:31:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92683
Bug ID: 92683
Summary: [10 Regression] strncmp incorrect result with equal
substrings and non-const bound
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
r278621 introduced a bug where a non-constant bound in calls to strncmp is
treated incorrectly as if it were a constant greater than the length of either
argument.
$ cat t.c && gcc -O1 -S -Wall -Wextra -Wunused
-fdump-tree-forwprop1=/dev/stdout t.c
int f (void)
{
return __builtin_strncmp ("123", "1234", 3); // correctly folded to zero
}
int g (void)
{
int n = 3;
return __builtin_strncmp ("123", "1234", n); // incorrectly folded to -1
}
;; Function f (f, funcdef_no=0, decl_uid=1930, cgraph_uid=1, symbol_order=0)
f ()
{
<bb 2> :
return 0;
}
;; Function g (g, funcdef_no=1, decl_uid=1933, cgraph_uid=2, symbol_order=1)
g ()
{
int n;
<bb 2> :
return -1;
}
More information about the Gcc-bugs
mailing list