发布日期:2020 年 4 月 28 日
此版本包括以下增强功能:
新版本约定
现在所有 Parasoft 产品(包括 C/C++ test)都遵循新的版本控制方案:YYYY.发布。
导入和查看需求
现在,您可以在 IDE 中查看有关从需求管理系统(RMS)导入的需求和测试定义的信息。C/C++test 可以在【需求】视图中可视化导入的需求和测试定义之间的关联,以帮助您创建有意义的单元测试 - 无需退出 IDE。请参见指示需求和测试相关性。
扩展的 Automotive Compliance Pack
我们扩展了 Automotive Pack,以帮助您达到汽车标准。
MISRA C:2012 修订版 2
我们已在 MISRA C 2012 测试配置中添加了新规则,以完全涵盖 MISRA C 2012 修订版 2 中的准则。
AUTOSAR C++ 14
我们已将新规则添加到AUTOSAR C++14 编码准则测试配置中,并更新了现有规则以扩展对 AUTOSAR C++14 的支持。
使用覆盖率顾问增加代码覆盖率
您现在可以使用覆盖率顾问有效地实施提高代码覆盖率的策略。覆盖率顾问通过分析代码并显示有关如何设置测试以覆盖未覆盖行的可用解决方案,为弥补代码覆盖方面的空白提供指导。有关覆盖率顾问视图中有关参数、全局变量和函数调用的必需依赖项和前提条件的信息。这使您可以减少手动创建有意义的测试用例和适当的桩函数的时间和精力。请参见使用 Coverage Advisor。
支持使用 Docker 容器
我们增加了对使用 Docker 容器的支持。您现在可以使用 Docker 容器提供的 C/C++ 工具链或测试环境运行分析并执行测试。这使您可以在容器化环境中利用 C/C++test 的功能,以确保整个团队和多个开发周期的一致性。请参见使用 Docker 容器进行分析和测试。
对基于 Cmake 的项目的扩展支持
C/C++test 现在附带 Cmake 扩展,以简化基于 Cmake 的项目的分析和测试。现在,您可以直接在 Cmake 构建文件中定义 C/C++test 项目,以在 Cmake 构建期间自动生成 C/C++test 项目文件。请参见 将 C/C++test 集成到 Cmake 构建中。
支持编译器
我们添加了对以下编译器的支持:
编译器名称 | 编译器首字母缩写词 |
---|---|
Vx-toolset for TriCore C/C++ Compiler 6.3 | vxtc_6_3 |
Wind River Clang 8.0.x | wrclang_8_0 |
支持源代码管理管理系统
我们增加了对以下方面的支持:
- Git 1.8、 1.9、 2.x
- SVN 1.10、 1.11、 1.12、1.13
- Microsoft Team Foundation Server 2017、2018、 2019
请参见 对环境、系统和配置的弃用支持 以获取有关支持对源代码管理系统的弃用和删除信息。
新建和更新的测试配置
我们添加了以下测试配置:
- 在容器中运行单元测试
- AUTOSAR C++14 Coding Guidelines
- CWE Top 25 + On the Cusp 2019
- Flow Analysis Aggressive
- Flow Analysis Standard
- High Integrity C++
- MISRA C 2012
- MISRA C++ 2008
- SEI CERT C Guidelines
- SEI CERT C Rules
- SEI CERT C++ Rules
新建的和更新的代码分析规则
我们添加了新的静态分析规则,以扩展合规性标准的覆盖范围,特别关注 AUTOSAR C++ 14 和 MISRA C:2012 修订2;有关新规则和更新规则的列表,请参见新规则 和 更新规则 。
其他更新
我们扩展了对通过 OpenID Connect 进行身份验证的支持。C/C++test 现在支持带有多个用户证书的密钥库。
- 我们已经将内置的 Python 运行时升级到 Python 2.7。现在,将【规则向导】规则中与 Python 相关的错误报告为设置问题。
- 现在,您可以将 C/C++test 配置为在报告安装问题时返回非零退出代码。请参见命令行退出代码。
- 我们提高了测试配置的性能,其中启用了同一基于流的规则的多个重复项。
对环境、系统和配置的弃用支持
现在不再支持以下环境和系统,并且在将来的版本中将不再支持。
Windows 7
在系统的 EOL 之后,不再支持 Windows 7。
32 位平台
不支持 Windows 32 位和 Linux 32 位。有关弃用策略的详细信息,请联系您的 Parasoft 代表。
编译器
不建议使用以下编译器:
- QNX GCC 4.2.x
- QNX GCC 4.4
IDEs
不建议使用 Texas Instruments Code Composer Studio 6.0。
源代码管理管理系统
不支持以下 SCM:
- AccuRev
- ClearCase
- CVS
- Serena Dimensions
- StarTeam
- Synergy CM
Visual Source Safe
Java 6
不支持 Java 6 及更低版本。因此,将来的发行版将删除需要 Java 6 或更低版本的支持环境。
C/C++test 测试配置
我们已弃用以下测试配置:
- Texas Instruments > 运行带有内存监测功能的 TI CCS 3.x 应用程序
- Texas Instruments > 运行 TI CCS 3.x 测试
- ARM > 使用内存监视运行 ADS 1.2 应用程序
- ARM > 运行 ADS 1.2 测试
- Windows Mobile> Windows Mobile 可执行的构建测试
- Windows Mobile> 通过 Pocket PC 的内存监视功能构建和运行应用程序
- Window Mobile> 使用智能手机的内存监视功能构建和运行应用程序
- Window Mobile> 为 Pocket PC 生成并运行测试可执行文件
- Window Mobile> 使用智能手机构建和运行测试可执行
- Window Mobile, Windows CE>使用内存监视功能为 Wmobile 或 Windows CE(ActiveSync)构建和运行应用程序
- Window Mobile, Windows Ce>为 Windows Mobile 或 Windows CE(ActiveSync)构建并运行测试可执行文件
默认情况下,不推荐使用的测试配置 不可用,并且只能用作用户定义的测试配置。它们在以下位置随 C/C++test 一起提供:[INSTALL_DIR]\configs\Deprecated.
删除了对环境和系统的支持
IDEs
我们已经删除了对 Texas Instruments Code Composer Studio 5.x 的支持。
源代码管理管理系统
我们已经删除了对 Microsoft Team Foundation Server 2010 的支持
其他已删除的功能
- 代码检查模块已被删除,不再支持。
- 不再支持在命令行中将 C/C++test与基于 Eclipse 的构建器一起使用。已删除用于在测试之前执行 指定的构建脚本的选项 (
-buildscript %SCRIPT_FILE%
) 。 - 以下选项已从测试配置设置的【通用】选项卡中删除:测试后>如果未报告任何任务,则将添加/修改的文件提交到源代码管理。
- 不再支持 Windows 8。
已解决的 Bugs 和 FRs
Bug/FR ID | 说明 |
---|---|
CPP-42109 | Cpptestcli 应该针对设置问题返回非零退出代码(例如,启动单元测试失败) |
CPP-43406 | VS 启用/禁用测试用例操作不会刷新【测试用例浏览器】树 |
CPP-44060 | 错误:预期为 ';' 之前 '}’标记 QCommandLineOption |
CPP-44561 | MISRA2004-19_10 (MISRAC2012-RULE_20_7-a) 报告宏定义中的字符串串联误报 |
CPP-44565 | 改善 Crosstool-NG GCC(5.x)的自动检测 |
CPP-44578 | 类 "std::enable_if<>" 没有成员 "type" |
CPP-44736 | MSVC /宽容模式 - 不应禁用 friend 类注入 |
CPP-44739 | MSVC 的 MP 选项/配置错误 |
CPP-44742 | 当不包含 'return’的 'default’语句不是 'switch’中的最后一个标签时,MISRA2004-16_8(MISRAC2012-RULE_17_4-a)报告误报 |
CPP-44744 | Xharness 错误处理了 GNU __underlying_type 运算符 |
CPP-44760 | 在运行时和 cpptest_driver.c.h 中不一致使用 malloc/free |
CPP-44761 | 如果运行时是使用 unicode 构建的,则 CppTest 流重定向 API 将不起作用。 |
CPP-44796 | Tiarm 编译器配置应将 '--define’选项传递给链接器 |
CPP-44850 | Armclang - 使用 -cc1 忽略命令行 |
CPP-44862 | 确保 dsStrToFloat 的每个变体返回相同的结果 |
CPP-44865 | CODSTA-190(CERT_C-FLP37-c)报告对名称不是 'memcmp’ 和 'bcmp’的字符串库中的函数的调用时的误报 |
CPP-44871 | FORMAT-07 报告 #error 指令的报文中使用的 '=’字符的误报 |
CPP-44872 | FORMAT-21 报告 #error 指令的报文中使用的 '!’字符的误报 |
CPP-44874 | CODSTA-112 (MISRAC2012-RULE_18_8-a)包含不再有效的“不足”部分 |
CPP-44918 | AUTOSAR-A6_5_1-a (HICPP-6_2_1-a) 在不使用容器的循环上报告误报 |
CPP-44923 | GLOBAL-UNUSEDFUNC (AUTOSAR-M0_1_10-a) 报告在 'hash’结构中定义的 conversion operator() 的误报 |
CPP-44946 | 构造函数调用的无效桩函数调用检测,以大括号初始化器作为参数 |
CPP-45054 | CPPTEST_POST_CONDITION_MEM_BUFFER 的自动验证不适用于 NULL 指针 |
CPP-45067 | PB-23 在对 std::initializer_list() 的调用中报告误报 |
CPP-45092 | HICPP-6_2_1-a (AUTOSAR-A6_5_1-a) 报告不能用'for-range'代替'for'循环上的误报 |
CPP-45190 | 修复: GCC 允许将非文字类型用作 constexpr 函数参数 |
CPP-45193 | MISRA2004-16_10 (AUTOSAR-M0_3_2-a) 规则报告范围循环的误报 |
CPP-45227 | 双花括号函数参数的不可编译检测代码 |
CPP-45228 | Std::getline 的不可编译的检测代码 |
CPP-45239 | HICPP-6_2_1-a (AUTOSAR-A6_5_1-a) 在主体中使用循环计数器的“ for”循环上报告误报 |
CPP-45240 | 具有通用 Lambda 的 C++ 代码的 cpptestcc 检测错误 |
CPP-45272 | VS 'cpptestcli -fail’不返回非零退出代码 |
CPP-45283 | 当参数不能具有指向 const 类型的指针时,MISRA2004-16_7 (MISRA2008-7_1_2_a) 报告误报 |
CPP-45312 | OPT-23(JSF-122)与 JSF-121 不兼容(不应内联具有 2 条以上语句的 getter/setter) |
CPP-45320 | CERT_C-EXP46-a 与 CERT EXP46-C 要求不匹配 |
CPP-45352 | 无法在方法定义中使用类型别名 |
CPP-45375 | 对于 static_cast 操作,显式转换运算符被虚假地忽略 |
CPP-45498 | C 桩函数文件和 CPP testrunner 文件可能会导致链接问题(Visual Studio) |
FA-7416 | MISRA2012-RULE-18_1_a 和 MISRA2012-DIR-4_1_a (BD-PB-ARRAY) 的误报 |
FA-7445 | 在将 char 数组终止为 0 和 '\ 0’ 时报告了 BD-PB-OVERFNZT 规则 |
FA-7473 | 在算术和条件运算的上下文中,无法使用全局变量的地址为函数创建 CFG。 |
FA-7539 | BD-PB-ARRAY 报告误报超出范围 |
FA-7571 | 当初始化在循环内发生时,C++test 报告 BD-PB-NOTINIT 虚假违规。 |
FA-7619 | BD-PB-WRAPESC 在递归调用上可能会误报 |
FA-7626 | BD-API-VALPARAM 报告对 #include <complex> 的错误违规 |
XT-33567 | 'parasoft-suppress’在内部抑制原因中包含 '//’的注释抑制问题。 |
XT-37692 | IDE 生成的引擎许可证可能会有所不同,具体取决于 Java 或 IKVM 版本。 |
新建规则
规则 ID | 说明 |
---|---|
AUTOSAR-A12_8_2-a | 用户定义的复制和移动分配运算符应使用用户定义的 no-throw swap 函数 |
AUTOSAR-A14_5_3-a | 非成员通用运算符只能在不包含类(结构)类型、枚举类型或联合类型声明的命名空间中声明 |
AUTOSAR-A8_4_4-a | 一个函数的多个输出值应作为结构或元组返回 |
AUTOSAR-A8_5_4-a | 避免使用 std::initializer_list 重载构造函数 |
AUTOSAR-M0_1_2-ac | 避免条件总是得出相同的值 |
BD-SECURITY-SENSLOG | 避免将敏感数据传递给写入日志文件的函数 |
BD-SECURITY-TDALLOC | 在用于确定内存分配的大小之前,先验证可能受到污染的数据 |
CODSTA-205 | 不要将数组强制转换为指向比数组大的结构的指针 |
CODSTA-206 | 不应使用 '_Noreturn’函数说明符 |
CODSTA-207 | 不应使用 stdnoreturn.hheader 文件 |
CODSTA-208 | 不得使用 stdalign.hheader 文件 |
CODSTA-209 | 不应使用由 stdatomic.h 指定的功能 |
CODSTA-210 | 不应使用 '_Thread_local’存储类说明符 |
CODSTA-211 | 不应使用由 threads.h 指定的功能 |
CODSTA-212 | 不应使用 'rsize_t’类型 |
CODSTA-213 | 不应使用 '_Alignas’对齐说明符和 '_Alignof’运算符 |
CODSTA-214 | 不应使用 '_Atomic’类型说明符和 '_Atomic’类型限定符 |
CODSTA-215 | 宏 '_STDC_WANT_LIB_EXT1_’不应定义为 '0’以外的值 |
CODSTA-216 | 不应使用 '_Generic’运算符 |
CODSTA-217 | 不应使用 'errno_t'类型 |
CODSTA-218 | 不要使用以下宏:RSIZE_MAX, L_tmpnam_s, TMP_MAX_S |
CODSTA-219 | 请勿使用 ISO/IEC 9899:2011 标准附件 K 中定义的函数 |
CODSTA-MCPP-47 | 避免使用 std::initializer_list 重载构造函数 |
CODSTA-MCPP-48 | 一个函数的多个输出值应作为结构或元组返回 |
CODSTA-MCPP-49 | 用户定义的复制和移动分配运算符应使用用户定义的 no-throw swap 函数 |
CODSTA-MCPP-50 | 不能使用遍历容器所有元素且不使用其循环计数器的 for 循环 |
CWE-532-a | 避免将敏感数据传递给写入日志文件的函数 |
HICPP-12_5_6-a | 用户定义的复制和移动分配运算符应使用用户定义的 no-throw swap 函数 |
MISRA2008-0_1_2_aa | 项目不得包含不可行的路径 |
MISRA2012-DIR-4_1_k | 避免整数溢出 |
MISRA2012-DIR-4_13_f | 不要释放尚未获得的锁 |
MISRA2012-RULE-1_4_a | 不应使用 '_Generic’运算符 |
MISRA2012-RULE-1_4_b | 不应使用 '_Noreturn’函数说明符 |
MISRA2012-RULE-1_4_c | 不应使用 stdnoreturn.hheader 文件 |
MISRA2012-RULE-1_4_d | 不应使用 '_Atomic’类型说明符和 '_Atomic’类型限定符 |
MISRA2012-RULE-1_4_e | 不应使用由 stdatomic.h 指定的功能 |
MISRA2012-RULE-1_4_f | 不应使用 '_Thread_local’存储类说明符 |
MISRA2012-RULE-1_4_g | 不应使用由 threads.h 指定的功能 |
MISRA2012-RULE-1_4_h | 不应使用 '_Alignas’对齐说明符和 '_Alignof’运算符 |
MISRA2012-RULE-1_4_i | 不得使用 stdalign.hheader 文件 |
MISRA2012-RULE-1_4_j | 宏 '_STDC_WANT_LIB_EXT1_’不应定义为 '0’以外的值 |
MISRA2012-RULE-1_4_k | 不应使用 'rsize_t’类型 |
MISRA2012-RULE-1_4_l | 不应使用 'errno_t'类型 |
MISRA2012-RULE-1_4_m | 不要使用以下宏:RSIZE_MAX, L_tmpnam_s, TMP_MAX_S |
MISRA2012-RULE-1_4_n | 请勿使用 ISO/IEC 9899:2011 标准附件 K 中定义的函数 |
MISRA2012-RULE-21_21 | 不得使用 stdlib.h 的库函数 'system' |
MISRA2012-RULE-8_3_c | 对象或函数的所有声明应具有兼容的类型 |
MISRAC2012-DIR_4_13-f | 不要释放尚未获得的锁 |
MISRAC2012-DIR_4_1-k | 避免整数溢出 |
MISRAC2012-RULE_1_4-a | 不应使用 '_Generic’运算符 |
MISRAC2012-RULE_1_4-b | 不应使用 '_Noreturn’函数说明符 |
MISRAC2012-RULE_1_4-c | 不应使用 stdnoreturn.hheader 文件 |
MISRAC2012-RULE_1_4-d | 不应使用 '_Atomic’类型说明符和 '_Atomic’类型限定符 |
MISRAC2012-RULE_1_4-e | 不应使用由 stdatomic.h 指定的功能 |
MISRAC2012-RULE_1_4-f | 不应使用 '_Thread_local’存储类说明符 |
MISRAC2012-RULE_1_4-g | 不应使用由 threads.h 指定的功能 |
MISRAC2012-RULE_1_4-h | 不应使用 '_Alignas’对齐说明符和 '_Alignof’运算符 |
MISRAC2012-RULE_1_4-i | 不得使用 stdalign.hheader 文件 |
MISRAC2012-RULE_1_4-j | 宏 '_STDC_WANT_LIB_EXT1_’不应定义为 '0’以外的值 |
MISRAC2012-RULE_1_4-k | 不应使用 'rsize_t’类型 |
MISRAC2012-RULE_1_4-l | 不应使用 'errno_t'类型 |
MISRAC2012-RULE_1_4-m | 不要使用以下宏:RSIZE_MAX, L_tmpnam_s, TMP_MAX_S |
MISRAC2012-RULE_1_4-n | 请勿使用 ISO/IEC 9899:2011 标准附件 K 中定义的函数 |
MISRAC2012-RULE_21_21-a | 不得使用 'stdlib.h’ 或 'cstdlib’库中的 'system()'函数 |
MISRAC2012-RULE_8_3-c | 对象或函数的所有声明应具有兼容的类型 |
TEMPL-18 | 非成员通用运算符只能在不包含类(结构)类型、枚举类型或联合类型声明的命名空间中声明 |
更新规则
规则类别 | 规则 IDs |
---|---|
AUTOSAR C++14 Coding Guidelines | AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_5_1-b, AUTOSAR-A18_5_2-a, AUTOSAR-A18_5_3-c, AUTOSAR-A27_0_2-b, AUTOSAR-A27_0_2-c, AUTOSAR-A2_13_4-a, AUTOSAR-A3_1_6-a, AUTOSAR-A5_0_1-f, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A5_3_2-a, AUTOSAR-A6_5_1-a, AUTOSAR-A8_4_12-c, AUTOSAR-A8_4_13-b, AUTOSAR-A8_4_2-a, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-i, AUTOSAR-M0_3_2-a, AUTOSAR-M16_0_6-a, AUTOSAR-M16_0_8-a, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M7_1_2-b, AUTOSAR-M9_3_3-a |
Bug Detective | BD-API-NEGPARAM, BD-API-REVNEGPARAM, BD-PB-ARRAY, BD-PB-CHECKRETGEN, BD-PB-NP, BD-PB-OVERFRD, BD-PB-OVERFWR, BD-PB-PTRARR, BD-RES-BADDEALLOC, BD-RES-LEAKS |
SEI CERT C | CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR38-a, CERT_C-ARR38-b, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON40-a, CERT_C-CON43-a, CERT_C-DCL13-a, CERT_C-DCL40-a, CERT_C-ENV01-c, CERT_C-ENV30-a, CERT_C-ERR33-c, CERT_C-ERR33-d, CERT_C-EXP08-b, CERT_C-EXP10-b, CERT_C-EXP30-b, CERT_C-EXP34-a, CERT_C-EXP47-a, CERT_C-FIO22-a, CERT_C-FIO37-a, CERT_C-FIO38-a, CERT_C-FIO41-b, CERT_C-FIO42-a, CERT_C-FLP37-c, CERT_C-INT10-a, CERT_C-MEM00-e, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC19-a, CERT_C-MSC19-b, CERT_C-MSC37-a, CERT_C-POS54-c, CERT_C-PRE01-a, CERT_C-STR05-a, CERT_C-STR30-a, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR38-a, CERT_C-WIN30-a |
SEI CERT C++ | CERT_CPP-ERR56-a, CERT_CPP-ERR57-a, CERT_CPP-EXP50-b, CERT_CPP-FIO51-a, CERT_CPP-MEM51-d, CERT_CPP-MSC52-a, CERT_CPP-STR50-c, CERT_CPP-STR50-g, CERT_CPP-STR51-a |
Coding Conventions | CODSTA-166_a, CODSTA-166_b, CODSTA-185_a, CODSTA-188, CODSTA-190, CODSTA-195, CODSTA-CPP-54, CODSTA-CPP-78 |
Coding Conventions for Modern C++ | CODSTA-MCPP-10_a, CODSTA-MCPP-35 |
Common Weakness Enumeration | CWE-119-a, CWE-119-d, CWE-119-e, CWE-125-a, CWE-125-c, CWE-476-a, CWE-770-a, CWE-772-a, CWE-787-a, CWE-787-d |
Exceptions | EXCEPT-21 |
High Integrity C++ | HICPP-12_5_4-a, HICPP-5_1_2-b, HICPP-5_2_1-a, HICPP-5_2_1-c, HICPP-5_3_3-c, HICPP-6_3_2-a, HICPP-9_1_1-a |
Joint Strike Fighter | JSF-069, JSF-114, JSF-115, JSF-117_b, JSF-118, JSF-122, JSF-151.1, JSF-174_a, JSF-174_b, JSF-204.1_b, JSF-206 |
MISRA C 1998 | MISRA-107_a, MISRA-107_b |
MISRA C 2004 | MISRA2004-12_2_b, MISRA2004-16_10, MISRA2004-16_7, MISRA2004-16_8, MISRA2004-19_10, MISRA2004-19_16, MISRA2004-20_4 |
MISRA C++ 2008 | MISRA2008-0_3_1_a, MISRA2008-0_3_1_b, MISRA2008-0_3_1_g, MISRA2008-0_3_1_h, MISRA2008-0_3_2, MISRA2008-16_0_6, MISRA2008-16_0_8, MISRA2008-18_4_1, MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_0_1_b, MISRA2008-7_1_2_a, MISRA2008-8_4_3, MISRA2008-9_3_3 |
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_g, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_7_b, MISRA2012-RULE-13_2_b, MISRA2012-RULE-17_4, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-1_3_d, MISRA2012-RULE-1_3_e, MISRA2012-RULE-1_3_g, MISRA2012-RULE-20_13, MISRA2012-RULE-20_7, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_19_a, MISRA2012-RULE-21_3, MISRA2012-RULE-21_8_c, MISRA2012-RULE-22_1, MISRA2012-RULE-22_5_a, MISRA2012-RULE-22_5_b, MISRA2012-RULE-7_4, MISRA2012-RULE-8_13_a |
MISRA C 2012 | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_12-a, MISRAC2012-DIR_4_13-a, MISRAC2012-DIR_4_7-b, MISRAC2012-RULE_13_2-b, MISRAC2012-RULE_17_4-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_1_3-g, MISRAC2012-RULE_20_13-a, MISRAC2012-RULE_20_7-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_19-a, MISRAC2012-RULE_21_3-a, MISRAC2012-RULE_21_8-c, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_22_5-a, MISRAC2012-RULE_22_5-b, MISRAC2012-RULE_7_4-a, MISRAC2012-RULE_8_13-a |
Optimization | OPT-23 |
Possible Bugs | PB-23, PB-27, PB-67, PB-72 |
删除规则
删除了以下规则以提高结果的准确性:
规则类别 | 规则 IDs |
---|---|
AUTOSAR C++14 Coding Guidelines | AUTOSAR-A27_0_2-d, AUTOSAR-A27_0_2-g |
SEI CERT C | CERT_C-EXP46-a, CERT_C-MSC32-a, CERT_C-MSC32-b, CERT_C-MSC32-c, CERT_C-STR34-a, CERT_C-STR34-e, CERT_C-STR34-f |
SEI CERT C++ | CERT_CPP-STR50-a, CERT_CPP-STR50-d |
MISRA C 2012 (Legacy) | MISRA2012-RULE-21_8_d |
MISRA C 2012 | MISRAC2012-RULE_21_8-d |