http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46619
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> 2010-11-23 21:34:11 UTC --- >double is also bigger then unsigned short, why not promote it to double if we are bringing in random types? because the c standard has specific rules about integral types smaller than int; they are all promoted to int. > Assuming the silliness above is right, it still shouldn't matter. Oh you forgot that signed integer overflow in C/C++ is undefined which is what the warning is about in the first place.