Сайт использует сервис веб-аналитики Яндекс Метрика с помощью технологии «cookie». Пользуясь сайтом, вы даете согласие на использование данной технологии.
Дмитрий Мельник — Безопасный компилятор: надежная оптимизация и улучшение защищенности кода
Подробнее о конференции C++ Russia: — — К появлению уязвимостей в программах могут приводить не только ошибки, допущенные программистом, или злой умысел, но и агрессивные оптимизации, применяемые компилятором. Такая опасность возникает прежде всего для кода, содержащего конструкции с неопределенным поведением (undefined behavior), появление которых в программе может быть связано как с недостаточным знанием стандарта языка C, так и с попытками «эффективно» реализовать некоторую семантику (что иногда даже «срабатывает» для конкретной версии компилятора для заданной архитектуры). Тем не менее компилятор вправе выполнять оптимизации исходя из того, что исходный код написан в строгом соответствии со стандартом, и что в нем отсутствует неопределенное поведение. Дмитрий рассмотрел примеры кода с различными видами неопределенного поведения, а также неочевидные эффекты от его оптимизации современными версиями GCC и Clang. Он также показал разработанный ими безопасный компилятор на основе GCC, цель которого — предотвращать некорректные оптимизации кода, содержащего неопределенное поведение. Кроме того, спикер рассказал и про другие методы улучшения безопасности кода, применяемые как в безопасном компиляторе, так и в стандартном GCC, а также их влияние на производительность. Скачать презентацию с сайта С++ Russia —