On Sun, Nov 5, 2017 at 11:53 AM, Josh Poimboeuf <jpoim...@redhat.com> wrote: > > The GCC manual says: > > "asm statements that have no output operands, including asm goto > statements, are implicitly volatile."
Hmm. Fair enough. And the manual does say that it can merge and duplicate those asms (and suggests using "%=" to generate a unique number, but I guess "%c0" with __COUNTER__ is equivalent). I think the gcc manual has changed. I'm pretty certain it used to say that "volatile" asms would not be "moved significantly". They've silently changed semantics before too, oh well. Linus