aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-05-20 21:57:45 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-05-20 19:57:45 +0000
commitcf288ed3b8b0cdfee1c03a7dfb2d371b5b7e3147 (patch)
treec7cb5df0ad4b66323aabee83001d4e28934f6229 /gcc/tree.h
parentf4cd9c518ba414724bacb1d936ba1676929fa52e (diff)
downloadgcc-cf288ed3b8b0cdfee1c03a7dfb2d371b5b7e3147.zip
gcc-cf288ed3b8b0cdfee1c03a7dfb2d371b5b7e3147.tar.gz
gcc-cf288ed3b8b0cdfee1c03a7dfb2d371b5b7e3147.tar.bz2
tree.h (DECL_ONE_ONLY): Return true only for externally visible symbols.
* tree.h (DECL_ONE_ONLY): Return true only for externally visible symbols. * except.c (switch_to_exception_section, resolve_unique_section, get_named_text_section, default_function_rodata_section, align_variable, get_block_for_decl, default_section_type_flags): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. * symtab.c (symtab_add_to_same_comdat_group, symtab_make_decl_local, fixup_same_cpp_alias_visibility, symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class): Likewise. * cgraphclones.c (cgraph_create_virtual_clone): Likewise. * bb-reorder.c (pass_partition_blocks::gate): Likewise. * config/c6x/c6x.c (c6x_elf_unique_section): Likewise. (c6x_function_in_section_p): Likewise. * config/darwin.c (machopic_select_section): Likewise. * config/arm/arm.c (arm_function_in_section_p): Likewise. * config/mips/mips.c (mips_function_rodata_section): Likewise. * config/mep/mep.c (mep_select_section): LIkewise. * config/i386/i386.c (x86_64_elf_unique_section): Likewise. From-SVN: r210654
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index f9c2ca9..e0a3084 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2327,7 +2327,8 @@ extern void decl_value_expr_insert (tree, tree);
/* Used in TREE_PUBLIC decls to indicate that copies of this DECL in
multiple translation units should be merged. */
-#define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE)
+#define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE \
+ && (TREE_PUBLIC (NODE) || DECL_EXTERNAL (NODE)))
/* The name of the object as the assembler will see it (but before any
translations made by ASM_OUTPUT_LABELREF). Often this is the same