Данное диагностическое правило добавлено по просьбе пользователей.
Анализатор обнаружил вызов функции, которая помечена пользователем как опасная/запрещенная.
Часто использование некоторых функций в проекте может быть запрещено. Например, в соответствии со стилем кодирования, который принят в проекте. Анализатор может находить использование таких функций, если они были размечены пользовательской аннотацией следующего вида:
//+V2016, function:foo
//+V2016, class:SomeClass, function:foo
//+V2016, namespace:SomeNamespace, class:SomeClass, function:foo
Например, пользователь отметил функцию 'malloc' следующим образом:
//+V2016, function:malloc
Теперь, если анализатор встретит вызов функции 'malloc', то выдаст предупреждение 1 уровня:
struct SomeStruct { .... };
void foo()
{
struct SomeStruct *p = (SomeStruct *) malloc(....);
}
Пользователь может проаннотировать функцию, лежащую в любом пространстве имен и/или классе:
class A
{
// ....
void a(int);
// ....
};
namespace BN
{
class B
{
// ....
void b(double);
// ....
};
}
//+V2016, class:A, function:a
//+V2016, namespace:BN, class:B, function:b
void foo()
{
A a;
a.a(); // <=
BN::B b;
b.b(); // <=
}
Примечание. По умолчанию пользовательские аннотации не применяются к виртуальным функциям. О том, как включить данный функционал, вы можете прочитать здесь.
Данная диагностика классифицируется как: