1*6c2c8528SSandrine BailleuxSeq,Dir / Rule,Number,Source,Category,Checker Enabled,Enforced,Comments 2*6c2c8528SSandrine Bailleux1,D,1.1,MISRA C 2012,Required,N/A,Yes, 3*6c2c8528SSandrine Bailleux2,D,2.1,MISRA C 2012,Required,N/A,Yes, 4*6c2c8528SSandrine Bailleux3,D,3.1,MISRA C 2012,Required,N/A,No,It can’t be done retroactively. 5*6c2c8528SSandrine Bailleux4,D,4.1,MISRA C 2012,Required,N/A,Yes, 6*6c2c8528SSandrine Bailleux5,D,4.2,MISRA C 2012,Advisory,N/A,Yes, 7*6c2c8528SSandrine Bailleux6,D,4.3,MISRA C 2012,Required,Yes,Yes, 8*6c2c8528SSandrine Bailleux7,D,4.4,MISRA C 2012,Advisory,Yes,Yes, 9*6c2c8528SSandrine Bailleux8,D,4.5,MISRA C 2012,Advisory,Yes,Yes, 10*6c2c8528SSandrine Bailleux9,D,4.6,MISRA C 2012,Advisory,No,No,We use a mix of both. It would be too disruptive for the project to change. 11*6c2c8528SSandrine Bailleux10,D,4.7,MISRA C 2012,Required,Yes,Yes, 12*6c2c8528SSandrine Bailleux11,D,4.8,MISRA C 2012,Advisory,No,No,Fixing all instances would involve invasive changes to the codebase for no good reason. 13*6c2c8528SSandrine Bailleux12,D,4.9,MISRA C 2012,Advisory,No,No,"We mustn’t introduce new macros unless strictly needed, but this affects assert(), INFO(), etc. It creates too much noise in the report for little gain." 14*6c2c8528SSandrine Bailleux13,D,4.10,MISRA C 2012,Required,Yes,Yes, 15*6c2c8528SSandrine Bailleux14,D,4.11,MISRA C 2012,Required,Yes,Yes, 16*6c2c8528SSandrine Bailleux15,D,4.12,MISRA C 2012,Required,Yes,Yes, 17*6c2c8528SSandrine Bailleux16,D,4.13,MISRA C 2012,Advisory,Yes,Yes, 18*6c2c8528SSandrine Bailleux17,D,4.14,MISRA C 2012 AMD-1,Required,Yes,Yes, 19*6c2c8528SSandrine Bailleux18,R,1.1,MISRA C 2012,Required,Yes,Yes, 20*6c2c8528SSandrine Bailleux19,R,1.2,MISRA C 2012,Advisory,Yes,Optional,It bans __attribute__(()) and similar helpers. 21*6c2c8528SSandrine Bailleux20,R,1.3,MISRA C 2012,Required,N/A,Yes, 22*6c2c8528SSandrine Bailleux21,R,2.1,MISRA C 2012,Required,Yes,Yes, 23*6c2c8528SSandrine Bailleux22,R,2.2,MISRA C 2012,Required,Yes,Yes, 24*6c2c8528SSandrine Bailleux23,R,2.3,MISRA C 2012,Advisory,Yes,Optional,It prevents the usage of CASSERT(). 25*6c2c8528SSandrine Bailleux24,R,2.4,MISRA C 2012,Advisory,No,No,Header files may use enumerations instead of defines to group sets of values. 26*6c2c8528SSandrine Bailleux25,R,2.5,MISRA C 2012,Advisory,No,No,We define many headers with macros that are unused in the project but may be used by non-upstream code or may be desirable for completeness. 27*6c2c8528SSandrine Bailleux26,R,2.6,MISRA C 2012,Advisory,Yes,Yes, 28*6c2c8528SSandrine Bailleux27,R,2.7,MISRA C 2012,Advisory,No,No,Doesn't allow for simple implementations of porting functions that don't require all parameters. 29*6c2c8528SSandrine Bailleux28,R,3.1,MISRA C 2012,Required,Yes,Yes, 30*6c2c8528SSandrine Bailleux29,R,3.2,MISRA C 2012,Required,Yes,Yes, 31*6c2c8528SSandrine Bailleux30,R,4.1,MISRA C 2012,Required,Yes,Yes, 32*6c2c8528SSandrine Bailleux31,R,4.2,MISRA C 2012,Advisory,Yes,Yes, 33*6c2c8528SSandrine Bailleux32,R,5.1,MISRA C 2012,Required,No,No,We use weak symbols that prevent us from complying with this rule. 34*6c2c8528SSandrine Bailleux33,R,5.2,MISRA C 2012,Required,Yes,Yes, 35*6c2c8528SSandrine Bailleux34,R,5.3,MISRA C 2012,Required,Yes,Yes, 36*6c2c8528SSandrine Bailleux35,R,5.4,MISRA C 2012,Required,Yes,Yes, 37*6c2c8528SSandrine Bailleux36,R,5.5,MISRA C 2012,Required,Yes,Yes, 38*6c2c8528SSandrine Bailleux37,R,5.6,MISRA C 2012,Required,Yes,Yes, 39*6c2c8528SSandrine Bailleux38,R,5.7,MISRA C 2012,Required,Yes,Optional,Fixing all existing defects is problematic because of compatibility issues. 40*6c2c8528SSandrine Bailleux39,R,5.8,MISRA C 2012,Required,No,No,We use weak symbols that prevent us from complying with this rule. 41*6c2c8528SSandrine Bailleux40,R,5.9,MISRA C 2012,Advisory,Yes,Yes, 42*6c2c8528SSandrine Bailleux41,R,6.1,MISRA C 2012,Required,Yes,Yes, 43*6c2c8528SSandrine Bailleux42,R,6.2,MISRA C 2012,Required,Yes,Yes, 44*6c2c8528SSandrine Bailleux43,R,7.1,MISRA C 2012,Required,Yes,Yes, 45*6c2c8528SSandrine Bailleux44,R,7.2,MISRA C 2012,Required,Yes,Yes, 46*6c2c8528SSandrine Bailleux45,R,7.3,MISRA C 2012,Required,Yes,Yes, 47*6c2c8528SSandrine Bailleux46,R,7.4,MISRA C 2012,Required,Yes,Yes, 48*6c2c8528SSandrine Bailleux47,R,8.1,MISRA C 2012,Required,Yes,Yes, 49*6c2c8528SSandrine Bailleux48,R,8.2,MISRA C 2012,Required,Yes,Yes, 50*6c2c8528SSandrine Bailleux49,R,8.3,MISRA C 2012,Required,Yes,Yes, 51*6c2c8528SSandrine Bailleux50,R,8.4,MISRA C 2012,Required,Yes,Yes, 52*6c2c8528SSandrine Bailleux51,R,8.5,MISRA C 2012,Required,Yes,Yes, 53*6c2c8528SSandrine Bailleux52,R,8.6,MISRA C 2012,Required,No,No,We use weak symbols that prevent us from complying with this rule. 54*6c2c8528SSandrine Bailleux53,R,8.7,MISRA C 2012,Advisory,No,No,"Bans pattern of declaring funcs in private header that are used/defined in separate translation units, which seems over the top." 55*6c2c8528SSandrine Bailleux54,R,8.8,MISRA C 2012,Required,Yes,Yes, 56*6c2c8528SSandrine Bailleux55,R,8.9,MISRA C 2012,Advisory,Yes,Yes, 57*6c2c8528SSandrine Bailleux56,R,8.10,MISRA C 2012,Required,Yes,Yes, 58*6c2c8528SSandrine Bailleux57,R,8.11,MISRA C 2012,Advisory,Yes,Optional,This may not be possible in some interfaces. 59*6c2c8528SSandrine Bailleux58,R,8.12,MISRA C 2012,Required,Yes,Yes, 60*6c2c8528SSandrine Bailleux59,R,8.13,MISRA C 2012,Advisory,Yes,Optional,The benefits of fixing existing code aren’t worth the effort. 61*6c2c8528SSandrine Bailleux60,R,8.14,MISRA C 2012,Required,Yes,Yes, 62*6c2c8528SSandrine Bailleux61,R,9.1,MISRA C 2012,Mandatory,Yes,Yes, 63*6c2c8528SSandrine Bailleux62,R,9.2,MISRA C 2012,Required,Yes,Yes, 64*6c2c8528SSandrine Bailleux63,R,9.3,MISRA C 2012,Required,Yes,Yes, 65*6c2c8528SSandrine Bailleux64,R,9.4,MISRA C 2012,Required,Yes,Yes, 66*6c2c8528SSandrine Bailleux65,R,9.5,MISRA C 2012,Required,Yes,Yes, 67*6c2c8528SSandrine Bailleux66,R,10.1,MISRA C 2012,Required,Yes,Optional,Fixing existing code may be counter-productive and introduce bugs. 68*6c2c8528SSandrine Bailleux67,R,10.2,MISRA C 2012,Required,Yes,Yes, 69*6c2c8528SSandrine Bailleux68,R,10.3,MISRA C 2012,Required,Yes,Optional,Fixing existing code may be counter-productive and introduce bugs. 70*6c2c8528SSandrine Bailleux69,R,10.4,MISRA C 2012,Required,Yes,Optional,Fixing existing code may be counter-productive and introduce bugs. 71*6c2c8528SSandrine Bailleux70,R,10.5,MISRA C 2012,Advisory,Yes,Yes, 72*6c2c8528SSandrine Bailleux71,R,10.6,MISRA C 2012,Required,Yes,Yes, 73*6c2c8528SSandrine Bailleux72,R,10.7,MISRA C 2012,Required,Yes,Yes, 74*6c2c8528SSandrine Bailleux73,R,10.8,MISRA C 2012,Required,Yes,Yes, 75*6c2c8528SSandrine Bailleux74,R,11.1,MISRA C 2012,Required,Yes,Yes, 76*6c2c8528SSandrine Bailleux75,R,11.2,MISRA C 2012,Required,Yes,Yes, 77*6c2c8528SSandrine Bailleux76,R,11.3,MISRA C 2012,Required,Yes,Yes, 78*6c2c8528SSandrine Bailleux77,R,11.4,MISRA C 2012,Advisory,No,No,This would be invasive for TF (e.g. in exported linker script macros). Also bans conversion from uintptr_t. 79*6c2c8528SSandrine Bailleux78,R,11.5,MISRA C 2012,Advisory,No,No,"This seems to preclude the pattern of using void * in interfaces to hide the real object, which we use extensively." 80*6c2c8528SSandrine Bailleux79,R,11.6,MISRA C 2012,Required,Yes,Optional,This is needed in several cases. 81*6c2c8528SSandrine Bailleux80,R,11.7,MISRA C 2012,Required,Yes,Yes, 82*6c2c8528SSandrine Bailleux81,R,11.8,MISRA C 2012,Required,Yes,Yes, 83*6c2c8528SSandrine Bailleux82,R,11.9,MISRA C 2012,Required,Yes,Yes, 84*6c2c8528SSandrine Bailleux83,R,12.1,MISRA C 2012,Advisory,Yes,Yes, 85*6c2c8528SSandrine Bailleux84,R,12.2,MISRA C 2012,Required,Yes,Yes,"This rule is fine, but there are lots of false positives in Coverity." 86*6c2c8528SSandrine Bailleux85,R,12.3,MISRA C 2012,Advisory,Yes,Yes, 87*6c2c8528SSandrine Bailleux86,R,12.4,MISRA C 2012,Advisory,Yes,Yes, 88*6c2c8528SSandrine Bailleux87,R,12.5,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 89*6c2c8528SSandrine Bailleux88,R,13.1,MISRA C 2012,Required,Yes,Yes, 90*6c2c8528SSandrine Bailleux89,R,13.2,MISRA C 2012,Required,Yes,Yes, 91*6c2c8528SSandrine Bailleux90,R,13.3,MISRA C 2012,Advisory,Yes,Yes, 92*6c2c8528SSandrine Bailleux91,R,13.4,MISRA C 2012,Advisory,Yes,Yes, 93*6c2c8528SSandrine Bailleux92,R,13.5,MISRA C 2012,Required,Yes,Yes, 94*6c2c8528SSandrine Bailleux93,R,13.6,MISRA C 2012,Mandatory,Yes,Yes, 95*6c2c8528SSandrine Bailleux94,R,14.1,MISRA C 2012,Required,Yes,Yes, 96*6c2c8528SSandrine Bailleux95,R,14.2,MISRA C 2012,Required,Yes,Yes, 97*6c2c8528SSandrine Bailleux96,R,14.3,MISRA C 2012,Required,Yes,Yes, 98*6c2c8528SSandrine Bailleux97,R,14.4,MISRA C 2012,Required,Yes,Yes, 99*6c2c8528SSandrine Bailleux98,R,15.1,MISRA C 2012,Advisory,No,No,In some cases goto may be useful for readability. 100*6c2c8528SSandrine Bailleux99,R,15.2,MISRA C 2012,Required,Yes,Yes, 101*6c2c8528SSandrine Bailleux100,R,15.3,MISRA C 2012,Required,Yes,Yes, 102*6c2c8528SSandrine Bailleux101,R,15.4,MISRA C 2012,Advisory,Yes,Yes, 103*6c2c8528SSandrine Bailleux102,R,15.5,MISRA C 2012,Advisory,No,No,This has no real value. It may make code less understandable than before. 104*6c2c8528SSandrine Bailleux103,R,15.6,MISRA C 2012,Required,No,No,This directly contradicts the Linux style guidelines and would require many changes. We would have to remove that rule from checkpatch. 105*6c2c8528SSandrine Bailleux104,R,15.7,MISRA C 2012,Required,Yes,Yes, 106*6c2c8528SSandrine Bailleux105,R,16.1,MISRA C 2012,Required,No,No,Cannot comply with this unless we comply with 16.3 107*6c2c8528SSandrine Bailleux106,R,16.2,MISRA C 2012,Required,Yes,Yes, 108*6c2c8528SSandrine Bailleux107,R,16.3,MISRA C 2012,Required,No,No,Returns within switch statements and fall-throughs can improve readability. 109*6c2c8528SSandrine Bailleux108,R,16.4,MISRA C 2012,Required,Yes,Yes, 110*6c2c8528SSandrine Bailleux109,R,16.5,MISRA C 2012,Required,Yes,Yes, 111*6c2c8528SSandrine Bailleux110,R,16.6,MISRA C 2012,Required,Yes,Yes, 112*6c2c8528SSandrine Bailleux111,R,16.7,MISRA C 2012,Required,Yes,Yes, 113*6c2c8528SSandrine Bailleux112,R,17.1,MISRA C 2012,Required,No,No,This is needed for printf. 114*6c2c8528SSandrine Bailleux113,R,17.2,MISRA C 2012,Required,Yes,Yes,Bans recursion. We consider it acceptable if the max depth is known. 115*6c2c8528SSandrine Bailleux114,R,17.3,MISRA C 2012,Mandatory,Yes,Yes, 116*6c2c8528SSandrine Bailleux115,R,17.4,MISRA C 2012,Mandatory,Yes,Yes, 117*6c2c8528SSandrine Bailleux116,R,17.5,MISRA C 2012,Advisory,Yes,Yes, 118*6c2c8528SSandrine Bailleux117,R,17.6,MISRA C 2012,Mandatory,Yes,Yes, 119*6c2c8528SSandrine Bailleux118,R,17.7,MISRA C 2012,Required,Yes,Optional,In some cases it doesn’t add any value to the code (like with memset() or printf()). 120*6c2c8528SSandrine Bailleux119,R,17.8,MISRA C 2012,Advisory,Yes,Optional,It would make some one-line functions grow in size for no reason. 121*6c2c8528SSandrine Bailleux120,R,18.1,MISRA C 2012,Required,Yes,Yes, 122*6c2c8528SSandrine Bailleux121,R,18.2,MISRA C 2012,Required,Yes,Yes, 123*6c2c8528SSandrine Bailleux122,R,18.3,MISRA C 2012,Required,Yes,Yes, 124*6c2c8528SSandrine Bailleux123,R,18.4,MISRA C 2012,Advisory,Yes,Yes, 125*6c2c8528SSandrine Bailleux124,R,18.5,MISRA C 2012,Advisory,Yes,Yes, 126*6c2c8528SSandrine Bailleux125,R,18.6,MISRA C 2012,Required,Yes,Yes, 127*6c2c8528SSandrine Bailleux126,R,18.7,MISRA C 2012,Required,Yes,Yes, 128*6c2c8528SSandrine Bailleux127,R,18.8,MISRA C 2012,Required,Yes,Yes, 129*6c2c8528SSandrine Bailleux128,R,19.1,MISRA C 2012,Mandatory,Yes,Yes, 130*6c2c8528SSandrine Bailleux129,R,19.2,MISRA C 2012,Advisory,Yes,Optional,"Unions can be useful. We almost don’t use them, so it’s ok." 131*6c2c8528SSandrine Bailleux130,R,20.1,MISRA C 2012,Advisory,Yes,Optional,In some files we have assembly-compatible includes followed by assembly-compatible definitions followed by C includes and C declarations. This is done to not have #ifdef in the include list. 132*6c2c8528SSandrine Bailleux131,R,20.2,MISRA C 2012,Required,Yes,Yes, 133*6c2c8528SSandrine Bailleux132,R,20.3,MISRA C 2012,Required,Yes,Yes, 134*6c2c8528SSandrine Bailleux133,R,20.4,MISRA C 2012,Required,Yes,Yes, 135*6c2c8528SSandrine Bailleux134,R,20.5,MISRA C 2012,Advisory,Yes,Yes, 136*6c2c8528SSandrine Bailleux135,R,20.6,MISRA C 2012,Required,Yes,Yes, 137*6c2c8528SSandrine Bailleux136,R,20.7,MISRA C 2012,Required,Yes,Yes, 138*6c2c8528SSandrine Bailleux137,R,20.8,MISRA C 2012,Required,Yes,Optional,We need a new configuration system to fix all defects. 139*6c2c8528SSandrine Bailleux138,R,20.9,MISRA C 2012,Required,Yes,Optional,"We use a mix of #if and #ifdef for boolean macros, which may raise some failures here. We should consistently use one or the other" 140*6c2c8528SSandrine Bailleux139,R,20.10,MISRA C 2012,Advisory,Yes,Optional,"It’s good to avoid them, but they are sometimes needed." 141*6c2c8528SSandrine Bailleux140,R,20.11,MISRA C 2012,Required,Yes,Yes, 142*6c2c8528SSandrine Bailleux141,R,20.12,MISRA C 2012,Required,Yes,Yes, 143*6c2c8528SSandrine Bailleux142,R,20.13,MISRA C 2012,Required,Yes,Yes, 144*6c2c8528SSandrine Bailleux143,R,20.14,MISRA C 2012,Required,Yes,Yes, 145*6c2c8528SSandrine Bailleux144,R,21.1,MISRA C 2012,Required,Yes,Yes, 146*6c2c8528SSandrine Bailleux145,R,21.2,MISRA C 2012,Required,Yes,Yes, 147*6c2c8528SSandrine Bailleux146,R,21.3,MISRA C 2012,Required,Yes,Yes, 148*6c2c8528SSandrine Bailleux147,R,21.4,MISRA C 2012,Required,Yes,Yes, 149*6c2c8528SSandrine Bailleux148,R,21.5,MISRA C 2012,Required,Yes,Yes, 150*6c2c8528SSandrine Bailleux149,R,21.6,MISRA C 2012,Required,No,No,This bans printf. 151*6c2c8528SSandrine Bailleux150,R,21.7,MISRA C 2012,Required,Yes,Yes, 152*6c2c8528SSandrine Bailleux151,R,21.8,MISRA C 2012,Required,Yes,Yes, 153*6c2c8528SSandrine Bailleux152,R,21.9,MISRA C 2012,Required,Yes,Yes, 154*6c2c8528SSandrine Bailleux153,R,21.10,MISRA C 2012,Required,Yes,Yes, 155*6c2c8528SSandrine Bailleux154,R,21.11,MISRA C 2012,Required,Yes,Yes, 156*6c2c8528SSandrine Bailleux155,R,21.12,MISRA C 2012,Advisory,Yes,Yes, 157*6c2c8528SSandrine Bailleux156,R,21.13,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 158*6c2c8528SSandrine Bailleux157,R,21.14,MISRA C 2012 AMD-1,Required,Yes,Yes, 159*6c2c8528SSandrine Bailleux158,R,21.15,MISRA C 2012 AMD-1,Required,Yes,Yes, 160*6c2c8528SSandrine Bailleux159,R,21.16,MISRA C 2012 AMD-1,Required,Yes,Yes, 161*6c2c8528SSandrine Bailleux160,R,21.17,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 162*6c2c8528SSandrine Bailleux161,R,21.18,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 163*6c2c8528SSandrine Bailleux162,R,21.19,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 164*6c2c8528SSandrine Bailleux163,R,21.20,MISRA C 2012 AMD-1,Mandatory,Yes,Yes, 165*6c2c8528SSandrine Bailleux164,R,22.1,MISRA C 2012,Required,Yes,Yes, 166*6c2c8528SSandrine Bailleux165,R,22.2,MISRA C 2012,Mandatory,Yes,Yes, 167*6c2c8528SSandrine Bailleux166,R,22.3,MISRA C 2012,Required,Yes,Yes, 168*6c2c8528SSandrine Bailleux167,R,22.4,MISRA C 2012,Mandatory,Yes,Yes, 169*6c2c8528SSandrine Bailleux168,R,22.5,MISRA C 2012,Mandatory,Yes,Yes, 170*6c2c8528SSandrine Bailleux169,R,22.6,MISRA C 2012,Mandatory,Yes,Yes, 171*6c2c8528SSandrine Bailleux170,R,22.7,MISRA C 2012 AMD-1,Required,Yes,Yes, 172*6c2c8528SSandrine Bailleux171,R,22.8,MISRA C 2012 AMD-1,Required,Yes,Yes, 173*6c2c8528SSandrine Bailleux172,R,22.9,MISRA C 2012 AMD-1,Required,Yes,Yes, 174*6c2c8528SSandrine Bailleux173,R,22.10,MISRA C 2012 AMD-1,Required,Yes,Yes, 175