Ein Compiler lässt nie aufgerufenen Code explodieren – weil C undefined behavior hat
Attention people who think UB is fine
Wer glaubt, undefined behavior in C sei harmlos und führe höchstens zu einem Segfault, irrt. Anhand von GCC 16.2 und clang zeigt der Autor, wie ein std::unreachable() dazu führt, dass eine nie aufgerufene Funktion trotzdem im Binary landet und ausgeführt wird – die „explodierende Schokolade“. Auch das Dereferenzieren eines Nullpointers verhält sich nicht wie erwartet: Statt 99 wird eine Null geschrieben, dann stürzt das Programm ab. UB kann schlicht alles bedeuten.
Und wenn man bedenkt, dass manche Leute nicht an Nasendämonen glauben.