Lightning Talk: Undefined Behaviour in C++
summary
A tiny program compiles and runs twice with different observable outputs because the One Definition Rule is broken: two translation units provide conflicting definitions so a static instantiation choice changes runtime branching. The demonstration uses a normal C++ compiler, two object files and a simple branch that prints “loves me back” or “broke his heart”; the build executes and the outcome flips depending on ODR violation and different instantiations, exposing surprising undefined behaviour.
AI-written summary · about
chapters (6)
related talks
19mLightning Talk: Your Favorite Undefined Behavior in C++
03mLightning Talk: C++ Catastrophes: A Poem
05mDetecting Programs That Rely on Undefined Behavior
05mLightning Talk: Finding My First Compiler Bug
04mLightning Talk: A Journey Back In Time - C++ Evolution
01h 27mDangerous Optimizations! in C++ - Part Deux
49mUndefined Behavior in 2017 (part 1 of 2)
07mLightning Talk: Into the Lambdaverse — The Beginning
