发布日期:2020 年 11 月 9 日

此版本包括以下增强功能:


新建抑制格式

现在,您可以在parasoft.suppress文件中创建对静态分析结果的抑制,该抑制文件可以与源文件一起存储在源码控制中。您可以在 C/C++test 图形用户界面中创建文件内抑制,或者将有关您要抑制的发现的信息手动添加到抑制文件中。请参见抑制报告可接受的违规行为

不赞成以 XML 样式格式在本地或在团队服务器上存储抑制,以及【抑制】视图。您可以将已弃用的抑制格式迁移到新格式,或在【抑制】视图中启用已弃用的抑制格式。请参见处理弃止的抑制

此外,您可以配置 C/C++test 来自动抑制在与正则表达式模式匹配的行上检测到的静态规则冲突。请参见 基于正则表达式模式定义行抑制

增强静态分析

我们通过新功能扩展了 C/C++test 的静态分析功能,以帮助您专注于最便捷的任务。

针对当前分支上的修改代码的新作用域设置选项

我们添加了新选项来创建文件筛选,以将分析范围限制为在当前工作分支上修改的文件。这使您可以专注于在代码与主要开发流合并之前,识别和修复由最近的代码更改引起的错误。

此外,您可以将范围缩小到本地修改的文件,以便可以在将更新的代码检入源码控制之前对其进行分析。

请参见基于源码控制数据定义文件过滤器

用于定义代码分析基准的新报告参考选项

现在您可以指定参考报告文件的路径或 URL,当使用 C/C++test 执行分析时,该路径或 URL 将用作基线。这使您可以从当前报告中排除以前报告的发现,以便集中于最近检测到的代码缺陷。请参见配置一份参考报告

扩展覆盖率报告给 DTP

现在,您可以将所有支持的覆盖率类型的覆盖率数据发布到 DTP,并在覆盖率小工具中显示。这使您可以方便地在 DTP 仪表板上分析覆盖率统计信息和趋势。请参见 了解覆盖率类型连接 DTP


其他增强

  • 在构建执行基于流的分析所需的数据集时,我们减少了磁盘空间的使用。
  • 现在,您可以配置其他高级设置,以使用 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

不建议使用和删除的环境支持

弃用的平台

不支持以下平台,并且在以后的版本中将删除:

  • Windows Server 2008
  • Windows Server 2012

删除的 IDE

删除了对以下 IDE 的支持:

  • Visual Studio 2008
  • Visual Studio 2010

删除源码控制管理系统

删除了对以下 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



  • No labels