At -O0 it stores into read-only memory and takes SIGSEGV; at -O2 LLVM deletes it as undefined and the program prints the unmodified string and exits 0. Same source, and which way it fails depends on a flag, which is worse than either outcome on its own. Nothing refuses it and nothing cheaply can: bytes turns a string into a [u8], the language lets you write through a slice, and by then nothing records where the bytes came from. That is provenance, which plan.org defers as open decision #3. Emitting literals as mutable globals is not a fix - it moves which flag misbehaves and costs their read-only placement. Written down rather than half-fixed, with the rule the string lane already follows: a function over a string must not write through it.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%