问题标签 [pc-lint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-construction - Gimpel 的 PC-lint 和 Flexelint;有人用过吗?
因此,我阅读了一些杂志文章和 Gimpel 的 PC-lint 和 Flexelint C/C++ 编译器的网站。
它真的很贵(至少对我来说),但似乎它可能有一些优点来保证成本。
所以我想知道是否有其他人使用/购买过它们并且可以提供他们的意见?
c++ - 有没有人有使用 pc-lint 的好技巧?
使用 pc-lint 的一些最佳实践是什么——如何通过无数的选择?
我对读取/解析输出文件的更好方法特别感兴趣。
static-analysis - Gimpel 的 PC-lint 无法追踪悬空指针?
我最近一直在使用 PC-lint9 来找出不同的错误,这真的让我大吃一惊,但似乎 PC-lint9 无法跟踪悬空指针,这是我检查的代码的快照。
PC-Lint 没有检测到错误。我认为配置可能有问题(我没有抑制任何错误并将警告级别设置为 3 ),因为广告说:“检测悬空和未初始化的指针”。有谁知道如何解决这个问题?
call-graph - 如何使用 PC-Lint 生成调用图?
我无法弄清楚如何使用 PC-lint 生成调用图。
我尝试将 -vhm 标志添加到 pc lint 但没有任何反应。
谁能告诉我如何让 PC-Lint 生成调用图?
c - PC Lint while(TRUE) 与 for(;;)
我是第一次使用 PC Lint。当 PC Lint 警告我关于我的while(TRUE)
.
这就是它所说的:
716: while(1) ... -- 找到了 while(1) ... 形式的构造。
虽然这表示期望布尔值的上下文中的常量,但它可能反映了一种编程策略,其中无限循环以该构造为前缀。因此,它被赋予了一个单独的编号,并被置于信息类别中。更常规的无限循环前缀形式是 for(;;)。
我没看懂这个说法。谁能帮我理解它?
c - PC 皮棉错误 714
在我的CRC8.c
我有这个功能:
它在 中声明CRC8.h
,但 PC Lint 向我返回以下内容。
帮助说 714 是:
714: Symbol 'Symbol' (Location) not referenced -- 指定的外部变量或外部函数已定义但未引用。此消息在单元检出时被抑制(-u 选项)。
830 是:
830 先前消息中引用的位置——消息 830 是以“规范形式”传达嵌入在某些其他消息中的位置信息的工具。例如,考虑(稍微简化的)消息:
这包含嵌入在消息文本中的位置(“第 22 行”)。编辑器和 IDE(交互式开发环境)通常无法理解嵌入的位置信息,它们只能定位到标称位置(本例中的第 37 行)。通过在第 22 行的标称位置添加此附加消息,用户可以通过跳到下一条消息,在这种情况下,查看“冲突”的全部内容。此消息和下面的消息 831 不遵循消息抑制的普通规则。如果他们这样做了,那么当使用选项 -w2 将警告级别降低到 2 时,这些消息(级别 3)也会消失。相反,它们继续按预期运行。要抑制它们,您需要使用以下之一显式关闭它们:
它们可以通过 +e830 和 +e831 恢复;它们的抑制状态可以通过 -save -restore 选项保存和恢复。-e8* 和 -e{831} 等选项将无效。
由于我是 PC Lint 的新手,以及 C 的相对新手,我无法解决这个问题。
谁能帮我解决这个问题?
c - PC Lint 警告 537:重复包含文件
如何处理来自 PC Lint 的警告?
我在几个文件中有#include <GenericTypeDefs.h>
. PC Lint 向我显示消息Warning 537: Repeated include file 'filepath\filename.h'
如果我删除此声明,我将无法编译。
如果可能的话,我想取消这个警告。
你可以在这里看到同样的报道。
这是我的代码,我的编译器会为此发出警告:
checksum.h
cryptography.h
crc8.h
显然,我没有重复#include <GenericTypeDefs.h>
,并且checksum.c
cryptography.c
crc8.c
c++ - 如何使用 make 运行增量 PC-Lint
我想使用 Make 以增量方式将 Gimpel PC-Lint 应用于我的源代码。如果自上次运行 lint 以来源文件已更改,我希望它仅对源文件运行 lint。有人这样做吗?你是如何接近它的?
lint - Gimpel 的 PC 皮棉值跟踪
我是这个网站的新手,所以如果我在这里搞砸了任何提问的礼仪,我提前道歉......谢谢!
这是极其简化的示例代码,但我认为它显示了我在说什么:我有一个 C++ 方法,它调用另一个方法来测试一个值......
char m_array[MAX]; // class member, MAX is a #define
在哪里:validNumber(unsigned int val) { return ((val > 0) && (val <= MAX)); }
我感到恼火的是,PC Lint 的值跟踪似乎忽略了validNumber()
调用并给出警告 661 操作员“[”可能访问越界指针(1 超出数据结尾)
但是,如果我这样做,Lint 很高兴:
那么,如果测试是方法调用,Lint 的值跟踪是否不起作用?
再次感谢,
高频
c - 使用直接寄存器寻址时出现 PC-Lint 错误
我有一个现有的 C 代码(第 3 方源,我无法更改),PC-Lint(版本 9.0)不接受它。该代码在嵌入式环境中运行,使用的是 Green Hills Compiler。
有没有人知道如何配置 PC-Lint 以接受代码定义?我只附加了结构中第一个成员的错误消息。
以下是头文件中的定义: