diff options
author | espindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-15 14:25:50 +0000 |
---|---|---|
committer | espindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-15 14:25:50 +0000 |
commit | ecd88073a29b0558281cb330f48da026040b9a84 (patch) | |
tree | 8a727e22a197bff442c7fa013b41c3b723b12ef4 /gcc/cp/decl.c | |
parent | 0c809c32f92ac98cc05ff2ba643051949892d748 (diff) | |
download | gcc-ecd88073a29b0558281cb330f48da026040b9a84.tar.gz |
2009-06-15 Rafael Avila de Espindola <espindola@google.com>
* cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
* cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
* config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
* dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
* langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
(LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
* langhooks.c (lhd_comdat_group): Remove.
* langhooks.h (lang_hooks_for_decls): Remove comdat_group.
* tree.h (DECL_COMDAT_GROUP): New.
(DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
(tree_decl_with_vis): Add comdat_group. Remove one_only.
(make_decl_one_only): Change signature.
* varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
make_decl_one_only.
(make_decl_one_only): Change signature.
(default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
2009-06-15 Rafael Avila de Espindola <espindola@google.com>
* cp-objcp-common.h (LANG_HOOKS_COMDAT_GROUP): Remove.
* cp-tree.h (cxx_comdat_group): Change signature.
* decl.c (duplicate_decls): Use DECL_COMDAT_GROUP.
(cxx_comdat_group): Change signature.
* decl2.c (comdat_linkage, maybe_make_one_only): Update call to
make_decl_one_only.
(constrain_visibility, get_guard): Use DECL_COMDAT_GROUP.
* method.c (use_thunk): Update call to make_decl_one_only.
* optimize.c (maybe_clone_body): Use DECL_COMDAT_GROUP
2009-06-15 Rafael Avila de Espindola <espindola@google.com>
* g++.dg/abi/mangle11.C: Update warning line.
* g++.dg/abi/mangle12.C: Update warning line.
* g++.dg/abi/mangle17.C: Update warning line.
* g++.dg/abi/mangle20-2.C: Update warning line.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148492 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r-- | gcc/cp/decl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 22c426b3247..296d1438515 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -1835,7 +1835,9 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend) /* Merge the storage class information. */ merge_weak (newdecl, olddecl); - DECL_ONE_ONLY (newdecl) |= DECL_ONE_ONLY (olddecl); + if (DECL_ONE_ONLY (olddecl)) + DECL_COMDAT_GROUP (newdecl) = DECL_COMDAT_GROUP (olddecl); + DECL_DEFER_OUTPUT (newdecl) |= DECL_DEFER_OUTPUT (olddecl); TREE_PUBLIC (newdecl) = TREE_PUBLIC (olddecl); TREE_STATIC (olddecl) = TREE_STATIC (newdecl) |= TREE_STATIC (olddecl); @@ -12792,7 +12794,7 @@ cp_missing_noreturn_ok_p (tree decl) /* Return the COMDAT group into which DECL should be placed. */ -const char * +tree cxx_comdat_group (tree decl) { tree name; @@ -12822,7 +12824,7 @@ cxx_comdat_group (tree decl) name = DECL_ASSEMBLER_NAME (decl); } - return IDENTIFIER_POINTER (name); + return name; } #include "gt-cp-decl.h" |