1{
2    "version" : "2.0",
3    "standard" : "c2012",
4    "title": "Coverity MISRA Configuration",
5    "deviations" : [
6        {
7            "deviation": "Rule 3.1",
8            "reason": "We post HTTP links in code comments which contain // inside comments blocks."
9        },
10        {
11            "deviation": "Rule 14.4",
12            "reason": "do while( 0 ) pattern is used in macros to prevent extra semi-colon."
13        },
14        {
15            "deviation": "Directive 4.4",
16            "reason": "Code snippet is used in comment to help explanation."
17        },
18        {
19            "deviation": "Directive 4.5",
20            "reason": "Allow names that MISRA considers ambiguous."
21        },
22        {
23            "deviation": "Directive 4.6",
24            "reason": "Allow port to use primitive type with typedefs."
25        },
26        {
27            "deviation": "Directive 4.8",
28            "reason": "HeapRegion_t and HeapStats_t are used only in heap files but declared in portable.h which is included in multiple source files. As a result, these definitions appear in multiple source files where they are not used."
29        },
30        {
31            "deviation": "Directive 4.9",
32            "reason": "FreeRTOS-Kernel is optimised to work on small micro-controllers. To achieve that, function-like macros are used."
33        },
34        {
35            "deviation": "Rule 2.3",
36            "reason": "FreeRTOS defines types which is used in application."
37        },
38        {
39            "deviation": "Rule 2.4",
40            "reason": "Allow to define unused tag."
41        },
42        {
43            "deviation": "Rule 2.5",
44            "reason": "Allow to define unused macro."
45        },
46        {
47            "deviation": "Rule 5.9",
48            "reason": "Allow to define identifier with the same name in structure and global variable."
49        },
50        {
51            "deviation": "Rule 8.7",
52            "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."
53        },
54        {
55            "deviation": "Rule 8.9",
56            "reason": "Allow to object to be defined in wider scope for debug purpose."
57        },
58        {
59            "deviation": "Rule 8.13",
60            "reason": "Allow to not to use const-qualified type for callback function."
61        },
62        {
63            "deviation": "Rule 11.4",
64            "reason": "Allow to convert between a pointer to object and an interger type for stack alignment."
65        },
66        {
67            "deviation": "Rule 15.4",
68            "reason": "Allow to use multiple break statements in a loop."
69        },
70        {
71            "deviation": "Rule 15.5",
72            "reason": "Allow to use multiple points of exit."
73        },
74        {
75            "deviation": "Rule 17.8",
76            "reason": "Allow to update the parameters of a function."
77        },
78        {
79            "deviation": "Rule 18.4",
80            "reason": "Allow to use pointer arithmetic."
81        },
82        {
83            "deviation": "Rule 19.2",
84            "reason": "Allow to use union."
85        },
86        {
87            "deviation": "Rule 20.5",
88            "reason": "Allow to use #undef for MPU wrappers."
89        }
90    ]
91}
92