A stack overflow is technically a segmentation violation. At least on linux the program recives the SIGSEGV signal.
This compiles and I am no rust dev but this does not use unsafe code, right?
While the compiler shows a warning, the error message the program prints when run is not very helpfull IMHO:
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
[1] 45211 IOT instruction (core dumped) ../target/debug/rust
Edit: Even the compiler warning can be tricked by making it do recusion in pairs:
Challange accepted. The following Rust code technically segfaults:
fn stackover(a : i64) -> i64 { return stackover(a); } fn main() { println!("{}", stackover(100)); }
A stack overflow is technically a segmentation violation. At least on linux the program recives the SIGSEGV signal. This compiles and I am no rust dev but this does not use
unsafe
code, right?While the compiler shows a warning, the error message the program prints when run is not very helpfull IMHO:
thread 'main' has overflowed its stack fatal runtime error: stack overflow [1] 45211 IOT instruction (core dumped) ../target/debug/rust
Edit: Even the compiler warning can be tricked by making it do recusion in pairs:
fn stackover_a(a : i64) -> i64 { return stackover_b(a); } fn stackover_b(a : i64) -> i64 { return stackover_a(a); } fn main() { println!("{}", stackover_a(100)); }
Fair point.