https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67816
--- Comment #12 from Jeffrey A. Law <law at redhat dot com> --- As I suspected, what's happening is we've got an FSM jump thread path. After we register the FSM path DOM discovers that a block embedded in the path has a control statement with a staticly computable destination. DOM cleans things up the obvious way. That leaves blocks in the FSM path which become unreachable. That in turn triggers the checking assert. The checking assert is a simple sanity check on the FSM path to detect a case where a block on the path unconditionally transferred control to another block that was not the next block on the path. That assert detects a "shouldn't ever happen case" and is probably totally obsolete at this point. I'm much more concerned that this didn't trigger is a normal development build and that's what I'm focusing my energy on at the moment.