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?!).