C和C ++的静态分析工具PC-lint Plus v1.3更新内容:新功能(下)

翻译|行业资讯|编辑:莫成敏|2020-01-16 13:23:29.733|阅读 23 次

概述:在PC-lint Plus最新版本中,PC-lint Plus产品更新了很多新功能,跟着小编来了解一下吧~

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。
在PC-lint Plus最新版本中,PC-lint Plus产品更新了很多新功能,内容较多,分为上下两篇,上篇查看请点击这里,现在跟着小编来了解一下吧~


新功能:
  • PCLP-2739 危险的Microsoft Windows API IsBadPtr函数的内置函数语义

添加了内置函数语义,将IsBadCodePtr、IsBadReadPtr、IsBadStringPtrA、IsBadStringPtrW、IsBadWritePtr、IsBadHugeReadPtr和IsBadHugeWritePtr标记为危险。如果使用它们,将发出消息421。

  • PCLP-2789 新的non_custodial语义

新的non_custodial自变量语义与现有的自定义语义相反,可用于指示函数不占用其自变量所指向的内存。启用ffc标志时(默认情况下为ffc),假定接受非const指针的非库函数将托管指向的内存。此语义可用于单独指定此假设不合适的功能。

  • PCLP-2830 新的+ fup和+ fuu标志可将值报告为null或未初始化后清除它们

添加了新的价值跟踪标志+ fup和+ fuu。

fuu默认为关闭(-fuu)。当fuu为ON(+ fuu)值将被报告为未初始化后将被完全清除(因此不会在第二次使用时再次报告为未初始化)。

fup默认情况下为OFF(-fup)。该标志类似于fuu,但适用于空指针而不是未初始化的内存。

  • PCLP-2836 新消息695-声明内联函数而没有存储类说明符

新消息695报告在C模式下何时声明没有存储类说明符的内联函数。

  • PCLP-2888 Visual Studio 2019对pclp_config的支持

pclp_config实用程序现在支持Visual Studio 2019,其编译器名称为vs2019和vs2019_64。

  • PCLP-2910 新消息1423-reinterpret_cast具有未定义的行为

当reinterpret_cast将导致未定义的行为时,将发出新的警告1423。

  • PCLP-2929 新的AUTOSAR C ++配置文件

lnt目录中的新au-autosar.lnt文件提供了对AUTOSAR C ++的入门支持。

  • PCLP-2948 新消息1756-变量具有静态/线程存储持续时间和非POD类型

新消息1756报告具有静态存储持续时间的非constexpr变量何时具有非POD类型。

  • PCLP-2949 新消息9215,并将参数添加到消息715

消息9215报告何时使用未命名的参数定义函数。消息715已更新为包括一个字符串参数,该字符串参数指示该功能是否为虚拟功能。

  • PCLP-2950 新消息9414-带有副作用的表达式中使用了“typeid”

消息9414报告何时将typeid运算符与包含副作用的表达式一起使用。

  • PCLP-2951 新消息9181-开关包含少于两种非默认开关情况

消息9181报告何时遇到少于两种非默认情况的开关。

  • PCLP-2952 新消息2618-非类型说明符出现在类型后

当好友、constexpr、thread_local、易变、内联、虚拟或显式之一出现在声明中的类型后,消息2618将报告。

  • PCLP-2954 新消息9418-枚举没有明确指定的基础类型

消息9418将报告在C ++ 11或更高版本的模式中定义了没有显式指定的基础类型时的枚举的情况。

  • PCLP-2955 新消息9419-枚举不是作用域枚举

当在C ++ 11或更高版本的模式中定义了无作用域的枚举时,消息9419将报告。

  • PCLP-2956 新消息9415-使用列表初始化来初始化“自动”变量

消息9415在使用直接或复制列表初始化对自动变量进行初始化时报告,这可能会产生意外结果。

  • PCLP-2957 新消息9420-位域没有无符号整数或显式无符号枚举类型

当声明的位域的类型不是与实现无关的无符号整数类型时,将发出新消息9420。

  • PCLP-2958 新消息9432-类继承自多个非抽象类

消息9432报告从多个非抽象基类继承的类。

  • PCLP-2963 支持弃用预处理器指令

现在,可以使用-deprecate选项使用ppw类别来弃用预处理指令。将在消息586中报告已弃用的预处理器指令的使用,除非在有条件排除的区域中使用该指令,否则将在新消息886中进行报告。

  • PCLP-2966 新消息9422-虚拟功能应准确指定“虚拟”、“替代”或“最终”之一

如果未使用虚拟函数,替代函数或最终函数中的一个确切地声明虚拟函数,则会发出消息9422。

  • PCLP-2967 新消息9421-虚拟功能将覆盖功能,并且不会标记为“覆盖”或“最终”

当在C ++ 11模块中遇到覆盖基本类函数的虚函数且未使用覆盖至少一个指定符或最终指定符进行声明时,将发出消息9421。

  • PCLP-2968 新消息1779-类中引入的虚拟功能被标记为“最终”

消息1779报告何时在最终类中声明虚拟函数并且不覆盖基类中的任何虚拟函数。

  • PCLP-2970 新消息9437-使用“struct”关键字定义的非POD类

消息9437报告何时使用struct关键字定义了非POD类。

  • PCLP-2971 新消息9435-符号已声明为好友

消息9435报告何时遇到朋友声明。

  • PCLP-2974 诊断文字运算符及其使用的新消息

新消息9433(声明了文字运算符函数)和9434(使用后缀字符串的用户定义文字)分别诊断了文字运算符的声明和使用。

  • PCLP-2976 新消息9436-C ++模块中使用数组类型声明的符号

消息9436报告何时在C ++模块中声明具有数组类型的对象。

  • PCLP-2983 新讯息2414

消息2414(非标准文字后缀)将诊断使用非便携式数字文字后缀。

  • PCLP-3015 用于pclp_config的Visual Studio配置GUI

现在可以使用图形化配置实用程序来简化为Visual Studio生成编译器和项目配置的过程。

  • PCLP-3017 pclp_config对Microchip MPLAB X的支持

pclp_config.py实用程序现在支持为Microchip MPLAB X生成编译器配置。

  • PCLP-3018 对Keil µVision ARMCC的pclp_config支持

pclp_config.py实用程序现在支持为Keil µVision ARMCC生成编译器配置。

  • PCLP-3026 新的%ENCLOSING_DIRECTORY%内置环境变量

新的内置环境变量%ENCLOSING_DIRECTORY%扩展为出现该选项的配置文件,模块或标头的封闭目录的绝对路径。在文件外部,它将扩展到当前工作目录。

  • PCLP-3044 新的CERT C配置文件

lnt目录中的新au-certc.lnt文件提供了对CERT C的入门支持。

本文内容到这里就结束了,想要了解新功能上篇请点击这里,或者下载PC-lint Plus最新版免费体验~


想要购买PC-lint Plus正版授权,或了解更多产品信息请点击【咨询在线客服】





标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:Gimpel Software https://gimpel.com/

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
PC-lint Plus

PC-lint Plus是C和C ++的首选静态分析工具。

在线
客服
在线
QQ
咨询
电话
177-4994-3557
购物车 反馈 返回
顶部
在线客服系统
live chat