в том числе при использовании нестандартного синтаксиса, типичного для встраиваемых систем. Предоставляется коллекция плагинов, через которые обеспечена интеграция cppcheck с различными системами разработки, непрерывной интеграции и тестирования, а также предоставлены такие возможности как проверка соответствия кода стилю оформления кода. Для разбора кода может применяться как собственный парсер, так и внешний парсер
от Clang. В состав также входит скрипт donate-cpu.py для предоставления локальных ресурсов для выполнения работы по совместной проверке кода пакетов Debian. Исходные тексты проекта распространяются
под лицензией GPLv3.
Развитие cppcheck сосредоточено на выявлении проблем, связанных с неопределённым поведением и применением конструкций, опасных с точки зрения безопасности. Целью также является минимизация ложных срабатываний. Среди
выявляемых проблем: указатели на несуществующие объекты, деления на ноль, целочисленные переполнения, некорректные операции битового сдвига, некорректные преобразования, проблемы
при работе с памятью, некорректное использование STL, разыменование нулевых указателей, применение проверок после фактического обращения к буферу, выход за границы буферов, использование неинициализированных переменных.
Параллельно шведской фирмой Cppcheck Solutions AB разрабатывается расширенная версия Cppcheck Premium, обеспечивающая анализ наличия бесконечных циклов, улучшенный поиск неинициализированных переменных и расширенный анализ переполнения
буферов.
В новой версии:
- Добавлена поддержка представлений (view) контейнеров — в тег библиотеки
добавлен атрибут view, указывающий, что класс является представлением.
Код анализа времени жизни обновлён для использования данного атрибута при поиске «висячих» контейнеров;- Улучшены проверки;
- Исправлены накопившиеся ошибки и устранены недоработки анализатора.
Источник: http://www.opennet.ru/opennews/art.shtml?num=56661