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

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

#

Выпуск cppcheck 2.12, статического анализатора кода для языков C++ и С
Дата публикации:Fri, 15 Sep 2023 16:14:28 +0300




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



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



Основные изменения:
  • Добавлена проверка "uselessOverride" обнаруживающая бесполезные переопределения функций, которые дублируют код или вызывают реализацию базового класса;
    Добавлена проверка "knownPointerToBool" - преобразование указателя в переменную булевского типа, результатом которой всегда является истинное или ложное значение.

    Улучшенные проверки:

    В проверки "truncLongCastAssignment" и "truncLongCastReturn" добавлен контроль дополнительных типов, включая float и double;
    Проверка "duplInheritedMember" теперь дополнительно сообщает о дубликатных функциях-членах;
    Проверки "constParameter*"/"constVariable*" обнаруживают больше случаев, когда указатели/ссылки могут иметь модификатор const, например при вызове библиотечных функций.
Графический интерфейс:
  • В статистике формируются сведения о том, какие проверки были включены в последнем анализе;
    Реализовано выделение критических ошибок, из-за которых могли быть пропущены проверки.
Изменения в интерфейсе:
  • Добавлена выдача количества проверок, сработавших с запуска;
    Добавлен параметр командной строки '--checkers-report' который управляет формированием в файле протокола сведений о том, какие проверки сработали, а какие были отключены.
Объявлено устаревшим:
  • Система сборки qmake объявлена устаревшей и будет удалена в будущей версии;
    Параметр командной строки '--template ' объявлен устаревшим и будет удалён в версии 2.13, используйте '--template=';
    Параметр командной строки '--template-location ' объявлен устаревшим и будет удалён в версии 2.13, используйте '--template-location=';
Другое:
  • Параметр сборки "USE_QT6=On" больше автоматически не переключается на Qt5, если Qt6 не найдена;
    Если аварийное завершение дополнения сопровождалось кодом завершения, то теперь будет приводить к "internalError", а не будет проигнорировано;
    Конфигурация "Win32" была удалена из проектов и решений Visual Studio. Cборку исполняемых файлов для 32-х битной архитектуры по-прежнему можно выполнить при помощи CMake, но такой способ не тестируется и не сопровождается.


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

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

Ответить