C和C++静态分析工具PC-lint Plus v1.3.5更新:BUG修复(下)

原创|产品更新|编辑:郑恭琳|2020-07-07 13:47:59.603|阅读 51 次

概述:1.3.5版本对PC-lint Plus进行了许多改进。包括:更新了AUTOSAR,MISRA C和MISRA C++,新消息和标志选项,对Visual Studio配置生成器GUI的改进等。

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

相关链接:

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

点击免费试用PC-lint Plus最新版


BUG修复

  • PCLP-3358 当处理C模块时,解决了三元运算符条件的一个遗漏的潜在布尔推理

一个通常表现为在三元运算符的真或假操作数中的误报的问题,应该被它的条件所排除。这个问题只发生在C模块中。

  • PCLP-3364  解决涉及区间关系或相等比较的误报

一个涉及与评估应用于可表现为误报774的区间的不合格和大于等于运算符相关的不确定性的问题已经解决。

  • PCLP-3376 在诊断由包含内置的宏展开所产生的表达式分配的返回值之间的冲突后修复可能的崩溃行宏和返回值语义

Diag Info Code-37的崩溃可能在消息2426的发布被解决后立即发生。

  • PCLP-3378 在有lint注释的情况下,用受-rw选项约束的标识者命名声明时,修复缺失的声明问题
  • PCLP-2010 在模块中存在lint注释将不再导致在模块的其余部分忘记使用受-rw选项约束的标识符命名的声明。保留单词选项的效果现在只应用一次,在此之前,一系列保留单词选项的效果可能表现为序列被多次按顺序应用。
  • PCLP-3380 消息725不正确发出警告

消息725(意外地缺少缩进)是一种信息消息,但被错误地作为警告发布。这一问题已得到纠正。

  • PCLP-3388 对隐含的这个参数(‘t’)在函数内的正确处理选项。

使用‘t’指定隐含的这个参数在函数选项现在被正确处理。

  • PCLP-3392 KeilµVision ARMCC中禁用线路中断,以解决IDE导航问题与长线

KeilµVision IDE不能识别包含换行符的消息中的位置信息来包长行。选项宽度(0)现在将包括在生成KeilµVision ARMCC编译器配置时。

  • PCLP-3434 修正当模板将parame-ter包大小操作符应用于非类型模板参数包引用时可能发生的内部错误。一个内部错误与内部错误代码E98DAB0F触发的特定用途的size of.(P),其中P是引用类型的非类型模板参数的可变模板参数包,已经解决。
  • PCLP-3442 当将负值分配给bitftelds时,误报542

将负值分配给位字段通常会导致误报542(位字段的大小过大),即使位字段可以表示被分配的值。这一问题已得到纠正。

  • PCLP-3465 +冻结/++冻结错误地防止参数化消息启用选项针对冻结消息

+冻结和++冻结选项被记录为防止受影响的消息受到以后消息抑制选项的影响,而不是启用受影响消息的选项。以前,被冻结的消息不允许成为参数化消息启用选项的目标,例如+esym或+estring。此问题已被纠正,并允许参数化消息启用选项针对冻结消息。

  • PCLP-3466 忽略涉及部分冻结消息集的重复参数化抑制选项

PC-lint Plus通常忽略参数化的抑制选项(例如。-esym/-estring/+etype/等) 这与已经生效的选项相同。如果两个相同的参数化抑制选项的消息集包含一个冻结的消息,则不会忽略重复选项,从而导致这些重复选项对该消息投出或反对该消息的意外投票。例如,如果选项-esym(71?,foo)被多次遇到,在处理选项时,消息714被冻结,每个-esym选项将投票反对在涉及符号foo的范围内发布其他消息。此问题已得到纠正,涉及冻结消息的重复选项将以与涉及非冻结消息的重复选项相同的方式被忽略。

  • PCLP-3469 使用无效参数索引处理用户变形函数语义时的崩溃

a-sem选项与参数索引为零时(即,当处理与调用相应函数相关的语义时,PC-lintPlus可能崩溃。这样的使用现在将使用警告消息425代替。

  • PCLP-3470 无符号枚举类型的位符的误报542

分配给无符号枚举类型的位域有时会导致误报542(位域的大小过大)消息。这一问题已得到纠正。

  • PCLP-3472 当在位于Windows网络驱动器上的ftle中使用ENCLOSING_DIRECTORY时,修复无效的UNC路径扩展。

在位于Windows网络驱动器上的文件中使用动态内置环境变量ENCLOSING_DIRECTORY以前可以扩展到以UN C\开头的无效路径。这样的路径现在包括所需的\\?\前缀。

  • PCLP-3507 speciftc行走期间修复误报438

对于callee的局部变量,当fcw处于活动状态时可能出现(可能多次)的消息438的误报实例已经解决。

  • PCLP-3543 更正了au-autosar.lnt中的错误

au-autosar.lnt中出现的消息1107(不同种类的宽字符串文字的无效级联)的描述进行了修正,对准则“A3-1-4”附件案文中提及的“A3-1-3”作了更正。对“M7-1-1”和“M15-4-1”的提及已作了更新,分别在附件案文中提及“A7-1-1”和“A15-4-1”。

  • PCLP-3547 类模板中朋友声明的处理不正确

PC-lintPlus继承的clangbug(https://bugs.llvm.org/show_bug.cgi?id=33222)有时会导致不正确地处理类模板的朋友函数模板声明和依赖的朋友函数声明。这种错误行为在使用与GCC最近版本一起分发的变体标头时导致错误的正错误消息。这一问题已得到纠正。

  • PCLP-3561 删除了MISRA C++ Rule 6-6-3的不适当支持消息

消息9254(遇到的继续语句)被错误地用于支持MISRAC++规则6-6-3,该规则将继续语句的使用限制为循环的“格式良好”。消息9254已被删除作为此规则的支持机制。

  • PCLP-3570 当消息3402被抑制时,网格3702没有发出

消息3702(lambda捕获默认捕获‘this’按值计算)以前被抑制时,消息3402被抑制。这一点已得到纠正。


更多更新详情请查看后续更新内容详解


标签:

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


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat