fold-const: Fix up fold_truth_andor_1 shift handling [PR103813]
authorJakub Jelinek <jakub@redhat.com>
Tue, 28 Dec 2021 16:41:24 +0000 (17:41 +0100)
committerJakub Jelinek <jakub@redhat.com>
Tue, 28 Dec 2021 16:41:24 +0000 (17:41 +0100)
commit9258ac53cfcbe546e8b86a433e59343538743f74
tree8bbf5d5db4bc08119c925088e715f374cd84d027
parent3c5fd3616f73fbcd241cc3a5e09275c2b0c49bd4
fold-const: Fix up fold_truth_andor_1 shift handling [PR103813]

Some time ago I've changed const_binop -> wide_int_binop, so that it punts
on shifts by negative count.  fold_truth_andor_1 doesn't check the results
of const_binop (?SHIFT_EXPR, ) though and assumes they will be always
non-NULL, which is no longer the case.

2021-12-28  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/103813
* fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR
or RSHIFT_EXPR returns NULL.  Formatting fix.

* gcc.c-torture/compile/pr103813.c: New test.
gcc/fold-const.c
gcc/testsuite/gcc.c-torture/compile/pr103813.c [new file with mode: 0644]