On Mon, May 29, 2017 at 07:15:33PM +0300, Alexander Monakov wrote: > @@ -1063,6 +1064,17 @@ open_auxiliary_file (const char *ext) > return file; > } > > +/* Auxiliary callback for the diagnostics code. */ > + > +static void > +internal_error_function (diagnostic_context *context ATTRIBUTE_UNUSED, > + const char *msgid ATTRIBUTE_UNUSED, > + va_list *ap ATTRIBUTE_UNUSED) > +{ > + warn_if_plugins (); > + emergency_dump_function ();
What if there is another ICE during the dumping? Won't we then end in endless recursion? Perhaps global_dc->internal_error should be cleared here first? Also, as none of the arguments are used and we are in C++, perhaps it should be static void internal_error_function (diagnostic_context *, const char *, va_list *) { ? Jakub