V021. The 'Foo' function is too complex to analyze entirely. Analysis was stopped from this line until the end of the function.
Предупреждение V021 в отчёте означает, что анализ тела функции был прерван на указанной позиции, поскольку были превышены установленные лимиты алгоритма анализа.
Обычно такое происходит, когда исходный код содержит конструкции, анализ которых занимает слишком много времени, например очень глубокие вложенные циклы, написанные вручную, сгенерированные автоматически или полученные путём раскрытия макросов.
Чтобы сохранить производительность и избежать ложных срабатываний, в анализаторе установлены ограничения:
- максимальная глубина вложенности циклов — 15 на анализируемую функцию;
- максимальное количество циклов — 2500 на анализируемую функцию.
По достижении указанных лимитов анализ потока данных и диагностические правила отключаются, начиная с указанной в предупреждении позиции и до конца функции.