# V2001. Consider using the extended version of the 'foo' function here.

Данное диагностическое правило добавлено по просьбе пользователей.

Анализатор позволяет обнаружить вызов функций, у которых существует "расширенный" аналог. Под термином "расширенные" понимаются функции, имеющие суффикс Ex, такие как VirtualAllocEx, SleepEx, GetDCEx, LoadLibraryEx, FindResourceEx.

Рассмотрим исходный код:

    void foo();
    void fooEx(float x);
    void foo2();
    ...
    void test()
    {
      foo(); // V2001
      foo2(); // OK
    }

В месте вызова функции "foo", будет выдано диагностическое сообщение V2001, так как имеется функция с тем же именем, но оканчивающаяся на "Ex". Функция "foo2" не имеет альтернативного варианта, и диагностическое сообщение выдаваться не будет.

Сообщение V2001 будет также выдано для случая:

    void fooA(char *p);
    void fooExA(char *p, int x);
    ...
    void test()
    {
      fooA(str); // V2001
    }

Родственным диагностическим сообщением является V2002.

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

CWE-477 CERT-MSC24-C