El proyecto Schrödinger's TOCTOU, alojado en GitHub por xoreaxeaxeax, demuestra que los compiladores de C pueden introducir lecturas de memoria que el programador jamás escribió —las llamadas "invented loads"—, y que esas lecturas reabren vulnerabilidades de tipo TOCTOU (Time-Of-Check to Time-Of-Use) que el código fuente aparentemente había cerrado. El artículo explica el fenómeno paso a paso. Primero, una función trivial que en el código lee *p una sola vez genera, al compilarse con arm gcc 14.2.0 -O2, dos lecturas desde el mismo puntero: la segunda es inventada por el optimizador y, aunque es legal bajo la máquina abstracta de C, rompe la garantía de inmutabilidad entre comprobación y uso. A continuación se analiza el patrón canónico de defensa —snapshot del dato no fiable, validación del snapshot y publicación de la copia validada— y se muestra cómo, bajo x86-64 gcc -O2, el optimizador relee el campo len de la memoria compartida durante la copia masiva, reintroduciendo exactamente la ventana TOCTOU que el snapshot debía eliminar. El resultado es un desbordamiento de búbo reproducible a partir de código que, en fuente, parecía seguro. El repositorio documenta auditorías realizadas sobre kernels Linux (RDMA RXE/SIW), hipervisores como QEMU, enclaves Intel SGX, firmware EDK2 y la librería glibc, concluyendo que el problema es estructural y no un fallo aislado. Se trata de una propiedad emergente del pipeline completo de compilación —frontend, IR, asignación de registros y backend— y no de una etapa concreta. El proyecto incluye un proof-of-concept ejecutable y señala que cualquier código que siga el patrón snapshot/validar/publicar puede ser vulnerable bajo determinados compiladores y niveles de optimización.
