Warum Clang eine Funktion auf 1 optimiert – und was Pointer-Provenance damit zu tun hat
Pointer Provenance in Rust vs. C++: Pointers Are Not Just Glorified Ints

Ein int* kann nicht zufällig auf dieselbe Adresse zeigen wie eine lokale Variable – das nimmt der Compiler an, weil der Zeiger nicht von ihr abgeleitet wurde. Diese verborgene Herkunftsinformation heißt Provenance und ist reine Compiler-Abstraktion, kein Datenfeld. Der Beitrag zeigt an LLVM IR, wie ein Cast nach uintptr_t in C++ die Provenance offenlegt und Optimierungen blockiert, während Rust mit addr(), with_addr() und without_provenance() die Absicht explizit macht – und Miri Verstöße aufdeckt.
Provenance ist im Kern eine verborgene Information darüber, aus welcher Allokation ein Zeiger stammt – und LLVM nutzt sie für Optimierungen.