Mi tienda usa Coverity 2019.3.
Tenemos habilitado MISRA-C 2004.
Quiero deshabilitar la regla 2.2 de MISRA-C 2004: el código fuente solo debe usar /* ... */ comentarios.
El comando cov-analyze tiene la opción de disable , pero solo muestra damas. Por ejemplo, se podría usar --disable para MISRA-CAST.
Estamos usando Coverity 2019.3 en Windows 10, con el compilador IAR 8.4 (constructor).
Entonces, ¿cómo puedo configurar Coverity para deshabilitar MISRA-C 2004, Regla 2.2?
La comprobación de Coverity MISRA se personaliza mediante la opción de línea de comando --misra-config , seguida de un nombre de archivo de configuración de sintaxis JSON. Consulte el artículo de Synopsys ¿Cómo analizar archivos de origen primario con verificadores MISRA?
(El hecho de que MISRA_CAST responda a --disable es una excepción porque, internamente, funciona de manera bastante diferente a los demás).
Por ejemplo, para deshabilitar la regla MISRA 2004 2.2, cree un archivo llamado, digamos, MISRA_c2004.config con contenido:
{ version : "2.0", standard : "c2004", title: "Customized MISRA 2004 Compliance", deviations : [ { deviation: "Directive 2.2", reason: "We allow // comments here because ... ." } ] } Idealmente, el reason debería explicar por qué su organización ha optado por deshabilitar la regla o contener un puntero o una cita de algún otro documento que contenga el motivo. No soy un experto en el cumplimiento de MISRA, pero entiendo que un auditor de MISRA querría ver evidencia de que la decisión se tomó teniendo en cuenta las amenazas relevantes a la seguridad del sistema, no solo por capricho o por conveniencia del programador. . El archivo de configuración exige una cadena de motivo para garantizar que el motivo esté disponible para satisfacer una auditoría.
Luego agregue --misra-config MISRA_c2004.config a la línea de comando cov-analyze .
Tenga en cuenta que no he probado el archivo de configuración anterior porque ya no tengo acceso a la herramienta. Comente si funciona para que pueda corregir esta respuesta o eliminar este párrafo.
Scott da el mecanismo para resolver su problema en Coverity.
Esta publicación (un poco demasiado larga para un comentario) brinda algunos antecedentes.
--
MISRA C:2004 (publicado en 2004) está alineado con ISO/IEC 9899:1990 (también conocido como C90 ): los comentarios de estilo C++ // no formaban parte de C90 y, aunque algunos compiladores lo permitían como una extensión, había implementaciones inconsistentes que lideraban a problemas conocidos en ese momento... además, era una extensión de idioma.
Aunque una Regla 2.2 de MISRA C:2004 requerida era (y sigue siendo) un tema común de una desviación, cuyo proceso requiere que el desarrollador se asegure de que no se experimenten los problemas conocidos.
Por supuesto, si está utilizando MISRA C:2004 con C99 o posterior, también necesitará una desviación de la Regla 1.1 requerida de MISRA C:2004 y comprenderá las implicaciones de esa decisión.
--
MISRA C:2012 (publicado por primera vez en 2012/2013) amplía MISRA C para cubrir ISO/IEC 9899:1990 (también conocido como C99 ) en el que el estilo C++ // ahora forma parte del lenguaje.
Como tal, MISRA C:2012 no tiene una pauta equivalente a MISRA C:2004 Regla 2.2... y, por lo tanto, el comentario // se puede usar libremente sin desviación.
Si es posible, recomendaría una transición a MISRA C:2012 por varias razones... El soporte de C99 (y por lo tanto // comentarios) es solo uno.
--
** Ver perfil para afiliación **