dwarf2out.c (is_unit_die): New.
* dwarf2out.c (is_unit_die): New. (copy_declaration_context, copy_ancestor_tree): Use it. (copy_decls_walk): Likewise. From-SVN: r188209
This commit is contained in:
parent
a67cfde819
commit
61a3e629c1
|
@ -1,3 +1,9 @@
|
|||
2012-06-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* dwarf2out.c (is_unit_die): New.
|
||||
(copy_declaration_context, copy_ancestor_tree): Use it.
|
||||
(copy_decls_walk): Likewise.
|
||||
|
||||
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/53524
|
||||
|
|
|
@ -5972,6 +5972,16 @@ is_cu_die (dw_die_ref c)
|
|||
return c && c->die_tag == DW_TAG_compile_unit;
|
||||
}
|
||||
|
||||
/* Returns true iff C is a unit DIE of some sort. */
|
||||
|
||||
static inline bool
|
||||
is_unit_die (dw_die_ref c)
|
||||
{
|
||||
return c && (c->die_tag == DW_TAG_compile_unit
|
||||
|| c->die_tag == DW_TAG_partial_unit
|
||||
|| c->die_tag == DW_TAG_type_unit);
|
||||
}
|
||||
|
||||
static char *
|
||||
gen_internal_sym (const char *prefix)
|
||||
{
|
||||
|
@ -6379,8 +6389,7 @@ copy_declaration_context (dw_die_ref unit, dw_die_ref die)
|
|||
}
|
||||
|
||||
if (decl->die_parent != NULL
|
||||
&& decl->die_parent->die_tag != DW_TAG_compile_unit
|
||||
&& decl->die_parent->die_tag != DW_TAG_type_unit)
|
||||
&& !is_unit_die (decl->die_parent))
|
||||
{
|
||||
new_decl = copy_ancestor_tree (unit, decl, NULL);
|
||||
if (new_decl != NULL)
|
||||
|
@ -6654,8 +6663,7 @@ copy_ancestor_tree (dw_die_ref unit, dw_die_ref die, htab_t decl_table)
|
|||
dw_die_ref spec = get_AT_ref (parent, DW_AT_specification);
|
||||
if (spec != NULL)
|
||||
parent = spec;
|
||||
if (parent->die_tag != DW_TAG_compile_unit
|
||||
&& parent->die_tag != DW_TAG_type_unit)
|
||||
if (!is_unit_die (parent))
|
||||
new_parent = copy_ancestor_tree (unit, parent, decl_table);
|
||||
}
|
||||
|
||||
|
@ -6754,8 +6762,7 @@ copy_decls_walk (dw_die_ref unit, dw_die_ref die, htab_t decl_table)
|
|||
/* If TARG has surrounding context, copy its ancestor tree
|
||||
into the new type unit. */
|
||||
if (targ->die_parent != NULL
|
||||
&& targ->die_parent->die_tag != DW_TAG_compile_unit
|
||||
&& targ->die_parent->die_tag != DW_TAG_type_unit)
|
||||
&& !is_unit_die (targ->die_parent))
|
||||
parent = copy_ancestor_tree (unit, targ->die_parent,
|
||||
decl_table);
|
||||
|
||||
|
|
Loading…
Reference in New Issue