More and more people are becoming aware of undefined behavior (UB) in C and C++. It has become a research interest at several universities, and code generators routinely use information about UB when deciding how to optimize code. In this talk, I will give examples of UB, show how optimizers reason about UB while doing code generation, and talk about strategies to avoid introducing UB into your code base. Time permitting, I will give an overview of the current (and upcoming) tools for detecting UB in existing code.
Marshall Clow has been programming professionally since 1981. He has been a contributor to Boost for 10 years, and to LLVM/clang for 4. He is a member of the C++ standards committee, and chairs the "Ranges" study group. He works for Qualcomm in their Open Source Portal.