diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-11-18 10:53:52 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-11-18 10:53:52 +0100 |
commit | b25833451bbe9b8a2194598b026cea071f4e9e65 (patch) | |
tree | e08b1ed30e6c41061167a50b2e85f7af35d6e70c /gcc/tree-optimize.c | |
parent | a64333b7ea23dfc1d9d512adfbfec1aeeb9e9366 (diff) | |
download | gcc-b25833451bbe9b8a2194598b026cea071f4e9e65.zip gcc-b25833451bbe9b8a2194598b026cea071f4e9e65.tar.gz gcc-b25833451bbe9b8a2194598b026cea071f4e9e65.tar.bz2 |
re PR c++/3187 (gcc lays down two copies of constructors)
PR c++/3187
* cgraph.h (struct cgraph_node): Add same_body and same_body_alias
fields.
(cgraph_same_body_alias, cgraph_remove_same_body_alias): New
prototypes.
* cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
cgraph_materialize_all_clones): Handle same_body aliases.
* cgraph.c (cgraph_allocate_node): New function.
(cgraph_create_node): Use it.
(cgraph_node_for_decl, cgraph_node, cgraph_get_node,
cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
(cgraph_same_body_alias, cgraph_remove_same_body_alias): New
functions.
* lto-cgraph.c (lto_output_node): Stream out same_body aliases.
(input_node): Stream in same_body aliases.
* lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
for same_body aliases.
(lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
* cp-tree.h (expand_or_defer_fn_1): New prototype.
* decl2.c (cp_write_global_declarations): Mark as !DECL_EXTERNAL
also all same_body aliases.
* semantics.c (expand_or_defer_fn): Move most of the function
except registering with cgraph to ...
(expand_or_defer_fn_1): ... here. New function.
* optimize.c: Include cgraph.h.
(maybe_clone_body): If in charge parm is not used and both base
and complete clones are created and are not comdat, tell cgraph
they have the same body.
* Make-lang.in (cp/optimize.o): Depend on $(CGRAPH_H).
* g++.dg/abi/mangle26.C: Also match *C2* definition.
* g++.dg/abi/mangle27.C: Likewise.
* g++.dg/abi/mangle28.C: Likewise.
* g++.dg/abi/mangle29.C: Likewise.
From-SVN: r154284
Diffstat (limited to 'gcc/tree-optimize.c')
0 files changed, 0 insertions, 0 deletions