[Bug tree-optimization/116034] [12/13/14/15 Regression] wrong code with memcpy() from _Complex unsigned short at -fno-strict-aliasing -O1 and above

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jul 23 08:51:44 GMT 2024


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116034

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:b9cefd67a2a464a3c9413e6b3f28e7dc7a9ef162

commit r15-2220-gb9cefd67a2a464a3c9413e6b3f28e7dc7a9ef162
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jul 23 10:50:29 2024 +0200

    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.


More information about the Gcc-bugs mailing list