> Do you prove that every line of arithmetic in your program will not overflow
My point is the analysis takes time, training, and is easy to regress. In practice programs operate within a reasonable N and if you push the limits they will fail. Or the devs wait for a bug report, and then set a pessimistic limit on user input.
Also undefined != crash. Your compiler has options for what to do when signed overflow is detected.