发布日期:2021 年 5 月 12 日
此版本包括以下增强功能:
Lattix Architect 集成
我们添加了与 Lattix Architect 的集成,以帮助您分析和改进您的软件架构。C/C++test 现在可以为您的项目收集代码依赖数据,并将数据导出为文件,以便以后可以导入到 Lattix Architect。有关详细信息,请参见与 Lattix Architect 集成 。
增强的 GitHub 集成
此版本包括以下有助于简化 GitHub 工作流程的增强功能:
- 支持以 GitHub 的 SARIF 格式生成报告,这使 GitHub 能够将 C/C++test 静态分析结果呈现为 GitHub 代码扫描警报。
- 新的 C/C++test 操作,用于在 C/C++test 中运行分析并在 GitHub 中作为项目的一部分查看结果。
有关其他信息,请参阅 GitHub 上的 C/C++test 操作文档:https://github.com/marketplace/actions/run-parasoft-c-c-test。
安装 C/C++test 的新方法
在过去的版本中,安装 C/C++test 涉及遵循安装向导(在 Windows 上)或运行安装脚本(在 Linux 上)。从这个版本开始,C/C++test 是通过将zip或 tar.gz 安装包的内容解压到需要的位置来安装的,这使得安装过程更加方便,使 C/C++test 更加便携和灵活。请参见安装和启动 C/C++test。
与 CMake 的增强集成
使用 C/C++test 收集覆盖率的新扩展
C/C++test 现在附带了一个新的 CMake 覆盖率扩展,允许您将 C/C++test 的代码覆盖率分析直接集成到您的 CMake 项目中。该扩展会在构建项目时自动修改编译器/链接器命令行以使用cpptestcc
覆盖率工具。请参阅 收集 CMake 项目的应用程序覆盖率。
用于定义 C/C++test 项目的增强扩展
- Windows 现在支持直接在 CMake 构建文件中定义 C/C++test 项目。
- CMake 的项目扩展名已从
cpptest.cmake
重命名为cpptest-project.cmake
。 - 现在需要
-DCPPTEST_PROJECT=ON
选项来激活 CMake 的项目扩展。
请参见 将 C/C++test 集成到 Cmake 构建中。
扩展的安全合规性包
我们通过添加对以下标准的支持来扩展安全包:
- DISA-ASD-STIG
- OWASP API Security Top 10-2019
新的测试配置将帮助您检测上述标准确定的弱点。请参阅新建和更新测试配置。
支持编译器
我们添加了对以下编译器的支持:
编译器名称 | 编译器首字母缩写词 |
---|---|
Green Hills Software Compiler ARM64 v. 2020.1.x 版本 | ghsarm64_2020_1 |
QNX GCC 8.x (x86_64) | qcc_8-64 |
QNX GCC 8.x (ARM64) | qccarm_8-64 |
TI ARM C/C++ 编译器 v20.2 | tiarm_20_2 |
我们扩展了对 ARM/IAR BXARM v. 8.50x 的 IAR 编译器的支持。现在可以在 Linux 上使用 IAR BXARM v. 8.50x 的编译器配置来执行静态分析。
支持 IDE
我们添加了对以下 IDE 的支持:
- Texas Instruments Code Composer Studio 10.0.
新建和更新测试配置
我们添加了以下测试配置:
- DISA-ASD-STIG
- 导出代码依赖数据
- OWASP API Security Top 10 2019
新建的和更新的代码分析规则
我们添加了新的静态分析规则,以扩展合规性标准的覆盖率。有关新建规则和更新规则的列表,请参见新建规则和 更新规则 。
其他变更
- 您可以使用 C/C++test 的功能将存储在团队服务器上的弃用抑制迁移到新格式,请参阅 处理弃用抑制。
我们改进了 C/C++test 在运行流分析和收集代码覆盖率时的性能。
如果您将 C/C++test 与 Lauterbach TRACE32 工具系列一起使用,由于 C/C++test 生成的 Lauterbach PRACTICE II 脚本中的更改,您现有的自定义测试配置可能需要重新创建。请参见Lauterbach TRACE32 支持的运行时测试。
- 您现在可以通过向 Parasoft 发送匿名使用数据来帮助我们改进 C/C++test。默认情况下,禁用报告使用数据——您可以随时使用IDE 或 C/C++test 配置设置选择加入。
不建议使用和删除的环境支持
删除了对平台的支持
现在删除了对以下环境的支持:
- 32 位平台
- Windows 7
- Windows Server 2008
- Windows Server 2012
删除了对 IDE 的支持
现在删除了对以下 IDE 的支持:
- Eclipse 4.2
已弃用对 IDE 的支持
对以下 IDE 的支持现已弃用,并且在以后的版本中将删除:
- Eclipse 4.3, 4.4, 和 4.5
- Texas Instruments Code Composer Studio 7.47.4 和 8.0
弃用的编译器
已弃用以下编译器,并且在以后的版本中将删除:
编译器系列 | 弃用的编译器 |
---|---|
Altium |
|
ARM |
|
Embarcadero |
|
Clang |
|
Cosmic Software |
|
GNU GCC |
|
Green Hills Software |
|
IAR Compilers |
|
Keil |
|
Microsoft |
|
National Instruments |
|
Renesas |
|
Texas Instruments |
|
Wind River |
|
已解决的 Bugs 和 FRs
Bug/FR 编号 | 说明 |
---|---|
CPP-46176 | 重建访问受保护成员 |
CPP-46192 | 改进 AUTOSAR-A3_9_1 的映射 |
CPP-47046 | MISRA2004-13_7_aj (MISRAC2012-RULE_14_3-aa) 应该检查 'char’类型的实际大小 |
CPP-47074 | OPT-05 报告对 lambda 中使用的变量的误报违规 |
CPP-47619 | 从 libcpptesttrace64.so 的发行版中删除 __strtok_r 的使用 |
CPP-47708 | std::unordered_map 编译错误 |
CPP-47423 | MISRA2008-5_0_6_a 漏报:未检测到更窄类型的隐式转换 IAR_ARM_7.80.4 |
CPP-46938 | AUTOSAR-M4_10_2-a 和 CODSTA-131 误报 - 数组索引与指针初始化混淆 |
CPP-47426 | CODSTA-CPP-53 (AUTOSAR-A7_1_1-a) 在通过引用在 lambda 中捕获对象时报告误报违规 |
CPP-47124 | METRIC.DIF 不应该计算没有显式块的 else-if 语句 |
CPP-47454 | CODSTA-161_a 在实质上是布尔类型的参数用作 && 中的参数时报告误报, |
CPP-47795 | 检查圈复杂度(CC、SCC、MCC)的指标不一致 |
CPP-47623 | 当编译指示遵循 asm 声明时解析器崩溃 |
CPP-47151 | 改进 JSF-164 的映射(使用 BD-PB-BADSHIFT) |
CPP-47196 | MISRA2008-3_2_2(全局规则)不应报告未定义的 constexpr 变量的违规情况 |
CPP-47118 | PREPROC-01、PREPROC-10:文档具有误导性 |
CPP-46917 | 为 Windows 适配 C/C++test UT CMake 扩展 |
CPP-46555 | GCC/Clang 窗口的 __atomic_compare_exchange_8 定义不正确 |
CPP-47437 | 使用 /permissive- 对 vc_14_2 的类注入设置不正确 |
CPP-46560 | 重构访问私有成员 |
CPP-47595 | 已弃用的属性接受第二个参数。 |
CPP-47669 | 当标头包含模板类及其专业化时,NAMING-32 (AUTOSAR-A2_8_1-a) 报告误报 |
CPP-47205 | MISRA2004-12_13 不会触发初始化程序中的增量操作 |
CPP-47013 | 多个重载函数实例 |
CPP-47467 | 缺少 FlowAnalysis 违规路径的代码高亮 |
CPP-46918 | 支持 IAR BXARM 编译器 |
CPP-46987 | MISRA2004-16_9 不报告全局初始值设定项中使用的函数标识符 |
CPP-46988 | MISRA2004-10_1_* 规则不报告将常量函数参数隐式转换为更窄类型的违规行为 |
CPP-46990 | 关闭大括号后使用空语句时,MISRA2004-14_3 不报告违规 |
CPP-47045 | MISRA2004-17_4 在指针算术中使用指针类型表达式时不报告违规 |
CPP-46772 | 错误:表达式必须有一个常量值 - constexpr 的问题 |
CPP-46983 | 错误:表达式必须有一个常量值 constexpr auto memberFunctionConst = ConstGetMember( &ClassWithMember::GetInt); |
CPP-47340 | 遍历很长的名称引用列表时堆栈耗尽 |
CPP-47376 | 错误:多个运算符 "==”匹配这些操作数:内置运算符 "arithmetic == arithmetic" |
CPP-47393 | 没有函数模板 "std::distance”的实例与参数列表匹配 |
CPP-47466 | 错误:类实例化时的过度递归 |
CPP-46964 | 错误:“EdidImageAspectRatio”类型的值不能用于初始化“无符号的字符”类型的实体 |
CPP-47367 | 错误:不能在友元声明中指定"= default" |
CPP-46340 | 允许通过高级设置重新配置项目特定临时数据的位置 |
CPP-47319 | EXCEPT-08 (AUTOSAR-M15_3_1-a) 在未使用构造函数抛出异常时报告误报违规 |
CPP-47320 | 当浮点类型的表达式用作构造函数调用中的参数时,CODSTA-198 (AUTOSAR-M5_0_7-a) 报告误报违规 |
CPP-47330 | 当类型用作模板参数时,GLOBAL-UNUSEDTYPE (AUTOSAR-A0_1_6-a) 报告误报违规 |
CPP-47341 | GLOBAL-ONEEXTERNDEF (AUTOSAR-M3_2_4-a) 在函数定义为 =default 外部类时报告误报违规 |
CPP-47468 | 为 C++ 启用 METRICS-40 |
CPP-47469 | CODSTA-CPP-32 (AUTOSAR-A3_1_5-a, JSF-109) 不应报告旨在内联的函数的违规行为 |
CPP-47548 | 改进 AUTOSAR A16-0-1 的映射 |
CPP-47612 | AUTOSAR-A2_7_2 误报 |
CPP-47661 | AUTOSAR-A5_2_2-a 误报 |
CPP-47662 | AUTOSAR-A7_1_5-a:修复规则报文中的错字 |
CPP-47673 | CODSTA-MCPP-38 (AUTOSAR-A8_5_2-a) 报告循环变量的误报 |
CPP-47675 | INIT-06 (AUTOSAR-A12_1_1-b) 在使用委托构造函数时报告误报 |
CPP-47783 | CODSTA-CPP-105 (AUTOSAR-A12_7_1-a) 在使用委托构造函数时报告误报 |
CPP-47533 | 默认模板参数转换导致 SFINAE 失败。 |
CPP-45988 | 错误:没有重载函数“ac::com::cpp_binding::deserialize_args_from_someip”的实例与参数列表匹配 |
CPP-48192 | cpptestcc:内部错误:断言在以下位置失败:"parasoft.c", p_create_token 中的第 1335 行 |
CPP-47620 | 当表达式中使用多个取消引用时,MISRA2004-16_7 (MISRA2008-7_1_2_a) 报告不一致 |
FA-4940 | BD-PB-CC-2 误报 |
FA-8083 | BD-PB-OVERFNZT 误报 |
FA-8102 | BD-PB-OVERFNZT 误报数组在子函数中的未知位置以零终止。 |
FA-8107 | BD-PB-VALRANGE 在 for 循环中报告误报违规 |
FA-8314 | BD-PB-CC 报告误报 |
FA-8322 | 在 C++11 模式下将常量结构作为参数传递时创建的 CFG 不正确 |
FA-8337 | 规则 MISRAC2012-DIR_4_1-a(BD-PB-ARRAY) 的误报 |
FA-8339 | BD-PB-VOVR 误报 |
FA-8347 | 当循环变量被转换时 BD-PB-ARRAY 误报 |
PT-641 | SVN 证需要引号 |
PT-735 | 无法在 Firefox 浏览器中浏览嵌套报告 HTML 文件 |
PT-866 | 将测试配置导入 2020.2 时会自动恢复 10.4.3 中清除的文件内容模式 |
新建规则
规则 ID | 说明 |
---|---|
AUTOSAR-A16_0_1-e | 不得使用 #undef |
AUTOSAR-M0_1_3-c | 避免未使用的私有成员变量 |
AUTOSAR-M5_0_8-b | 浮动类型的复杂表达式的值不应转换为更宽的浮动类型 |
BD-PB-NORETDECL | 使用指定不返回的属性声明不返回函数 |
CERT_C-FLP34-b | 避免浮点数从宽浮点数到窄浮点数的隐式转换 |
CODSTA-198_b | 浮点类型的复杂表达式的值不应强制转换为整数类型 |
CODSTA-220 | 整数常量宏的参数应该是具有适当值的十进制、八进制或十六进制常量 |
CODSTA-221 | 不要在函数类型的规范中包含任何类型限定符 |
CODSTA-222 | 避免从较宽类型到较窄类型的隐式整数转换 |
CODSTA-223 | 来自 cstdint 的固定宽度整数类型,指示大小和符号,应用于代替基本数字类型 |
CODSTA-CPP-106 | 使用委托构造函数减少代码重复 |
CODSTA-MCPP-53 | 不要在用 const 或 consttype 声明的对象上使用 std::move |
CODSTA-MCPP-54 | 不要创建 std::array 的右值引用 |
HICPP-16_1_1-e | #endif 预处理器指令将仅用于防止多次包含同一头文件 |
HICPP-16_1_1-f | #if 预处理器指令将仅用于防止多次包含同一头文件 |
HICPP-16_1_1-g | #error 指令不得使用 |
HICPP-16_1_1-h | #pragma 指令不得使用 |
HICPP-16_1_1-i | 不得使用 #undef |
JSF-026_b | 不应使用 #if 预处理器指令 |
JSF-026_c | #error 指令不得使用 |
JSF-026_d | #pragma 指令不得使用 |
JSF-026_e | 不得使用 #undef |
JSF-028_b | #endif 预处理器指令将仅用于防止多次包含同一头文件 |
MISRA2004-10_4_b | 浮点类型的复杂表达式的值不应强制转换为整数类型 |
MISRA2008-0_1_3_c | 消除未使用的私有成员变量 |
MISRA2008-16_2_1_d | #endif 预处理器指令将仅用于防止多次包含同一头文件 |
MISRA2008-16_2_1_e | #if 预处理器指令将仅用于防止多次包含同一头文件 |
MISRA2008-16_2_1_f | #error 指令不得使用 |
MISRA2008-16_2_1_g | #pragma 指令不得使用 |
MISRA2008-16_2_1_h | 不得使用 #undef |
MISRA2008-5_0_8_b | 显式整数或浮点转换不应增加 cvalue 表达式的基础类型的大小 |
OWASP2019-API10-a | 所有异常都应重新抛出或使用标准记录器记录 |
OWASP2019-API10-b | 不要使用 'syslog' 函数进行日志记录 |
OWASP2019-API2-a | 不要使用弱加密功能 |
OWASP2019-API3-a | 不要将空容器迭代器传递给标准算法作为目标 |
OWASP2019-API3-b | 避免超出范围访问数组 |
OWASP2019-API3-c | 避免超出范围访问数组和指针 |
OWASP2019-API3-d | 避免由于定义不正确的格式限制而导致缓冲区溢出 |
OWASP2019-API3-e | 避免由于读取非零终止字符串而导致溢出 |
OWASP2019-API3-f | 从缓冲区读取时避免溢出 |
OWASP2019-API3-g | 写入缓冲区时避免溢出 |
OWASP2019-API3-h | 避免由于定义了不正确的格式限制而导致污染数据造成缓冲区溢出 |
OWASP2019-API3-i | 避免从受污染的数据中读取缓冲区溢出 |
OWASP2019-API3-j | 避免缓冲区从受污染的数据中溢出 |
OWASP2019-API3-k | 正确的种子伪随机数生成器 |
OWASP2019-API3-l | 避免将敏感数据传递给写入日志文件的函数 |
OWASP2019-API3-m | 在检查符号链接的存在时避免竞争条件 |
OWASP2019-API3-n | 应限制使用系统属性(环境变量) |
OWASP2019-API3-o | 避免使用 MFC 库中的时间的函数 |
OWASP2019-API3-p | 不要将由于应用程序错误而导致的潜在敏感信息打印到异常消息中 |
OWASP2019-API3-q | 指向结构的指针不应传递给可以将数据复制到用户空间的函数 |
OWASP2019-API4-a | 在用于确定内存分配的大小之前,先验证可能受到污染的数据 |
OWASP2019-API4-b | 确保释放资源 |
OWASP2019-API7-a | 正确使用 errno 值 |
OWASP2019-API7-b | 如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基数提供了多个处理程序,则这些处理程序应按最源于基类的顺序排序 |
OWASP2019-API7-c | 不要让 'catch’ 块为空 |
OWASP2019-API8-a | 防止命令注入 |
OWASP2019-API8-b | 避免在输出控制台上打印污染的数据 |
OWASP2019-API8-c | 防止环境注入 |
OWASP2019-API8-d | 防止文件名注入 |
OWASP2019-API8-e | 从格式字符串中排除未经过滤的用户输入 |
OWASP2019-API8-f | 防止 SQL 注入 |
OWASP2019-API8-g | 在 libxerces-c 中禁用解析 XML 外部实体(XXE) |
OWASP2019-API8-h | 注意确保 LoadLibrary() 将加载正确的库 |
OWASP2019-API8-i | 避免将动态创建的字符串传递给 exec |
OWASP2019-API8-j | 避免将用户输入作为参数传递给方法 |
OWASP2019-API9-a | 自由断言以记录内部假设和不变量 |
OWASP2019-API9-b | 使用枚举时,应明确声明每个成员的值 |
OWASP2019-API9-c | 汇编程序的所有用法都应记录 |
OWASP2019-API9-d | 应记录浮点运算的使用 |
OWASP2019-API9-e | 具有外部链接的对象或函数应在头文件中声明 |
OWASP2019-API9-f | 记录整数除法 |
OWASP2019-API9-g | #pragma 指令的所有使用都应记录并解释 |
PFO-10 | 不要在头文件中定义多个类 |
PREPROC-10_b | #endif 预处理器指令将仅用于防止多次包含同一头文件 |
PREPROC-10_c | #if 预处理器指令将仅用于防止多次包含同一头文件 |
PREPROC-11_b | 不应使用 #if 预处理器指令 |
PREPROC-25 | 不得使用 #undef |
PREPROC-26 | #ifndef、#ifdef、#if、#elif、#else 和 #endif 预处理器指令应仅用于条件文件包含和 include guards(头文件保护符) |
更新规则
以下规则的输出消息已更新,因此与这些规则有关的 DTP 抑制可能不再可用:
- PREPROC-01
我们改进了以下规则以更好地支持可能影响规则输出消息的非类型模板参数。因此,与 DTP 上的这些规则相关的抑制可能不再可用。
- GLOBAL-TEMPLNOINST
- GLOBAL-UNUSEDFUNC
- GLOBAL-VIRTBASECLASS
- GLOBAL-VIRTINDIAMOND
其他更新规则:
类别 ID | 规则 IDs |
---|---|
AUTOSAR C++14 编码准则 | AUTOSAR-A0_1_1-a, AUTOSAR-A0_1_6-a, AUTOSAR-A12_1_1-b, AUTOSAR-A12_1_5-a, AUTOSAR-A12_7_1-a, AUTOSAR-A13_2_3-a, AUTOSAR-A15_5_3-f, AUTOSAR-A16_0_1-a, AUTOSAR-A16_0_1-b, AUTOSAR-A16_0_1-c, AUTOSAR-A18_9_3-a, AUTOSAR-A1_1_1-i, AUTOSAR-A23_0_1-a, AUTOSAR-A27_0_2-a, AUTOSAR-A2_10_1-c, AUTOSAR-A2_10_1-e, AUTOSAR-A2_8_1-a, AUTOSAR-A3_1_5-a, AUTOSAR-A3_9_1-b, AUTOSAR-A5_10_1-a, AUTOSAR-A5_2_2-a, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A7_1_1-a, AUTOSAR-A8_4_3-b, AUTOSAR-A8_4_9-a, AUTOSAR-A8_5_2-a, AUTOSAR-M0_1_2-aa, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_2-t, AUTOSAR-M0_1_9-a, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-g, AUTOSAR-M15_3_1-a, AUTOSAR-M3_2_2-a, AUTOSAR-M3_2_4-a, AUTOSAR-M4_10_2-a, AUTOSAR-M5_0_15-a, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M5_0_2-a, AUTOSAR-M5_0_4-a, AUTOSAR-M5_0_6-a, AUTOSAR-M5_0_7-a, AUTOSAR-M5_2_10-a, AUTOSAR-M6_2_3-a, AUTOSAR-M7_1_2-b, AUTOSAR-M7_1_2-c, AUTOSAR-M8_4_4-a, AUTOSAR-M8_5_2-a |
流分析 | BD-PB-ARRAY, BD-PB-CC, BD-PB-ERRNO, BD-PB-OVERFNZT, BD-PB-PTRARR, BD-PB-VALRANGE, BD-PB-VOVR, BD-RES-INVFREE, BD-TRS-DIFCS, BD-TRS-DLOCK |
SEI CERT C | CERT_C-ARR30-a, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON31-c, CERT_C-CON35-a, CERT_C-DCL00-a, CERT_C-DCL13-a, CERT_C-DCL22-a, CERT_C-ERR30-a, CERT_C-ERR32-a, CERT_C-EXP08-b, CERT_C-EXP35-a, CERT_C-FIO37-a, CERT_C-FIO38-a, CERT_C-FLP34-a, CERT_C-INT10-a, CERT_C-INT31-a, CERT_C-MEM34-a, CERT_C-MSC19-a, CERT_C-POS30-a, CERT_C-POS47-a, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR32-a |
SEI CERT C++ | CERT_CPP-CON56-a, CERT_CPP-CTR50-a, CERT_CPP-ERR50-f, CERT_CPP-ERR58-a, CERT_CPP-STR50-b, CERT_CPP-STR53-a |
编码规范 | CODSTA-131, CODSTA-161_a, CODSTA-166_a, CODSTA-166_b, CODSTA-181, CODSTA-196, CODSTA-198 |
C++ 的编码规范 | CODSTA-CPP-101, CODSTA-CPP-105, CODSTA-CPP-32, CODSTA-CPP-43, CODSTA-CPP-53, CODSTA-CPP-63, CODSTA-CPP-66, CODSTA-CPP-83, CODSTA-CPP-85 |
Modern C++ 的编码规范 | CODSTA-MCPP-06_b, CODSTA-MCPP-26, CODSTA-MCPP-38, CODSTA-MCPP-42, CODSTA-MCPP-51 |
常见不足枚举 | CWE-119-a, CWE-125-a, CWE-787-a |
异常 | EXCEPT-08 |
格式化 | FORMAT-16 |
全局分析 | GLOBAL-ONEDEFINLINE, GLOBAL-ONEDEFRULE, GLOBAL-ONEEXTERNDEF, GLOBAL-UNUSEDTYPE |
高完整性 C++ | HICPP-12_4_2-a, HICPP-12_5_2-a, HICPP-13_2_2-a, HICPP-16_1_1-b, HICPP-16_1_1-c, HICPP-17_4_1-a, HICPP-18_3_1-a, HICPP-1_2_1-i, HICPP-1_2_2-a, HICPP-1_3_1-a, HICPP-3_1_1-c, HICPP-3_1_1-e, HICPP-5_1_2-h, HICPP-5_2_1-a, HICPP-5_7_2-a, HICPP-7_1_2-a, HICPP-7_4_2-a, HICPP-8_4_2-a |
初始化 | INIT-06, INIT-16 |
Joint Strike Fighter | JSF-026, JSF-028, JSF-071_b, JSF-109, JSF-117.1, JSF-118, JSF-121, JSF-135_c, JSF-135_e, JSF-144, JSF-164, JSF-185, JSF-187 |
指标分析 | METRIC.CC, METRIC.DIF |
度量指标 | METRICS-40 |
MISRA C 1998 | MISRA-054 |
MISRA C 2004 | MISRA2004-10_1_a, MISRA2004-10_1_d, MISRA2004-10_4, MISRA2004-12_13, MISRA2004-12_1_a, MISRA2004-13_7_aj, MISRA2004-13_7_ak, MISRA2004-14_2, MISRA2004-14_3, MISRA2004-16_7, MISRA2004-16_9, MISRA2004-17_4, MISRA2004-9_2 |
MISRA C++ 2008 | MISRA2008-0_1_2_aa, MISRA2008-0_1_2_k, MISRA2008-0_1_2_l, MISRA2008-0_1_5, MISRA2008-0_1_6, MISRA2008-0_1_9, MISRA2008-0_3_1_a, MISRA2008-0_3_1_e, MISRA2008-15_3_1, MISRA2008-15_5_3_f, MISRA2008-16_0_3, MISRA2008-16_2_1_b, MISRA2008-16_2_1_c, MISRA2008-3_2_2, MISRA2008-3_2_4, MISRA2008-4_10_2, MISRA2008-5_0_15, MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_0_2_a, MISRA2008-5_0_4_a, MISRA2008-5_0_6_a, MISRA2008-5_0_7_b, MISRA2008-5_2_10, MISRA2008-5_2_4, MISRA2008-6_2_3, MISRA2008-7_1_1, MISRA2008-7_1_2_a, MISRA2008-7_1_2_b, MISRA2008-8_4_4, MISRA2008-8_5_2 |
MISRA C 2012 (Legacy) | MISRA2012-DIR-4_13_c, MISRA2012-DIR-4_13_e, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_e, MISRA2012-RULE-10_1_a, MISRA2012-RULE-11_9_a, MISRA2012-RULE-11_9_b, MISRA2012-RULE-14_3_za, MISRA2012-RULE-14_3_zb, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-18_4, MISRA2012-RULE-20_5, MISRA2012-RULE-21_17_a, MISRA2012-RULE-22_10, MISRA2012-RULE-22_2_b, MISRA2012-RULE-22_5_a, MISRA2012-RULE-22_5_b, MISRA2012-RULE-22_8, MISRA2012-RULE-22_9, MISRA2012-RULE-2_2_a, MISRA2012-RULE-2_2_b, MISRA2012-RULE-8_13_a, MISRA2012-RULE-8_6, MISRA2012-RULE-9_2 |
MISRA C 2012 | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_13-c, MISRAC2012-DIR_4_13-e, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_11_9-a, MISRAC2012-RULE_11_9-b, MISRAC2012-RULE_14_3-aa, MISRAC2012-RULE_14_3-ab, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_18_4-a, MISRAC2012-RULE_20_5-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_22_10-a, MISRAC2012-RULE_22_2-b, MISRAC2012-RULE_22_5-a, MISRAC2012-RULE_22_5-b, MISRAC2012-RULE_22_8-a, MISRAC2012-RULE_22_9-a, MISRAC2012-RULE_2_2-a, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_8_13-a, MISRAC2012-RULE_8_6-a, MISRAC2012-RULE_9_2-a |
命名规范 | NAMING-32 |
优化 | OPT-05, OPT-25 |
OWASP 十大最关键的 Web 应用程序安全风险(2017) | OWASP2017-A6-c |
预处理器 | PREPROC-10, PREPROC-11 |
安全性 | SECURITY-43 |
删除规则
删除了以下规则以提高结果的准确性:
类别 ID | 规则 IDs |
---|---|
AUTOSAR C++14 编码准则 | AUTOSAR-A3_9_1-a, AUTOSAR-M5_0_4-b |
高完整性 C++ | HICPP-17_3_5-b |
MISRA C 2004 | MISRA2004-10_1_h |
MISRA C++ 2008 | MISRA2008-5_0_4_b |