Слайд 2Статический анализатор clang. Пакеты

Слайд 3Статический анализатор clang для проектов
scan-build команда_сборки
scan-build gcc -c file.c -o file
scan-view каталог_с_отчетами
Пример:
mkdir

build && cd build
scan-build ../configure -prefix=$(pwd)/../install
scan-build make
Слайд 4Расширение статического анализатора clang
Определение и реализация подкласса Checker
Регистрация в пакете alpha
Сборка и

тестирование нашего средства проверки (см. пример ReactorChecker.cpp)
Слайд 5Инструменты Clang и LibTooling
Установить Clang Extra Tools
Создать базу данных команд комиляции
mkdir build

&& cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
ln -s compile_commands.json ..
или
libtool test.c -- -Iinclude прочие_параметры_компиляции
Слайд 6Инструменты Clang и LibTooling
Clang-tidy – проверки на нарушение стандартов оформления
Clang-modernize – адаптация

старого кода под новые стандарты, например С++11
Clang-apply-replacements – в помощь Clang-modernize для больших проектов
Clang-format – форматирование С/C++ кода
Modularize и module-map-checker – решение проблем внедрения модулей (*.cpp), анализ заголовочный файлов, глобальных переменных
Pp-trace – вывод трассы работы препроцессора
Clang-query и clang-check – работа с AST-деревом
Remove-cstr-calls – удаление .c_str() вызовов
Создание собственного инструмента рефакторинга, например переименование переменных (см. IzzyRefactor.cpp)