https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115496
--- Comment #3 from Andi Kleen <andi-gcc at firstfloor dot org> --- When writing inline assembler an alternative to \n is to use ; as separator e.g. asm("movl $1,%eax ; " "movl %eax,%ebx") there can be also comment mistake here like asm("movl $1,%eax # comment ;" "movl %eax,%ebx"); This incorrectly drops the second instruction. The \n warning wouldn't handle that case, it would need knowledge about # comments. I've hit that problem in some real code. Always preferred to write ; over \n because it looks less ugly.