https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64186 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >My interpretation of the C99 conversion rules is that the conversion to unsigned short You are incorrect, the conversion rules never convert to anything smaller than int.