https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121235
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` void* inner(unsigned value) { unsigned t = value; register void* ret asm("2"); register unsigned a0 asm("4") = t; __asm__ volatile("\n" "break; %0 %1\n" : "=r"(ret) : "r"(a0)); return ret; } ``` Fixes it for me. Notice the use of a0 in inline-asm rather than value.