aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-04-17 23:38:45 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-04-17 23:38:45 +0200
commitcbe679a486d11b1d959042732a9ddc204afbb661 (patch)
tree3b848e97175cf19e67adf7c6ceb38fd5ca89f496 /gcc
parent3f586095d5c004b73d33dcb944705a4b0b07710a (diff)
downloadgcc-cbe679a486d11b1d959042732a9ddc204afbb661.zip
gcc-cbe679a486d11b1d959042732a9ddc204afbb661.tar.gz
gcc-cbe679a486d11b1d959042732a9ddc204afbb661.tar.bz2
re PR rtl-optimization/85431 (UBSAN: ../../gcc/dse.c:303:15: runtime error: shift exponent 64 is too large for 64-bit type 'long unsigned int')
PR rtl-optimization/85431 * dse.c (record_store): Ignore zero width stores. From-SVN: r259448
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/dse.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cce4d3d..1fba2d9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2018-04-17 Jakub Jelinek <jakub@redhat.com>
+ PR rtl-optimization/85431
+ * dse.c (record_store): Ignore zero width stores.
+
PR sanitizer/85230
* asan.c (handle_builtin_stack_restore): Adjust comment. Emit
__asan_allocas_unpoison call and last_alloca_addr = new_sp before
diff --git a/gcc/dse.c b/gcc/dse.c
index 1ef8f64..26c6007 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -1417,6 +1417,9 @@ record_store (rtx body, bb_info_t bb_info)
return 0;
}
+ if (known_eq (width, 0))
+ return 0;
+
if (group_id >= 0)
{
/* In the restrictive case where the base is a constant or the