ldist: Further fixes for -ftrapv [PR94114]
authorJakub Jelinek <jakub@redhat.com>
Wed, 11 Mar 2020 08:32:22 +0000 (09:32 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 11 Mar 2020 08:32:22 +0000 (09:32 +0100)
commit05ac4d9c7b336e30413dd80c3630981151499f9e
treec7e4f500496fa833ed72e691ea6bb0ea0e2636bf
parent8f0d8cd852255f9767626b084fc7926cbbea166f
ldist: Further fixes for -ftrapv [PR94114]

As the testcase shows, arithmetics that for -ftrapv would need multiple
basic blocks can show up not just in nb_bytes expressions where we
are calling rewrite_to_non_trapping_overflow for a while already,
but also in the pointer expression to the start of the region.
While the testcase covers just the first hunk and I've failed to create
a testcase for the latter, it is at least in theory possible too, so I've
adjusted that hunk too.

2020-03-11  Jakub Jelinek  <jakub@redhat.com>

PR tree-optimization/94114
* tree-loop-distribution.c (generate_memset_builtin): Call
rewrite_to_non_trapping_overflow even on mem.
(generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
on dest and src.

* gcc.dg/pr94114.c: New test.
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr94114.c [new file with mode: 0644]
gcc/tree-loop-distribution.c