¿Hacer que el comstackdor VS atrape asignaciones firmadas / sin firmar?

El comstackdor de Visual Studio no parece advertir sobre asignaciones firmadas / sin firmar, solo en comparaciones. Por ejemplo, el siguiente código generará una advertencia en la instrucción if, pero no en las asignaciones iniciales.

¿Hay alguna forma de hacerlo atrapar estos? Ya estoy en W4, pero pensé (esperaba) que podría haber otra configuración en algún lugar.

Gracias,

int foo(void) { unsigned int fooUnsigned = 0xffffffff; int fooSigned = fooUnsigned; // no warning if (fooSigned < fooUnsigned) // warning { return 0; } return fooSigned; } 

Actualizar:

Quamrana tiene razón, esto se controla con la advertencia 4365, que parece estar desactivada de forma predeterminada, incluso en W4. Sin embargo, puede habilitarlo explícitamente para un nivel de advertencia dado como tal;

 #pragma warning (4 : 4365) 

Lo que resulta en;

 warning C4365: 'initializing' : conversion from 'unsigned int' to 'int', signed/unsigned mismatch 

Debe habilitar la advertencia 4365 para capturar la tarea.

Esto puede ser complicado: debe habilitar TODAS las advertencias: use / Wall, que habilita muchas advertencias, por lo que puede tener algunos problemas para ver la advertencia, pero lo hace.

Puede cambiar el nivel de cualquier advertencia específica utilizando / W [nivel] [código]. Entonces, en este caso, W34365 hará que la advertencia 4365 se convierta en una advertencia de nivel 3. Si haces esto mucho, puede que te resulte útil colocar estas opciones en un archivo de texto y usar la opción @ [archivo] para simplificar la línea de comandos.

@quamrana:

Debe haber algo más allá de la opción / Muro para habilitar la advertencia 4365:

 C:\Temp>cl /Wall /c foo.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. foo.c foo.c(6) : warning C4018: '<' : signed/unsigned mismatch 

Veo que Andrew consiguió que funcionara, pero ¿alguien tiene una idea de por qué no funciona aquí?

Los documentos de Visual Studio indican que debería, pero ni siquiera puedo obtener el progtwig de ejemplo en los documentos para dar la advertencia C4365 (aunque sí da la advertencia relacionada con C4245, pero eso ocurre con solo una opción / W4).