inconclusive how c++ static-analysis error-suppression cppcheck

how - ¿Cómo usar la opción de filtro de supresión en línea de cppcheck para el código C++?



cppcheck inconclusive (4)

Me gustaría usar Cppcheck para el análisis de código estático de mi código C ++. Aprendí que puedo suprimir algún tipo de advertencias con el --inline-suppr . Sin embargo, no puedo encontrar lo que debo "suprimir_error_id" en el comentario:

// cppcheck-suppress "suppressed_error_id"


De acuerdo con la página del manual de cppcheck , puede usar la opción --template para cambiar la salida predeterminada para incluir el id, por ejemplo

cppcheck /the/src/file --template=''{file}:{line},{severity},{id},{message}''


De acuerdo con la ayuda de cppcheck:

El id de error es el id que desea suprimir. La forma más fácil de obtenerlo es utilizar el indicador de línea de comando --xml. Copie y pegue la cadena de identificación de la salida xml.

Entonces ejecute cppcheck contra algún código que contenga el error con el indicador --xml , y luego busque en el archivo XML generado para encontrar su nombre.


Puede cambiar la plantilla de salida para mostrar la ID de error desde la línea de comandos, que es bastante clara.

Para una salida de formato de Visual Studio con la identificación del error mostrada, agregue esto a su línea de comando:

--template "{file}({line}): {severity} ({id}): {message}"

Esto producirá salida algo como esto:

s:/src/jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY

Que luego puede suprimir agregando la línea:

// cppcheck-suppress bufferAccessOutOfBounds

A la línea anterior en el archivo fuente.


Si está utilizando la GUI, puede hacer clic con el botón derecho en el mensaje que desea suprimir para que aparezca un menú emergente. Seleccione "Copiar ID de mensaje". Pegue el ID de mensaje en su código en lugar de "suppressed_error_id".