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

            Bug ID: 109607
           Summary: IPA replaces stmt with invalid gimple
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

On cfghooks.cc we replace

BIT_FIELD_REF <*this_8(D), 8, 56>

with

BIT_FIELD_REF <VIEW_CONVERT_EXPR<const struct profile_count>(ISRA.814), 8, 56>

in ipa_param_body_adjustments::modify_expression.  The replacement seems
to be of type 'unsigned long'.  This is (should be) invalid GIMPLE unless
ISRA.814 is made a non-register.

Note when replacing memory with register BIT_FIELD_REFs have to be careful
with endianess (IIRC), thus the replacement looks dangerous anyway.

A fix for PR109594 will make us trip over this new IL checking during
bootstrap.

Reply via email to