4 comments

[ 4.0 ms ] story [ 23.8 ms ] thread
This is fascinating, I didn't realize that compilers even could do so much with one simple primitive!
I looked at doing this in 2010 for the firefox codebase. At the time, neither gcc nor clang were able to infer enough information from builtin_unreachable or asserts in non-debug mode to be worth the effort.

Also, many asserts are rewritten to provide debugging information, not just crashing the program. Firefox had a bunch of asserts that sent logged information before they died, for example. As a result, you're usually willing to take the performance hit to find out why your program failed, esp when the hit is small (here it's shown to be <10%).

What a weird typing / prolog-cut mechanism.