>Спрашивайте в maillist'ах gcc. Это проявляется только с -Ox и не проявляется
>на любых версиях gcc на FreeBSD. Ну вообще-то не просто -Ox виновата, а -Wconversion с -O2 или -O3
В мане белым по чёрному написано
-Wconversion
Warn for implicit conversions that may alter a value. This includes conversions between
real and integer, like "abs (x)" when "x" is "double"; conversions between signed and
unsigned, like "unsigned ui = -1"; and conversions to smaller types, like "sqrtf (M_PI)".
Do not warn for explicit casts like "abs ((int) x)" and "ui = (unsigned) -1", or if the
value is not changed by the conversion like in "abs (2.0)". Warnings about conversions
between signed and unsigned integers can be disabled by using -Wno-sign-conversion.
У меня случай преобразования (unsigned short int) -> (unsigned int)
То есть - знака с обеих сторон нет, из меньшего в большее...