https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|INVALID |--- --- Comment #11 from Alexander Monakov <amonakov at gcc dot gnu.org> --- No, you're mistaken. The clobber is outside of the live range of 'a'. There's no clobber where 'a' is live: register int a asm("eax"); a = 1; asm("add %1, %0" : "+r"(o) : "r"(a)); Such situation could appear as a result of inlining, for example. Do you realize that LLVM is implementing sane semantics promised by GCC's own documentation without inventing new syntax for inline asm operands?