问题标签 [pvs-studio]

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 投票
1 回答
85 浏览

c++ - 误报警告 PVS Studio:V808 类型的对象已创建但未使用

PVS Studio 6.17(Windows 7、64Bit、VS2015)似乎对下面的代码给出了错误警告。警告“已创建 'unordered_map' 类型的 V808 'statuses' 对象但未使用”。使用几个 QStringLiteral 键值初始化 unordered_map 的原始代码。仅使用 STL 的简化版本如下所示:

奇怪的是,V808 是在使用 lambda 中的返回值的通用初始化时产生的。如果使用构造函数语法,则不会显示警告。

另一个产生 V808 的错误案例在这里:

在这里,如果使用一个参数 lambdas 创建映射 - 没有 V808,它会呈现 2 个或更多参数。

参考:

这个问题已知吗?

0 投票
2 回答
136 浏览

c++ - PVS Studio 抱怨宏表达危险

PVS Studio 抱怨一个危险的表情。在以下代码 C++ 代码中,参数“msg”必须用括号括起来

PVS Studio 的警告信息是

遵循此工具的建议并添加括号:#include

此更改似乎创建了无效代码。来自 VS2017 的编译器错误如下:

问题

我很确定 PVS Studio 的建议在这种特殊情况下是不正确的。我错过了一些明显的东西并且工具是正确的吗?提前谢谢了。

0 投票
1 回答
81 浏览

pvs-studio - 分析代码时出现异常

当使用 PVS-Studio 6.18.23098 分析一些代码时,我在 PVS-Studio 窗口中得到了以下堆栈跟踪:

我试图尽可能地减少代码,以获得一个最小的例子。这是我能做的最小的例子,它引发了堆栈跟踪的出现。

这是一个已知的错误?

0 投票
2 回答
271 浏览

c++ - 在 PVS-Studio 中的 BOOST_REQUIRE 之后将变量标记为非 NULL

我正在使用 PVS-Studio 来分析我的测试代码。通常有以下形式的构造

但是我仍然收到V522 There might be dereferencing of a potential null pointer 'animal'最后一行的警告。

我知道将函数标记为“不返回 NULL”是可能的,但是否也可以将函数标记为有效的 NULL 检查或使 PVS-Studio 以其他方式意识到animal不能为 NULL 之后BOOST_REQUIRE(animal);

assert如果首先通过任何风味检查指针,也会发生这种情况。

0 投票
1 回答
264 浏览

c++ - PVS-Studio 知道 Unicode 字符吗?

此代码在 w/ 行产生中等警告return

PVS 说表达式总是错误的(V547),但实际上不是:char可能是读取到的 Unicode 符号的一部分std::string!以下是符号的 Unicode 表示:
1 byte - 0xxx'xxxx - 7 bits
2 bytes - 110x'xxxx 10xx'xxxx - 11 bits
3 bytes - 1110'xxxx 10xx'xxxx 10xx'xxxx - 16 bits
4 bytes - 1111'0xxx 10xx'xxxx 10xx'xxxx 10xx'xxxx - 21 bits

以下代码计算 Unicode 文本中的符号数:

对于Hello!输入,输出是6,对于Привет, мир!12——这是正确的!

我错了还是 PVS 不知道什么?;)

0 投票
1 回答
281 浏览

cmake - Linux 上的 PVS-Studio - pvs_studio_add_target

我正在尝试使用命令 pvs_studio_add_target 将 PVS-Studio 集成到我的 CMake 项目中。任何人都可以指出我这样做的示例 CMakeLists.txt 文件吗?

当我构建我的项目时,我看到以下输出(除了通常的东西):

生成 PVS-Studio.log:未找到源

我会假设 PVS-Studio 会在 CMAKE_CURRENT_SOURCE_DIR 中查找项目源文件?也许我必须告诉它?以下是我对项目 CMakeLists.txt 文件所做的修改:

我运行以下命令在构建目录中配置 CMake(在源代码之外构建):

我将以下注释插入到我所有项目 cpp 文件的顶部。

在这个只是 main.cpp 的特定项目中。我有一些仅包含模板代码的头文件,这些文件没有相应的 cpp 文件。

谢谢,

大卫

0 投票
1 回答
117 浏览

c++ - PVS-Studio 是否知道前向声明的必要性?

当不同的编译器行为不同时,就会出现问题。可惜,PVS 没有告诉我下面的危险情况。

我有一些重载的函数,但我忘记编写前向声明。因此,Visual Studio 编译一个程序,而其他编译器编译另一个程序。

我的职能:

我用代码对此进行了测试:

在 VS 中测试没问题(调试版和发布版):

但突然,我的同事告诉我,根本没有任何效果。

我已经在不同的编译器上进行了测试(感谢 Ideone 站点)。所有行为都错误(gcc 4.3.2、6.3;clang 4.0):

当然,在所有函数之前放置前向声明之后,所有编译器中的一切都变得正确。

我要求实施有关前向声明的警告。

0 投票
1 回答
72 浏览

cmake - PVS-Studio 无法分析 https://github.com/viva64/pvs-studio-cmake-examples/tree/master/example-1

我拉下 example-1 并使用以下方法为其生成了一个 CMake 项目:

当我构建项目时,我看到了以下输出:

make: *** [Makefile:84: all] 错误 2

我正在使用 Fedora 28。

有人知道我在这里做错了什么吗?

谢谢,

0 投票
1 回答
44 浏览

pvs-studio - V3125 误报

PVS Studio 抛出 V3125:“control.Parent”对象在针对 null 进行验证后被使用。检查行:11、9。

这是误报吗?

0 投票
1 回答
41 浏览

pvs-studio - V3137 误报

PVS Studio 抛出 V3137:分配了“funclist”变量,但直到函数结束才使用。程序.cs 13

这是误报吗?