¿Existe un indicador para gcc que haga que las conversiones de largo a corto generen una advertencia sobre una posible pérdida de datos?¿Hay una advertencia de gcc 4.2 similar a la de Visual Studio con respecto a la posible pérdida de datos?
Estoy trabajando en una aplicación C++ compilada tanto para Visual Studio (2005) como para GCC 4.2 (para Mac OS X).
Las advertencias que las impresiones de Visual Studio a cabo siguen este patrón:
: warning C4244: 'argument' : conversion from 'long' to 'short', possible loss of data
He intentado -Wconversion, pero eso no es lo que estoy buscando. Lo único que he podido encontrar hasta ahora es una bandera experimental, -Wcoercion, que está asociada con GCC 4.3 (que no estoy seguro si aún queremos invertir).
22 de abril de 2009 a las 11:00 EST Edición: Para aclarar, quiero ver esa advertencia. Tenemos un código donde queremos saber cuándo ocurrirá una pérdida de datos. Si tengo el código:
unsigned long value1 = LONG_MAX;
std::cout << "value1: " << value1 << std::endl;
unsigned short value2 = value1;
std::cout << "value2: " << value2 << std::endl;
Puedo obtener este resultado esperado:
valor1: 2147483647
valor2: 65535
En nuestro código, que tienen especial afirma poner en marcha que realizar la coacción y advertirnos si el código ejecutado daría lugar a una pérdida de datos. Encontramos los lugares en nuestra gran base de código usando las advertencias de Visual Studio.
¿Hay alguna forma en que podamos generar estas advertencias en gcc 4.2?
Para la posible validación de la pérdida de datos intente '-Wshorten-64-to-32'. '-Wconversion' también verificará los errores de firma (puede ser overkill). – rustyx
'-Wshorten-64-to-32' no es aceptado por GCC, solo por Clang. – Andy