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

Автор Сообщение
news_bot ®

Стаж: 6 лет 11 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
16-Сен-2023 00:56

Вышла новая версия статического анализатора кода 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
===========

Похожие новости: Теги для поиска: #_cppcheck
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 03-Фев 00:01
Часовой пояс: UTC + 5