Andrew Haley wrote: > On 27/08/2020 22:23, Joe Buehler via Gcc-help wrote: > > temp.c: In function main : > temp.c:4:2: warning: asm operand 0 probably doesn t match constraints > __asm__ volatile(".8byte %0\n\t" : : "i" ("message %s\n")); > ^~~~~~~ > temp.c:4:2: error: impossible constraint in asm > > I'd use the "S" constraint. Thanks that worked. > >> I am unable to code something similar manually using inline asm because >> the string is a format string containing % characters, which inline asm >> will of course try to interpret. (Does gcc provide anything to escape % >> chars in a literal string?) > > "%%" > The problem is that I have literal printf format strings in a multiplatform code base. I need something like a gcc builtin to do the % doubling. #define X(fmt) asm ("lines " __builtin_escape(fmt) " more lines") Joe Buehler