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

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the issue here is that gimplification creates

      <D.1987>:
      iftmp.0 = inv;
      goto <D.1989>;
      <D.1988>:
      iftmp.0 = src;
      <D.1989>:
      _2 = VIEW_CONVERT_EXPR<int[4]>(iftmp.0)[i];

that requires a non-register iftmp.0, but we neither set DECL_NOT_GIMPLE_REG_P
nor TREE_ADDRESSABLE on iftmp.0.  If we did the iftmp.0 = {inv,src}; stmts
also would need different gimplification.

Later update_address_taken comes along and "fixes" the missing
DECL_NOT_GIMPLE_REG_P but that then makes the assigns invalid IL.

We do not support ARRAY_REF (or COMPONENT_REF) on registers.

Reply via email to