[PATCH] Fix UB in dse.c (PR rtl-optimization/85431)
Jakub Jelinek
jakub@redhat.com
Tue Apr 17 20:57:00 GMT 2018
Hi!
As mentioned, for BLKmode stores with MEM_SIZE of 0 we invoke UB,
lowpart_bitmask (0) is called and that shifts an UHWI by 64.
Zero size MEMs should only appear in inline asm and shouldn't be interesting
to DSE at all, they can't make other stores dead, nor can be removed as dead
themselves.
Fixed by just ignoring them. Bootstrapped/regtested on x86_64-linux and
i686-linux, ok for trunk?
2018-04-17 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/85431
* dse.c (record_store): Ignore zero width stores.
--- gcc/dse.c.jj 2018-01-27 07:26:11.826913649 +0100
+++ gcc/dse.c 2018-04-17 17:53:55.019932700 +0200
@@ -1417,6 +1417,9 @@ record_store (rtx body, bb_info_t bb_inf
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
Jakub
More information about the Gcc-patches
mailing list