https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85949
--- Comment #2 from Jonny Grant <jg at jguk dot org> --- Many thanks Martin. Your change is a big improvement. I ran on Godbolt.org g++ (GCC-Explorer-Build) 9.0.0 20190114 (experimental) The carat is now at the end of the attributes - is there a way to get the carat on the actual argument 3? =================== #1 with x86-64 gcc (trunk) <source>:7:82: error: 'format' attribute argument 3 value '1' does not refer to a variable argument list 7 | void str_fmt(const char * const format, ...) __attribute__ ((format (printf,1,1))); | ^ Compiler returned: 1 ===================