On 04/03/2015 07:41 AM, Jason Merrill wrote: > On 03/18/2015 11:51 AM, Aldy Hernandez wrote: >> On 03/17/2015 07:12 PM, Jason Merrill wrote: >>> Why are we outlining a DECL_EXTERNAL function? >> >> SRA has no restrictions on whether a function is DECL_EXTERNAL. > > Aha. > > So it seems that DECL_EXTERNAL is the wrong gate for > equate_decl_number_to_die here. I think the rule we want is that if we > don't already have a non-declaration DIE for a function, we should > equate the new DIE. Let's remove the existing calls and replace them > with a single conditional call before the if (declaration). Nice. Done. > Incidentally, > >> /* A declaration that has been previously dumped needs no >> additional information. */ >> if (dumped_early && declaration) >> return; > > Do we need to check dumped_early here? I would think that any > declaration that has an old_die needs no additional information. Indeed, good catch. Fixed. The attached patch fixes the original regression, and introduces none in either gdb or the guality tests on gcc. OK for branch? Aldy