Выпуск новой версии статического анализатора кода для языков C++ и С cppcheck 2.6
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Вышла новая версия статического анализатора кода cppcheck 2.6, позволяющего выявлять различные классы ошибок в коде на языках Си и Си++, в том числе при использовании нестандартного синтаксиса, типичного для встраиваемых систем. Предоставляется коллекция плагинов, через которые обеспечена интеграция cppcheck с различными системами разработки, непрерывной интеграции и тестирования, а также предоставлены такие возможности как проверка соответствия кода стилю оформления кода. Для разбора кода может применяться как собственный парсер, так и внешний парсер от Clang. В состав также входит скрипт donate-cpu.py для предоставления локальных ресурсов для выполнения работы по совместной проверке кода пакетов Debian. Исходные тексты проекта распространяются под лицензией GPLv3.
Развитие cppcheck сосредоточено на выявлении проблем, связанных с неопределённым поведением и применением конструкций, опасных с точки зрения безопасности. Целью также является минимизация ложных срабатываний. Среди выявляемых проблем: указатели на несуществующие объекты, деления на ноль, целочисленные переполнения, некорректные операции битового сдвига, некорректные преобразования, проблемы при работе с памятью, некорректное использование STL, разыменование нулевых указателей, применение проверок после фактического обращения к буферу, выход за границы буферов, использование неинициализированных переменных.
В новой версии:
- В ядро анализатора добавлены следующие проверки:
- отсутствия оператора return в теле функции;
- записи перекрывающихся данных, определения неопределённого поведения;
- сравниваемое значение находится за пределами представления значений типа;
- оптимизация копирования не применяется для return std::move(local);
- файл не может быть открыт одновременно для чтения и для записи в разных потоках (stream);
- для Unix-платформ добавлена поддержка вывода диагностических сообщений разными цветами;
- добавлен символьный анализ для ValueFlow. Используется простая дельта при вычислении различий между двумя неизвестными переменными;
- правила используемые для списка токенов "define" также могут соответствовать и #include;
- библиотечный тег <function> теперь может содержать тег <container>, и соответственно функции free, которые могут принимать такие контейнеры как std::size, std::empty, std::begin, std::end и т.д. могут указывать yeld или action для контекнеров;
- библиотечный тег <smart-pointer> теперь может содержать тег <unique> для умных указателей, которые имеют исключительное владение (unique ownership). Теперь выдаётся предупреждение о "висячих" ссылках на такого рода умные указатели;
- исправлены проблемы с обработкой параметра --cppcheck-build-dir;
- htmlreport теперь может выводить информацию об авторе (при помощи git blame);
- расширена выдача предупреждений о переменных, которые не являются константными, но могли-бы ими быть;
- исправлены накопившиеся ошибки и недоработки анализатора.
Дополнительно были полностью реализованы проверки из Misra C 2012, включая Amendment 1 и Amendment 2, кроме правил 1.1 , 1.2 and 17.3.
Проверки 1.1 и 1.2 должны выполняться компилятором. Проверка 17.3 может выполнять компилятором, например GCC.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/danmar/cppc...)
- OpenNews: Facebook открыл код статического анализатора Mariana Trench
- OpenNews: Выпуск Psalm 3.12, статического анализатора для языка PHP. Альфа выпуск PHP 8.0
- OpenNews: Релиз статического анализатора cppcheck 2.1
- OpenNews: Релиз свободного статического анализатора кода frama-clang 0.0.5
- OpenNews: Система анализа сетевых угроз Metron получила статус первичного проекта Apache
Похожие новости:
Теги для поиска: #_cppcheck
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 06:12
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Вышла новая версия статического анализатора кода cppcheck 2.6, позволяющего выявлять различные классы ошибок в коде на языках Си и Си++, в том числе при использовании нестандартного синтаксиса, типичного для встраиваемых систем. Предоставляется коллекция плагинов, через которые обеспечена интеграция cppcheck с различными системами разработки, непрерывной интеграции и тестирования, а также предоставлены такие возможности как проверка соответствия кода стилю оформления кода. Для разбора кода может применяться как собственный парсер, так и внешний парсер от Clang. В состав также входит скрипт donate-cpu.py для предоставления локальных ресурсов для выполнения работы по совместной проверке кода пакетов Debian. Исходные тексты проекта распространяются под лицензией GPLv3. Развитие cppcheck сосредоточено на выявлении проблем, связанных с неопределённым поведением и применением конструкций, опасных с точки зрения безопасности. Целью также является минимизация ложных срабатываний. Среди выявляемых проблем: указатели на несуществующие объекты, деления на ноль, целочисленные переполнения, некорректные операции битового сдвига, некорректные преобразования, проблемы при работе с памятью, некорректное использование STL, разыменование нулевых указателей, применение проверок после фактического обращения к буферу, выход за границы буферов, использование неинициализированных переменных. В новой версии:
Проверки 1.1 и 1.2 должны выполняться компилятором. Проверка 17.3 может выполнять компилятором, например GCC. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 06:12
Часовой пояс: UTC + 5