Max Kazantsev
Company: Sber
Everyone is aware that some C++ constructions lead to undefined behavior of programs (UB). Many suspect that this helps the compilers to better optimize their code. But few understand how exactly the undefined behavior is modelled in compiler internals, and how exactly the optimizations on its base work. In this talk I will tell how LLVM-based compilers, such as clang, solved the problem of UB representation. We will know what is deferred UB, that makes dangerous code explode not immediately, and how it is used. There will also be some historic survey into old and modern forms of representation, how compilers benefit from it, and what dangers may hit those who are not careful enough with such constructions.
Company: Sber