https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984
--- Comment #15 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Typo: PR 42491 should have said PR 43491. Hopefully more obviously-broken testcase with an inline function: static inline void ff(int *o) { register int a asm("eax"); a = 1; asm("add %1, %0" : "+g"(*o) : "r"(a)); } int f(void) { int o=0, i; for (i=0; i<3; i++) { ff(&o); asm("xor %%eax, %%eax" ::: "eax"); } return o; }