https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87890
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I think this is the correct behavior (for < C23) as float gets promoted to double for non-prototyped function declarations. In C23 (which is the default now) `()` is the same as `(void)` so there is no issue there.