Undefined Behavior, like signed integer overflow or accessing null pointer, is an erroneous action that makes programs unpredictable. There are no rules on how to generate code for Undefined Behavior. Compiler writers can treat Undefined Behavior as nasal demons and do anything they choose….
By: Mingyue Liang, Wei Liu, Kai Song & Zekai Wu
Full Abstract & Presentation Materials:
https://www.blackhat.com/eu-20/briefings/schedule/#finding-bugs-compiler-knows-but-doesnt-tell-you-dissecting-undefined-behavior-optimizations-in-llvm-21128