文档首页/ 代码检查 CodeArts Check/ 服务公告/ 产品公告/ 【告警变更】C/C++ 检查引擎规则告警问题级别更新,按照MISRA AUTOSAR修改等级。
更新时间:2025-10-27 GMT+08:00
分享

【告警变更】C/C++ 检查引擎规则告警问题级别更新,按照MISRA AUTOSAR修改等级。

C/C++ 检查引擎规则告警问题级别更新,按照MISRA AUTOSAR修改等级。

表1 非规范规则表

规则名称

变更范围

变更日期

执行顺序检查【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

执行顺序检查

告警级别由一般缺陷变更为严重缺陷

2025.10.27

栈内存地址逃逸【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

因语法错误、类型不匹配、标识符未声明等产生的编译器警告或错误

告警级别由一般缺陷变更为严重缺陷

2025.10.27

位域的类型必须明确有无符号【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

位域的类型必须明确有无符号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

位定义的有符号整型变量位长必须大于1

告警级别由一般缺陷变更为严重缺陷

2025.10.27

所有 if ... else if 结构应以 else 语句结束

告警级别由一般缺陷变更为严重缺陷

2025.10.27

死代码【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

死代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

数组下标必须大于等于0【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

数组下标必须大于等于0

告警级别由一般缺陷变更为严重缺陷

2025.10.27

每个指定的抛出必须有与之匹配的捕获

告警级别由一般缺陷变更为严重缺陷

2025.10.27

枚举元素定义中的初始化必须完整【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

枚举元素定义中的初始化必须完整

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止指针的指针超过两级【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在运算表达式中或函数调用参数中使用++或--操作符【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在运算表达式中或函数调用参数中使用++或--操作符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在头文件前有可执行代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在逻辑表达式中使用赋值语句【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在逻辑表达式中使用赋值语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在函数体内使用外部声明【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在函数体内使用外部声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止在表达式中出现多个同一volatile类型变量的运算

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止显式直接抛出NULL

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止使用旧形式的函数参数表定义形式【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止使用旧形式的函数参数表定义形式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止使用超过两级的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止使用八进制数【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止使用八进制数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止将浮点常数赋给整型变量【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止将浮点常数赋给整型变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止将 NULL 作为整型数 0 使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止对逻辑表达式进行位运算

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止对常数值做逻辑非的运算

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止对C++标准库保留的标识符、宏和函数进行define、redefine或undefine

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止等号运算符的操作数为浮点数【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

禁止等号运算符的操作数为浮点数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

函数中的 #define 和 #undef 必须配对使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

函数不应该直接或间接调用自身【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

函数不应该直接或间接调用自身

告警级别由一般缺陷变更为严重缺陷

2025.10.27

定义为 const 的成员函数禁止返回非 const 的指针或引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

抽象类中的复制操作符重载必须是保护的或私有的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

标识符应该有所区分【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

标识符应该有所区分

告警级别由一般缺陷变更为严重缺陷

2025.10.27

避免无用的多余变量【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

避免无用的多余变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

switch语句的所有分支必须具有相同的层次范围【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

switch语句的所有分支必须具有相同的层次范围

告警级别由一般缺陷变更为严重缺陷

2025.10.27

表2 MISRA规则表

规则名称

变更范围

变更日期

MISRA_C_2012 Rule 9.5 使用指定的初始化器对数组对象执行初始化时,应显式指定数组的大小

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 9.4 对象的元素不应多次初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 9.3 不应将数组部分初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 9.2 聚合或联合的初始化器应使用大括号括起

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.8 应在包含内部链接的对象和函数的所有声明中使用静态存储类说明符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.6 包含外部链接的标识符应只具有一个外部定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.5 外部对象或函数应在一个且只应在一个文件中声明一次

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.4 当使用外部链接定义对象或函数时,兼容声明应该可见

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.2 函数类型应采用命名参数的原型形式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.14 不应使用限制类型限定符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.12 在枚举器列表中,隐式指定的枚举常量的值应该唯一

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.10 内联函数应该通过静态存储类声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 8.1 应显式指定类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 7.4 不应为对象赋值字符串常量,除非该对象的类型为“const-qualified char 指针”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 7.3 不应在常量后缀中使用小写字符“l”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 7.2 应对无符号类型中表示的所有整数常量应用“u”或“U”后缀

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 7.1 不应使用八进制常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 6.2 单个位已命名位域不应是带符号的类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 6.1 位域只应通过适当的类型声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.8 使用外部链接定义对象或函数的标识符应该唯一

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.7 标记名称应是唯一的标识符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.6 typedef 名称应是唯一的标识符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.5 标识符应该不同于宏名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.4 宏标识符应该是不同的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.3 在内部范围中声明的标识符不应隐藏在外部范围中声明的标识符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.2 在同一范围和命名空间中声明的标识符应该是不同的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 5.1 外部标识符应该是不同的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 4.1 应该终止八进制和十六进制转义序列

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 3.2 不应在 // 注释中使用行合并

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 3.1 不应在注释中使用字符序列 /* 和 //

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.9 在调用 errno-setting-function 之后,应测试 errno 的值是否为零

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.8 在调用 errno-setting-function 之前,应将 errno 的值设置为零

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.7 宏 EOF 只应与能够返回 EOF 的任何标准库函数的未修改返回值进行比较

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.2 内存块只应在其通过标准库函数分配的情况下释放

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.10 仅当要调用的前一个函数为 errno-setting-function 时,才应测试 errno 的值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.1 应显式释放通过标准库函数动态获取的所有资源

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.9 不应使用 <stdlib.h> 的标准库函数 bsearch 和 qsort

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.8 不应使用 <stdlib.h> 的标准库终止函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.7 不应使用 <stdlib.h> 的标准库函数 atof、atoi、atol 和 atoll

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.6 不应使用标准库输入/输出函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.5 不应使用标准头文件 <signal.h>

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.4 不应使用标准头文件 <setjmp.h>

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.3 不应使用 <stdlib.h> 的内存分配和重新分配函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.21 不应使用 <stdlib.h> 的标准库函数系统

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.2 不应声明保留的标识符或宏名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.18 传递给<string.h>中的任何函数的size_t参数都应有一个适当的值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.17 使用来自<string.h>的字符串处理函数不应导致访问超出它们的指针参数引用的对象范围

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.16 标准库函数 memcmp 的指针参数应该指向指针类型、有符号类型、无符号类型、布尔类型或者枚举类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.15 标准库函数 memcpy、memmove 和 memcmp 的指针参数应该是指向限定或未限定版本兼容类型的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.14 不应使用标准库函数 memcmp 与以 null 终止的字符串进行比较

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.11 不应使用标准头文件 <tgmath.h>

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.10 不应使用标准库时间和日期函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 21.1 不应将 #define 和 #undef 用于保留的标识符或保留的宏名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.9 #if 或 #elif 预处理指令的控制表达式中使用的所有标识符应该在评估之前使用 #define 定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.8 #if 或 #elif 预处理指令的控制表达式的值应评估为 0 或 1

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.7 通过扩展宏参数得到的表达式应使用圆括号括起

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.6 类似于预处理指令的标识符不应出现在宏参数中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.4 不应将关键字定义为宏的名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.3 #include 指令应后接 `<filename>` 或“filename”序列

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.2 '、"" 或 \ 字符以及 /* 或 // 字符序列不应出现在头文件名称中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.12 用作 # 或 ## 运算符的操作数的宏参数(本身要接受进一步的宏替换)只应用作这些运算符的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 20.11 后面紧接 # 运算符的宏参数后面不应紧接 ## 运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 2.7 函数中不应存在未使用的参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 2.2 不应存在无用代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 2.1 项目不应包含无法到达的代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.8 不应使用可变长度数组类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.7 不应声明可变的数组成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.6 在第一个对象消失后不应将自动存储对象的地址拷贝给另一个可能仍然存在的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.3 只应对指向同一对象的指针应用关系运算符 >、>=、< 和 <=

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.2 指针之间的减法运算只应该应用到访问同一数组的元素的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 18.1 通过针对指针操作数的算术运算获得的指针应该将同一数组的元素作为指针操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 17.7 应使用由返回非 void 类型的函数返回的值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 17.2 函数不应直接或间接调用自身

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 17.1 不应使用 <stdarg.h> 的功能

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.7 switch 表达式不应具有基本的布尔类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.6 每个 switch 语句都应该至少具有两个 switch 子句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.5 默认标签应显示为 switch 语句的第一个或最后一个 switch 标签

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.4 每个 switch 语句都应具有默认标签

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.3 无条件的 break 语句应该终止每一个 switch 子句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.2 switch 标签只应在最里层的复合语句是 switch 语句的主体时使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 16.1 所有 switch 语句都应该符合语法

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 15.7 所有 if ... else if 结构应以 else 语句结束

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 15.6 迭代语句或选择语句的主体应该是复合语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 15.3 goto 语句引用的任何标签都应在同一代码块或包括该 goto 语句的任何代码块中声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 15.2 goto 语句应跳转到在同一函数后半部分中声明的标签

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 14.4 if 语句的控制表达式和迭代语句的控制表达式应该具有基本的布尔类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 14.3 控制表达式不应是不变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 14.2 for 循环应该符合语法

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 14.1 循环计数器不应具有基本的浮点类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 13.5 逻辑运算符 && 或 || 的右操作数不应包含持久的其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 13.2 在所有允许的评估顺序中表达式的值及其持久的其他作用应该保持相同

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 13.1 初始化器列表不应包含持久的其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 12.2 移位运算符的右操作数应介于零和左操作数基本类型的位宽度之间

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.9 宏 NULL 应该是唯一允许的整数 null 指针常量形式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.8 指针所指向类型的转换不应移除任何const或volatile限定

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.7 指向对象的指针不应转换为非整数算术运算类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.6 指向 void 的指针不应转换为算术运算类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.3 指向对象类型的指针不应转换为指向不同对象类型的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.2 指向不完整类型的指针不应转换为任何其他类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 11.1 指向函数的指针不应转换为任何其他类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.8 不应将复合表达式的值转换为不同的基本类型类别或较宽的基本类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.7 在常用算术转换中如果将复合表达式用作运算符的一个操作数,则另一个操作数不应具有较宽的基础类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.6 不应将复合表达式的值赋值给具有较宽基本类型的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.4 对运算符的两个操作数执行常用算术转换应该具有相同的基本类型类别

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.3 不应将表达式的值赋值给为较窄的基本类型或不同基本类型类别的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.2 不应在加法和减法运算中通过不当的方式使用基本字符类型的表达式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 10.1 操作数的类型不应是不恰当的基本类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 1.4 不应使用紧急语言功能

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.7 如果函数返回了错误信息,则应该测试该错误信息

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.3 应该独立封装汇编语言

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.14 应该检查从外部源接收的值的有效性

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.12 不应使用动态内存分配

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.11 应该检查传递给库函数的值的有效性

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Dir 4.10 应注意防止头文件的内容出现多次

告警级别由一般缺陷变更为严重缺陷

2025.10.27

MISRA_C_2012 Rule 22.5 不应解引用 FILE 对象的指针

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 21.20 标准库函数 asctime、ctime、gmtime、localtime、localeconv、getenv、setlocale 或 strerror 返回的指针不应在相同的函数被重复调用后使用

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 21.19 只应将标准库函数 localeconv、getenv、setlocale 或 strerror 返回的指针用作具有指向 const-qualified 类型的指针

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 21.13 在<ctype.h>中传递给函数的任何值都应表示为无符号的char或者值EOF

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 17.6 数组参数的声明不应在 [ ] 之间包含 static 关键字

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 17.3 不应隐式声明函数

告警级别由一般缺陷变更为致命缺陷

2025.10.27

MISRA_C_2012 Rule 12.5 sizeof运算符的操作数不应是声明为“类型数组”的函数参数

告警级别由一般缺陷变更为致命缺陷

2025.10.27

表3 华为规范规则表

规则名称

变更范围

变更日期

G.VAR.02 不要在子作用域中重用变量名【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.TYP.02 使用恰当的基本类型作为操作符的操作数【C】

告警级别由严重缺陷变更为一般缺陷

2025.10.27

G.RES.12-CPP 自定义new/delete操作符需要配对定义,且行为与被替换的操作符一致

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.RES.06-CPP 避免lambda表达式使用默认捕获模式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.PRE.12 #if 或 #elif 预处理指令中的常量表达式被求值前应确保其使用的标识符已定义【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.PRE.11 #if或#elif预处理指令中的常量表达式的值应为布尔值【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.PRE.04-CPP #if 或 #elif 预处理指令中的常量表达式被求值前应确保其使用的标识符已定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.PRE.02 定义宏时,要使用完备的括号【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.PRE.02 定义宏时,要使用完备的括号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.OTH.01 删除无效或永不执行的代码【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.OTH.01 删除无效或永不执行的代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.NAM.03-CPP 使用统一的命名风格

告警级别由建议缺陷变更为一般缺陷

2025.10.27

G.INC.06 头文件必须用#define保护,防止重复包含【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.INC.05 头文件应当自包含【C】

告警级别由严重缺陷变更为一般缺陷

2025.10.27

G.INC.04-CPP 头文件必须采取保护措施,防止重复包含

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.INC.02-CPP 禁止包含用不到的头文件

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.INC.01-CPP 禁止头文件循环依赖

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FUN.06-CPP 函数参数需传入单个对象时应以引用取代指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FUN.03-CPP 禁止函数有未被使用的参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FUD.10 函数只在一个文件内使用时应当使用static修饰符【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FUD.04 函数的指针参数如果不是用于修改所指向的对象就应该声明为指向const的指针【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FMT.11-CPP 选择、循环语句使用大括号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.FMT.08 条件、循环语句使用大括号【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.41-CPP 避免在基本for循环的循环体中修改循环控制变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.37-CPP switch语句要有default分支--没有default分支

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.36-CPP 控制表达式的结果应是布尔值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.16-CPP 避免使用const_cast

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.10-CPP 不要在嵌套作用域中重用名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.EXP.03-CPP 使用using定义类型别名

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.ERR.10-CPP 使用noexcept声明的构造函数初始化全局和线程局部变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.ERR.06-CPP 禁止给函数加"throw"异常说明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CTL.10 避免在基本for循环的循环体中修改循环控制变量【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CTL.07 switch语句要有default分支--没有default分支【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CNS.04-CPP 对于指针和引用类型的参数,如果不需要修改其引用的对象,应使用const修饰

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CNS.03-CPP 对于不会修改成员变量的成员函数应使用const修饰

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CNS.01 禁止使用小写字母“l”作为数值型常量后缀【C】

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CLS.13-CPP 禁止重新定义public继承而来的非虚函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

G.CLS.08-CPP delete操作符、移动构造函数、移动赋值操作符、swap函数应该有noexcept声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

表4 AUTOSAR规则表1

规则名称

变更范围

变更日期

AUTOSAR_C++14 Rule M9-6-4 已命名带符号整数类型的位域的长度应超过一位

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M9-3-3 如果成员函数可以是静态,则它应该是静态,另外如果它可以是 const,则它应该是 const

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M9-3-1 常量成员函数不应返回类数据的非常量指针或引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M8-5-2 在数组和结构的非零初始化中,应使用大括号指示和匹配结构

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M8-4-4 函数标识符应该只用于函数调用,或者在其前使用 & 前缀

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M8-3-1 覆盖虚函数中的参数应使用与其覆盖的函数相同的默认参数,否则不应指定任何默认参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M8-0-1 init-declarator-list 或 member-declarator-list 应该分别包括一个 init-declarator 或 member-declarator

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-5-2 在第一个对象消失后不应将自动存储对象的地址赋值给另一个可能仍然存在的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-5-1 函数不应返回在函数内定义的自动变量(包括参数)的引用或指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-4-3 应该独立封装汇编语言

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-4-2 汇编程序说明只应使用 asm 声明引入

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-3-6 不应在头文件中使用 using 指令或 using 声明(不包括 using 声明中的类范围或函数范围)

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-3-4 不应使用 using 指令

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-3-3 头文件中不应存在未命名的命名空间

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-3-2 标识符 main 不应用于除全局函数 main 之外的函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-3-1 全局命名空间只应包含 main、命名空间声明和 extern“C”声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M7-1-2 如果函数参数是不能修改的对象,应该在函数中将相对应的参数的指针或引用声明为 const 指针或 const 引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-6-3 不应在循环语法中使用 continue 语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-6-2 goto 语句应跳转到在同一函数主体后半部分中声明的标签

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-6-1 goto 语句引用的任何标签都应在同一代码块或包括该 goto 语句的代码块中声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-5-6 在语句中修改的除循环计数器之外的循环控制变量应具有 bool 类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-5-5 除循环计数器以外的循环控制变量不应在条件或表达式内进行修改

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-5-4 循环计数器应通过以下其中一项修改:--、++、-=n 和 +=n;,其中 n 在循环持续时间内保持为常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-5-3 不应在条件或语句中修改循环计数器

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-5-2 如果循环计数器未通过 -- 或 ++ 修改,则在条件中,只应将循环计数器用作 <=、<、> 或 >= 的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-7 switch 语句的条件不应包含 bool 类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-6 switch 语句的最终子句应该是 default 子句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-5 无条件的 throw 或 break 语句应该终止每一个非空 switch 子句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-4 switch 标签只应在最里层的复合语句是 switch 语句的主体时使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-3 switch 语句应是符合语法的 switch 语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-2 所有 if ... else if 结构应以 else 子句结束

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-4-1 if(条件)结构应该后接复合语句。else 关键字应该后接复合语句或另一个 if 语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-3-1 构成 switch、while、do ... while 或 for 语句主体的语句应该是复合语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-2-3 在预处理之前,null 语句只能单独一行出现;该 null 语句可后接注释,前提是该语句后接的第一个字符是空格

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-2-2 不应直接或间接对浮点表达式执行相等或不等测试

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M6-2-1 不应在子表达式中使用赋值运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-8-1 移位运算符的右操作数应介于 0 和左操作数基础类型的位宽度之间

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-3-3 一元 & 运算符不应重载

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-3-2 不应对基础类型为无符号类型的表达式应用一元减运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-3-1 ! 运算符、逻辑运算符 && 或 || 的每个操作数的类型都应为 bool

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-9 转换不应将指针类型转换为整数类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-8 不应将具有整数类型或 void 类型指针的对象转换为具有指针类型的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-6 转换不应将函数指针转换为任何其他指针类型,包括函数类型指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-2 只应通过 dynamic_cast 将虚基类的指针转换为继承类的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-12 作为函数参数传递的类型为数组的标识符不应退化为指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-11 逗号运算符、&& 运算符和 || 运算符不应重载

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-2-10 在表达式中,递增 (++) 和递减 (--) 运算符不应与其他运算符混合使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-14-1 逻辑运算符 &&、|| 的右操作数不应包含其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-9 显式整数转换不应改变 cvalue 表达式基础类型的符号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-8 显式整数或浮点转换不应增加 cvalue 表达式基础类型的大小

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-7 cvalue 表达式不应存在显式浮点-整数转换

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-6 隐式整数或浮点转换不应减小基础类型的大小

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-5 不应存在隐式浮点-整数转换

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-4 隐式整数转换不应改变基础类型的符号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-3 不应将 cvalue 表达式隐式转换为其他基础类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-21 位运算符只应该应用于无符号基础类型的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-20 二进制位运算符的非常量操作数应具有相同的基础类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-18 不应对类型为指针的对象应用 >、>=、< 和 <=,除非它们指向同一数组

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-17 指针之间的减法运算只应该应用到访问同一数组的元素的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-16 指针操作数以及通过针对该操作数的指针算术运算获得的指针应访问相同数组的元素

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-14 条件运算符的第一个操作数应具有 bool 类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-12 带符号的和无符号的 char 类型只应该用于存储,并使用数字值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-11 普通 char 类型只应该用于存储,并使用字符值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M5-0-10 如果对基础类型为无符号 char 或无符号 short 的操作数应用了位运算符 ~ 和 <<,结果应立即转换为操作数的基础类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M4-5-3 不应将具有(普通)char 和 wchar_t 类型的表达式用作内置运算符的操作数,以下运算符除外:赋值运算符 =、等号运算符 == 和 != 以及一元 & 运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M4-5-1 不应将具有 bool 类型的表达式用作内置运算符的操作数,以下运算符除外:赋值运算符 =、逻辑运算符 &&、||、!、等号运算符 == 和 !=、一元 & 运算符以及条件运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M4-10-2 不应将常数值零 (0) 用作非指针常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M4-10-1 不应将 NULL 用作整数值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-9-3 不应使用浮点值的基础位表示法

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-4-1 声明为对象或类型的标识符应在最小化其可见性的块中定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-3-2 如果函数包含内部链接,则所有重新声明应包括静态存储类说明符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-2-4 包含外部链接的标识符应只具有一个定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-2-3 在多个编译单元中使用的类型、对象或函数应在一个且仅在一个文件中声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-2-2 不应违反“一个定义规则”(One Definition Rule)

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-2-1 对象或函数的所有声明都应具有兼容类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M3-1-2 函数不应在块范围内声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M27-0-1 不应使用数据流输入/输出库 <cstdio>

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M2-13-4 常数值后缀应该采用大写

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M2-13-3 应对所有无符号类型的八进制或十六进制整数常量应用“U”后缀

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M2-13-2 不应使用八进制常量(零除外)和八进制转义序列(“\0”除外)

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M2-10-1 不同的标识符在排字上应该清楚明确

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M19-3-1 不应使用错误指示器 errno

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M18-7-1 不应使用 <csignal> 的信号处理设施

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M18-2-1 不应使用宏 offsetof

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M18-0-5 不应使用库 <cstring> 的无边界函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M18-0-4 不应使用库 <ctime> 的时间处理函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M18-0-3 不应使用来自库 <cstdlib> 中的库函数 abort、exit、getenv 和 system

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M17-0-5 不应使用 setjmp 宏和 longjmp 函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M17-0-3 不应覆盖标准库函数的名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M17-0-2 标准库宏和对象的名称不应再次使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-3-1 在单个宏定义中,# 或 ## 运算符最多只应出现一次

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-2-3 应提供包含保护

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-1-1 定义的预处理器运算符只能采用两种标准形式中的一种

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-0-7 不应将未定义的宏标识符用于 #if 或 #elif 预处理器指令,除非作为定义的运算符的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-0-6 在类似于函数的宏的定义中,参数的每个实例都应使用圆括号括起,除非它被用作 # 或 ## 的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-0-5 类似于函数的宏的参数不应包含看起来像是预处理指令的标识符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-0-2 在全局命名空间中,只应使用 #define 或 #undef 定义或取消定义宏

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M16-0-1 文件中的 #include 指令之前只能包含其他预处理器指令或注释

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-3-7 当在单个 try-catch 语句或 function-try-block 中提供多个处理程序时,所有 ellipsis (catch-all) 处理程序都应最后发生

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-3-6 当在针对继承类及其部分或全部基类的单个 try-catch 语句或 function-try-block 中提供多个处理程序时,应按从最上层继承类到基类的顺序排列这些处理程序

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-3-4 代码中显式抛出的每个异常在所有可能导致该异常的调用路径中都应具有兼容类型的处理程序

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-3-3 类构造函数或析构函数的 function-try-block 实现的处理程序不应引用此类或其基类的非静态成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-3-1 只应在启动之后并且在终止之前报告异常

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-1-3 空 throw (throw;) 只应用于 catch 处理程序的复合语句

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-1-2 不应显式抛出 NULL

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M15-0-3 不应使用 goto 或 switch 语句将控制转化为 try 或 catch 块

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M14-6-1 在具有从属基类的类模板中,在该从属基类中可能找到的任何名称应使用 qualified-id 或 this-> 引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M14-5-3 当存在具有类属参数的模板赋值运算符时,应声明复制赋值运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M12-1-1 对象的动态类型不应在其构造函数或析构函数的主体中使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M11-0-1 非 POD 类类型中的成员数据应该是私有的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M10-3-3 只有当虚函数本身被声明为纯虚函数时,它才能被纯虚函数覆盖

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M10-1-3 可访问基类在同一层次架构中不能同时为虚基类和非虚基类

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M10-1-2 如果将基类用于菱形层次架构中,则只应将其声明为虚基类

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-3-2 如果函数生成了错误信息,则应该测试该错误信息

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-9 不应存在无用代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-8 返回 void 类型的所有函数都有外部其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-4 项目不应包含只使用一次的非易失性 POD 变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-3 项目不应包含未使用的变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-2 项目不应包含不可达的路径

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule M0-1-1 项目不应包含无法到达的代码

告警级别由一般缺陷变更为严重缺陷

2025.10.27

表5 AUTOSAR规则表2

规则名称

变更范围

变更日期

AUTOSAR_C++14 Rule A9-6-1 用于与硬件接口或符合通信协议的数据类型应该是不重要的标准布局,并且只包含具有定义大小的类型的成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A9-5-1 不应使用联合

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A9-3-1 成员函数不应返回非常量“raw”指针或对该类拥有的私有或受保护数据的引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-5-3 类型 auto 的变量不应使用 {} 或 ={} 带大括号的初始化进行初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-5-2 没有等号符号的带大括号的初始化 {} 应被用于变量初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-5-1 在初始化列表中,初始化的顺序应如下:(1) 继承图的深度和从左向右顺序的虚基类,(2) 继承列表从左向右顺序的直接基类,(3) 按类定义中声明的顺序排列的非静态数据成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-9 应修改被声明为 T & 的“in-out”参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-8 不应使用输出参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-7 应通过值传递“cheap to copy”类型的“in”参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-6 应始终转发被声明为 T && 的“forward”参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-5 应始终移除被声明为 X && 的“consume”参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-13 std::shared_ptr 应在以下情况下传递给函数:(1) 副本表示该函数共享所有权 (2) 左值引用表示该函数替换托管的对象 (3) const左值引用表示该函数保留引用计数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-12 std::unique_ptr 应在以下情况下传递给函数:(1) 副本表示该函数拥有所有权 (2) 左值引用表示该函数替换托管的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-11 只有当智能指针表示生命周期语义时,它才能用作参数类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-10 如果参数不能为 NULL,则它应该通过引用传递

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-4-1 不应使用 ellipsis 注解定义函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A8-2-1 在声明函数模板时,如果返回类型取决于参数的类型,则应使用尾部返回类型语法

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-6-1 不应返回使用 [[noreturn]] 属性声明的函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-5-2 函数不应直接或间接调用自身

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-5-1 函数不应返回通过引用常量传递的参数的引用或指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-4-1 不应使用 asm 声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-3-1 函数的所有重载都应从调用它的位置可见

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-2-4 在枚举中,(1) 无,(2) 第一个或 (3) 所有枚举器都应初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-2-3 枚举应声明为限定范围的 enum 类

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-2-2 应显式定义枚举基础基类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-2-1 具有 enum 基础类型的表达式只应具有与枚举的枚举器对应的值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-9 类、结构或枚举不应在其类型定义中声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-8 在声明中,非类型说明符应放置在类型说明符之前

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-7 每个表达式语句和标识符声明都应放置在单独的行中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-6 不应使用 typedef 说明符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-5 Auto 说明符不应用于除以下情况以外的情况:(1) 声明变量的类型与函数调用的返回类型相同,(2) 声明变量的类型与非基础类型的初始化器相同,(3) 声明通用 lambda 表达式的参数,(4) 使用尾部返回类型语法声明函数模板

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-4 不应使用 register 关键字

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-3 CV 限定符应放在是 typedef 或 using 名称的类型的右侧

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-2 对于在编译时可以确定的值,应使用 constexpr 说明符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A7-1-1 Constexpr 或 const 说明符应用于不可变的数据声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A6-5-2 For 循环应包含一个不应具有浮点类型的循环计数器

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A6-5-1 不应使用依次通过容器的所有元素而不使用其循环计数器的 for 循环

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A6-4-1 Switch 语句应至少具有两个 case 子句,与默认标签不同

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A6-2-2 表达式语句不应仅是对临时对象的构造函数的显式调用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A6-2-1 移动和拷贝赋值运算符应移动或分别拷贝类的基类和数据成员,而不产生任何其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-6-1 整数除法或余数运算符的右操作数不应等于零

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-5-1 指向成员的指针不应访问不存在的类成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-3-3 不应删除指向不完整类类型的指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-3-1 typeid 运算符的操作数的求值不应包含其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-2-6 如果操作数包含二元运算符,逻辑 && 或 || 的操作数应加上圆括号

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-2-5 不应超过数组或容器的范围访问它们

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-2-4 不应使用 reinterpret_cast

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-2-3 指针或引用类型的转换不应移除任何const或volatile属性

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-2-2 不应使用传统 C 样式转换

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-1-7 Lambda 不应是 decltype 或 typeid 的操作数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-16-1 三元条件运算符不应被用作子表达式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-1-4 Lambda 表达式对象不应超过任何其引用捕获的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-1-3 参数列表(可能为空)应包含在每个 lambda 表达式中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-1-2 不应在 lambda 表达式中隐式捕获变量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-1-1 除类型初始化以外,不应使用常量值,否则应改为使用符号名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-10-1 指向成员虚函数的指针应被测试是否等于 null 指针常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-0-4 Pointer arithmetic 不应与指向非 final 类的指针一起使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-0-3 对象的声明不应包含超过两级的指针间接

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-0-2 if 语句的条件和迭代语句的条件都应具有 bool 类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A5-0-1 在标准允许的任何求值顺序下,表达式的值都应相同

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A4-7-1 整数表达式不应导致数据丢失

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A4-5-1 不应将具有类型 enum 或 enum 类的表达式用作内置和重载运算符的操作数,以下运算符除外:下标运算符 [ ],赋值运算符 =,等号运算符 == 和 !=,一元 & 运算符以及关系运算符 <、<=、>、>=

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A4-10-1 只有 nullptr 常量应用作 null 指针常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-9-1 应该使用来自指示大小和符号的 <cstdint> 的固定宽度整数类型代替基本数值类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-8-1 不应在对象的生命周期之外访问它

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-3-2 静态或线程本地对象应是常量初始化的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-3-1 应在头文件中声明具有外部链接(包括已命名空间名称的成员)的对象或函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-1-5 函数定义在以下条件下只应放在类定义中:(1) 函数将成为内联函数 (2) 函数是成员函数模板 (3) 函数是类模板的成员函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-1-2 在项目中本地定义的头文件的文件扩展名应为以下之一:“.h”、“.hpp”或“.hxx”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A3-1-1 在不违反“一个定义规则”(One Definition Rule) 情况下可以在多个编译单元中包括任何头文件

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-7-3 “用户定义的”类型、静态和非静态数据成员、函数和方法的所有声明应在文档之后

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-7-1 字符 \ 不应作为 C++ 注释的最后一个字符出现

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A27-0-3 在未插入中间 flush 或定位调用的情况下,不应使用对文件流的交替输入和输出操作

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A26-5-2 不应默认初始化随机数引擎

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A26-5-1 不应使用 std::rand() 生成伪随机数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A25-4-1 与关联容器和 STL 排序及相关算法一起使用的排序谓词应遵循严格的弱排序关系

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-5-2 不应使用双字符组

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A25-1-1 不应拷贝与此对象的标识相关的状态的非静态数据成员或谓词函数对象的捕获值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-5-1 不应使用三字符组

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-3-1 只应在源代码中使用在 C++ 语言标准基本源字符集中指定的字符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A23-0-2 容器的元素只应通过有效的引用、iterator 和指针访问

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A23-0-1 Iterator 不应隐式转换为 const_iterator

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A21-8-1 字符处理函数的参数应可表示为无符号字符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-13-6 通用字符名称仅应在字符或字符串常量中使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-13-4 不应将字符串常量赋值给非常量指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-13-3 不应使用类型 wchar_t

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-13-2 不应连接具有不同编码前缀的字符串常量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-13-1 只应使用在 ISO/IEC 14882:2014 中定义的那些转义序列

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-11-1 不应使用volatile关键字

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-10-6 同一范围内的变量、函数或枚举器声明不应隐藏类或枚举名称

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-10-4 具有静态存储持续时间或静态函数的非成员对象的标识符名称不应在命名空间中重用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A2-10-1 在内部范围中声明的标识符不应隐藏在外部范围中声明的标识符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-7 std::weak_ptr 应用于表示临时共享所有权

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-6 std::make_shared 应用于构造 std::shared_ptr 拥有的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-5 std::make_unique 应用于构造 std::unique_ptr 拥有的对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-4 如果不需要所有权共享,应该使用 std::unique_ptr 来代替 std::shared_ptr

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-3 std::shared_ptr 应用于表示共享所有权

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-2 使用 std::unique_ptr 来表示独占所有权

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A20-8-1 已拥有的指针值不应存储在无关的智能指针中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-9-4 不应随后使用 std::forward 的参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-9-2 将值转发到其他函数应通过以下方式执行:(1) std::move,如果值为右值引用,(2) std::forward,如果值为转发引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-9-1 不应使用 std::bind

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-9 动态内存分配和释放函数的自定义实现应该满足 C++ 标准中相应的“必要行为”子句中指定的语义要求

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-8 时效短于函数的对象应具有自动存储持续时间

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-5 内存管理函数应确保以下各项:(a) 由于存在最坏情况的执行时间而导致的确定性行为,(b) 避免内存碎片,(c) 避免内存耗尽,(d) 避免不匹配的分配或释放,(e) 不依赖对内核的非确定性调用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-4 如果项目全局定义了运算符“delete”的分大小或不分大小的版本,则应同时定义分大小和不分大小的版本

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-2 不应使用非 placement new 或 delete 表达式

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-11 应一起定义“operator new”和“operator delete”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-10 Placement new 仅应与适当对齐的指针一起使用,以达到足够的存储容量

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-5-1 不应使用函数 malloc、calloc、realloc 和 free

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-1-6 用户定义的类型的所有 std::hash 具体化都应该具有 noexcept 函数调用运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-1-4 指向对象数组的元素的指针不应被传递给单个对象类型的智能指针

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-1-3 不应使用 std::auto_ptr 类型

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-1-2 不应使用 std::vector<bool> 具体化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-1-1 不应使用 C 样式数组

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-0-3 不应使用库 <clocale> (locale.h) 和 setlocale 函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-0-2 不应使用库<cstdlib>中的库函数atof、atoi和atol

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A18-0-1 C 库工具应只能通过 C++ 库头文件访问

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A17-6-1 不应将非标准实体添加到标准命名空间中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A17-1-1 C 标准库的使用应被封装和隔离

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A17-0-1 不应定义、重新定义或取消定义 C++ 标准库中的保留标识符、宏和函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-7-1 不应使用 #pragma 指令

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-6-1 不应使用 #error 指令

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-2-3 对于文件中使用的每个符号,都应显式地添加包含指令

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-2-2 不应有未使用的包含指令

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-2-1 头文件名称或 #include 指令中不应出现 '、"、/*、//、\ 字符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A16-0-1 预处理器仅应用于无条件和有条件的文件包含及 include 保护,并使用以下指令:(1) #ifndef、(2) #ifdef、(3) #if、(4) #if defined、(5) #elif、(6) #else、(7) #define、(8) #endif、(9) #include

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-5-3 不应隐式调用 std::terminate() 函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-5-2 程序不应突然终止,特别是不应该隐式或显式地调用 std::abort()、std::quick_exit()、std::_Exit()、std::terminate()

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-5-1 所有用户提供的类析构函数、释放函数、移动构造函数、移动赋值运算符和交换函数均不应异常退出。应酌情将 noexcept 异常规范添加到这些函数中

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-4-5 可能从函数中抛出的已检查异常应与函数声明一起指定,它们在所有函数声明中以及对其所有覆盖者都应是相同的

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-4-4 非抛出函数声明应包含 noexcept 规范

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-4-3 函数的 noexcept 规范在所有编译单元之间都应相同,或者在虚成员函数和覆盖器之间相同或有更严格的限制

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-4-2 如果函数被声明为 noexcept、noexcept(true) 或 noexcept(<true condition>),则它不应异常退出

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-4-1 不应使用动态异常规范

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-3-4 Catch-all(ellipsis 和 std::exception)处理程序仅应用于以下情况 (a) 主函数,(b) 任务主函数,(c) 在应该隔离独立组件的函数中,以及 (d) 在调用不按照 AUTOSAR C++14 准则使用异常的第三方代码时

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-3-3 主函数和任务主函数应至少捕获:使用的所有第三方库中的基类异常、std::exception 和所有其他未处理的异常

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-2-2 如果构造函数不是 noexcept 且构造函数不能完成对象初始化,则它应释放对象的资源并抛出异常

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-2-1 在程序启动之前,不应调用非 noexcept 的构造函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-1-5 不应跨执行边界抛出异常

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-1-4 如果函数异常退出,则在抛出之前,该函数应安置其在有效状态下构造的所有对象/资源,或将它们删除

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-0-7 异常处理机制应保证确定的最坏情况下的执行时间

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-0-3 应考虑被调用函数的异常安全保证

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A15-0-2 对于所有运算,针对异常安全应至少提供基本保证另外,每个函数都可以提供强有力的保证或不抛出的保证

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A14-8-2 不应使用函数模板的显式特例化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A14-7-2 模板特例化应在以下相同文件中声明:(1) 与声明特例化的主模板相同的文件 (2) 与声明特例化的用户定义的类型相同的文件

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A14-7-1 用作模板参数的类型应提供该模板使用的所有成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A14-5-1 模板构造函数不应参与封装类类型的单个参数的重载解析

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-6-1 数字序列分隔符仅应按如下方式使用:(1) 对于十进制数字,每隔 3 位,(2) 对于十六进制数字,每隔 2 位,(3) 对于二进制数字,每隔 4 位

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-5-5 比较运算符应为参数类型相同且 noexcept 的非成员函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-5-4 如果定义了两个相反的运算符,一个应根据另一个进行定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-5-2 所有用户定义的转换运算符都应显式定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-5-1 如果要使用非常量版本重载“operator[]”,则还应实现常量版本

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-3-1 如果函数包含“转发引用”作为其参数,则不应重载

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-2-3 关系运算符应返回布尔值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-2-2 二进制算术运算符和位运算符应返回“prvalue”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-2-1 赋值运算符应返回对“this”的引用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-1-3 用户定义的常量运算符应仅执行传递参数的转换

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A13-1-2 用户定义的常量运算符的用户定义后缀应以下划线开头,并后跟一个或多个字母

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-8-6 在基类中,拷贝和移动构造函数以及拷贝赋值和移动赋值运算符应声明为 protected 或定义为“=delete”

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-8-5 拷贝赋值和移动赋值运算符应处理自赋值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-8-4 移动构造函数不应使用拷贝语义初始化其类成员和基类

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-8-3 不应读取访问移出对象

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-8-1 移动和拷贝构造函数应移动并分别拷贝类的基类和数据成员,不会产生任何其他作用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-7-1 如果用户定义的特殊成员函数的行为与隐式定义的特殊成员函数相同,则它应被定义为“=default”或保留未定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-6-1 构造函数初始化的所有类数据成员都应使用成员初始化器进行初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-4-1 基类的析构函数应该是公共虚函数、公共覆盖函数或受保护的非虚函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-6 不需要进一步显式初始化并需要基类中的所有构造函数的派生类将使用继承构造函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-5 非常量成员的公共类初始化应由委托构造函数完成

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-4 所有可通过单个基本类型的参数调用的构造函数都应显式声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-3 如果类的所有用户定义的构造函数都使用所有构造函数之间相同的常量值初始化数据成员,则数据成员应该改为使用 NSDMI 进行初始化

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-2 构造函数中的 NSDMI 和非静态成员初始化器都不应在同一类型中使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-1-1 构造函数应显式初始化所有虚基类、所有直接非虚基类和所有非静态数据成员

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-0-2 不能对对象进行位运算和假定数据在内存中表示的操作

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A12-0-1 如果类声明拷贝或移动运算或析构函数,无论是通过“=default”、“=delete”,还是通过用户提供的声明,则也应声明所有其他这五个特殊成员函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A11-3-1 不应使用 friend 声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A1-1-1 所有代码均应遵守 ISO/IEC 14882:2014 - 编程语言 C++,并且不得使用废弃的功能

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A11-0-2 定义为结构的类型应:(1) 只提供公共数据成员,(2) 不提供任何特殊的成员函数或方法,(3) 不是另一个结构或类的基类,(4) 不从另一个结构或类继承

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-3-5 用户定义的赋值运算符不应为虚运算符

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-3-3 不应在 final 类中引入虚函数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-3-2 每个覆盖虚函数都应使用 override 或 final 说明符声明

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-3-1 虚函数声明应仅包含以下三个说明符之一:(1) virtual,(2) override,(3) final

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-2-1 非虚公共或受保护的成员函数不应在派生类中重新定义

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A10-1-1 类不应派生自多个不是接口类的多个基类

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-4-4 使用数学函数时,应检查范围、域和极点误差

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-4-2 不应使用类型 long double

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-1-5 用于虚函数以及覆盖该虚函数的所有函数的参数集中不应存在未使用的已命名参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-1-4 非虚函数中不应存在未使用的已命名参数

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-1-3 在匿名命名空间中定义的每个函数、具有内部链接的静态函数或私有成员函数都应被使用

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-1-2 应使用不是重载运算符的返回类型为非void的函数返回值

告警级别由一般缺陷变更为严重缺陷

2025.10.27

AUTOSAR_C++14 Rule A0-1-1 项目不应包含被赋值但未后续使用的非易失性变量的实例

告警级别由一般缺陷变更为严重缺陷

2025.10.27

相关文档