Отчет о разработке Linux-версии PVS-Studio и результаты проверки LLVM (реклама)
Разработчики коммерческого статического анализатора PVS-Studio опубликовали отчет о разработке Linux-версии продукта и продолжили проверку открытых проектов. В статье рассказано, как после 10 лет выпуска продукта для Windows, было решено адаптировать его для Linux, и какие подводные камни пришлось обойти для решения этой задачи. Около трех лет назад консольное ядро анализатора PVS-Studio было портировано на Linux за пару месяцев, но создание на его основе конечного программного продукта потребовало огромной работы, решения непредвиденных проблем и учета различных нюансов, таких как поддержка расширений GCC и интеграция с различными сборочными инструментариями.
Что касается работы по выявлению ошибок в открытом ПО, то следом за проведенной в августе проверкой набора компиляторов GCC, анализ ошибок был проведен и для кодовой базы LLVM. Для проверки LLVM была использована Linux-версия PVS-Studio, а для отслеживания вызовов компилятора задействован формат JSON Compilation Database. Несмотря на то, что LLVM ранее уже проверялся в PVS-Studio в 2011 и 2012 годах, повторная проверка выявила порцию новых ошибок. В частности, обращается внимание на проблемы с использованием небитовых полей, досрочным завершением циклов, путаницей с указанием операторов "||" и "&&", опечатками в определении условий, возвратом функцией ссылки на временный локальный объект, повторным присваиванием, подозрительным переопределением указателей, путаницей при использовании release() и reset(), разыменованием нулевого указателя и т. п
Также можно отметить публикацию в свободном доступе электронной книги "Главный вопрос программирования, рефакторинга и всего такого", в которой Андрей Карпов, технический директор компании "СиПроВер", делится своим опытом разбора ошибок в программах на C/C++ и приводит 42 рекомендации, которые помогут избежать ошибок при программировании и повысить качество кода. Каждая рекомендация сопровождается практическим примером.