]> git.ipfire.org Git - thirdparty/gcc.git/commit
ssa: Fix up maybe_rewrite_mem_ref_base complex type handling [PR116034]
authorJakub Jelinek <jakub@redhat.com>
Tue, 23 Jul 2024 08:50:29 +0000 (10:50 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 23 Jul 2024 08:51:32 +0000 (10:51 +0200)
commitb9cefd67a2a464a3c9413e6b3f28e7dc7a9ef162
tree20cca0ca8543affa89b479e18e04b96ecc8d9f13
parent58756c9f5507e5db0eaddcbaaa2de7f39c34b5d0
ssa: Fix up maybe_rewrite_mem_ref_base complex type handling [PR116034]

The folding into REALPART_EXPR is correct, used only when the mem_offset
is zero, but for IMAGPART_EXPR it didn't check the exact offset value (just
that it is not 0).
The following patch fixes that by using IMAGPART_EXPR only if the offset
is right and using BITFIELD_REF or whatever else otherwise.

2024-07-23  Jakub Jelinek  <jakub@redhat.com>
    Andrew Pinski  <quic_apinski@quicinc.com>

PR tree-optimization/116034
* tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR
if MEM_REF offset is equal to element type size.

* gcc.dg/pr116034.c: New test.
gcc/testsuite/gcc.dg/pr116034.c [new file with mode: 0644]
gcc/tree-ssa.cc