https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99243
--- Comment #5 from Egor Pugin <egor.pugin at gmail dot com> --- Possible naive fix is to change in module.cc (void module_state::set_filename (const Cody::Packet &packet)): - error_at (loc, "unknown Compiled Module Interface: %s", packet.GetString ().c_str ()); + fatal_error (loc, "unknown Compiled Module Interface: %s", packet.GetString ().c_str ()); If we do not fail here, tons of ICEs come later because other code does not expect such mismatches. (There can be communication error, so we do not get same number of packets sent about querying modules, or another error.) For example, the following function static void name_pending_imports (cpp_reader *reader) iterates over responses and does not check for r_iter == response.end() module->set_filename (*r_iter); ++r_iter;