Выпуск cppcheck 2.11, статического анализатора кода для языков C++ и С

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3258
Зарегистрирован: 20.08.2022

#

Выпуск cppcheck 2.11, статического анализатора кода для языков C++ и С
Дата публикации:Thu, 29 Jun 2023 11:09:38 +0300




Вышла новая версия статического анализатора кода cppcheck 2.11, позволяющего выявлять различные классы ошибок в коде на языках Си и Си++,
в том числе при использовании нестандартного синтаксиса, типичного для встраиваемых систем. Предоставляется коллекция плагинов, через которые обеспечена интеграция cppcheck с различными системами разработки, непрерывной интеграции и
тестирования, а также предоставлены такие возможности как проверка соответствия кода стилю оформления кода. Для разбора кода может применяться как собственный парсер, так и внешний парсер
от Clang. В состав также входит скрипт donate-cpu.py для предоставления локальных ресурсов для выполнения работы по совместной проверке кода пакетов Debian. Исходные тексты проекта распространяются
под лицензией GPLv3.



Развитие cppcheck сосредоточено на выявлении проблем, связанных с неопределённым поведением и применением конструкций, опасных с точки зрения безопасности. Целью также является минимизация ложных срабатываний. Среди
выявляемых проблем: указатели на несуществующие объекты, деления на ноль, целочисленные переполнения, некорректные операции битового сдвига, некорректные преобразования, проблемы
при работе с памятью, некорректное использование STL, разыменование нулевых указателей, применение проверок после фактического обращения к буферу, выход за границы буферов, использование неинициализированных переменных.



Основные изменения:
  • Добавлена проверка pop_back() для пустых контейнеров;
    Улучшены контроли в циклах для алгоритмов библиотеки STL any_of, all_of и none_of.

    Улучшения анализатора потока управления:

    Возвращаемое значение функции теперь может быть определено даже при использовании условий;
    Переопределение размеров контейнеров возвращаемых из функции;
    Выведение возможных значений на основании их возможных символических значений;
    Улучшение после помещения значения в контейнер.
Графический интерфейс:
  • В файлах .cppcheck объявлена устаревшей и будет удалена в версии 2.14 поддержка типа платформы "Unspecified". Вместо неё необходимо использовать "unspecified';
    В диалоговом окне выбора файлов проекта убрана замена относительных путей на абсолютные.
Интерфейс командной строки:
  • Добавлена новая опция "--check-level", определяющая уровень детализации проверок. По умолчанию задано значение "normal". Для расширенных проверок можно установить значение "exhaustive";
    Для получения детальных сообщений "missingInclude" и "missingIncludeSystem" нет необходимости отдельного запуска с параметром --check-config. Теперь они выдаются при включении "missingInclude" при обычном вызове;
    Сообщения "missingInclude" и "missingIncludeSystem" выдаются при задание параметра -j со значением большим 1 для сборок отличных от Windows;
    Для сообщений "missingInclude" и "missingIncludeSystem" теперь применяется параметр "--error-exitcode";
    Задание параметра "--enable=information" не будет включать "missingInclude" с версии 2.16, необходимо явное задание;
    Каждая из проверок constParameter и constVariable была разделены на 3 идентификатора в зависимости от того, является ли параметр или переменная указателем, ссылкой или локальной, что позволит более точно задавать подавление некоторых типов сообщений;
    Усилен контроль задаваемых значений для некоторых параметров командной строки, требующих задания целочисленных значений;
    При сканировании проекта с заданием параметра "-j1" обработка файлов разметки откладывается до тех пор, пока не будут обработаны файлы с кодом.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59355

Жизнь за Нер'зула!

Ответить