Strict aliasing
De regel in C en C++ dat een object alleen gelezen mag worden via een type dat compatibel is met hoe het is aangemaakt. Wie hem schendt, ziet de code werken zonder optimalisatie en uit elkaar vallen mét.
Het voordeel voor de compiler is groot: wie mag aannemen dat een int-pointer en een float-pointer nooit naar hetzelfde geheugen wijzen, kan waarden over schrijfacties heen in registers houden, lussen vectoriseren en lezen vrij herordenen. Zonder die aanname moet elke schrijfactie via een vreemde pointer als mogelijke wijziging van alles worden behandeld. De rekening betaalt alle code die bitpatronen herinterpreteert door een pointer te casten, een patroon dat in de C van de jaren negentig dagelijkse praktijk was en voortleeft in veel signaalverwerking en serialisatie. Het symptoom is onaangenaam kenmerkend: alles werkt in de debugbuild en geeft foute antwoorden in de geoptimaliseerde. De legale routes zijn memcpy, unions in C en bit_cast in modern C++. De Linux-kernel heeft er in plaats daarvan voor gekozen te bouwen met de regel uitgeschakeld.