On Sat, Sep 1, 2012 at 1:44 PM,  <gcc-patches-digest-h...@gcc.gnu.org> wrote:
> From: ccout...@google.com (Cary Coutant)
> To: d...@google.com, gcc-patches@gcc.gnu.org
> Cc:
> Date: Fri, 31 Aug 2012 16:55:40 -0700 (PDT)
> Subject: [google/gcc-4_7] Fix GDB test suite regression with 
> -fdebug-types-section patch
> This patch is for the google/gcc-4_7 branch.
>
> This patch fixes a problem caused by the previous patch that removed
> the code to copy children of a DIE referenced by a type unit.
>
>> I don't believe that it's necessary to copy the children of the class
>> declaration at all, and this patch simply removes the code that copies
>> those children. If there's a reference in the type unit to one of the
>> children of that class, that one child will get copied in as needed.
>
> The problem was that it IS necessary to copy the children of a
> non-declaration -- such as a DW_TAG_array_type.  I've restored the
> loop that calls clone_tree_partial, but placed it within a test
> for is_declaration_die.
>
> Bootstraps and passes regression tests. Also tested with parts of the
> GDB testsuite, and is still able to build a large internal test case
> that previously resulted in out-of-memory during compilation.
>
> Google ref b/7041390.
>
>
> 2012-08-31   Cary Coutant  <ccout...@google.com>
>
>         * gcc/dwarf2out.c (clone_tree_partial): Restore.
>         (copy_decls_walk): Call clone_tree_partial to copy children
>         of non-declaration DIEs.

This is OK for google branches.

Reply via email to