https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110126
--- Comment #2 from Thorsten Otto <ad...@tho-otto.de> --- But even if i rewrite it like that, i still get the warning. I avoided doing anything machine specific in the first example, but if i actually do, and use something like: PROCEDURE test; BEGIN ASM("movl %1,%%eax; addl $1,%%eax; movl %%eax,%0" : "=r"(x) : "0"(x) : "eax"); END test; i still get the warning. BTW, is there a reason why the string in the asm statement can't be concatenated? eg. especially if the statement becomes longer, you would usually want to write it something like ASM("movl %1,%%eax;" + "addl $1,%%eax;" + "movl %%eax,%0" : "=r"(x) : "0"(x) : "eax");