https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90205
--- Comment #3 from Jonny Grant <jg at jguk dot org> --- A clang++ example, doing it as I expected, showing the type before automatic promotion. I did with char, as I couldn't find a -Wformat-signedness for the original example code in clang++ #include <stdio.h> int main() { char b = 'b'; printf("%f", b); } #1 with x86-64 clang (trunk) <source>:5:18: warning: format specifies type 'double' but the argument has type 'char' [-Wformat] printf("%f", b); ~~ ^ %c 1 warning generated. Compiler returned: 0