彩票走势图

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

翻译|行业资讯|编辑:莫成敏|2019-11-07 16:07:49.483|阅读 638 次

概述:PC-lint Plus是C和C ++的首选静态分析工具。本文主要介绍PC-lint Plus v1.3版本中修复的错误。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。本文主要描述PC-lint Plus新版本修复的内容~

点击下载PC-lint Plus最新版


修复BUG:

  • PCLP-2663 误报9103涉及功能模板

    消息9103将不再报告功能模板定义,也不再使用实例化作为对原始模板声明名称的重用。

  • PCLP-2668 消息882发出警告而不是提示信息

    以前,消息882(应用于声明为不完整数组类型的参数的sizeof消息)被错误地报告为“警告”,而不是正确的“info”消息类别。此问题已得到纠正。

  • PCLP-2669 消息682和882的呈现问题

    消息682(应用于大小数组参数的sizeof)和882(应用于不完整数组参数的sizeof)之前都是用“function”这个词在诊断中重复的,并且没有与涉及参数的函数相对应的正确符号参数。这些问题已得到纠正。

  • PCLP-2670 返回三元表达式时缺少条件返回推断

    返回对三元表达式求值的结果将不再禁止针对封闭的if语句条件的推断。例如,在以前的版本中,如果在条件为指针为空的if语句内部直接返回三元表达式的结果,则稍后如果在if语句之后未认识到指针不能为null,则可能导致false positive。

  • PCLP-2838 某些标头包含在预编译的标头中时,断言失败或崩溃

    解决了预编译标头(包括Visual Studio 2017头)中时,可能表现为断言失败或崩溃的问题。

  • PCLP-2740 消息2454在-etype中不能正常工作

    -etype选项以前无法按预期与消息2454一起工作,此问题已得到纠正。

  • PCLP-2726 修复了用于冲突检测的功能参数的处理

     当使用-idlen时,PC-lint Plus有时会错误地通过621错误地报告作用域内的函数参数与另一个标识符之间的名称冲突。另外,使用-idlen时,包含数千个函数声明的模块将遭受明显的性能损失。这些问题都已得到纠正。

  • PCLP-2742 使用空指针调用fflush时不发出警告

     调用fflush时,PC-lint Plus先前发出418(将空指针传递给函数)将为空指针。这样做的行为是明确定义的,在这种情况下将不再发出此消息。

  • PCLP-2775 由-header、lint注释、-indirect和-d的嵌套使用触发的挂起或内部错误

    通过将-d选项放置在配置文件中而导致的挂起或内部错误已得到纠正,该配置文件通过-header选项包含的标头中的lint注释中的-indirect选项包含在模块中。

  • PCLP-2778 误报与精度相关的消息,涉及非恒定偏移

    当已知数量偏移了未知数量的位数时,涉及精度和诸如587之类的预定谓词消息的误报已得到纠正。

  • PCLP-2786 不要为跳过主体的功函数发出715

    先前为具有定义但跳过其主体的函数发出了消息715(函数的命名参数,以后未引用)。跳过的函数体是PC-lint Plus不处理的函数体,当使用-skip_function选项或flf标志为OFF时在库区域中定义的函数时,可能会发生。在这种情况下,将不再发出消息715。

  • PCLP-2793 不要抱怨使用regparm属性

    以前,当在函数声明中遇到regparm属性时,PC-lint Plus会发出错误4211(“regparm”在此平台上无效)。 PC-lint Plus将不再发出此消息。

  • PCLP-2795 正确处理语义规范中的〜operator

    在-sem选项内部出现的语义表达式中,〜运算符未正确处理。此问题已得到纠正。

  • PCLP-2806 包含匿名联合的类的误报1927

    现在,出于消息1927的目的,将考虑对匿名联合的任何成员进行初始化,以初始化匿名联合本身。如果未初始化任何匿名成员,则消息1927仍然可以报告匿名联合。 

  • PCLP-2818 错误值850,用于右值引用到索引变量

    当由for变量创建的临时变量通过右值引用传递给函数时,将不再发出消息850。

  • PCLP-2844 更正了旧C编译器的imposter.c

    将局部变量声明移至复合语句的开头,以支持旧的C编译器。

  • PCLP-2869 在Windows上重定向之前未刷新缓冲的输出流

    现在,使用-oe和-os选项进行输出重定向将确保首先刷新所有缓冲的输出,以避免任何以前缓冲的输出写入Windows的新流中。

  • PCLP-2894 在Microsoft兼容模式下使用依赖返回值实例化类模板的成员函数时需要挂起,该依赖返回值用于在依赖调用程序中推导自动返回类型

     Microsoft兼容模式使用+ fdt标志来启用延迟的模板解析。解决了一种情况,即立即同时需要模板实例化才能推断出返回类型,并且这种情况已延迟到模块结束(因为Microsoft兼容性导致挂起)。

  • PCLP-2897 pclp_config现在可以正确处理指定小写宏的选项

    如果使用格式为-Dmacro或/ Dmacro的编译器选项定义了宏,然后通过pclp_config对其进行了转换以生成配置文件,则如果该宏名包含小写字母,则由pclp_config执行的转换将是不正确的。这可能会导致宏未在结果配置文件或格式错误的配置中正确定义,从而导致在尝试使用宏时出错。此问题已得到解决。

  • PCLP-2785 误报734(精度损失),导致转换结果的精度过高

    现在,强制转换为可表示值范围较小的无符号类型将永久限制操作数的精度。以前,某些操作(例如“异或”或“揭示”操作数的原始精度)是可能的。

  • PCLP-2921 对于Windows构建,默认情况下fff标志现在为ON

    该文档声称,在Windows内部版本中,默认情况下fff标志处于启用状态,但实际上并非如此。此问题已得到纠正,并且Windows版本的fff标志的默认值现在为ON。

  • PCLP-2925 au-misra3.lnt中的-append选项不正确

    规则1.3的au-misra3.lnt中的-append选项引用了错误的消息号(2454,而不是64)。这已得到纠正。

  • PCLP-2959 消息1932包含正确的基类

    消息1932(基类不是抽象的)以前将派生类报告为基类,此问题已得到纠正。

  • PCLP-2986 虚数字后缀的误报9106

    使用后缀I或i时,PC-lint Plus先前报告的消息9106(小写字母后缀)的字符串参数为j。使用I将不再引发此消息,并且将以正确的字符串参数化引发该消息。

  • PCLP-2998 改进常量表达式的解析,该常量表达式的评估涉及副作用

    确定其评估是否会导致副作用的表达式或依赖于其评估会导致副作用的另一个表达式是否可以作为C ++中的常量表达式的确定,已改进为始终符合所选语言标准。

  • PCLP-3016 将不兼容的指针类型消息从2450移动到2449

    消息2450继续报告文件中原义的空字符的存在。不兼容类型警告已移至消息2449。

  • PCLP-3021 Visual Studio 2013和2015的32位和64位版本的基本配置之间的差异

    用于支持Visual Studio标准库的_EMIT_VECTORCALL定义现在包含在Visual Studio 2013和2015的32位配置中。以前仅在64位版本中出现。

相关内容推荐:

C和C ++的静态分析工具PC-lint Plus v1.3更新内容:新消息摘要

C和C ++的静态分析工具PC-lint Plus v1.3更新内容:修复错误(上)


想要购买该产品正版授权,或了解更多产品信息请点击

850×682.png



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP