https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48379
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >As has already been said, nothing can he done about the promotion in this >context, so it's not worth warning about. That is NOT true in C23 since you could use _Float32 instead. Basically the warning here is very much useful as it is still is an implicit cast to double happening for var-args. If you don't want an implicit cast either add a cast or NOT use varargs or use _Float32 instead.