store-merging: ICE in find_bswap_or_nop_1 PR95854.
authorKaipeng Zhou <zhoukaipeng3@huawei.com>
Wed, 24 Jun 2020 14:48:45 +0000 (22:48 +0800)
committerRichard Biener <rguenther@suse.de>
Mon, 29 Jun 2020 10:58:10 +0000 (12:58 +0200)
commit35cf3c55165efe8226cb9e5397ab0620130396ea
tree6404e7a6bc193240061ded0cc903a996b4fb9cb8
parentceac3edb42e1090be8cee895a5659fe847a4050a
store-merging: ICE in find_bswap_or_nop_1 PR95854.

The patch add a judgement in find_bswap_or_nop_1 to make sure both
operand1 and operand2 cannot be converted to unsigned HOST_WIDE_INT.
If not, return NULL.

gcc/ChangeLog:

2020-06-24  Kaipeng Zhou  <zhoukaipeng3@huawei.com>

PR tree-optimization/95854
* gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL
if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to
unsigned HOST_WIDE_INT.

gcc/testsuite/ChangeLog:

2020-06-24  Kaipeng Zhou  <zhoukaipeng3@huawei.com>

PR tree-optimization/95854
* gcc.dg/pr95854.c: New test.
gcc/gimple-ssa-store-merging.c
gcc/testsuite/gcc.dg/pr95854.c [new file with mode: 0644]