[Bug tree-optimization/87490] New: [9 Regression] ICE in expand_builtin_strnlen at gcc/builtins.c:3164
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 2 20:21:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87490
Bug ID: 87490
Summary: [9 Regression] ICE in expand_builtin_strnlen at
gcc/builtins.c:3164
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: law at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-linux-gnu
Following causes ICE:
$ gcc
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c
-O1
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:
In function ‘test_strnlen_str_cst’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:25:6:
warning: ‘strnlen’ specified bound 18446744073709551615 exceeds maximum object
size 9223372036854775807 [-Wstringop-overflow=]
25 | A (strnlen ("", SIZE_MAX) == 0);
| ^~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:32:6:
warning: ‘strnlen’ specified bound 18446744073709551615 exceeds maximum object
size 9223372036854775807 [-Wstringop-overflow=]
32 | A (strnlen ("1", SIZE_MAX) == 1);
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:33:6:
warning: ‘strnlen’ specified bound 18446744073709551614 exceeds maximum object
size 9223372036854775807 [-Wstringop-overflow=]
33 | A (strnlen ("1", -2) == 1);
| ^~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:41:6:
warning: ‘strnlen’ specified bound 18446744073709551615 exceeds maximum object
size 9223372036854775807 [-Wstringop-overflow=]
41 | A (strnlen ("123", SIZE_MAX) == 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:42:6:
warning: ‘strnlen’ specified bound 18446744073709551614 exceeds maximum object
size 9223372036854775807 [-Wstringop-overflow=]
42 | A (strnlen ("123", -2) == 3);
| ^~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:
In function ‘test_strnlen_str_range’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:57:6:
warning: ‘strnlen’ specified bound [1, 3] exceeds the size 0 of unterminated
array [-Wstringop-overflow=]
57 | A (strnlen ("", r_1_3) == 0);
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
during RTL pass: expand
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:57:6:
internal compiler error: Segmentation fault
57 | A (strnlen ("", r_1_3) == 0);
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/strnlen.c:14:5:
note: in definition of macro ‘A’
14 | ((expr) ? (void)0 \
| ^~~~
0xa126df crash_signal
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/toplev.c:325
0x7ffff6bc310f ???
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x66111b expand_builtin_strnlen
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/builtins.c:3164
0x668ad4 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/builtins.c:7503
0x76f1f0 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/expr.c:10943
0x778bea store_expr(tree_node*, rtx_def*, int, bool, bool)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/expr.c:5636
0x779824 expand_assignment(tree_node*, tree_node*, bool)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/expr.c:5420
0x682160 expand_call_stmt
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/cfgexpand.c:2706
0x682160 expand_gimple_stmt_1
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/cfgexpand.c:3596
0x682160 expand_gimple_stmt
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/cfgexpand.c:3755
0x683eff expand_gimple_basic_block
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/cfgexpand.c:5791
0x687ebe execute
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/cfgexpand.c:6396
More information about the Gcc-bugs
mailing list