Cómo deshabilitar las advertencias de GCC para unas pocas líneas de código

Resuelto Matt Joiner asked hace 14 años • 9 respuestas

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?

Matt Joiner avatar Jul 31 '10 21:07 Matt Joiner
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 */
Matt Joiner avatar Aug 03 '2010 07:08 Matt Joiner

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.

Ian Pilcher avatar Sep 23 '2014 20:09 Ian Pilcher