发布日期:2020 年 11 月 9 日
此版本包括以下增强功能:
编译器支持
我们添加了对以下编译器的支持:
编译器名称 | 编译器首字母缩写词 |
---|---|
ARM Compiler 6.14 | armclang_6_14 |
Clang C/C++ Compiler v 10.0 (x86_64) | clang_10_0 |
GNU GCC 10.x (x86_64) | gcc_10-64 |
适用于 ARM v. 8.50x 的 IAR Compiler | iccarm_8_50 |
Metaware DesignWare ARC C/C++ Compiler P-2019.09 | ccac_2019_09 |
IDE 支持
我们添加了对以下 IDE 的支持:
- Eclipse 2018-12 (4.10)
- Eclipse 2019-03 (4.11)
- Eclipse 2019-06 (4.12)
- Eclipse 2019-09 (4.13)
- Eclipse 2019-12 (4.14)
- Eclipse 2020-03 (4.15)
新建抑制格式
现在,您可以在parasoft.suppress文件中创建对静态分析结果的抑制,该抑制文件可以与源文件一起存储在源码控制中。您可以在 C/C++test 图形用户界面中创建文件内抑制,或者将有关您要抑制的发现的信息手动添加到抑制文件中。请参见抑制报告可接受的违规行为。
不赞成以 XML 样式格式在本地或在团队服务器上存储抑制,以及【抑制】视图。您可以将已弃用的抑制格式迁移到新格式,或在【抑制】视图中启用已弃用的抑制格式。请参见处理弃止的抑制。
此外,您可以配置 C/C++test 来自动抑制在与正则表达式模式匹配的行上检测到的静态规则冲突。请参见 基于正则表达式模式定义行抑制。
增强静态分析
我们通过新功能扩展了 C/C++test 的静态分析功能,以帮助您专注于最便捷的任务。
针对当前分支上的修改代码的新作用域设置选项
我们添加了新选项来创建文件筛选,以将分析范围限制为在当前工作分支上修改的文件。这使您可以专注于在代码与主要开发流合并之前,识别和修复由最近的代码更改引起的错误。
此外,您可以将范围缩小到本地修改的文件,以便可以在将更新的代码检入源码控制之前对其进行分析。
请参见基于源码控制数据定义文件过滤器。
用于定义代码分析基准的新报告参考选项
现在您可以指定参考报告文件的路径或 URL,当使用 C/C++test 执行分析时,该路径或 URL 将用作基线。这使您可以从当前报告中排除以前报告的发现,以便集中于最近检测到的代码缺陷。请参见配置一份参考报告。
增强的需求和测试相关性
我们已经大幅扩展了 C/C++test 的功能,以指示需求和测试的相关性,以帮助您确定需求管理系统(RMS)中指定的需求,而这些需求未包含在任何测试中。 现在您可以:
- 从文件或 DTP 导入要求。
- 扫描您的工作空间以检测需求和现有测试之间的现有相关性。
- 找出任何测试未涵盖的需求,并通过在项目中添加适当的测试来解决这些差距。
- 在新测试和导入的需求之间建立关联。
请参见使用需求视图。
扩展覆盖率报告给 DTP
现在,您可以将所有支持的覆盖率类型的覆盖率数据发布到 DTP,并在覆盖率小工具中显示。这使您可以方便地在 DTP 仪表板上分析覆盖率统计信息和趋势。请参见 了解覆盖率类型和 连接 DTP。
新安装包
在此版本中,我们引入了新的安装程序以简化安装过程。您现在可以通过简单地将 zip 或 tar.gz 安装包的内容解压缩到所需位置来安装 C/C++test Professional。
请注意,此版本中提供的新安装程序是预览版,不建议用于产品环境。在 2020.2 版中,可执行安装程序仍然是安装 C/C++test Professional 的主要方式。有关详细信息,请联系您的 Parasoft 代理。
其他增强
- 在构建执行基于流的分析所需的数据集时,我们减少了磁盘空间的使用。
- 现在,您可以配置其他高级设置,以使用 C/C++test 对运行的静态分析进行微调。请参见配置高级选项。
- 现在,项目创建向导可以导入 Cmake 构建系统生成的 JSON 格式的构建定义文件。
新建的和更新的代码分析规则
我们添加了新的静态分析规则,以扩展合规性标准的覆盖率; 有关详细信息。有关新规则和更新规则的列表,请参见新规则 和 更新规则 。
更新测试配置
我们更新了以下测试配置:
- AUTOSAR C++14 编码准则
- 流分析侵蚀
- 快速流分析
- 流分析标准
- 高完整性 C++
- Joint Strike Fighter
- MISRA C 1998
- MISRA C 2004
- MISRA C 2012
- MISRA C++ 2008
- FDA (C) 推荐规则
- FDA (C++) 推荐规则
- SEI CERT C Guidelines
- SEI CERT C Rules
- SEI CERT C++ Rules
不建议使用和删除的环境支持
弃用的编译器
不支持以下编译器,并且在以后的版本中将删除:
- ARM Compiler 6.6
- Intel C++ 编译器 v 18.0
- Tricore 4.9.x 的 GCC
弃用的平台
不支持以下平台,并且在以后的版本中将删除:
- Windows Server 2008
- Windows Server 2012
删除的 IDE
删除了对以下 IDE 的支持:
- ARM Ds-5 早于 5.28
- Eclipse 3.8
- Renesas e2 Studio 5.1
- WindRiver Workbench 3.3
- Texas Instruments Code Composer Studio 6.0
删除源码控制管理系统
删除了对以下 IDE 的支持:
- AccuRev
- ClearCase
- CVS
- Serena Dimensions
- StarTeam
- Synergy CM
Visual Source Safe
已解决的 Bugs 和 FRs
Bug/FR ID | 说明 |
---|---|
CPP-42547 | CERT-C-MSC04 不应报告作为 URL 一部分的 '//' |
CPP-44289 | 添加用于扩展/折叠所有测试用例步骤的按钮 |
CPP-44888 | 提高 MISRA2004-5_1 的准确性 |
CPP-44911 | CERT_C-INT34-a(MISRA-038)报告正确移位操作时误报 |
CPP-44935 | CODSTA-125(CERT_CPP-EXP57-b)报告从 nullptr 转换时出现误报 |
CPP-45230 | 当 cpptestcli 使用非常长的命令行调用 cpptestcc1 时则出现崩溃 |
CPP-45349 | AUTOSAR-A7_1_3-a 误报 |
CPP-45372 | MISRA2008-5_0_6_a 误报 |
CPP-45430 | PREPROC-10 (MISRA2008-16_2_1_b) 不使用 #ifndef 时不检测 #endif 指令 |
CPP-45452 | HICPP-12_5_2-a(AUTOSAR-A12_7_1-a)报告无法默认的构造函数违规 |
CPP-45500 | 重载函数 "ioctl”的多个实例具有 "C”链接 |
CPP-45501 | 覆盖率: 在未命名的命名空间中定义的函数可以在覆盖率视图中出现多次 |
CPP-45505 | 错误:标识符 "r9”未定义静态 __no_init uint32_t __iar_SB @ r9; |
CPP-45510 | CODSTA-CPP-53 报告结构变量违规 |
CPP-45514 | JSF-041(METRICS-26)应该忽略 parasoft 开始抑制,parasoft 结束抑制注释 |
CPP-45516 | 改进规则 JSF-046 的实施 |
CPP-45748 | 大括号省略不适用于 GCC 和 Clang |
CPP-45769 | MISRA2004-8_7(JSF-136_a)不应报告标头(C ++)中定义的 const 变量 |
CPP-45796 | 当在项目名称中使用 "@”字符时,MISRA-005(JSF-009)报告违规 |
CPP-45833 | JSF-206(MISRA2004-20_4)将允许使用 'new’ 和 'delete’操作符成员函数 |
CPP-45834 | 在自动生成的桩函数中隐式使用的显式构造函数 |
CPP-45855 | 错误:包 "_Uelements”与 "_Elements” 具有的元素数量不同 |
CPP-45859 | 错误:断言在以下位置失败:“ scope_stk.c”,push_template_instantiation_scope 中的第 5053 行 |
CPP-45866 | MISRA2004-14_8(MISRAC2012-RULE_15_6-a)报告 for 范围循环的误报 |
CPP-45877 | 错误处理逗号分隔的预处理器定义值 |
CPP-45878 | INIT-05 报告基于范围的 for 循环违规 |
CPP-45880 | GCC 允许系统函数的异常规范不一致 |
CPP-45912 | 改进 JSF-051 的映射 |
CPP-45917 | 改进 CODSTA-61(JSF-194,MISRA2008-6_4_6)以更好地处理具有相同值的多个枚举数 |
CPP-45965 | 具有可重载属性的检测代码的编译错误 |
CPP-45975 | PB-50 不知道 scanf 中的 %* |
CPP-45978 | 当 'switch’语句与其主体之间是预处理程序指令时,规则 MISRA2004-15_1(MISRAC2012-RULE_16_2-a)报告误报。 |
CPP-45979 | 将本地对象的地址分配给非静态成员时,MISRA2004-17_6_b 不会触发 |
CPP-45992 | 使用解决方案文件夹测试解决方案期间发生异常 |
CPP-46015 | 内建函数的 EDG 不兼容声明:__builtin_operator_new and __builtin_operator_delete |
CPP-46018 | 无法加载 MISRAC2012-DIR_4_7-a(BD-PB-CHECKRET)规则的违规 |
CPP-46031 | STL-37(AUTOSAR-A18_1_1-a)不应报告使用 '_func_’宏的违规情况 |
CPP-46137 | CODSTA-13(JSF-171)不报告指针类型的表达式比较违规 |
CPP-46138 | PREPROC-06 报告对头文件 "sensors/sensor.h”的违规 |
CPP-46139 | 为 vector <uint16_t> 生成测试会导致内部错误:断言在以下位置失败:"exprutil.c" |
CPP-46142 | CERT_C-FI034 的映射不正确 |
CPP-46159 | Libc++ 中使用的 __builtin_launder 在 C++17 中具有不同的返回类型 |
CPP-46173 | CODSTA-CPP-53 和 JSF-117.1 的误报 |
CPP-46177 | 当在函数参数的数组维中使用强制转换时,MISRA2004-14_2(MISRAC2012-RULE_2_2-a)报告误报 |
CPP-46186 | MISRA2004-17_6_a 的误报 |
CPP-46200 | IAR:处理长链接程序命令行的能力 |
CPP-46219 | MISRA2008-5_0_1_f -存在多个 volatile 类型的两个实现函数中的一个可能存在错误 |
CPP-46266 | 当在循环条件下强制转换整数常量时,CODSTA-83 报告误报 |
CPP-46284 | 删除从 SECURITY-19 到 CERT_C-POS35-a 的映射 |
CPP-46317 | 类 "boost::units::dimensionless_type” 没有成员 "item" |
CPP-46328 | 错误:具有相同参数类型的静态和非静态成员函数无法重载 |
CPP-46334 | AUTOSAR A3-3-2报告对非静态类成员变量的违规 |
CPP-46404 | HICPP-9_1_5-a(AUTOSAR-A10_3_3-a)报告声明为 'final’的虚拟函数违规 |
CPP-46466 | 改进 JSF-111 的映射 |
CPP-46520 | Std::optional 上的 MISRAC2012-RULE_14_2-* 规则误报 |
CPP-46549 | 为 GCC 启用 C++98/03 模式下的标准属性支持 |
FA-7538 | BD-PB-ARRAY 报告静态函数违规 |
FA-7588 | 当分析达到其深度极限时,BD-PB-CC 报告误报。 |
FA-7814 | BD-PB-CC 报告误报 |
FA-7855 | 当多维数组用作结构字段时 BD-PB-ARRAY 报告误报 |
FA-7884 | BD-PB-NOTINIT - 使用 CString.Format() 而不初始化时则误报 |
FA-7907 | BD-API-NEGPARAM 不应报告 fseek 的负偏移量违规 |
FA-7909 | BD-PB-BADSHIFT 在 uint64_t 变量上标记违规 |
FA-7913 | 当从数组中为指针分配了变量地址时,BD-PB-NP 报告误报 |
FA-7916 | BD-PB-OVERFNZT 报告字符数组违规 |
FA-7917 | 当目标缓冲区是指向矢量元素的指针时,BD-PB-OVERFWR 报告误报 |
FA-7918 | 具有 std::abs 的 BD-PB-ZERO 误报 |
FA-7919 | 通过别名指针分配缓冲区内容时,BD-PB-OVERFNZT 误报。 |
FA-7933 | BD-PB-OVERFNZT 报告对 strcpy() 的违规 |
FA-7934 | 使用宏时,BD-PB-ARRAY 不报告违规 |
FA-7938 | BD-PB-CC 误报是由于浮点值扣除不正确引起的。 |
FA-7939 | Lambda 捕获模板变量时,DependencyFinder.processCfe() 中的 NullPointerException |
FA-7991 | MISRAC2012-RULE_9_1-a 和 MISRAC2012-DIR_4_1-a 的误报(带有基础 "char” 类型的枚举被错误地视为 iccarm 的“签名字符”) |
FA-7996 | BD-PB-SUBSEQMOVE 和 BD-PB-SUBSEQFRWD 误报带有 armclamg 6.9 |
FA-7997 | 使用 QNX 5.x(32位)时 BD-PB-ERRNO 报告误报 |
FA-8009 | BD-PB-CC 在读操作系统调用中报告违规 |
新建规则
规则 ID | 规则说明 |
---|---|
BD-PB-PTRSUB | 不要减去两个不指向同一数组元素的指针 |
CERT_C-ARR36-b | 不要比较两个不相关的指针 |
CERT_CPP-CTR54-c | 不要减去两个不指向同一数组元素的指针 |
CODSTA-13_b | 指针减法仅适用于寻址同一数组元素的指针 |
CODSTA-CPP-105 | 当行为等同于编译器行为时,将特殊成员定义为 =default |
CODSTA-MCPP-51 | 将结果立即转换为常量迭代器时,请使用常量容器调用 |
CODSTA-MCPP-52 | 不要在最后一个类中引入虚拟函数 |
FORMAT-47_a | 将 CV 限定词放在其适用类型的右侧 |
FORMAT-47_b | CV 限定词应放置在 typedef 或使用名称的右侧 |
JSF-046_a | 用户指定的 C++ 外部标识符的前 64 个字符应不同 |
JSF-046_b | 用户指定的 C++ 内部标识符应与前 64 个字符中的外部标识符不同 |
JSF-046_c | 在同一作用域中声明的用户指定的 C++ 内部标识符的前 64 个字符应不同 |
JSF-051 | 函数和变量名称中包含的所有字母将完全由小写字母组成 |
MISRA2004-5_1_a | 用户指定的 C 外部标识符的前 31 个字符应不同 |
MISRA2004-5_1_b | 用户指定的 C 内部标识符应与前 31 个字符中的外部标识符不同 |
MISRA2004-5_1_c | 在同一作用域中声明的用户指定的 C 内部标识符的前 31 个字符应不同 |
NAMING-54 | 使用视觉上不同的标识符 |
PORT-34_a | 用户指定的 C++ 外部标识符的前 64 个字符应不同 |
PORT-34_b | 用户指定的 C++ 内部标识符应与前 64 个字符中的外部标识符不同 |
PORT-34_c | 在同一作用域中声明的用户指定的 C++ 内部标识符的前 64 个字符应不同 |
PORT-35_a | 用户指定的 C 外部标识符的前 31 个字符应不同 |
PORT-35_b | 用户指定的 C 内部标识符应与前 31 个字符中的外部标识符不同 |
PORT-35_c | 在同一作用域中声明的用户指定的 C 内部标识符的前 31 个字符应不同 |
PORT-36_a | 标识符名称不得超过 31 个字符 |
PORT-36_b | 宏标识符名称不得超过 31 个字符 |
更新规则
类别 ID | 规则 IDs |
---|---|
AUTOSAR C++14 编码准则 | AUTOSAR-A0_1_1-a, AUTOSAR-A10_3_3-a, AUTOSAR-A12_7_1-a, AUTOSAR-A12_8_3-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_4_5-a, AUTOSAR-A16_0_1-a, AUTOSAR-A18_1_1-a, AUTOSAR-A18_1_6-a, AUTOSAR-A18_5_2-a, AUTOSAR-A18_9_4-a, AUTOSAR-A20_8_5-a, AUTOSAR-A23_0_1-a, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A2_3_1-a, AUTOSAR-A3_3_2-a, AUTOSAR-A3_8_1-b, AUTOSAR-A3_8_1-c, AUTOSAR-A5_0_2-a, AUTOSAR-A5_1_1-a, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A5_3_2-a, AUTOSAR-A6_4_1-a, AUTOSAR-A6_5_3-a, AUTOSAR-A6_5_4-b, AUTOSAR-A6_6_1-a, AUTOSAR-A7_1_1-a, AUTOSAR-A7_1_3-a, AUTOSAR-A7_1_5-a, AUTOSAR-A7_1_7-a, AUTOSAR-A8_4_3-a, AUTOSAR-A8_4_3-b, AUTOSAR-A8_4_9-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_1-c, AUTOSAR-M0_1_1-f, AUTOSAR-M0_1_1-g, AUTOSAR-M0_1_2-a, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_2-c, AUTOSAR-M0_1_2-n, AUTOSAR-M0_1_2-o, AUTOSAR-M0_1_2-p, AUTOSAR-M0_1_2-q, AUTOSAR-M0_1_2-s, AUTOSAR-M0_1_2-x, AUTOSAR-M0_1_2-y, AUTOSAR-M0_1_9-a, AUTOSAR-M0_3_1-a, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-c, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_1-i, AUTOSAR-M15_1_1-a, AUTOSAR-M15_1_2-a, AUTOSAR-M3_3_2-a, AUTOSAR-M3_4_1-b, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M5_0_17-a, AUTOSAR-M5_0_18-a, AUTOSAR-M5_0_2-a, AUTOSAR-M5_0_6-a, AUTOSAR-M6_4_2-a, AUTOSAR-M6_4_3-a, AUTOSAR-M6_4_3-b, AUTOSAR-M6_4_3-c, AUTOSAR-M6_4_3-d, AUTOSAR-M6_4_3-e, AUTOSAR-M6_4_4-a, AUTOSAR-M6_4_5-a, AUTOSAR-M6_4_6-a, AUTOSAR-M6_4_7-a, AUTOSAR-M6_5_3-a, AUTOSAR-M6_5_4-a, AUTOSAR-M6_5_5-a, AUTOSAR-M6_5_6-a, AUTOSAR-M7_1_2-c, AUTOSAR-M7_5_1-a, AUTOSAR-M7_5_2-a, AUTOSAR-M8_5_2-a |
流分析 | BD-API-NEGPARAM, BD-API-STRSIZE, BD-PB-ARRAY, BD-PB-BADSHIFT, BD-PB-CC, BD-PB-ERRNO, BD-PB-NOTINIT, BD-PB-NP, BD-PB-OVERFNZT, BD-PB-OVERFRD, BD-PB-OVERFWR, BD-PB-PTRARR, BD-PB-PTRCMP, BD-PB-SUBSEQFRWD, BD-PB-SUBSEQMOVE, BD-PB-VOVR, BD-RES-LEAKS, BD-TRS-MLOCK, BD-TRS-ORDER |
SEI CERT C | CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR36-a, CERT_C-ARR38-a, CERT_C-ARR38-b, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON41-a, CERT_C-CON43-a, CERT_C-DCL00-a, CERT_C-DCL02-a, CERT_C-DCL10-a, CERT_C-DCL11-a, CERT_C-DCL11-b, CERT_C-DCL11-c, CERT_C-DCL11-f, CERT_C-DCL22-a, CERT_C-DCL30-a, CERT_C-DCL30-b, CERT_C-DCL36-a, CERT_C-DCL41-a, CERT_C-ENV01-c, CERT_C-ERR30-a, CERT_C-ERR32-a, CERT_C-ERR33-c, CERT_C-EXP08-b, CERT_C-EXP33-a, CERT_C-EXP34-a, CERT_C-FIO22-a, CERT_C-FIO34-a, CERT_C-FIO37-a, CERT_C-FIO42-a, CERT_C-FIO47-a, CERT_C-FIO47-b, CERT_C-FIO47-c, CERT_C-FIO47-f, CERT_C-FLP30-a, CERT_C-FLP34-a, CERT_C-INT10-a, CERT_C-INT31-a, CERT_C-INT31-b, CERT_C-INT31-d, CERT_C-INT31-e, CERT_C-INT31-f, CERT_C-INT31-i, CERT_C-INT31-j, CERT_C-INT31-k, CERT_C-INT34-a, CERT_C-MEM00-e, CERT_C-MEM01-b, CERT_C-MEM01-c, CERT_C-MEM01-d, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC01-a, CERT_C-MSC01-b, CERT_C-MSC04-b, CERT_C-MSC07-a, CERT_C-MSC07-d, CERT_C-MSC07-e, CERT_C-MSC09-a, CERT_C-MSC12-a, CERT_C-MSC12-d, CERT_C-MSC12-e, CERT_C-MSC17-a, CERT_C-MSC19-a, CERT_C-MSC19-b, CERT_C-POS30-a, CERT_C-POS51-a, CERT_C-POS54-c, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR32-a, CERT_C-WIN30-a |
SEI CERT C++ | CERT_CPP-CON53-a, CERT_CPP-CTR54-b, CERT_CPP-ERR56-a, CERT_CPP-ERR57-a, CERT_CPP-EXP53-a, CERT_CPP-EXP54-b, CERT_CPP-EXP54-c, CERT_CPP-EXP57-b, CERT_CPP-EXP63-a, CERT_CPP-FIO51-a, CERT_CPP-STR50-b, CERT_CPP-STR50-c, CERT_CPP-STR51-a |
编码规范 | CODSTA-04, CODSTA-08, CODSTA-119, CODSTA-125, CODSTA-13, CODSTA-149, CODSTA-161_a, CODSTA-161_b, CODSTA-161_d, CODSTA-161_e, CODSTA-161_f, CODSTA-163_b, CODSTA-164_a, CODSTA-164_b, CODSTA-165_a, CODSTA-165_b, CODSTA-168, CODSTA-169_b, CODSTA-169_c, CODSTA-18, CODSTA-194, CODSTA-23, CODSTA-26, CODSTA-32, CODSTA-33, CODSTA-35, CODSTA-41, CODSTA-53, CODSTA-54, CODSTA-56, CODSTA-61, CODSTA-64, CODSTA-79, CODSTA-81, CODSTA-82, CODSTA-83, CODSTA-85, CODSTA-98 |
C++ 的编码规范 | CODSTA-CPP-15, CODSTA-CPP-43, CODSTA-CPP-53, CODSTA-CPP-64, CODSTA-CPP-71, CODSTA-CPP-72, CODSTA-CPP-73 |
Modern C++ 的编码规范 | CODSTA-MCPP-16_e, CODSTA-MCPP-27, CODSTA-MCPP-32, CODSTA-MCPP-40 |
注释 | COMMENT-11 |
常见不足枚举 | CWE-119-a, CWE-119-d, CWE-119-e, CWE-125-a, CWE-125-c, CWE-362-e, CWE-476-a, CWE-704-c, CWE-772-a, CWE-787-a, CWE-787-d, CWE-835-a |
异常 | EXCEPT-11, EXCEPT-12, EXCEPT-22 |
格式化 | FORMAT-06 |
高完整性 C++ | HICPP-16_1_1-b, HICPP-16_1_2-a, HICPP-17_3_3-a, HICPP-18_2_2-a, HICPP-18_3_2-a, HICPP-1_2_1-a, HICPP-1_2_1-d, HICPP-1_2_1-e, HICPP-1_2_1-i, HICPP-1_2_2-a, HICPP-3_4_1-a, HICPP-3_4_2-a, HICPP-3_5_1-c, HICPP-3_5_1-d, HICPP-4_2_2-f, HICPP-5_1_1-a, HICPP-5_2_1-a, HICPP-5_2_1-c, HICPP-6_1_2-a, HICPP-6_1_2-b, HICPP-6_1_3-a, HICPP-6_1_4-a, HICPP-6_1_4-b, HICPP-6_2_2-a, HICPP-6_2_3-a, HICPP-6_2_4-a, HICPP-6_3_1-a, HICPP-6_4_1-b, HICPP-7_1_2-a, HICPP-8_4_1-a, HICPP-8_4_2-a |
初始化 | INIT-03, INIT-05, INIT-16 |
Joint Strike Fighter | JSF-009, JSF-028, JSF-041, JSF-042, JSF-052, JSF-111, JSF-111_a, JSF-117, JSF-117.1, JSF-125_a, JSF-136_a, JSF-138_a, JSF-142_b, JSF-144, JSF-151, JSF-171, JSF-173, JSF-186_a, JSF-186_d, JSF-186_e, JSF-187, JSF-188, JSF-189, JSF-191, JSF-191_a, JSF-192, JSF-193, JSF-194, JSF-195, JSF-196, JSF-197, JSF-199, JSF-201, JSF-206 |
度量指标 | METRICS-02, METRICS-26 |
MISRA C 1998 | MISRA-005, MISRA-024, MISRA-055, MISRA-058, MISRA-065 |
MISRA C 2004 | MISRA2004-10_1_d, MISRA2004-12_1_a, MISRA2004-13_2, MISRA2004-13_4, MISRA2004-13_5, MISRA2004-13_6, MISRA2004-13_7_aa, MISRA2004-13_7_ab, MISRA2004-13_7_ac, MISRA2004-13_7_ad, MISRA2004-13_7_ae, MISRA2004-13_7_af, MISRA2004-13_7_ag, MISRA2004-13_7_ah, MISRA2004-13_7_z, MISRA2004-14_10, MISRA2004-14_1_a, MISRA2004-14_1_d, MISRA2004-14_1_e, MISRA2004-14_2, MISRA2004-14_4, MISRA2004-14_6, MISRA2004-15_0_a, MISRA2004-15_0_b, MISRA2004-15_1, MISRA2004-15_2, MISRA2004-15_2_b, MISRA2004-15_3, MISRA2004-15_4, MISRA2004-15_4_b, MISRA2004-15_5, MISRA2004-17_3, MISRA2004-17_6_a, MISRA2004-17_6_b, MISRA2004-20_4, MISRA2004-8_7, MISRA2004-9_2 |
MISRA C++ 2008 | MISRA2008-0_1_1_a, MISRA2008-0_1_1_d, MISRA2008-0_1_1_e, MISRA2008-0_1_2_aa, MISRA2008-0_1_2_b, MISRA2008-0_1_2_c, MISRA2008-0_1_2_d, MISRA2008-0_1_2_e, MISRA2008-0_1_2_f , MISRA2008-0_1_2_g, MISRA2008-0_1_2_h, MISRA2008-0_1_2_i, MISRA2008-0_1_2_rz, MISRA2008-0_1_6, MISRA2008-0_1_9, MISRA2008-0_3_1_a, MISRA2008-0_3_1_b, MISRA2008-0_3_1_e, MISRA2008-0_3_1_g, MISRA2008-0_3_1_h, MISRA2008-0_3_1_i, MISRA2008-0_3_1_j, MISRA2008-15_1_1, MISRA2008-15_1_2, MISRA2008-16_2_1_b, MISRA2008-18_4_1, MISRA2008-3_3_2, MISRA2008-3_4_1_b, MISRA2008-5_0_13, MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_0_17, MISRA2008-5_0_18, MISRA2008-5_0_2_a, MISRA2008-5_0_6_a, MISRA2008-6_4_2, MISRA2008-6_4_3_a, MISRA2008-6_4_3_b, MISRA2008-6_4_3_c, MISRA2008-6_4_3_d, MISRA2008-6_4_3_e, MISRA2008-6_4_4, MISRA2008-6_4_5, MISRA2008-6_4_6, MISRA2008-6_4_7, MISRA2008-6_4_8, MISRA2008-6_5_3, MISRA2008-6_5_4, MISRA2008-6_5_5, MISRA2008-6_5_6, MISRA2008-6_6_4, MISRA2008-7_1_1, MISRA2008-7_1_2_b, MISRA2008-7_5_1, MISRA2008-7_5_2_a, MISRA2008-7_5_2_b, MISRA2008-8_5_2 |
MISRA C 2012 (Legacy) | MISRA2012-DIR-4_12, MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_g, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_1_i, MISRA2012-DIR-4_1_j, MISRA2012-RULE-10_1_a, MISRA2012-RULE-10_1_b, MISRA2012-RULE-10_1_d, MISRA2012-RULE-10_1_e, MISRA2012-RULE-10_1_f, MISRA2012-RULE-10_3_b, MISRA2012-RULE-10_4_a, MISRA2012-RULE-10_4_b, MISRA2012-RULE-10_5_a, MISRA2012-RULE-10_5_b, MISRA2012-RULE-11_2, MISRA2012-RULE-14_2_a, MISRA2012-RULE-14_2_c, MISRA2012-RULE-14_2_d, MISRA2012-RULE-14_3_q, MISRA2012-RULE-14_3_r, MISRA2012-RULE-14_3_s, MISRA2012-RULE-14_3_t, MISRA2012-RULE-14_3_u, MISRA2012-RULE-14_3_v, MISRA2012-RULE-14_3_w, MISRA2012-RULE-14_3_x, MISRA2012-RULE-14_3_y, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-14_4, MISRA2012-RULE-15_1, MISRA2012-RULE-15_4, MISRA2012-RULE-15_7, MISRA2012-RULE-16_1_a, MISRA2012-RULE-16_1_b, MISRA2012-RULE-16_1_c, MISRA2012-RULE-16_1_d, MISRA2012-RULE-16_1_e, MISRA2012-RULE-16_1_f, MISRA2012-RULE-16_1_h, MISRA2012-RULE-16_2, MISRA2012-RULE-16_3_a, MISRA2012-RULE-16_3_b, MISRA2012-RULE-16_4_a, MISRA2012-RULE-16_4_b, MISRA2012-RULE-16_6, MISRA2012-RULE-16_7_a, MISRA2012-RULE-16_7_b, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-18_2, MISRA2012-RULE-18_3, MISRA2012-RULE-18_6_a, MISRA2012-RULE-18_6_b, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_d, MISRA2012-RULE-1_3_e, MISRA2012-RULE-1_3_m, MISRA2012-RULE-1_3_n, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_18, MISRA2012-RULE-21_3, MISRA2012-RULE-22_1, MISRA2012-RULE-22_10, MISRA2012-RULE-22_8, MISRA2012-RULE-22_9, MISRA2012-RULE-2_1_a, MISRA2012-RULE-2_1_d, MISRA2012-RULE-2_1_e, MISRA2012-RULE-2_2_a, MISRA2012-RULE-2_2_b, MISRA2012-RULE-3_1_b, MISRA2012-RULE-8_9, MISRA2012-RULE-9_1, MISRA2012-RULE-9_2 |
MISRA C 2012 | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_1-i, MISRAC2012-DIR_4_1-j, MISRAC2012-DIR_4_12-a, MISRAC2012-DIR_4_13-a, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_10_1-b, MISRAC2012-RULE_10_1-d, MISRAC2012-RULE_10_1-e, MISRAC2012-RULE_10_1-f, MISRAC2012-RULE_10_3-b, MISRAC2012-RULE_10_4-a, MISRAC2012-RULE_10_4-b, MISRAC2012-RULE_10_5-a, MISRAC2012-RULE_10_5-b, MISRAC2012-RULE_11_2-a, MISRAC2012-RULE_14_2-a, MISRAC2012-RULE_14_2-c, MISRAC2012-RULE_14_2-d, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_14_3-q, MISRAC2012-RULE_14_3-r, MISRAC2012-RULE_14_3-s, MISRAC2012-RULE_14_3-t, MISRAC2012-RULE_14_3-u, MISRAC2012-RULE_14_3-v, MISRAC2012-RULE_14_3-w, MISRAC2012-RULE_14_3-x, MISRAC2012-RULE_14_3-y, MISRAC2012-RULE_14_4-a, MISRAC2012-RULE_15_1-a, MISRAC2012-RULE_15_4-a, MISRAC2012-RULE_15_7-a, MISRAC2012-RULE_16_1-a, MISRAC2012-RULE_16_1-b, MISRAC2012-RULE_16_1-c, MISRAC2012-RULE_16_1-d, MISRAC2012-RULE_16_1-e, MISRAC2012-RULE_16_1-f, MISRAC2012-RULE_16_1-h, MISRAC2012-RULE_16_2-a, MISRAC2012-RULE_16_3-a, MISRAC2012-RULE_16_3-b, MISRAC2012-RULE_16_4-a, MISRAC2012-RULE_16_4-b, MISRAC2012-RULE_16_6-a, MISRAC2012-RULE_16_7-a, MISRAC2012-RULE_16_7-b, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_18_2-a, MISRAC2012-RULE_18_3-a, MISRAC2012-RULE_18_6-a, MISRAC2012-RULE_18_6-b, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_1_3-m, MISRAC2012-RULE_1_3-n, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_18-a, MISRAC2012-RULE_21_3-a, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_22_10-a, MISRAC2012-RULE_22_8-a, MISRAC2012-RULE_22_9-a, MISRAC2012-RULE_2_1-a, MISRAC2012-RULE_2_1-d, MISRAC2012-RULE_2_1-e, MISRAC2012-RULE_2_2-a, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_3_1-b, MISRAC2012-RULE_8_9-a, MISRAC2012-RULE_9_1-a, MISRAC2012-RULE_9_2-a |
内存和资源管理 | MRM-09, MRM-10, MRM-11, MRM-51 |
命名约定 | NAMING-04, NAMING-42, NAMING-44 |
优化 | OPT-14, OPT-20, OPT-21, OPT-22, OPT-39 |
OWASP 十大最关键的 Web 应用程序安全风险(2017) | OWASP2017-A6-c |
可能的错误 | PB-13, PB-45, PB-46, PB-47, PB-50 |
可移植性 | PORT-10, PORT-25 |
预处理器 | PREPROC-06, PREPROC-10 |
STL 最佳实践 | STL-04, STL-10, STL-12, STL-37 |
删除规则
删除了以下规则以提高结果的准确性:
类别 ID | 规则 IDs |
---|---|
SEI CERT C | CERT_C-POS35-a |
Joint Strike Fighter | JSF-046, JSF-051_a, JSF-051_b, JSF-051_c, JSF-051_d, JSF-051_e |
MISRA C 2004 | MISRA2004-5_1 |