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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2026-01-04
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  I believe this is wrong at gimplification time:

void bar ()
{
  __asm__ __volatile__("mov %1, %0" :  : "m" at);
}

we'd need to gimplify this to a temporary.  We have a CONST_DECL here which
is what confuses us (we're not going to put that into the constant pool
I guess).  Possibly

3738          op = expand_expr (val, NULL_RTX, VOIDmode,
3739                            allows_reg ? EXPAND_NORMAL
3740                            : allows_mem ? EXPAND_MEMORY
3741                            : EXPAND_INITIALIZER);

expects that this expands to a MEM because of EXPAND_MEMORY, but it does not
(errorneously?!).

Reply via email to