https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79874
--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- Without reference to whether it is the case for this particular error, there are some cases where the code structure is: * Make consistency checks, possibly reporting diagnostics from them. * If any such checks failed, call internal_error (which is fatal) at that point. In such cases, making the errors directly into internal errors would make the compiler exit earlier than intended; you'd need some concept of "internal error, but don't exit yet" to preserve semantics.