On Mon, 29 May 2017, Alexander Monakov wrote: > +/* This helper function is invoked from diagnostic routines prior to aborting > + due to internal compiler error. If a dump file is set up, dump the > + current function. */ > + > +void > +emergency_dump_function () > +{ > + if (!dump_file || !current_pass || !cfun) > + return; > + fnotice (stderr, "function dumped to file %s\n", dump_file_name); > + execute_function_dump (cfun, current_pass); > +}
I've noticed that the notice is not terribly useful. Perhaps it's better to mention the failing pass when not producing the dump (untested): void emergency_dump_function () { if (!current_pass || !cfun) return; if (dump_file) { fnotice (stderr, "dump file: %s\n", dump_file_name); execute_function_dump (cfun, current_pass); } else if (current_pass->name[0] != '*') { enum opt_pass_type pt = current_pass->type; fnotice (stderr, "during %s pass: %s\n", pt == GIMPLE_PASS ? "GIMPLE" : pt == RTL_PASS ? "RTL" : "IPA", current_pass->name); } } Alexander