4 ms·
Would it occur had they used UBsan on debug builds?
by RicoElectrico 4y ago
Would it occur had they used UBsan on debug builds?
- von_lohengramm 4y agoFor things that UBsan checks for, yes, but there's a ridiculous amount of things that are surprisingly UB in C(++).
- yeputons 4y agoNo doubt. For starters, UBsan does not check for any invalid memory access. In my C++ course, I require that the code runs correctly under 5 different compilers (GCC, LLVM Clang, Apple Clang, MSVC, Intel C++ Compiler Classic) on 3 OS (Ubuntu, Windows, macOS) in Release, Debug+Valgrind, Debug+Sanitizers modes, and students still get UB quite often. Extra reading: http://evan.nemerson.com/2021/05/04/portability-is-reliability/ http://evan.nemerson.com/2021/05/04/portability-is-reliabili... and discussion at https://news.ycombinator.com/item?id=27044419 https://news.ycombinator.com/item?id=27044419
- absolutelynobo 4y agoWhy even write C++ at that point? Wouldn’t changing over to Rust save you at least a couple of those steps?
- pjmlp 4y agoTooling, libraries, OS vendor support, IDEs, work force availability,... Many of us write C and C++, because we have to, not because we want to. Rust will eventually reach there, however many of us want to deliver a product, not build an ecosystem from scratch.
- astrange 4y agoIt won't find threading issues, or "implementation-defined behavior" (which isn't the same thing as undefined behavior).