Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V763. Parameter is always rewritten...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V763. Parameter is always rewritten in function body before being used.

13 Июл 2016

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

Рассмотрим пример кода:

void Foo(Node A, Node B)
{
  A = SkipParenthesize(A);
  B = SkipParenthesize(A); // <=
  AnalyzeNode(A);
  AnalyzeNode(B);
}

Здесь допущена опечатка, так как перепутаны параметры 'A' и 'B', из-за чего переменная 'B' примет неверное значение. Исправленный код выглядит так:

void Foo(Node A, Node B)
{
  A = SkipParenthesize(A);
  B = SkipParenthesize(B); 
  AnalyzeNode(A);
  AnalyzeNode(B);
}

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

  • CERT-MSC13-C

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