#clangquery

2025-04-12

Разрабатываем собственный анализатор C++ программы в виде плагина для Clang

Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого. Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения. Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang. Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++ , а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ.

habr.com/ru/articles/900224/

#clang #clangquery #plugin #memsafe #c++ #attribute

2025-01-02

[Перевод] Анализ AST и рефакторинг кода в Clang

В продолжение темы кастомизации компилятора С++ публикую перевод еще одной интересной статьи от Eli Bendersky AST matchers and Clang refactoring tools . Инструментарий Clang вызывает большой интерес и внимание к разработке в последние годы. Наконец-то у нас есть удобный, точный, с открытым исходным кодом и хорошо поддерживаемый фреймворк для программного анализа и рефакторинга кода C++ и это я нахожу это очень захватывающим! Прекрасным результатом этого быстрого темпа разработки является то, что постоянно появляются новые API и инструменты. Например, некоторое время назад разработчики инструментария Clang выяснили, что людям, выполняющим обходы AST, приходится писать много повторяющегося кода, чтобы найти нужные им узлы AST, поэтому они придумали отличный новый API под названием AST matchers .

habr.com/ru/articles/871296/

#clang #llvm #RefactoringTool #clangapplyreplacements #libTooling #ClangTool #clangquery

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst