V3023. Consider inspecting this expression. The expression is excessive or contains a misprint.


Анализатор обнаружил подозрительный фрагмент кода, в котором имеется избыточное сравнение. Этот код может содержать лишнюю проверку, тогда выражение можно упростить, или ошибку, тогда код необходимо исправить. Рассмотрим пример подобного кода:

if (firstVal == 3 && firstVal != 5)

Данный код избыточен, так как условие будет истинным, если 'firstVal == 3'. Вторая часть выражения бессмысленна.

В данном случае возможны 2 варианта:

1) Вторая проверка просто является избыточной и выражение можно упростить. Тогда корректный код будет выглядеть так:

if (firstVal == 3)

2) Выражение содержит ошибку и вместо переменной 'firstVal' подразумевалась какая-то другая. Тогда корректный код мог бы выглядеть так:

if (firstVal == 3 && secondVal != 5)

Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-571.

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V3023.


Найденные ошибки

Проверено проектов
361
Собрано ошибок
13 417

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;