问题标签 [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.

0 投票
4 回答
3370 浏览

compiler-construction - Gimpel 的 PC-lint 和 Flexelint;有人用过吗?

因此,我阅读了一些杂志文章和 Gimpel 的 PC-lint 和 Flexelint C/C++ 编译器的网站。

它真的很贵(至少对我来说),但似乎它可能有一些优点来保证成本。

所以我想知道是否有其他人使用/购买过它们并且可以提供他们的意见?

0 投票
4 回答
1383 浏览

c++ - 有没有人有使用 pc-lint 的好技巧?

使用 pc-lint 的一些最佳实践是什么——如何通过无数的选择?

我对读取/解析输出文件的更好方法特别感兴趣。

0 投票
1 回答
282 浏览

static-analysis - Gimpel 的 PC-lint 无法追踪悬空指针?

我最近一直在使用 PC-lint9 来找出不同的错误,这真的让我大吃一惊,但似乎 PC-lint9 无法跟踪悬空指针,这是我检查的代码的快照。

PC-Lint 没有检测到错误。我认为配置可能有问题(我没有抑制任何错误并将警告级别设置为 3 ),因为广告说:“检测悬空和未初始化的指针”。有谁知道如何解决这个问题?

0 投票
1 回答
374 浏览

call-graph - 如何使用 PC-Lint 生成调用图?

我无法弄清楚如何使用 PC-lint 生成调用图。

我尝试将 -vhm 标志添加到 pc lint 但没有任何反应。

谁能告诉我如何让 PC-Lint 生成调用图?

0 投票
2 回答
2423 浏览

c - PC Lint while(TRUE) 与 for(;;)

我是第一次使用 PC Lint。当 PC Lint 警告我关于我的while(TRUE).

这就是它所说的:

716: while(1) ... -- 找到了 while(1) ... 形式的构造。

虽然这表示期望布尔值的上下文中的常量,但它可能反映了一种编程策略,其中无限循环以该构造为前缀。因此,它被赋予了一个单独的编号,并被置于信息类别中。更常规的无限循环前缀形式是 for(;;)。

我没看懂这个说法。谁能帮我理解它?

0 投票
2 回答
6151 浏览

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 的相对新手,我无法解决这个问题。

谁能帮我解决这个问题?

0 投票
3 回答
7902 浏览

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.ccryptography.ccrc8.c

0 投票
2 回答
1888 浏览

c++ - 如何使用 make 运行增量 PC-Lint

我想使用 Make 以增量方式将 Gimpel PC-Lint 应用于我的源代码。如果自上次运行 lint 以来源文件已更改,我希望它仅对源文件运行 lint。有人这样做吗?你是如何接近它的?

0 投票
1 回答
766 浏览

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 的值跟踪是否不起作用?

再次感谢,

高频

0 投票
3 回答
1703 浏览

c - 使用直接寄存器寻址时出现 PC-Lint 错误

我有一个现有的 C 代码(第 3 方源,我无法更改),PC-Lint(版本 9.0)不接受它。该代码在嵌入式环境中运行,使用的是 Green Hills Compiler。

有没有人知道如何配置 PC-Lint 以接受代码定义?我只附加了结构中第一个成员的错误消息。

以下是头文件中的定义: