391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418
SWITCH有多个DEFAULT ...............................................................................................................24 宏调用时,参数个数不正确 .................................................................................................................24 标记符使用不一致...................................................................................................................................24 声明变量缺少变量类型..........................................................................................................................24 结构成员名称重用...................................................................................................................................24 在位域结构中存在非位域成员 ............................................................................................................24 无格式字符操作不当 ..............................................................................................................................24 存在潜在的类型转换 ..............................................................................................................................24 字面值需要一个U后缀 .........................................................................................................................25 强制扩展复杂的整型表达式 .................................................................................................................25 强制扩展复杂的浮点型表达式 ............................................................................................................25 当”~”或“<<”操作符应用于小类型时,没有强制转换 .............................................................25 被定义的操作符包含非法项 .................................................................................................................25 #IF扩展包含DEFINE操作符.............................................................................................................25 在#IF中使用未定义的宏变量..............................................................................................................25 #INCLUDE之前有非预处理指示.......................................................................................................25 #INCLUDE 带有非法项 ........................................................................................................................25 像使用宏一样使用函数..........................................................................................................................25 预处理程序构造作为宏参数 .................................................................................................................25 在预处理程序之后有额外的字符 ........................................................................................................25 在同一个文件中#ELSE没有#IF .........................................................................................................25 强制转换VOLATILE 型的值 .............................................................................................................25 位操作带有浮点操作数..........................................................................................................................25 位域既不是整型也不是枚举类型 ........................................................................................................25 宏参数列表有主要的间隔 .....................................................................................................................25 使用NULL宏...........................................................................................................................................26 枚举变量不全是小写的..........................................................................................................................26 常量不全是小写的...................................................................................................................................26
Testbed 术语表 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446
类型声明带有变量定义..........................................................................................................................26 不在头文件中声明类型..........................................................................................................................26 内存没有被释放 .......................................................................................................................................26 从释放内存读数据...................................................................................................................................26 内联函数多于***条语句........................................................................................................................26 外部声明不在头文件中..........................................................................................................................26 变量名不超过***个字符........................................................................................................................26 声明指针的指针 .......................................................................................................................................26 基类有虚基类和非虚基类 .....................................................................................................................26 类的成员名重用 .......................................................................................................................................26 使用缺省参数............................................................................................................................................26 矛盾的类型 ................................................................................................................................................26 表达式需要括号 .......................................................................................................................................26 命名空间里存在MAIN函数 ................................................................................................................26 成员变量不是用“=”赋值 ...................................................................................................................27 未使用 .........................................................................................................................................................27 继承类对缺省的参数重定义 .................................................................................................................27 十六进制数用大写字符..........................................................................................................................27 字符串的延续使用“” ..............................................................................................................................27 宏的延续使用“” .......................................................................................................................................27 PRAGMA的延续使用“”.......................................................................................................................27 变量名称的长度大于***........................................................................................................................27 IF嵌套深度大于***................................................................................................................................27 参数列表中的逗号之后没有空格间隔 ...............................................................................................27 “*”/“&”没有和变量名称连在一起 ...................................................................................................27 使用整数除法............................................................................................................................................27 变量名称与类型冲突 ..............................................................................................................................27 使用八进制的出口顺序..........................................................................................................................27
上海创景计算机系统有限公司 17
447 448 449 450 451 452 453 454 455 456 457
字符串中使用空格字符..........................................................................................................................27 在结构/联合/枚举中标识符和类型不一致 ........................................................................................27 宏代码超过***行 .....................................................................................................................................27 枚举元素没有在新的一行书写 ............................................................................................................28 枚举,结构和联合的变量没有被TYPEDEF ..................................................................................28 没有返回值的声明缺少VOID .............................................................................................................28 标识符名称和宏的名称一致 .................................................................................................................28 在31个字符内,标识符和宏的名称一致.........................................................................................28 MISRA的SWITCH语句有语法违反...............................................................................................28 所有的内部联接调用不可达 .................................................................................................................28 程序之后少于***行空白行 ...................................................................................................................28
Testbed 编码规则列表 1
1 2
过程名被重用
1 S Procedure name reused. 801 MISRA-C2 5.2 MISRA/DERA 21
标号名被重用
2 S Label name reused. MISRA/DERA 12
3 4
5 6 7 8 9
文件中可执行格式化代码行超过***行 程序格式化代码行超过***行 then语句为空
3 S More than *** executable reformatted lines in file. EADS-C 4
4 S Procedure exceeds *** reformatted lines.
5 S Empty then clause. DERA 141
声明函数指针
6 S Procedure pointer declared.
跳出程序体
7 S Jump out of procedure.
else语句为空
8 S Empty else clause.
在非赋值表达式中出现了赋值操作符
9 S Assignment operation in expression. MISRA/DERA 33, 35, 40, 46 EADS-C 166,167
10 11
未使用
循环体没有用大括号括起来
10 S Not used
11 S No brackets to loop body (added by Testbed). MISRA/DERA 59 MISRA-C2 14.8 EADS-C 145,165,166,167
12 then/else中的语句没有用大括号括起来
12 S No brackets to then/else (added by Testbed). MISRA/DERA 59 MISRA-C2 14.9 EADS-C 145 13 使用goto语句
13 S goto detected. MISRA/DERA 56 MISRA-C2 14.4 EADS-C 119
14 15
将过程定义为参数 结构体定义中含有空域
14 S Procedural parameter declared. DERA 149
15 S Anonymous field to structure. MISRA/DERA 108, 113 16 声明多重标号
16 S Multiple labels declared.
上海创景计算机系统有限公司 1 Testbed 术语表
17 内嵌使用汇编代码
17 S Code insert found. MISRA/DERA 3 18 函数参数超过***个
18 S More than *** parameters in procedure.
19 未被调用的函数使用函数作为参数
19 S Procedural para used in an uncalled procedure. 20 参数未使用类型声明
20 S Parameter not declared explicitly. 21 未使用 21 S Not in use.
22 23 24
使用一些模糊的语句(如=+,=-) 函数未被调用
使用让工具不进行分析的注释/*LDRA_NOANALYSIS*/
22 S Use of obsolete language feature ( use = - ) MISRA/DERA 1 DERA 137
23 S Procedure is not called in text analysed.
24 S Use of Noanalysis annotation. 25 casw语句为空
25 S Null case(s) in switch statement.
26 使用无限循环
26 S Infinite loop used. DERA 142 EADS-C 133 27 返回类型为VOID的函数有return语句
27 S VOID procedure with return statement. MISRA/DERA 84 EADS-C 112 28 继承类中复用基类
28 S Duplicated Base Classes in a Derived class. 29 使用-=或+=操作符
29 S Use of += or -= operators found.
30 使用++或者—操作符
30 S Deprecated usage of ++ or -- operators found. MISRA/DERA 33, 46 MISRA-C2 12.13
31 在循环中使用break语句
31 S Use of break statement in loop. MISRA/DERA 58 MISRA-C2 14.6 EADS-C 120
32 使用continue语句
32 S Use of continue statement. MISRA/DERA 57 MISRA-C2 14.5 EADS-C 119
上海创景计算机系统有限公司 2