Обзор проблем в коде на C/C++, вызванных неопределенным поведением компилятора
Джон Регир (John Regehr), профессор университета штата Юта, участвующий в разработке Clang и занимающейся исследованиями в области неопределенного поведения, подготовил полезный для разработчиков обзор ситуаций, в которых поведение программы становится неопределенным и приводит к получению проблем с использованием памяти и указателями при сборке разными компиляторами. В статье не только описаны возникающие проблемы, но и предложены способы для их выявления, а также оценена эффективность применения для обнаружения неопределенного поведения типовых отладочных инструментов, таких как Address Sanitizer (ASAN), UndefinedBehaviorSanitizer (UBSan), MemorySanitizer (MSan), ThreadSanitizer (aka TSan) и Valgrind.