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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2024-11-05
     Ever confirmed|0                           |1
            Summary|ICE: in expand_expr_real_2, |ICE: in expand_expr_real_2,
                   |at expr.cc:10567 with       |at expr.cc:10567 with
                   |__builtin_stdc_rotate_left( |__builtin_stdc_rotate_left(
                   |) on bitfield or _BitInt()  |) on bitfield or _BitInt()
                   |                            |of non-mode size
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed. The middle-end does not know how to handle [LR]ROTATE_EXPR for
!type_has_mode_precision_p types. We have a check in simplify_rotate about this
already:
  /* Only create rotates in complete modes.  Other cases are not
     expanded properly.  */
  if (!INTEGRAL_TYPE_P (rtype)
      || !type_has_mode_precision_p (rtype))
    return false;


I wonder if we should have a check in tree-cfg.cc in verify_gimple for this too
to catch it before expand.

Reply via email to