Cómo deshabilitar las advertencias de GCC para unas pocas líneas de código
En Visual C++, es posible utilizar #pragma warning (disable: ...)
. También descubrí que en GCC puedes anular los indicadores del compilador por archivo . ¿Cómo puedo hacer esto para la "siguiente línea" o con semántica push/pop alrededor de áreas de código usando GCC?
Aceptado
Parece que esto se puede hacer . No puedo determinar la versión de GCC que se agregó, pero fue antes de junio de 2010.
He aquí un ejemplo:
#pragma GCC diagnostic error "-Wuninitialized"
foo(a); /* error is given for this one */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
foo(b); /* no diagnostic for this one */
#pragma GCC diagnostic pop
foo(c); /* error is given for this one */
#pragma GCC diagnostic pop
foo(d); /* depends on command line options */
Para aclarar todo, este es un ejemplo de cómo desactivar temporalmente una advertencia:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-result"
write(foo, bar, baz);
#pragma GCC diagnostic pop
Puede consultar la documentación de GCC sobre pragmas de diagnóstico para obtener más detalles.