https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86461
Bug ID: 86461 Summary: [9 regression] test case gcc.c-torture/execute/builtins/strlen-3.c fails starting with r262522 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- spawn -ignore SIGHUP /home/seurer/gcc/build/gcc-test/gcc/xgcc -B/home/seurer/gcc/build/gcc-test/gcc/ /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3-lib.c /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c -fno-diagnostics-show-caret -fdiagnostics-color=never -w -Og -g -fno-tree-loop-distribute-patterns -fno-tracer -lm -o /home/seurer/gcc/build/gcc-test/gcc/testsuite/gcc/strlen-3.x6 PASS: gcc.c-torture/execute/builtins/strlen-3.c compilation, -Og -g Setting LD_LIBRARY_PATH to :/home/seurer/gcc/build/gcc-test/gcc::/home/seurer/gcc/build/gcc-test/gcc:/home/seurer/gcc/build/gcc-test/./gmp/.libs:/home/seurer/gcc/build/gcc-test/./prev-gmp/.libs:/home/seurer/gcc/build/gcc-test/./mpfr/src/.libs:/home/seurer/gcc/build/gcc-test/./prev-mpfr/src/.libs:/home/seurer/gcc/build/gcc-test/./mpc/src/.libs:/home/seurer/gcc/build/gcc-test/./prev-mpc/src/.libs:/home/seurer/gcc/build/gcc-test/./isl/.libs:/home/seurer/gcc/build/gcc-test/./prev-isl/.libs:/home/seurer/gcc/install/gcc-7.2.0/lib64 Execution timeout is: 300 spawn [open ...] FAIL: gcc.c-torture/execute/builtins/strlen-3.c execution, -Og -g /home/seurer/gcc/build/gcc-test/gcc/xgcc -B/home/seurer/gcc/build/gcc-test/gcc/ /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3-lib.c /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c -fno-diagnostics-show-caret -fdiagnostics-color=never -w -Og -g -fno-tree-loop-distribute-patterns -fno-tracer -lm -o strlen-3 ./strlen-3 Aborted gdb ./strlen-3 (gdb) run Starting program: /home/seurer/gcc/build/gcc-test/./strlen-3 Program received signal SIGABRT, Aborted. 0x00003fffb7cd247c in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) where #0 0x00003fffb7cd247c in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00003fffb7cd4688 in __GI_abort () at abort.c:90 #2 0x0000000010000740 in strlen (s=<optimized out>) at /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c:12 #3 0x00000000100006c0 in main_test () at /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c:64 #4 0x000000001000077c in main () at /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c:10 r262522 | msebor | 2018-07-09 15:33:48 -0500 (Mon, 09 Jul 2018) | 24 lines PR middle-end/77357 - strlen of constant strings not folded gcc/ChangeLog: PR middle-end/77357 PR middle-end/86428 * builtins.c (c_strlen): Avoid out-of-bounds warnings when accessing implicitly initialized array elements. * expr.c (string_constant): Handle string initializers of character arrays within aggregates. * gimple-fold.c (fold_array_ctor_reference): Add argument. Store element offset. As a special case, handle zero size. (fold_nonarray_ctor_reference): Same. (fold_ctor_reference): Add argument. Store subobject offset. * gimple-fold.h (fold_ctor_reference): Add argument. gcc/testsuite/ChangeLog: PR middle-end/77357 * gcc.dg/strlenopt-49.c: New test. * gcc.dg/strlenopt-50.c: New test. * gcc.dg/strlenopt-51.c: New test. * gcc.dg/strlenopt-52.c: New test.