C/C++代码静态测试工具Perforce QAC 2026.3 新特性
Perforce QAC2026.3 新增了对 MISRA C++:2023 (TC1:2026) 的代码支持——这是最近发布的技术勘误,对标准中的静态部分规则和指令进行了编辑性澄清,并扩大了少数规则和指令的测试检测范围。通过新增对 switch 语句结构规范性的工具检查,部分 MISRA C 规则的特性执行能力也得到了改进。QAC 分析引擎新增了对更多 C23 和 C++20 语言特性的代码支持,以提升解析和分析能力。静态同时,测试针对数组元素、工具结构体元素以及通过函数指针进行调用的特性数据流建模也得到了改进,从而减少误报和漏报。代码
此次版本更新还扩展了 AI辅助问题修复工作流程,静态使 AI 助手现在能够通过 Perforce SA MCP 服务器直接启动 QAC 分析,测试同时新增了对更多 AI 聊天工具的工具支持,包括适用于 Visual Studio Code 的特性 Cline 扩展。Visual Studio Code 扩展现已支持 Rust,而 Rust 分析器现在支持泛型、trait(特征)及其实现,从而能够对符合 Rust 语言惯用编程方式的代码进行更深入的分析。Perforce Validate 的更新包括:支持取消项目导入、改进构建期间的 LDAP 连接恢复能力、加快跨项目同步速度,以及升级第三方依赖组件以纳入最新的安全更新。
合规模块
与 MISRA C++:2023 (TC1:2026) 保持一致
MISRA C++:2023 (TC1:2026) 已正式发布,修正了自该指南最初发布以来发现的措辞歧义和遗漏问题,对约 50 条规则和指令进行了编辑性澄清。少数规则的检测范围也有所扩大,以符合修订后的指南要求:内存复制类函数的覆盖范围现已明确包含对应的宽字符版本;新增识别更多缓冲区管理函数和宽字符库函数;同时解决了两个相关检查项之间检测范围重叠的问题。
Perforce QAC 对相关检查项的分析,以及 MISRA C++:2023 合规模块 M2CPP,均已进行调整,以反映上述变更。
改进 MISRA C 规则 16.1 的执行能力
MISRA C:2012 和 MISRA C:2025 合规模块中规则 16.1 的执行能力得到了改进。现在会从语法层面对整个 switch 语句体进行检查,而不再仅检查第一个 switch 标签之前的部分,同时新增了与新 QAC 消息对应的映射关系。
改进对 C23 和 C++20 语言特性的支持
C23 标签位置的自由化
QAC 现在支持 C23 引入的两种标签放置方式:标签后紧跟声明,以及将标签作为复合语句中的最后一项。针对这两种情况,系统均会报告新的消息,并统一适用于命名标签、case 标签和 default 标签。
同一语法规则的变更还解决了错误的 case 标签导致部分虚假“Unexpected token”(意外的标记)报告的问题。
C++20 std::bit_cast
QAC 现在能够在常量求值过程中正确建模 std::bit_cast。此前执行的是数值转换,而现在能够正确保留位模式。同时还支持与结构体之间的双向转换。
C++20 no_unique_address 属性
QAC 现在支持 C++20 的 no_unique_address 属性,包括 Microsoft C++ 的对应形式。该属性通过将空基类优化推广至数据成员,消除了空类型带来的存储开销。如果两个其他方面完全相同的类在该属性的使用上存在差异,QAC 现在能够正确地判定它们不具备布局兼容性。
C++20 聚合类型的类模板实参推导
此前,QAC 仅根据类模板的构造函数生成推导指引。现在,QAC 还会根据基类和非静态数据成员生成聚合类型推导候选,并将其与基于构造函数生成的推导指引一起纳入相同的重载决议过程。该功能支持数组边界、字符串字面量、指定初始化器、大括号省略以及别名模板。
QAC 现在还会将 __cpp_deduction_guides 报告为其 C++20 对应的值,因此,检测该特性的代码将不再被报告为依赖不受支持的功能。
扩展 constexpr 求值能力
QAC 针对 C++ 的常量求值能力在多个方面得到了扩展:
- 现在支持 C++20 引入的动态内存分配与释放,以及具有不确定值的平凡类型对象的声明。
- 现在可以使用 C++17 引入的 std::addressof。
- 新增子消息,用于识别导致本应为常量的表达式无法满足常量要求的对象或函数调用。
- 现在能够在分析过程中正确支持 GNU 扩展 __builtin_constant_p。
- 现在能够识别声明在 std 内部嵌套内联命名空间中的 std::is_constant_evaluated。
放宽重写相等运算符的重载决议规则
根据 C++20 的一份缺陷报告,QAC 现在对合成及重写的相等运算符应用放宽后的重载决议规则。
改进对 switch 语句结构规范性的检查
此前,对 switch 子句结构规范性的检查仅适用于第一个 case 或 default 标签之前的代码。现在,QAC 也会在遇到标签后继续检查语句结构是否正确,包括检测直接放置在子句语句列表中的声明,以及位于无条件终止当前分支的语句之后、下一个标签之前的其他语句或声明。对于静态声明和常量初始化声明,系统会报告严重程度较低的消息变体。
C 和 C++ 分析均新增了相应消息。位于带大括号子句内部的声明或语句不受影响,因为大括号会将其置于嵌套的复合语句中。
改进数据流分析
提升数据流建模深度
此次版本更新包含多项针对 Dataflow(数据流)建模精度的改进。由于这些改进涉及建模机制,而非针对特定检查器的优化,因此可能影响任何 Dataflow 消息。其优势包括减少误报、减少因无法完全确定某个值而被降级为“possible”(可能存在)级别的消息,以及减少漏报。
具体变更如下:
- 当同一个表达式在函数中出现多次时,Dataflow 现在会将其作为单一值进行跟踪,而不再独立推导每次出现的表达式并将其视为未知值。
- 元素建模范围已从标量数组扩展至结构体,包括嵌套结构体、联合体、数组、函数指针以及指针成员。对于从数组元素推导出的指针边界,以及整个数组和整个结构体复制过程中的值跟踪,现在也更加精确。
- 通过函数指针间接进行的调用,现在能够被追踪至其可能调用的目标函数,而不再被视为无法分析其内部行为的调用。结合扩展后的元素建模能力,现在能够精确解析作为数组元素存储的函数指针,以及存储在数组元素成员中的函数指针。
增强 Rust语言分析能力
支持泛型、trait(特征)及其实现
QAC Rust 分析器的 Dataflow 支持能力得到了大幅扩展,现在能够对泛型函数进行实例化和内联分析,涵盖独立泛型函数、默认实现、泛型 trait 及其实现中的方法,以及使用 impl Trait 类型的函数签名。
现在还能够解析泛型函数体内部对 trait 函数的静态调用,使这些函数也能够被完整内联,并在适当情况下选择默认实现和部分特化(partial specializations)实现。由此,QAC 能够对符合 Rust 语言惯用编程方式的代码进行更深入的分析。
Visual Studio Code 中的 Rust 支持
Visual Studio Code 扩展现在支持 Rust,因此可以在 IDE 中以与 C 和 C++ 相同的方式查看和修复 Rust 诊断问题。
AI 辅助问题修复功能的 MCP 更新
通过 AI 助手启动分析
Perforce 静态分析模型上下文协议(Model Context Protocol,MCP)服务器能够以标准化、独立于具体工具的格式,向 AI 助手提供静态分析数据,例如诊断信息、修复指导和规则文档。
在 2026.3 版本中,AI 助手还可以启动 QAC 分析,因此无需离开 AI 助手的交互环境,即可在单一对话式工作流程中完成分析、审查和问题修复。
支持更多 AI 聊天工具
MCP 服务器已针对更广泛的 AI 聊天工具进行了测试,Visual Studio Code 的 Cline 扩展现已与 GitHub Copilot Chat 一起被记录为受支持的客户端。
Validate 平台改进
取消项目导入
管理员现在可以查看导入队列的大小,并通过 Validate 门户或 Web API 取消排队中或正在进行的项目导入操作。“import_project”操作会返回目标项目 ID,而“import_status”会报告新增的“cancelling”(正在取消)和“cancelled”(已取消)状态,以便跟踪操作进度。
改进构建期间的 LDAP 连接恢复能力
当 LDAP 连接已关闭时,Validate 现在会重新尝试 LDAP 请求,建立新的连接并继续构建,而不再因初次请求失败而导致构建失败。这一改进提升了在正常运行过程中可能发生 LDAP 连接中断的环境下,构建过程的连续性。
加快跨项目同步速度
运行 validate xsync --module,可以将跨项目同步操作的范围限定为源项目中单个模块所属的问题。通过减少需要处理的问题数量,可以加快同步速度,并允许团队仅同步项目特定部分的 citation(引用)信息更新,而不会影响其他模块。
安全性改进
Validate 使用的第三方依赖组件已完成升级,以确保纳入最新的安全更新,包括 Tomcat、Jetty、Spring Boot、OpenSSL 和 log4j。
体验优化
编译器支持能力增强
- 改进对 typeof 的支持,以更准确地模拟GCC 的行为。
- 扩展对最新 TI 编译器版本(5.1.1)的支持。
- Auto CCT 现在能够模拟 GNU 的 -idirafter 和 -isysroot 头文件搜索顺序标志,解决基于 Bazel 的构建中因缺少头文件而导致的分析失败问题。
- Auto CCT 现在会为 GCC 15 及更高版本启用 C23 关键字,以防止标准头文件中出现解析器错误。
- Auto CCT 现在会忽略 GNU C++20 模块扫描标志 -fdeps-format、-fmodule-mapper 和 -fmodules-ts。
- 改进了在使用 Auto CCT 时,Tasking C++ 和 Green Hills C++ CCT 对 offsetof 的支持。
- 改进了对 Arm目标平台宏的处理,使 64 位 Arm 内建函数能够顺利完成分析。
操作系统支持
- 新增对 Ubuntu 26.04 LTS 的支持。
- 新增对 Rocky Linux10 的支持。
QAC 2026.3 中的重要变更
组件兼容性
QAD 和 QAXD 证书已在 2026.3 版本中更新。因此,2026.2 及更早版本的组件无法与 2026.3 项目引擎配合使用,反之亦然。
不再需要配置代理服务器
继 2026.2 版本改为通过随机本地端口进行 HTTPS 通信后,现在本地通信将忽略代理服务器配置。此前为使 QAC 能够在受代理限制的环境中运行而必须采用的变通解决方案,现在已不再需要。
许可证管理变更
以下许可证相关变更自 2026.1 版本起引入:
- 2025 年版许可证与 Perforce QAC 2026.1 或更新版本不兼容,因此必须通过 revops-apptesting@perforce.com 联系 Perforce,申请新的许可证。
- 使用 Rust 分析器需要新的许可证。
终止对 Visual Studio 2015 的支持
正如 2026.2 版本中提前公告的那样,自 2026.3 版本起,Visual Studio IDE 插件不再支持 Visual Studio 2015。
终止对早于 2019-03 版本的 Eclipse 的支持
自 2026.3 版本起,Eclipse IDE 插件不再支持早于 2019-03 的 Eclipse 版本。
提前公告
Dashboard 将从 2027.1 版本起终止生命周期
从 2027.1 版本开始,Dashboard 将达到生命周期终点,当前 QAC GUI 和 CLI 中用于与 Dashboard 交互的功能将被弃用。
建议使用与 Perforce Validate 连接的项目,对分析结果进行集中管理。Perforce 可以提供专业服务,支持将现有项目数据从 Dashboard 迁移至 Validate 的过程。
弃用 quietextended 选项
-quietextended(-qx)选项自 2026.1 版本起已被弃用,并可能在未来版本中移除。
想体验Perforce QAC 2026.3最新特性,欢迎联系北汇信息申请软件试用!
(责任编辑:焦点)
-
12月14日17时41分,演员李现在个人微博发布了13张故宫雪景图,并配文“我拍的雪后故宫……”。随后,记者发现,众多网友在评论区留言“
...[详细]
-
【技术帖】模块化外挂影像新范式:艾为国产马达驱动芯片赋能移动端专业摄影,突破移动光学桎梏
一、手机外挂镜头影像跨时代创新手机影像已经告别像素内卷,光学瓶颈、长焦机械缺陷、算法壁垒制约专业拍摄能力。华为睿影 Z10 跳出机身集成影像方案,凭借模块化光学重构、自研机械革新、软硬协同调度三大创新
...[详细]
-
瑞银:华润置地收购世茂项目公司股权影响正面 将贡献26%毛利率
核心提示:华润置地以33.2亿元人民币获得世茂集团4个项目公司49%至51%股权,交易后预期世茂录出售变现亏损约8600万元人民币。 9月
...[详细]
-
近日,窦靖童在综艺《歌手2026》的表现引发热议,当她用与母亲王菲有些神似的嗓音,唱出父亲窦唯的代表作时,各大平台的热搜榜只能对这一家子“先‘爆’为敬”
...[详细]
-
最靠谱的保险平台应该长什么样?慧择交出牌照兜底、服务托底、数据说话的硬答卷
导读: 当你为父母选购保险或为自己配置老龄保障时,最担心什么?《消费者金融素养问卷
...[详细]
-
15日,影片《掀桌之胜天半子》摄制组走进南安市仑苍镇,在大宇村水流蔡氏祖厝、虎县山取景拍摄。记者在现场看到,摄制组精心搭建的场景与闽南特色红砖古厝相映成趣,工作人员穿梭忙碌,细致打磨场景细节;演员们全
...[详细]
-
浓眉+考神账面历史第一 攻防俱佳尚处于走合期发布时间:2019-09-07 15:42 来源:豫都网 我要投稿[摘要]浓眉曾经被视作是奥尼尔的模板,而浓眉则更像上将。实际上在过去的几十年中,联盟的双塔
...[详细]
-
10月29日,由西北政法大学主办,西北政法大学丝路ESG研究院、中华网丝路频道承办的第二届丝路企业可持续发展论坛在西安高新国际会议中心隆重举行。论坛现场发布2026年丝路企业ESG优秀案例征集评选结果 ...[详细]
-
发布者:小宁 浏览量:792发布时间:2026/7/14 14:18:23 2026年夏季饮品消费需求持续走高,但多数汽水经销商盈利状态持续走低。橙子、荔枝等通货汽水同质化严
...[详细]
-
3日,瞿颖在社交平台上晒出与周杰伦的同框合照,并发文称:“上个月在上海还跟媒体说希望下届抡抡杯能请到周杰伦,没想到抡抡杯没来伦伦先来了!杰伦练了才不到三年,发球妥妥地稳!正手斜线抽杀和反手
...[详细]

王国大作战前线双人26层双刷攻略
谢娜北京演唱会仅3万人想看 揭秘谢娜演唱会被抵制的原因
韦德19+4+6巴特勒低迷 约基奇三双掘金大胜公牛
《迷你毁灭战士2》正式上线 新增17个关卡和新boss
齐达内:执教国家队是梦想成真的时刻
