------- Comment #3 from pinskia at gcc dot gnu dot org 2010-07-12 20:10 ------- >-Wconversion Will cause this warning.
sa.sin_port = (__extension__ ({ register unsigned short int __v, __x = (siteinfo->port); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); is the part which is causing the warning. The issue is the (__x) >> 8 is implictly casted into int. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44924