diff options
author | Rafael Avila de Espindola <espindola@google.com> | 2009-06-15 14:25:50 +0000 |
---|---|---|
committer | Rafael Espindola <espindola@gcc.gnu.org> | 2009-06-15 14:25:50 +0000 |
commit | fc26fae3db8a2eacc73224e2b3e0ab2aa3201eeb (patch) | |
tree | 8a727e22a197bff442c7fa013b41c3b723b12ef4 /gcc/cp/optimize.c | |
parent | 144c91756250b14fb70ed94e72952868d2d6e84e (diff) | |
download | gcc-fc26fae3db8a2eacc73224e2b3e0ab2aa3201eeb.zip gcc-fc26fae3db8a2eacc73224e2b3e0ab2aa3201eeb.tar.gz gcc-fc26fae3db8a2eacc73224e2b3e0ab2aa3201eeb.tar.bz2 |
cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
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.
From-SVN: r148492
Diffstat (limited to 'gcc/cp/optimize.c')
-rw-r--r-- | gcc/cp/optimize.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index 8c7b9e8..9d4a8c5 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -141,7 +141,12 @@ maybe_clone_body (tree fn) DECL_DECLARED_INLINE_P (clone) = DECL_DECLARED_INLINE_P (fn); DECL_COMDAT (clone) = DECL_COMDAT (fn); DECL_WEAK (clone) = DECL_WEAK (fn); - DECL_ONE_ONLY (clone) = DECL_ONE_ONLY (fn); + + /* We don't copy the comdat group from fn to clone because the assembler + name of fn was corrupted by write_mangled_name by adding *INTERNAL* + to it. By doing so, it also corrupted the comdat group. */ + if (DECL_ONE_ONLY (fn)) + DECL_COMDAT_GROUP (clone) = cxx_comdat_group (clone); DECL_SECTION_NAME (clone) = DECL_SECTION_NAME (fn); DECL_USE_TEMPLATE (clone) = DECL_USE_TEMPLATE (fn); DECL_EXTERNAL (clone) = DECL_EXTERNAL (fn); |