Jeff: I believe that the standard just says that sizeof(short) <= sizeof(int) <= sizeof(long). It does not guarantee that "int" on machine A is the same as "int" on machine B. Same fro "short" and same for "long". As a result, it is possible that a narrowing cast (that's what this is) loses precision on machine A but not on machine B. This depends on the machine, the compiler, and the moon phase when the compiler was built. Bill ----- Forwarded by William Mahoney/FACSTAFF/UNO/UNEBR on 09/20/2010 10:18 AM ----- From: Jeff Saremi <jeffsaremi@xxxxxxxxx> To: gcc-help@xxxxxxxxxxx Date: 09/20/2010 10:15 AM Subject: I'd like to get warnings on loss of data during implicit conversions Sent by: gcc-help-owner@xxxxxxxxxxx When i compile my c or C++ code under Microsoft compiler I get warnings like the following: warning C4244: 'argument' : conversion from 'unsigned long' to 'uint16 ', possible loss of data However, compiling the same code with Gcc/G++ does not produce this warning at all? My question is: - is this a standard (i mean ISO) warning? or is it a courtesy warning? - Does gcc have something similar to this? If so which option is that? I have tried the following individiaully and in combination to no avail: -Wall, -Wextra, -Wconversion thanks jeff