https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94654
--- Comment #2 from Fred J. Tydeman <tydeman at tybor dot com> --- If float is really promoted to double in this case, then why is the output different? Seems to me that a float promoted to a double (case 2) should produce the same output as just a double (case a). Seems to me that the bug is in the call, not in printf().