# V590. Possible excessive expression or typo. Consider inspecting the expression.

Анализатор обнаружил потенциальную ошибку, так как в коде имеется избыточное сравнение.

Поясним на простом примере:

    if (Aa[42] == 10 && Aa[42] != 3)

Условие будет выполнено в том случае, если 'Aa[42] == 10'. Вторая часть выражения бессмысленна. Проанализировав код, можно прийти к одному из двух выводов:

1) Выражение можно упросить. Исправленный код:

    if (Aa[42] == 10)

2) Выражение содержит ошибку. Исправленный код:

    if (Aa[42] == 10 && Aa[43] != 3)

Рассмотрим практический пример. Здесь ошибки нет, но выражение избыточно, что может затруднять чтение кода:

    while (*pBuff == ' ' && *pBuff != '\0')
      pBuff++;

Проверка " *pBuff != '\0' " не имеет смысла. Сокращенный вариант кода:

    while (*pBuff == ' ')
      pBuff++;

Данная диагностика классифицируется как:

CWE-571 CERT-MSC01-C

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