RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2024, том 36, выпуск 4, страницы 27–40 (Mi tisp906)

Разработка безопасного компилятора на основе Clang

П. Д. Дунаевa, А. А. Синкевичab, А. М. Гранатac, И. А. Батраеваb, С. В. Мироновb, Н. Ю. Шугалейad

a Институт системного программирования РАН
b Саратовский государственный университет имени Н.Г. Чернышевского
c Высшая школа экономики
d Московский физико-технический институт (национальный исследовательский университет)

Аннотация: В связи с использованием современными компиляторами C/C++ агрессивных оптимизаций, эксплуатирующих неопределённое поведение, существует потребность в безопасном компиляторе, который не проводит подобные оптимизации, а также предотвращает использование разработчиком небезопасных конструкций. В ИСП РАН был реализован безопасный компилятор на основе GCC, однако часть разработчиков предпочитает GCC Clang, который не лишён проблемы эксплуатации неопределённого поведения. В этой работе рассматриваются возможности Clang по осуществлению безопасной компиляции и описывается реализация безопасного компилятора на его основе. Для созданного безопасного компилятора показывается применимость на практике и оценивается влияние на производительность программ.

Ключевые слова: компилятор; уязвимость; неопределенное поведение; Clang; LLVM; C; C++.

DOI: 10.15514/ISPRAS-2024-36(4)-3



© МИАН, 2025