>>25639902
Rust mostly protects against race conditions - concurrency safety - and dangling pointer errors through its ownership-borrowing system. Rust compilers should also ideally reject invalid memory access and aliasing violations; however, that is one of the reasons for the discrepancy between builds using different versions of the compiler. Runtime array/collection accesses are also checked to some extent, but the program would just terminate itself - anything downstream of it could get fucked if it's improperly set up.
Most importantly, if you want to use raw pointers (essential if you need to do anything low level - of particular importance in systems programming) or FFIs with rust, you'll have to wrap them in an unsafe block which bypasses said safety checks. Likewise, integer overflows are not actually rectified during compiler debugging.