Роман Русяев — Type Sanitizer: способ обнаружения нарушений правил strict aliasing в C++

Published: 17 May 2023
on channel: C++ User Group
748
28

Ближайшая конференция — C++ Russia 2025, 20—21 марта, Москва + online. Подробности и билеты: https://jrg.su/9Sszhd
— —
Одними из наиболее неочевидных и трудноуловимых правил стандарта языка С++ являются правила strict aliasing, которые создают множество проблем (например, таких как «каламбур типов» (type punning)). Из-за этого многие приложения собираются с опцией -fno-strict-aliasing, которая запрещает компилятору полагаться на использование этих правил. В свою очередь, это ведет к снижению производительности программ, т. к. компиляторные оптимизации, полагающиеся на анализ типов, не могут в полной мере произвести оптимизацию кода. Вместо этого было бы полезно иметь способ обнаружения нарушений strict aliasing-правил, который бы позволил избежать использования опции -fno-strict-aliasing при сборке программы.

В данном докладе обсуждается способ динамического анализа приложений, который позволит обнаружить нарушения strict aliasing-правил, не замеченных компилятором. Данный доклад нацелен по большей части на компиляторную аудиторию, т. к. затрагивает детали реализации внутренностей LLVM.


Watch video Роман Русяев — Type Sanitizer: способ обнаружения нарушений правил strict aliasing в C++ online without registration, duration hours minute second in high quality. This video was added by user C++ User Group 17 May 2023, don't forget to share it with your friends and acquaintances, it has been viewed on our site 74 once and liked it 2 people.