该版本包括以下增强功能:
增强型安全合规包
增强型静态分析
增强型覆盖分析
支持编译器
支持集成开发环境
新的和更新的测试配置
其他更新
已解决的错误和 FR
规则更新
升级注意事项
授权 C/C++test 2024.1 需要 DTP 或许可证服务器 2024.1。您必须在升级到 C/C++test 2024.1 之前升级到 DTP 或许可证服务器 2024.1,才能成功获得产品许可证。
与 DTP 和许可证服务器的连接必须通过 HTTPS。不再支持 HTTP。
增强型安全合规包
安全包已通过新的 CWE Top 25 2023 和 CWE Top 25 + on the Cusp 2023 测试配置进行了扩展,以帮助您实现安全标准合规性。
DISA ASD STIG 规则集和 DISA-ASD-STIG 测试配置已更新,以反映 DISA-ASD-STIG 2022-09 标准的变化。
增强静态分析
流量分析引擎已得到增强,以更好地支持现代 C++ 结构,包括带有初始化器和结构绑定的 if 语句。这些增强功能可实现更精确的代码执行模拟,并提高报告结果的准确性。
改进了选定 MISRA C++ 2023 规则的准确性。
针对选定规则扩展了对规则参数化的支持。
添加了新的代码分析规则,以扩大合规标准的覆盖范围。有关新规则和更新规则的列表,请参见新规则和更新规则。
增强覆盖范围分析
增强了对代码覆盖率报告的支持。现在,您可以启用一种报告模式,在这种模式下,编译时已知结果的分支/决策将被忽略。有关详情,请参阅在编译时已知决策结果时忽略决策/分支点。
支持编译器
现在支持以下编译器
| 编译器名称 | 编译器标识符 |
| GCC for Tricore 4.9.x | tricoregcc_4_9 |
| HighTec Clang C/C++ 编译器 8.1 (aarch32/arm)* | hightec-clang_8_1-aarch32 |
| ARM 版 IAR 编译器 9.40x | iccarm_9_40 |
| ARM 版 IAR 编译器 9.50x | iccarm_9_50 |
| QNX GCC 8.x (ARM64) ** | qccarm_8-64 |
| QNX GCC 8.x (x86_64) ** | qcc_8-64 |
* - 仅进行静态分析。
** - 支持级别已从标准更新为扩展。
支持集成开发环境
新增了对 Eclipse 4.21 (2021-09) - 4.31 (2024-03) 版本的支持。
新增和更新的测试配置
通过添加对以下测试配置的支持,扩展了安全合规包:
CWE Top 25 2023
CWE Top 25 + On the Cusp 2023
OWASP API 安全性 10 强 2023
使用新规则更新了以下测试配置:
DISA-ASD-STIG
其他更新
增强了 Bazel 构建系统集成。现在支持为 Bazel 收集代码覆盖率。有关详情,请参阅与 Bazel 集成。
如果配置为需要身份验证,现在可以启用身份验证来连接独立的许可证服务器;请参阅许可和 license.network.auth.enabled。
现在可以使用 report.xml.param{n}.key 和 report.xml.param{n}.value 设置,指定要添加到 report.xml 标头的自定义参数。
通过使用 parasoft-instrumentation coverage 注释,可针对特定功能禁用或启用覆盖工具。请参阅有选择地禁用覆盖工具。
提供的 JRE 已升级至 17.0.10+7 版。
弃用和删除的支持
将废弃的编译器
未来版本将不再支持以下编译器:
ARM 编译器 5.0
用于 uVision 的 ARM 编译器 5.0
GNU GCC 4.9.x (mips64el)
用于 PPC 的 Green Hills 软件编译器 2013.1.x 版
用于 MSP430 的 IAR 编译器 v. 6.1x
Microchip MPLAB C30 Compiler for dsPIC v3.2x
用于 Win32 的 National Instruments LabWindows/CVI 2015 Clang C/C++ 编译器 v3.3
瑞萨 RX C/C++ 编译器 2.5x
停用的编译器
以下编译器已不再支持,并将在今后的版本中删除:
GNU GCC 5.x
GNU GCC 5.x (x86_64)
GNU GCC 6.x
GNU GCC 6.x (x86_64)
用于 ARM64 的 Green Hills 软件编译器 v. 2014.1.x
用于 PPC 的 Green Hills 软件编译器 v. 4.2.x
适用于 PPC 的格林希尔软件编译器 v. 5.0.x
适用于 V850 的 Green Hills 软件编译器 v. 2014.1.x
用于 ARM 的 IAR 编译器 v. 7.4x
用于 ARM 的 IAR 编译器 v. 7.8x
用于 M16C 和 R8C 的 IAR 编译器 v. 3.5x
Microsoft Visual C++ 14.0
Microsoft Visual C++ 14.0 (x64)
SH 系列 C/C++ 编译器 V.9.04.xx
Vx-toolset for TriCore C/C++ Compiler 6.2
风河 GCC 4.8.x
已删除的编译器支持
不再支持以下编译器:
Clang C/C++ 编译器 v 6.0
FR 系列 Softune C/C++ 编译器 V6
TI MSP430 C/C++ 编译器 GNU GCC 6.x
TI TMS320C2000 C/C++ 编译器 v16.9
已解决的错误和 FR
| 错误/FR ID | 描述 |
| FA-9866 | 可能的 MISRA 假阳性(BD-API-STRSIZE、BD-PB-OVERFRD) |
| FA-9453 | C 标准库中不正确的 realloc 函数建模 Juliet/CWE-401 |
| FA-9736 | 为联合成员存储的值不正确 |
| FA-9847 | 使用 sizeof byte != 8 的编译器时,可能出现不正确的增量分析结果 |
| FA-9689 | BD-PB-VOVR 抛出 java.lang.OutOfMemoryError |
| FA-9787 | BD-PB-OVERFNZT 假阳性 |
| FA-9713 | BD-PB-OVERFFMT '*' 字符串精度的误报 |
| FA-9856 | BD-PB-NOTINIT 通过引用在调用函数中初始化数组的误报 |
| FA-9795 | BD-PB-NOTINIT 假阳性 |
| FA-9842 | BD-PB-CC 假阳性 |
| FA-9692 | BD-PB-ARRAY(MISRAC2012-DIR_4_1-a) - 假阳性 |
| FA-9883 | 嵌套结构的 BD-PB-ARRAY 触发器 |
| FA-9852 | BD-PB-ARRAY 不一致的行为 |
| FA-9841 | BD-PB-ARRAY 假阳性 |
| CPP-56507 | [静态] 更新 OPT-03 (AUTOSAR-A0_1_4-a) 的文档,用于模板中 “if constexpr ”使用的参数 |
| CPP-56434 | [静态] 分割 CODSTA-63 规则,以(选择性地)排除报告在位运算符中使用的正 const 整数值 |
| CPP-56663 | [静态] OPT-05 (AUTOSAR-M0_1_3-c) 在内部类的函数中使用私有成员时报告假阳性 |
| CPP-56801 | [静态] 为 BD-PB-VOVR 的内置克隆修改 "报告变量声明 > 包括未使用的非初始化基元和指针。 |
| CPP-56788 | [static] MISRACPP2023-16_6_1-a 报告运算符 << 非对称的假阳性违规行为 |
| CPP-56783 | [static] MISRACPP2023-9_5_1-a:改善违规讯息 |
| CPP-56656 | [static] MISRACPP2023-9_5_1-a (CODSTA-315) 感知循环计数器与循环绑定类型不匹配时的误报 |
| CPP-56785 | [static] MISRACPP2023-6_7_2-a 报告全局 constexpr 变量的误报 |
| CPP-56789 | [static] MISRACPP2023-5_10_1-a 嵌套 “posix ”命名空间的错误报告 |
| CPP-56722 | [static] MISRA2004-14_1_a (MISRACPP2023-0_0_1-a) 报告 “if constexpr ”语句后带有 “else ”的代码的错误结果。 |
| CPP-50180 | [static] MISRA2004-10_1_a (MISRA2008-5_0_4_a) 报告对枚举常量的误报 |
| CPP-56463 | [静态] 在 MISRA C++:2023 7.0.1 和 7.0.3 中引入额外异常,允许丢弃函数返回的值 (CODSTA-CPP-211, CODSTA-316) |
| CPP-56508 | [静态] INTERNAL-GLOBAL-ONEUSEVAR_1 在模板上报告 python 错误 |
| CPP-56784 | [static] INIT-19 (MISRACPP2023-15_1_4-a) 报告默认复制和移动构造函数的错误报告 |
| CPP-55746 | [静态] 改进 HIC++ 7.1.6 要求的映射 |
| CPP-56491 | [静态] 改进 MISRACPP2023 规则 16.6.1 的映射 |
| CPP-56566 | [静态] 改进 MISRACPP2023 规则 8.2.5 的映射 |
| CPP-56286 | [静态] 改进 MISRACPP2023 规则 6.7.2 的映射 |
| CPP-55003 | [静态] 改进 MISRA2008-7_5_4 / AUTOSAR-A7_5_2-a 的映射 |
| CPP-56658 | [static] 改进 CWE-190 整数溢出的映射 |
| CPP-52872 | [静态] 改进 AUTOSAR M5-8-1 的映射 |
| CPP-56786 | [static] FORMAT-48 (MISRACPP2023-6_0_1-b) 报告在 noexcept 中使用的参数的错误报告 |
| CPP-52955 | [静态] 扩展 MISRA2008 5-8-1 (AUTOSAR M5-8-1) 规则的映射 |
| CPP-56745 | [静态] 在要测试的文件总数中不报告没有相应源文件的头文件 |
| CPP-56284 | [static] CODSTA-MCPP-11_a_cpp11 (AUTOSAR-A7_1_2-a) 报告编译器生成变量的误报。 |
| CPP-56220 | [static] CODSTA-CPP-92 (MISRA2008-10_2_1-a, AUTOSAR-M10_2_1) 不会报告在不同文件中定义的类或在继承层次结构中使用相同基名的类的违规情况。 |
| CPP-56717 | [static] CODSTA-CPP-82 (MISRACPP2023-6_7_2-a) 报告有关全局 constexpr 变量的错误报告 |
| CPP-56270 | [static] CODSTA-CPP-62 (MISRA2008-4_10_1, AUTOSAR-A4_10_1-a, AUTOSAR-M4_10_1-a) 当 'NULL' 宏展开为不同于字面 '0' 的值时,不会报告违规行为。 |
| CPP-56502 | [static] CODSTA-60 (CERT_C-EXP20-a) 在带有'TRUE'的行包含使用宏时,不会报告违规行为。 |
| CPP-56183 | [static] CODSTA-14 报告从非指针/非引用类型进行投递时的误报。 |
| CPP-55734 | [static] RapidJSON 项目上的 CDD-DUPI 分析挂起 |
| CPP-56660 | [static] 新增线程内 CWE-366 竞赛条件的映射 |
| CPP-55599 | [静态] 为 CWE 398 代码质量差添加映射 |
| CPP-55598 | [static] 为 CWE 390 无操作错误添加映射 |
| CPP-56728 | [规则向导] 在 “if constrexpr-else ”构造后错误地检测到空语句 |
| CPP-56582 | [ide]优化 C/C++test Pro 中的静态分析以适应大型工作区 |
| CPP-56804 | [引擎] 将 vc_14_3 编译器的 edg.microsoft_version 更新为 1939 |
| CPP-57360 | [引擎] 在 Clang 10 及以上版本中支持通用模板参数 |
| CPP-57372 | [Engine] 程序在以下位置收到信号 11: 堆栈跟踪:0# 0x00007FC1B9C81090 in /lib/x86_64-linux-gnu/libc.so.6 |
| CPP-56572 | [引擎]解析错误:参数包 “type_t ”被引用但未展开 |
| CPP-56513 | [引擎]解析错误:原子约束依赖于自身 |
| CPP-54945 | [引擎] 仪器无法编译 - 错误:成员函数模板的无效重新声明 |
| CPP-56749 | [引擎]hexagon_clang 的 target_gnu_version 错误并破坏指定的初始化器 |
| CPP-56924 | [引擎] IAR 编译器 9.10 中的灵活数组成员初始化解析错误 |
| CPP-56925 | [引擎]错误:部分特化的模板参数列表包括一个非类型参数,其类型依赖于一个模板参数 |
| CPP-56665 | [引擎]错误:没有重载函数 rapidjson::GenericValue 的实例 |
| CPP-56583 | [引擎]错误:函数“<unnamed>::TraceInternals::GetProcAddress ”的一个以上实例匹配参数列表 |
| CPP-56601 | [引擎]错误:此处不允许使用 ref-qualifier |
| CPP-56272 | [engine] 错误: “final "不是函数或静态数据成员 |
| CPP-56435 | [引擎]在 Android NDK 中使用 _attribute_((overloadable))进行双重定义 |
| CPP-56735 | [引擎] cpptestcc 在检测覆盖率时崩溃 |
| CPP-56584 | [引擎] 命令行错误:使用带有 # 的 /D 时宏定义无效 |
| CPP-57059 | [引擎] 类模板与模板参数不兼容 |
| CPP-56911 | [引擎] C/C++test 无法识别使用 std::tuple 的函数中的存根 |
| CPP-56676 | [引擎] 为 edgtk 管理程序添加对新内置类型的支持 |
| CPP-36809 | [覆盖率] 在编译时已知决策结果时忽略决策/分支点 |
| CPP-51512 | [覆盖率] 文档 “parasoft-instrumentation 覆盖率关闭/打开 ”注释 |
| CPP-52296 | [编译器] 支持 IAR ARM 9.40 (windows、扩展、完整) |
| CPP-55821 | [编译器] 支持 HighTec TriCore 4.9 (windows,扩展,完整) |
| CPP-55518 | [编译器] 支持 ARM 的 HighTec C 编译器(基于 LLVM 13.x) - 静态分析 |
| CPP-56592 | [编译器] 扩展支持 QNX GCC 8 (x86-64, arm64) |
| CPP-56467 | [编译] cpptesttrace 文件路径中的空格错误 |
| CPP-56918 | [build] cpptest_bdf.bzl 有两个编码错误 |
渝公网安备50010702505508