问题标签 [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 投票
2 回答
2390 浏览

recursion - PC-Lint 需要要扫描的文件的所有包含路径的列表。如何获取 CMake 中目标递归所需的所有包含路径的列表?

我在一个使用 CMake 来管理构建过程的项目中。在项目中有几个依赖于组件的可执行文件,这些组件被构建为静态库。这些组件之间也存在依赖关系。对于每个可执行文件或组件,仅指定它们自己的本地包含,并且依赖项中的包含使用target_link_libraries(<target> <dependencies>).

到目前为止,一切都很好。问题是何时应该将 PC-Lint 集成到环境中。对于每个组件,我们都设置了一个 PC-Lint 目标,它对该组件的头文件/源文件运行静态代码分析。问题是 PC-Lint 需要一个文件作为输入,该文件应包含分析文件所需的所有包含路径。由于组件依赖于其他组件,我们必须以某种方式递归检索所有包含路径以获取所需的所有包含。我们也想使用与 target_link_libraries 相同的机制来解析 PC-Lint 的包含路径。那可能吗?

由于我们有每个组件的依赖项列表,我们可以从这些依赖项中获取包含路径,并将它们包含在 PC-Lint 的文件中。但真正的问题是,当组件 1 中的 source_file1.cpp 包含来自组件 2 的 header_file2.h 时,它又包含来自组件 3 的 header_file3.h。在该示例中,PC-lint 会抱怨 header_file3.h,因为组件 3 的包含路径不包含在提供给 PC-lint 的文件,其原因是 component1 中没有对 component3 的依赖(target_link_library() 通常会解决那些递归依赖)。

从一开始我们就认为在项目中创建一个包含所有包含路径的文件就可以了。这种情况下的问题是有多个同名文件(例如:main.h),PC-Lint 会选择错误的文件。

CMake中有没有办法递归地检索所有包含路径,或者递归地检索所有依赖项?或者有谁知道这个问题的另一种解决方案?

谢谢!

0 投票
4 回答
860 浏览

c++ - 如何解决此 lint 警告“从 int 到 unsigned int 的隐式二进制转换”

这是代码:

我收到一条 lint 消息:

为什么?以及如何避免这种情况?

0 投票
1 回答
825 浏览

c++ - 成员模板出现奇怪的 PC-Lint 错误

我目前正在努力使用 PC-Lint(版本 9.00j 和 l),这给了我一些代码的错误和警告。代码编译良好并按预期运行。这是它的简化版本:

在 Gimpel 的在线演示中运行此程序时,我收到以下错误和警告:

所以基本上,PC-Lint 试图告诉我它会偶然找到正确的模板参数,并且只会填充向量的临时副本。但代码运行良好,resultList 包含数据!

谁能告诉我这里发生了什么?PC-Lint 是正确的并且出了点问题还是这只是 PC-Lint 错误?

0 投票
1 回答
2561 浏览

c - PC-Lint 错误:错误 307:无法打开间接文件“gcc-include-path.lnt”

我正在尝试在 Windows 上使用 PC-Lint 对 C 文件进行静态代码分析。我安装了软件并运行了gcc 编译器的配置设置,我在 config 目录中获得了以下文件:

但是,当我尝试通过>lin filea fileb从配置目录键入来运行测试示例时,我收到以下错误:

我们如何获得 gcc-include-path.lnt 文件?

0 投票
1 回答
217 浏览

c++ - 符号“符号”的偏移量不一致

有人可以解释一下 PC-Lint 错误号吗?38 举个例子...

我不断收到错误,例如...

其中是在中声明的access1枚举类型的成员变量。并且该枚举是在不同的头文件中定义的。 包含在.ACCESSClassXACCESSaccess.haccess.hstdafx.h

不知道这里有什么问题。哪里不一致?

0 投票
1 回答
938 浏览

c++ - FlexeLint/PC-lint 警告不考虑 std::string::append 的返回值

FlexeLint/PC-lint警告 std::string::append 的返回值在以下简化示例代码中不被考虑:

调用 FlexeLint 会给出以下警告:

虽然该消息为真,但在这种情况下捕获返回值是没有意义的,因为std::string::append只是返回 *this。

此外,与该对象相关的任何迭代器、指针和引用都可能无效。但事实并非如此,没有使用迭代器、指针和引用。

问题

我是否错过了重要的事情,或者这仅仅是 FlexeLint 的误报?

0 投票
1 回答
396 浏览

sonarqube - 与 SonarQube C++ Commercial Plugin 一起导入 PC-lint 报告

我想知道是否有任何方法可以使用商业 C++ 插件将 PC-lint 报告与 C++ 分析集成在一起。我们目前正在使用 SonarQube 5.1.2。

但如果需要的话,我已经准备好升级了

0 投票
2 回答
1708 浏览

c - 双方都有副作用?

我对以下 C 代码运行了 MISRA 2004 和 MISRA 2012 的静态代码分析:

并从 PC-lint 报告中得到以下发现: 在此处输入图像描述

有人可以解释一下第 58 行和第 66 行的代码是如何产生副作用的吗?我应该如何纠正它?

0 投票
2 回答
671 浏览

lint - 使用 cmake (Flexelint/Linux) 生成 Lint 目标

我正在开发仅在 Linux 环境中构建的 C/C++ 产品。这是一个庞大的代码库,手动生成 lint 目标将非常痛苦。我知道您可以将 Lint 链接到 cmake,以便 cmake 在构建代码时为您生成这些目标。Cmake 有一个名为 add_pc_lint ( https://cmake.org/Wiki/PC-Lint ) 的宏,它可以为您执行此操作。我想知道是否有类似的东西可以用于 Flexelint?

我目前有一个 PC-Lint 许可证,并想在花费 998 美元购买 Flexelint 许可证之前问这个问题。谢谢!

0 投票
2 回答
403 浏览

c - 在记事本++中集成 pc-lint

有没有人遇到过将 pc-lint 与 notepad++ 集成的方法?
我在网上搜索过,但找不到一个好的答案。
一个好的解决方案将涉及到提到的行错误的行跳转。
其他语言的 Lint 解释已经存在,但我特别在寻找 C 环境。
因此,提炼的问题是,有没有人在 notepad++ 中为 C 代码库集成了 pc-lint ?