Tag
undefined-behaviour
- Oct 13, 2026 Variadic Calls and the Default Argument Promotions What a va_list actually points at, why float and char arguments are widened before a variadic call, and how the absence of type information turns a wrong format into undefined behaviour. systems programming
- Jul 23, 2026 What Sanitizers and Miri Cannot Prove Instrumentation detects violations on the paths an execution took, and an interpreter sees only the code it can run, so both produce evidence of bugs rather than evidence of their absence. systems programming
- Jul 17, 2026 Compiler Reordering and the Contract It Must Not Break Why an optimiser may sink an atomic load past a store only in certain cases, where the as-if rule stops, and how data races turn a performance model into undefined behaviour. computer architecture
- Jan 5, 2026 Integer Object Representation and Conversion at the Boundary How signed and unsigned values are stored, what integer promotion silently does to an operand, and which conversions are defined, implementation-defined, or undefined. systems programming
- Oct 14, 2025 Comparator Contracts and Why a Bad One Crashes the Sort Strict weak ordering is the precondition every library sort relies on; violating it turns a sort into an out-of-bounds read, and the failure is silent until it is not. algorithms
- Aug 1, 2025 Undefined Behaviour as a Compiler Permission Why the optimiser treats undefined behaviour as a promise about what never happens, and how that promise lets it delete checks, fold comparisons, and reorder loads. systems programming
- Jun 13, 2025 Strict Aliasing and the Effective Type of an Object Why two pointers of different types cannot in general name the same memory, which union and character-type accesses are permitted, and what an optimiser does with the rule. systems programming
- Feb 11, 2025 Uninitialised Memory, Padding, and the Cost of Assuming Zero Uninitialised bytes are not merely arbitrary values, they are a distinct state the optimiser tracks, and the distinction changes what a byte copy, a comparison, and a length assignment may legally do. systems programming
- Aug 19, 2024 Pointer Provenance and the Cost of Integer Round-Trips A pointer carries more than an address, and converting it to an integer and back can discard the derivation the optimiser needs to justify its transformations. systems programming
- Aug 12, 2024 Strict Aliasing and the Cases Where Type Punning Is Legal The effective type rules permit far more access through differing types than the folklore suggests, and the sanctioned escape hatches are narrower than the compiler flags that disable the analysis. systems programming