I don&#x27;t think that example is directly relevant: it&#x27;s tail recursive, and the code still compiles (so there&#x27;s still runtime behaviour to consider). Additionally, the warning is emitted in both release and debug modes, but only covers &quot;obvious&quot; cases of infinite recursion: it won&#x27;t say anything about functions that could recur deeply, or infinite recursion that is tricky to prove is infinite.<p>In any case, the Rust language, when it gets guarantees (i.e. a spec), will at the very least guarantee that stack overflow doesn&#x27;t result in memory corruption, it may not be too opinionated on how exactly implementations make this guarantee. As you say, the rustc compiler currently handles it by guard pages and aborting but not perfectly (it&#x27;s not hard to have a large stack frame: `let x = [0; 10000]`).