C和C++静态分析工具PC-lint Plus v1.3.5更新:已知问题

原创|产品更新|编辑:郑恭琳|2020-07-07 14:08:39.947|阅读 83 次

概述: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最新版


已知问题

  • PCLP-2135 静态变量误报9003

仅在单个函数中引用的文件范围静态变量将不会在9003之前报告。消息将针对隐式或显式extern的变量发出。

  • PCLP-3196 一个函数,如果递归调用发生在对不同函数的递归调用下面的调用链中,可以间接地调用它自己,这个函数可以被标记为“调用递归”

在这种情况下,标记为“调用递归”的函数确实调用递归函数,但它本身也是递归的。堆栈分类系统通常将“递归”优先于“调用递归”。将函数标记为递归函数并将不同的递归函数称为“调用递归函数”,可以防止将标记为“调用递归函数”而不是“递归函数”的函数发出消息9070。

  • PCLP-3213 当显式CAST表达式用作非类型模板参数的模板参数时,误报隐式转换消息

当将cast表达式作为模板参数提供给非类型模板参数时,一些被描述为报告隐式转换的消息可能会被发布,就像cast操作数被隐式转换为cast类型一样。

  • PCLP-3221 False正值413用于条件评估指针的解除引用,在已知指针为空的for语句中的if语句的条件下,指针推断为逻辑和表达式右侧的非空

在这种情况下,可能会出现消息413的误报实例。这个问题独立于空值是否作为一个参数在特定的行中发生。

  • PCLP-3223 未实现无证+fil标志

将控制是否将缩进检查应用于标签的+fil标志没有实现。这个未实现的标志没有记录在标志选项列表中,但在第13.4节中提到了它。

  • PCLP-3242 条件运算符表达式,其中第二个和第三个操作数都是相同的枚举类型,而不是为了消息641的目的在C中导致该枚举类型的值

 例如,

 enum color { red, green, blue };
 int f(int i, enum color x) {
return (x == (i ? red : blue));
       }
will elicit
 warning 641: implicit conversion of enum ’color’ to integral type
’unsigned int’
return (x == (i ? red : blue));
^

消息641的行为将在未来的版本中发生变化,将条件运算符表达式视为导致公共枚举类型的值,此时此消息将不会为本例发布。

  • PCLP-3260 消息440被禁用

消息440在当前版本中被禁用。

  • PCLP-3519 用布尔参数调用重载运算符的误报977

当将定义为参数的重载运算符调用到布尔类型的初始参数或与非布尔参数相邻的另一个布尔参数时,可能会出现误报977。所讨论的重载运算符可能是lambda表达式的闭包类型的调用运算符。


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


标签:

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


为你推荐

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