23.LDRA_Testbed_C++编码规则列表1.0(5)

2019-05-24 09:32

Testbed 术语表 33 34 35 36

使用三重表达式

对过程的声明中未对参数进行说明 圈复杂度大于***

过程不是单纯的顺序嵌套循环 函数包含基本结点 函数非结构化 函数包含无限循环 未使用的函数参数

函数不是所有的路径上都有返回值 函数的实参是全局变量 代码中有多余变量

存在UR(变量未赋初值就引用)数据流异常 使用函数递归调用

33 S Use of ternary expression found. EADS-C 134

34 S No parameters declared in proc specification.

1 C Cyclomatic complexity greater than ***.

2 C Procedure is not reducible in terms of intervals.

37 38 39 40 41 42 43 44 45

3 C Procedure contains essential knots.

4 C Procedure is not structured.

5 C Procedure contains infinite loop. DERA 142

1 D Unused procedure parameter.

2 D Function does not return a value on all paths. MISRA/DERA 75 MISRA-C2 16.8

3 D Actual parameter is also global to procedure. DERA 148

4 D Variables declared but not used in code analysed. DERA 143

5 D UR data flow anomalies found. MISRA/DERA 30 MISRA-C2 9.1

6 D Recursion in procedure calls found. MISRA/DERA 70 MISRA-C2 16.2 EADS-C 117

46 47 48 49

存在DU(定义后未引用就退出作用域)数据流异常 存在DD(定义后未被引用就被再定义)数据流异常 被定义的参数可能存在Clear Path 在函数内部使用全局变量

7 D DU data flow anomalies found.

8 D DD data flow anomalies found.

9 D Defined parameter has possible clear path. DERA 151

10 D Globals used inside procedure.

上海创景计算机系统有限公司 3 Testbed 术语表 50 51 52 53 54 55 56 57 58

参数与期望的作用不匹配

被引用的变量可能存在Clear Path 函数中全局变量使用与局部变量作用类似 改变变量已被传递的值 存在未被使用的过程参数 函数调用中存在相同的实参 局部变量对结果没有意义 函数有多入口 函数有多出口

11 D Parameters do not match expected actions.

12 D Referenced parameter has possible clear path.

13 D Global used in procedure matches local parameter.

14 D Attempt to change parameter passed by value. DERA 152

15 D Unused procedural parameter.

16 D Identical actual parameters in call DERA 153

1 I Local variables contribute nothing to results.

6 C Procedure has more than one entry point.

7 C Procedure has more than one exit point. MISRA/DERA 82 MISRA-C2 14.7 EADS-C 111

59 60 61 62 63 64 65 66

静态过程没有被调用 函数没有返回语句

过程参数只有类型没有标识符 使用静态类成员

使用不恰当的循环变量类型 循环变量必须是局部的 在函数参数表中使用省略号 在结构体定义中使用位域

35 S Static Procedure is not called in text analysed.

36 S Function has no return statement. MISRA/DERA 75 MISRA-C2 16.8

37 S Procedure Parameter has a type but no identifier. MISRA/DERA 73 MISRA-C2 16.3

38 S Use of Static class member.

39 S Unsuitable type for loop variable. MISRA/DERA 65 MISRA-C2 13.4

40 S Loop index is not declared locally.

41 S Ellipsis used in procedure parameter list. MISRA/DERA 69 MISRA-C2 16.1

42 S Use of bit field in structure declaration. MISRA/DERA 111 MISRA-C2 3.5

上海创景计算机系统有限公司 4 Testbed 术语表 67 68

使用setjmp/longjmp

使用禁用的过程,函数,文件或名称

43 S Use of setjmp/longjmp. MISRA/DERA 122 AV 20 MISRA-C2 20.7

44 S Use of banned function or variable. MISRA/DERA 118 AV 17,18,19,21,22,23,24,25 MISRA

69 71 72

未使用 数组越界

在switch语句中没有default 语句

45 S Not in use.

47 S Array Bound exceeded. MISRA/DERA 4

48 S No default case in switch statement. MISRA/DERA 62 AV 194,196 MISRA-C2 15.3 EADS-C 1

74 75 76

对有符号类型进行移位操作 移位运算溢出

禁止给无符号变量赋负值

50 S Use of shift operator on signed type. MISRA/DERA 37

51 S Shifting value too far. MISRA/DERA 38 AV 164 MISRA-C2 12.8

52 S Unsigned expression negated. MISRA/DERA 39 AV 165 MISRA-C2 12.9

77 使用逗号操作符

53 S Use of comma operator. MISRA/DERA 42 AV 168 MISRA-C2 12.10

78 长度操作符sizeof的副作用

54 S Sizeof operator with side effects. MISRA/DERA 40 AV 166 MISRA-C2 12.3

80 禁止对实数类型的变量做相等比较操作

56 S Equality comparison of floating point. MISRA/DERA 50 AV 202 MISRA-C2 13.3 EADS-C 102 81 使用不起作用的语句

57 S Statement with no side effect. MISRA/DERA 53 AV 187 MISRA-C2 14.2 82 存在空语句

58 S Null statement found. MISRA/DERA 54 83 if语句中没有else分支

59 S Else alternative missing in if. MISRA/DERA 60 AV 192 MISRA-C2 14.10 84 禁止switch语句为空

60 S Empty switch statement. MISRA/DERA 64 AV 64 85 switch语句中只包含default

61 S Switch contains default only. MISRA/DERA 64 AV 64 MISRA-C2 15.5

上海创景计算机系统有限公司 5 Testbed 术语表 86 switch语句中的case语句没有由break语句来终止

62 S Switch Case not terminated with break. MISRA/DERA 61 AV 193 MISRA-C2 15.2 15.5 EADS-C 87 过程/函数的参数表为空

63 S Empty parameter list to procedure/function. MISRA/DERA 76 MISRA-C2 16.5 EADS-C 109 88 返回类型为void的的过程出现在表达式中

64 S Void procedure used in expression. MISRA/DERA 79 89 void类型的变量作为参数进行传递

65 S Void variable passed as parameter. MISRA/DERA 80 90 函数中只有return语句没有返回值

66 S Function with empty return expression. MISRA/DERA 83 MISRA-C2 16.8 93 使用#pragma

69 S #pragma used. MISRA/DERA 99 AV 26 MISRA-C2 3.4 95 指针指向比分配更大的范围

71 S Pointer assignment to wider scope. MISRA/DERA 106 AV 111,173 MISRA-C2 17.6 96 有符号的位域少于2个比特位的空间

72 S Signed bit field less than 2 bits wide. MISRA/DERA 111, 112 MISRA-C2 6.5 97 位域既不是有符号的整型也不是无符号的整型

73 S Bit field not signed or unsigned int. MISRA/DERA 111 MISRA-C2 6.4 98 声明联合

74 S Union declared. MISRA/DERA 109, 110 DERA 164 AV 153 MISRA-C2 18 99 在头文件前有可执行代码

75 S Executable code before an included file. MISRA/DERA 87 MISRA-C2 19.1

100 宏中使用了多个#和##

76 S More than one of # or ## in a macro. MISRA/DERA 98 MISRA-C2 19.12

103 禁止定义不像函数的宏

79 S Macro contains unacceptable items MISRA/DERA 90 DERA 157 MISRA-C2 19.4 EADS-C++ 4

104 指针的指针超过两级

80 S Pointer indirection exceeds 2 levels. MISRA/DERA 102 AV 169,170 MISRA-C2 17.5

105 使用三字母词

81 S Use of trigraphs. MISRA/DERA 7 AV 11 MISRA-C2 4.2 EADS-C++ 52

上海创景计算机系统有限公司 6 Testbed 术语表 106 使用wchar_t类型

82 S Use of wide string literal. MISRA/DERA 8 AV 13

107 使用八进制数

83 S Octal number found. MISRA/DERA 19 AV 149 MISRA-C2 7.1

108 使用寄存器变量

84 S Register variable declared. MISRA/DERA 28 AV 140

109 枚举元素的初始化不完整

85 S Incomplete initialisation of enumerator. MISRA/DERA 32 AV 145 MISRA-C2 9.3 EADS-C 81 EAD

110 重新定义保留字

86 S Attempt to define reserved word. MISRA/DERA 114 MISRA-C2 20.1

111 用指针进行代数运算

87 S Use of pointer arithmetic. MISRA/DERA 101 AV 215 MISRA-C2 17.1 17.4

112 嵌入汇编程序时,嵌入的过程不是纯汇编程序

88 S Procedure is not pure assembler. MISRA/DERA 3 MISRA-C2 2.1

113 字符类型没有标明是有符号还是无符号

89 S char type not signed or unsigned. MISRA/DERA 14

115 对变量重命名

91 S Name redeclared in another namespace (MR). MISRA/DERA 12 801 MISRA-C2 5.6 EADS-C 53

116 在枚举中重复使用一个名字

92 S Duplicate use of a name in an enumeration. MISRA/DERA 12 801 MISRA-C2 5.2

117 未使用

93 S Not in use MISRA/DERA 18, 48 MISRA-C2 6.1

118 对指针变量使用强制类型转换

94 S Casting operation on a pointer. MISRA/DERA 45 AV 182 MISRA-C2 11.2 11.3 11.4 EA

119 对其它类型变量强制转换成指针变量

95 S Casting operation to a pointer. MISRA/DERA 45 AV 182 MISRA-C2 11.4 EADS-C++ 28

122 未使用

98 S Not used. MISRA-C2 16.6

123 非调用的方式使用函数

99 S Function use is not a call. MISRA/DERA 85

124 未使用

100 S Not used. MISRA-C2 19.2

上海创景计算机系统有限公司 7


23.LDRA_Testbed_C++编码规则列表1.0(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省潍坊市2015届高三高考模拟训练(一)语文试题 Word版含资

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: