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.