This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [debug-early] equate new DIE with DW_AT_specificationto a previous declaration


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

Attachment: curr
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]