https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92032
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- We give f(int) cr_promotion: 1487 /* Give this a better rank if it's a promotion. */ 1488 if (same_type_p (to, type_promotes_to (from)) 1489 && next_conversion (conv)->rank <= cr_promotion) 1490 conv->rank = cr_promotion; while f(char) has cr_std, which is worse than cr_promotion, so we pick f(int).