Undefined Behaviour
Abbreviated UB. Things like reading uninitialised memory, signed integer overflow, or dereferencing a freed pointer. The compiler is allowed to assume you never do these, and will sometimes optimise your code in ways that make no sense once you do.
Rule of thumb: if you’re not sure whether something is UB, it probably is. Check before you ship.