LDRATestbedC++编码规则列表.docx
《LDRATestbedC++编码规则列表.docx》由会员分享,可在线阅读,更多相关《LDRATestbedC++编码规则列表.docx(54页珍藏版)》请在冰豆网上搜索。
LDRATestbedC++编码规则列表
LDRATestbed
C++编码规则列表
1过程名被重用
1SProcedurenamereused.801MISRA-C25.2MISRA/DERA21
2标号名被重用
2SLabelnamereused.MISRA/DERA12
3文件中可执行格式化代码行超过***行
3SMorethan***executablereformattedlinesinfile.EADS-C4
4程序格式化代码行超过***行
4SProcedureexceeds***reformattedlines.
5then语句为空
5SEmptythenclause.DERA141
6声明函数指针
6SProcedurepointerdeclared.
7跳出程序体
7SJumpoutofprocedure.
8else语句为空
8SEmptyelseclause.
9在非赋值表达式中出现了赋值操作符
9SAssignmentoperationinexpression.MISRA/DERA33,35,40,46EADS-C166,167
10未使用
10SNotused
11循环体没有用大括号括起来
11SNobracketstoloopbody(addedbyTestbed).MISRA/DERA59MISRA-C214.8EADS-C145,165,166,167
12then/else中的语句没有用大括号括起来
12SNobracketstothen/else(addedbyTestbed).MISRA/DERA59MISRA-C214.9EADS-C145
13使用goto语句
13Sgotodetected.MISRA/DERA56MISRA-C214.4EADS-C119
14将过程定义为参数
14SProceduralparameterdeclared.DERA149
15结构体定义中含有空域
15SAnonymousfieldtostructure.MISRA/DERA108,113
16声明多重标号
16SMultiplelabelsdeclared.
17内嵌使用汇编代码
17SCodeinsertfound.MISRA/DERA3
18函数参数超过***个
18SMorethan***parametersinprocedure.
19未被调用的函数使用函数作为参数
19SProceduralparausedinanuncalledprocedure.
20参数未使用类型声明
20SParameternotdeclaredexplicitly.
21未使用
21SNotinuse.
22使用一些模糊的语句(如=+,=-)
22SUseofobsoletelanguagefeature(use=-)MISRA/DERA1DERA137
23函数未被调用
23SProcedureisnotcalledintextanalysed.
24使用让工具不进行分析的注释/*LDRA_NOANALYSIS*/
24SUseofNoanalysisannotation.
25casw语句为空
25SNullcase(s)inswitchstatement.
26使用无限循环
26SInfiniteloopused.DERA142EADS-C133
27返回类型为VOID的函数有return语句
27SVOIDprocedurewithreturnstatement.MISRA/DERA84EADS-C112
28继承类中复用基类
28SDuplicatedBaseClassesinaDerivedclass.
29使用-=或+=操作符
29SUseof+=or-=operatorsfound.
30使用++或者—操作符
30SDeprecatedusageof++or--operatorsfound.MISRA/DERA33,46MISRA-C212.13
31在循环中使用break语句
31SUseofbreakstatementinloop.MISRA/DERA58MISRA-C214.6EADS-C120
32使用continue语句
32SUseofcontinuestatement.MISRA/DERA57MISRA-C214.5EADS-C119
33使用三重表达式
33SUseofternaryexpressionfound.EADS-C134
34对过程的声明中未对参数进行说明
34SNoparametersdeclaredinprocspecification.
35圈复杂度大于***
1CCyclomaticcomplexitygreaterthan***.
36过程不是单纯的顺序嵌套循环
2CProcedureisnotreducibleintermsofintervals.
37函数包含基本结点
3CProcedurecontainsessentialknots.
38函数非结构化
4CProcedureisnotstructured.
39函数包含无限循环
5CProcedurecontainsinfiniteloop.DERA142
40未使用的函数参数
1DUnusedprocedureparameter.
41函数不是所有的路径上都有返回值
2DFunctiondoesnotreturnavalueonallpaths.MISRA/DERA75MISRA-C216.8
42函数的实参是全局变量
3DActualparameterisalsoglobaltoprocedure.DERA148
43代码中有多余变量
4DVariablesdeclaredbutnotusedincodeanalysed.DERA143
44存在UR(变量未赋初值就引用)数据流异常
5DURdataflowanomaliesfound.MISRA/DERA30MISRA-C29.1
45使用函数递归调用
6DRecursioninprocedurecallsfound.MISRA/DERA70MISRA-C216.2EADS-C117
46存在DU(定义后未引用就退出作用域)数据流异常
7DDUdataflowanomaliesfound.
47存在DD(定义后未被引用就被再定义)数据流异常
8DDDdataflowanomaliesfound.
48被定义的参数可能存在ClearPath
9DDefinedparameterhaspossibleclearpath.DERA151
49在函数内部使用全局变量
10DGlobalsusedinsideprocedure.
50参数与期望的作用不匹配
11DParametersdonotmatchexpectedactions.
51被引用的变量可能存在ClearPath
12DReferencedparameterhaspossibleclearpath.
52函数中全局变量使用与局部变量作用类似
13DGlobalusedinprocedurematcheslocalparameter.
53改变变量已被传递的值
14DAttempttochangeparameterpassedbyvalue.DERA152
54存在未被使用的过程参数
15DUnusedproceduralparameter.
55函数调用中存在相同的实参
16DIdenticalactualparametersincallDERA153
56局部变量对结果没有意义
1ILocalvariablescontributenothingtoresults.
57函数有多入口
6CProcedurehasmorethanoneentrypoint.
58函数有多出口
7CProcedurehasmorethanoneexitpoint.MISRA/DERA82MISRA-C214.7EADS-C111
59静态过程没有被调用
35SStaticProcedureisnotcalledintextanalysed.
60函数没有返回语句
36SFunctionhasnoreturnstatement.MISRA/DERA75MISRA-C216.8
61过程参数只有类型没有标识符
37SProcedureParameterhasatypebutnoidentifier.MISRA/DERA73MISRA-C216.3
62使用静态类成员
38SUseofStaticclassmember.
63使用不恰当的循环变量类型
39SUnsuitabletypeforloopvariable.MISRA/DERA65MISRA-C213.4
64循环变量必须是局部的
40SLoopindexisnotdeclaredlocally.
65在函数参数表中使用省略号
41SEllipsisusedinprocedureparameterlist.MISRA/DERA69MISRA-C216.1
66在结构体定义中使用位域
42SUseofbitfieldinstructuredeclaration.MISRA/DERA111MISRA-C23.5
67使用setjmp/longjmp
43SUseofsetjmp/longjmp.MISRA/DERA122AV20MISRA-C220.7
68使用禁用的过程,函数,文件或名称
44SUseofbannedfunctionorvariable.MISRA/DERA118AV17,18,19,21,22,23,24,25MISRA
69未使用
45SNotinuse.
71数组越界
47SArrayBoundexceeded.MISRA/DERA4
72在switch语句中没有default语句
48SNodefaultcaseinswitchstatement.MISRA/DERA62AV194,196MISRA-C215.3EADS-C1
74对有符号类型进行移位操作
50SUseofshiftoperatoronsignedtype.MISRA/DERA37
75移位运算溢出
51SShiftingvaluetoofar.MISRA/DERA38AV164MISRA-C212.8
76禁止给无符号变量赋负值
52SUnsignedexpressionnegated.MISRA/DERA39AV165MISRA-C212.9
77使用逗号操作符
53SUseofcommaoperator.MISRA/DERA42AV168MISRA-C212.10
78长度操作符sizeof的副作用
54SSizeofoperatorwithsideeffects.MISRA/DERA40AV166MISRA-C212.3
80禁止对实数类型的变量做相等比较操作
56SEqualitycomparisonoffloatingpoint.MISRA/DERA50AV202MISRA-C213.3EADS-C102
81使用不起作用的语句
57SStatementwithnosideeffect.MISRA/DERA53AV187MISRA-C214.2
82存在空语句
58SNullstatementfound.MISRA/DERA54
83if语句中没有else分支
59SElsealternativemissinginif.MISRA/DERA60AV192MISRA-C214.10
84禁止switch语句为空
60SEmptyswitchstatement.MISRA/DERA64AV64
85switch语句中只包含default
61SSwitchcontainsdefaultonly.MISRA/DERA64AV64MISRA-C215.5
86switch语句中的case语句没有由break语句来终止
62SSwitchCasenotterminatedwithbreak.MISRA/DERA61AV193MISRA-C215.215.5EADS-C
87过程/函数的参数表为空
63SEmptyparameterlisttoprocedure/function.MISRA/DERA76MISRA-C216.5EADS-C109
88返回类型为void的的过程出现在表达式中
64SVoidprocedureusedinexpression.MISRA/DERA79
89void类型的变量作为参数进行传递
65SVoidvariablepassedasparameter.MISRA/DERA80
90函数中只有return语句没有返回值
66SFunctionwithemptyreturnexpression.MISRA/DERA83MISRA-C216.8
93使用#pragma
69S#pragmaused.MISRA/DERA99AV26MISRA-C23.4
95指针指向比分配更大的范围
71SPointerassignmenttowiderscope.MISRA/DERA106AV111,173MISRA-C217.6
96有符号的位域少于2个比特位的空间
72SSignedbitfieldlessthan2bitswide.MISRA/DERA111,112MISRA-C26.5
97位域既不是有符号的整型也不是无符号的整型
73SBitfieldnotsignedorunsignedint.MISRA/DERA111MISRA-C26.4
98声明联合
74SUniondeclared.MISRA/DERA109,110DERA164AV153MISRA-C218
99在头文件前有可执行代码
75SExecutablecodebeforeanincludedfile.MISRA/DERA87MISRA-C219.1
100宏中使用了多个#和##
76SMorethanoneof#or##inamacro.MISRA/DERA98MISRA-C219.12
103禁止定义不像函数的宏
79SMacrocontainsunacceptableitemsMISRA/DERA90DERA157MISRA-C219.4EADS-C++4
104指针的指针超过两级
80SPointerindirectionexceeds2levels.MISRA/DERA102AV169,170MISRA-C217.5
105使用三字母词
81SUseoftrigraphs.MISRA/DERA7AV11MISRA-C24.2EADS-C++52
106使用wchar_t类型
82SUseofwidestringliteral.MISRA/DERA8AV13
107使用八进制数
83SOctalnumberfound.MISRA/DERA19AV149MISRA-C27.1
108使用寄存器变量
84SRegistervariabledeclared.MISRA/DERA28AV140
109枚举元素的初始化不完整
85SIncompleteinitialisationofenumerator.MISRA/DERA32AV145MISRA-C29.3EADS-C81EAD
110重新定义保留字
86SAttempttodefinereservedword.MISRA/DERA114MISRA-C220.1
111用指针进行代数运算
87SUseofpointerarithmetic.MISRA/DERA101AV215MISRA-C217.117.4
112嵌入汇编程序时,嵌入的过程不是纯汇编程序
88SProcedureisnotpureassembler.MISRA/DERA3MISRA-C22.1
113字符类型没有标明是有符号还是无符号
89Schartypenotsignedorunsigned.MISRA/DERA14
115对变量重命名
91SNameredeclaredinanothernamespace(MR).MISRA/DERA12801MISRA-C25.6EADS-C53
116在枚举中重复使用一个名字
92SDuplicateuseofanameinanenumeration.MISRA/DERA12801MISRA-C25.2
117未使用
93SNotinuseMISRA/DERA18,48MISRA-C26.1
118对指针变量使用强制类型转换
94SCastingoperationonapointer.MISRA/DERA45AV182MISRA-C211.211.311.4EA
119对其它类型变量强制转换成指针变量
95SCastingoperationtoapointer.MISRA/DERA45AV182MISRA-C211.4EADS-C++28
122未使用
98SNotused.MISRA-C216.6
123非调用的方式使用函数
99SFunctionuseisnotacall.MISRA/DERA85
124未使用
100SNotused.MISRA-C219.2
125函数返回类型不一致
101SFunctionreturntypeinconsistent.MISRA/DERA83iii801
126函数和函数的原型的返回不一致
102SFunctionandprototypereturninconsistent(MR).MISRA/DERA72MISRA-C28.3
127函数和函数的原型的形参不一致
103SFunctionandprototypeparaminconsistent(MR).MISRA/DERA72,26MISRA-C28.4
128结构体变量的初始化类型不一致
104SStructfieldinitialisationincorrect.MISRA/DERA31
129结构体变量初始化的嵌套结构不一致
105SStructfieldinitialisationbracefault.MISRA/DERA29AV144MISRA-C29.2
130标识符超出***字符
17DIdentifiernotuniquewithin***characters.MISRA/DERA11AV46MISRA-C21.45.1
131标识符名称重用
18DIdentifiernamereusedMISRA/DERA12AV135MISRA-C25.5
132过程在被定义前调用
19DProcedurecalledbeforebeingdefined.MISRA/DERA20,71
133变量在使用前没有被声明
20DNodeclarationforvariablefoundbeforeuse.MISRA/DERA20
134过程的声明在模块的内部
21DProceduredeclaredininnerblockMISRA/DERA68
135函数存在全局变量的副作用
22DFunctionhasglobalvariablesideeffectsMISRA/DERA33,46MISRA-C212.4
136函数存在形参的副作用
23DFunctionhasparametersideeffectsMISRA/DERA33,46
137函数没有定义原型
24DProceduredefinitionhasnoassociatedprototypeMISRA/DERA71MISRA-C28.1EADS-C107,118
138变量的范围可以减少
25DScopeofvariablecouldbereducedMISRA/DERA22MISRA-C28.7
139变量