您现在的位置是:热点 >>正文
C/C++代码静态测试工具Perforce QAC 2026.3 新特性
热点8人已围观
简介Perforce QAC2026.3 新增了对 MISRA C++:2023 (TC1:2026) 的支持——这是最近发布的技术勘误,对标准中的部分规则和指令进行了编辑性澄清,并扩大了少数规则和指令的 ...
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最新特性,欢迎联系北汇信息申请软件试用!
Tags:
相关文章
《我的前半生》“薛甄珠”许娣回应爆火:感谢观众的喜爱
热点近日《我的前半生》薛甄珠扮演者许娣受访时回应爆火,每天都有人给她发二创作品,“真的要感谢观众对这个人物的理解和喜爱。”其实她本人不是上海人,开拍前只会说“你晓得吧& ...
【热点】
阅读更多真诚相遇、双向奔赴——百年佐敦圆满完成北京九家知名设计事务所拜访
热点暑气渐敛,秋意初萌。挪威百年品牌佐敦开启第二轮「设计相遇」计划,这场与北京设计师之间的深度交流不但延续了夏季的火热,更为秋季带来了金色的希冀。2026年8月,继第一轮「设计相遇」上海之行,佐敦圆满完成 ...
【热点】
阅读更多新增38种专业 本科专业调整折射哪些新趋势
热点教育部近日发布《普通高等学校本科专业目录2026年)》,共新增38种普通高校本科专业。获批申办高校可纳入2026年高考招生。新增本科专业有哪些特点?开展专业调整工作有哪些考虑?如何通过专业设置调整提升 ...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 炼焦煤市场涨势遇谨慎情绪,焦炭四轮提涨落地
- 当122B模型跑进桌面主机:2026云栖大会解读江波龙的端侧AI存储方案
- 国际润滑品牌停供,中国工业如何破局?
- 卡组构筑游戏《断头牌局》预告发布!将于2027年推出
- 焦炭市场坚挺但上行乏力
- 艺术机构转型与产权确权:从“交易中介”到“资产运营商”的三重破局 收藏资讯
- 安徽:减税降费“免申即享”助力企业发展
- 实时控制够快还能抗量子破解,英飞凌新一代控制MCU落地
- 泰康人寿安徽分公司提醒您:理性认知保险产品,匹配自身保障需求
- 大力弘扬教育家精神 共筑尊师重教风尚
- 全国工商联民营企业500强榜单公布 滴滴位列第31位
- 龙魂旅人纺命蛛母阿拉克涅阵容装备推荐
- 井场少了,效益多了!采油四厂精益建产“减法”做出“乘法”效应
- 南陵县家发镇太白社区:扫雪铲冰保畅通 志愿服务暖人心
- 煤炭仍是全球电力能源无可争议的王者
- 节后机票价格“跳水” 错峰出游省钱
- 区政协开展“迎亚运”环境绿化美化专项民主监督活动
- 汉阴法院组织司法警察开展“执法规范学习年”第三期集中学习
- 长城润滑油亮相第三届中国石化车友节 硬核润滑方案护航3.8亿车友自驾无忧
- 近8亿融资,前华为“天才少年”被宁德时代追着投
- 徽学学科早期研究成果展陈
- 安徽:减税降费“免申即享”助力企业发展
- 安徽:减税降费“免申即享”助力企业发展
- 国网吕梁供电汾阳公司:耐心算清“明白账” 客户用电更安心
- 居然智家发布2025年年度报告:实现营收111.44亿元
- 洛江区安委会部署劳动密集型企业“五项攻坚”暨中秋国庆假期安全工作
- 群豪A级阻燃板:防火环保双达标筑牢空间安全防线
- 节后机票价格“跳水” 错峰出游省钱
- 徽州区富溪乡:小小服务台 浓浓暖冬情
- 南陵县家发镇太白社区:扫雪铲冰保畅通 志愿服务暖人心
- 艺术市场迎来上升期,画廊与艺术工作室如何顺势迭代运营模式? 收藏资讯
- 徽学学科早期研究成果展陈
- 厦金大桥(厦门段)观音山沙滩桥1.5万吨桥面横移135米
- 解谜游戏续作《塔罗斯的法则3》玩法预告发布
- 淮南市:“小蚂蚁”的倍增效应
- 汉阴有效利用闲置的仓储保鲜库增加村集体收入——“沉睡资源”变身“增收引擎”
- 健康照明:点亮美好生活 顺德家具网-
- OriginOS7首批升级名单公布,覆盖vivo、iQOO机型,今日开启推送!
- 淮南市:志愿服务在身边 让幸福触手可及
- 泰康人寿安徽分公司提醒您:理性认知保险产品,匹配自身保障需求
- 炼焦煤市场涨势遇谨慎情绪,焦炭四轮提涨落地
- 区政协开展“迎亚运”环境绿化美化专项民主监督活动
- 薪火相传之徽州漆器髹饰技艺
- 黄梅声声,唱响“少年英雄”
- 国网岷县供电公司:精准监督提质效 清风护航促发展
- 2026年国际篮联洲际杯在国家体育馆拉开帷幕
- 龙魂旅人纺命蛛母阿拉克涅阵容装备推荐
- 淮南市:“小蚂蚁”的倍增效应
- 徽学学科早期研究成果展陈
- 一根绳子,牵起老爸的“第二次长大”