没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:莫成敏|2019-12-12 11:36:46.897|阅读 294 次
概述:本文描述了在PC-lint Plus v1.3版本中的更新内容之一,总体改进,该内容较多,分为上中下三个部分,这是最后一部分内容哦~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。
本文描述了在PC-lint Plus v1.3版本中更新内容的一部分,现在就来了解一下吧~
总体改进的内容:
PCLP-2846 扩展了报告消息464的情况
现在,在许多情况下,包括在对memcpy、strcpy、strncpy、strcat、strncat、wcstombs和strxfrm的调用中,都可以识别出由消息464诊断出的不适当的缓冲区参数重叠(调用函数重叠中的缓冲区参数)。
PCLP-2848 禁止复制普通的小型字体1746
如果参数类型是普通复制类型,其大小小于-size选项的c标志指定的最小大小,则不再发出消息1746(函数的参数可以是const引用)。此最小值的默认值为0,表示不发生基于大小的抑制。禁止显示消息的普通复制类型,例如8个字节或更少的字节,可以使用-size(c,9)选项(仅对9字节或更大的普通可复制类型发出该消息)。
PCLP-2868 警告默认构造函数在其类之外的默认值
当将构造函数定义为类之外的默认构造函数时,它将变为“用户定义”,并且类成员将被默认初始化,而不是零初始化(就像在类中默认构造函数一样)。当默认构造函数在其类之外被默认设置时,将发出新的警告消息1422。例如:
struct bar { bar(); int b; }; bar::bar() = default;
将发出:
warning 1422: default constructor ’bar::bar(void)’ defaulted outside of class bar::bar() = default; ^
PCLP-2875 从消息1784中免除好友声明
消息1784(以前声明为“C”的符号)现在将忽略好友声明,因为它们不能使用链接规范声明。
PCLP-2886 改进了对1556和1764的“新”表达式的分析
现在,将指向非const的指针作为操作符new的放置形式的放置参数传递,将防止消息提示可以将其作为指向const的指针。当由操作符new分配的对象被列表初始化时,将不再报告消息1556。
PCLP-2889 改进了对旧版本Visual Studio的“pclp_config”支持
pclp_config现在可以为64位版本的Visual Studio 2012、2010、2008和2005生成编译器配置。此外,增强了对32位版本的Visual Studio 2010、2008和2005的支持。
PCLP-2896 MISRA配置文件中的版本检查
MISRA配置文件现在包括一个版本检查,默认情况下,与较旧或较新版本的PC-lint Plus一起使用时,该检查将发出错误。新版本的PC-lint Plus不仅通过更新PC-lint Plus二进制文件本身,而且通过更新MISRA配置文件来改善MISRA支持。可以将环境变量PCLP_NO_LNT_VERSION_CHECK定义为值1以禁用此检查。因为此检查存在于配置文件本身中,所以在PC-lint Plus 1.3中使用较旧的配置文件时不会发出任何错误,但是由于消息映射已更新,因此鼓励进行更新。如果您过去曾经对MISRA配置文件进行过更改,请确保在更新到新版本时不要无意间删除它们。
PCLP-2906 在不使用-save的情况下使用-restore时进行诊断
现在,在没有相应的-save选项的上下文中使用-restore会引发错误72。
PCLP-2927 将隐式分配上下文消息扩展到类中的非静态数据成员初始化程序
现在将类内非静态数据成员初始化程序视为隐式赋值上下文,并接受由上下文参数化的消息。
PCLP-2928 对GCC和clang编译器支持-isystem。
使用pclp_config生成GCC或clang配置时,现在将-isystem编译器选项与-i相同。
PCLP-3009 处理警告级别的多项改进。
以前,使用-w或-wlib移至更高的警告级别或库警告级别会抑制消息超出转换区域。例如,在-w1 + e900 -w2之后,消息-900被-w2选项禁止。当移动到与PC-lint 9行为相符并提供更直观行为的更高警告级别或库警告级别时,PC-lint Plus将不再抑制消息。现在,使用无效的警告级别(有效的警告级别为0-4)会导致错误72,例如-w5以前是允许的,但是现在将导致错误。该文档已更新,其中包含过渡区的精确定义以及-w和-wlib选项如何使用此概念。
PCLP-2940 默认情况下,忽略消息527在交换结束时的单个冗余不可达中断
消息527现在默认情况下将忽略case或switch语句的默认带标签区域中的单个冗余的无法到达的break语句,以适应以break语句结束所有案例的做法,即使案例无条件地使用return、throw、continue、goto、或不返回的函数。在特定情况下的第一个此类被忽略的break语句之后,仍将报告其他无法访问的代码(包括其他break语句)。
可以使用选项-fub禁用此异常(恢复以前这样的break语句被报告为不可到达的行为)。
PCLP-2942 消息9168不再报告类型不完整的声明
对于不完整类型的变量声明,将不再发出消息9168(变量的别名名称与先前的声明有所不同)。例如:
//lint +e9168 extern int X[]; int X[] = { 1, 2, 3 };
以前会导致:
note 9168: variable ’X’ has type alias name difference with previous declaration (’int []’ vs ’int [2]’) int X[] = { 1, 2, 3 }; ^ supplemental 891: previous declaration is here extern int X[]; ^
PCLP-2960 消息1932不再对前向声明或模板实例化发出
对于类的前向声明或在模板实例化中,将不再报告消息1932(类从非抽象类继承)。
PCLP-2962 减少内存使用
内存使用已大大减少,特别是对于涉及许多模块的项目。
PCLP-2977 消息1915的多项改进
消息1915(虚拟函数覆盖函数,并且未标记为“覆盖”)不再在C ++ 03模式下发出,不再针对类外定义发出,并且发出了更具描述性的补充消息。
PCLP-2984 使用许多-append和-deprecate选项或MISRA配置文件时,性能得到改善,并且减少了内存使用。这也适用于使用许多此类选项的MISRA配置文件。
PCLP-2988 性能提升
在适用于一般用途的许多不同领域中,性能都有所提高。
PCLP-3002 将默认的C ++标准从C ++ 14(-std = c ++ 14)更新到C ++ 17(-std = c ++ 17)
现在默认的C ++语言标准是C ++ 17(-std = c ++ 17)。以前是C ++ 14(-std = c ++ 14)。可以使用选项-std = c ++ 14将C ++语言标准恢复为先前的默认值。请注意,C ++ 17中删除了一些先前不推荐使用的语言功能。如果您使用的是在C ++ 17中删除的功能,以前未使用-std选项指定显式语言版本,并且在更新后收到错误或警告,则可以使用选项-std = c ++恢复以前的行为。 14。
PCLP-3014 发行1774,用于通过相等运算符进行比较
消息1774(仅dynamic_cast可以通过返回null来指示失败)以前仅在通过布尔转换对非动态指针对指针强制转换的结果进行了null测试(例如,如果(static_cast (p ))...)。现在,当使用相等运算符将其与空指针常量进行比较时,也会发出该消息。如果(static_cast
C和C ++的静态分析工具PC-lint Plus v1.3更新内容:总体改进(上)
C和C ++的静态分析工具PC-lint Plus v1.3更新内容:总体改进(中)
想要购买PC-lint Plus正版授权,或了解更多产品信息请点击“咨询在线客服”
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:Gimpel SoftwareIron Software 为.NET开发者提供了难得的“即插即用”组件体验,无论是做内部工具,还是开发商业软件,都能大幅提升你的开发效率与产品质量。这款宝藏控件,不妨你也来试试!
TestComplete通过与Git、Jenkins和Zephyr的深度集成,构建了一个完整的持续测试生态系统:从代码变更的智能感知到批量测试的自动化执行,再到测试管理的智能化分析,实现了测试流程的全链路自动化。这种端到端的集成方案不仅显著提升了测试效率和质量,更通过实时反馈和可视化管理,为团队提供了精准的代码质量洞察。
微服务架构带来了灵活性,但也让测试变得复杂:不同协议适配费时费力、服务频繁变更导致测试用例维护困难、依赖环境搭建和稳定更是令人头疼。这些挑战常常成为敏捷交付和质量保障的瓶颈。Parasoft SOAtest正是为应对这些复杂分布式系统测试难题而设计的平台。它通过三大核心能力,帮助团队更从容地驾驭微服务测试:
HOOPS SDK为增材制造软件开发提供了从CAD数据读取、模型处理、可视化到文档生成的完整技术栈。无论是桌面端的工业级打印控制系统,还是基于云的在线制造平台,开发者都可通过HOOPS快速构建稳定可靠、用户体验优良的3D打印软件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号