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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

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

commit r14-326-ga94dcac59ee4c99b523ae593cb1c0ad43d4a110b
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Apr 28 08:40:07 2023 +0200

    ipa/109652 - ICE in modification phase of IPA SRA

    There's another questionable IL transform by IPA SRA, replacing
    foo (p_1(D)->x) with foo (VIEW_CONVERT <union type> (ISRA.PARM.1))
    where ISRA.PARM.1 is a register.  Conversion of a register to
    an aggregate type is questionable but not entirely unreasonable
    and not within the set of IL I am rejecting when fixing PR109644.

    The following lets this slip through in IPA SRA transform by
    restricting re-gimplification to the case of register type
    results.  To not break the previous testcase again we need to
    optimize the BIT_FIELD_REF <VIEW_CONVERT <...>, ...> case
    to elide the conversion.

            PR ipa/109652
            * ipa-param-manipulation.cc
            (ipa_param_body_adjustments::modify_expression): Allow
            conversion of a register to a non-register type.  Elide
            conversions inside BIT_FIELD_REFs.

            * gcc.dg/torture/pr109652.c: New testcase.

Reply via email to