https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98586
--- Comment #2 from Keith Marshall <keith.marshall at mailinator dot com> --- (In reply to David Malcolm from comment #1) > I looked at calling diagnostic_initialize. > > Unfortunately, libgccjit supports being linked into multithreaded processes, > and it guards all of the regular compiler state with a single big mutex, > including the diagnostic subsystem (and the "global_dc" pointer implicitly > used by fancy_abort). This failure is happening before the mutex is > acquired. Indeed, yes. I actually patched the mutex acquisition/release code, to use a native MS-Windows critical section, in preference to the alien pthreads mutex: https://osdn.net/ticket/download.php?group_id=3917&tid=41070&file_id=5791 I thought that, maybe, it was my modification which led to the crash; I was surprised to find that execution never reached my modified code. > I'm not sure yet what the best fix is. I don't know the GCC internals well enough, to advise on this, but I'm willing to assist with testing, in any way that I can. In the meantime, I've patched around the flawed assumption, which leads to the failing assertion, in the first place: https://osdn.net/ticket/download.php?group_id=3917&tid=41070&file_id=5799 Thanks for your attention.