https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98572
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >Even if integer promotion happens, it should be promoted as "unsigned int" as >well. Why do you think it should be promoted to unsigned int rather int? Since a 24bit unsigned int fits into a 32 bit singed int, int is used first.