// MISRA C-2012 Rules { version : "2.0", standard : "c2012", title: "Coverity MISRA Configuration", deviations : [ // Disable the following rules. { deviation: "Directive 4.5", reason: "Allow names that MISRA considers ambiguous (such as enum IOT_MQTT_CONNECT and function IotMqtt_Connect)." }, { deviation: "Directive 4.6", reason: "The third-party http-parser library does not use specific-length typedefs for their callback function signatures and public structure fields. http-parser callbacks are implemented in the HTTP Client source and also flags of basic numerical types are checked from the http-parser structure." }, { deviation: "Directive 4.8", reason: "Allow inclusion of unused types. Header files for a specific port, which are needed by all files, may define types that are not used by a specific file." }, { deviation: "Directive 4.9", reason: "Allow inclusion of function like macros. The `assert` macro is used throughout the library for parameter validation, and logging is done using function like macros." }, { deviation: "Rule 2.3", reason: "Allow unused types. Library headers may define types intended for the application's use, but not used within the library files." }, { deviation: "Rule 2.4", reason: "Allow unused tags. Some compilers warn if types are not tagged." }, { deviation: "Rule 2.5", reason: "Allow unused macros. Library headers may define macros intended for the application's use, but not used by a specific file." }, { deviation: "Rule 3.1", reason: "Allow nested comments. C++ style `//` comments are used in example code within Doxygen documentation blocks." }, { deviation: "Rule 8.7", reason: "API functions are not used by the library outside of the files they are defined; however, they must be externally visible in order to be used by an application." }, { deviation: "Rule 8.13", reason: "The third-party http-parser library callback definitions have a non-const parameter which holds the state of the parsing. This parameter is never updated in the callback implementations, but have fields that may be read." }, { deviation: "Rule 11.5", reason: "Allow casts from `void *`. The third-party http-parser library callback contexts are saved as `void *` and must be cast to the correct data type before use. |" }, { deviation: "Rule 21.1", reason: "Allow use of all names." }, { deviation: "Rule 21.2", reason: "Allow use of all names." } ] }