diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-09-11 23:16:42 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-09-11 23:16:42 +0000 |
commit | d585ba22a6b4250b0d819d3d7da72f7dd37e2981 (patch) | |
tree | 5ca60267bac44557141301c497a4c5364a3466f9 /gcc/langhooks.c | |
parent | f2225dc8ebf68a940551bb295e956eb88fb01b81 (diff) | |
download | gcc-d585ba22a6b4250b0d819d3d7da72f7dd37e2981.tar.gz |
* common.opt (flto-odr-type-merging): New flag.
* ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
(types_same_for_odr): Likewise.
(odr_subtypes_equivalent_p): Likewise.
(add_type_duplicate): Do not walk type variants.
(register_odr_type): New function.
* ipa-utils.h (register_odr_type): Declare.
(odr_type_p): New function.
* langhooks.c (lhd_set_decl_assembler_name): Do not compute
TYPE_DECLs
* doc/invoke.texi (-flto-odr-type-merging): Document.
* tree.c (need_assembler_name_p): Compute ODR names when asked
for it.
* tree.h (DECL_ASSEMBLER_NAME): Update comment.
* lto.c (lto_read_decls): Register ODR types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215196 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/langhooks.c')
-rw-r--r-- | gcc/langhooks.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/langhooks.c b/gcc/langhooks.c index 8ff91ba6db0..7d4c294700a 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -147,6 +147,11 @@ lhd_set_decl_assembler_name (tree decl) { tree id; + /* set_decl_assembler_name may be called on TYPE_DECL to record ODR + name for C++ types. By default types have no ODR names. */ + if (TREE_CODE (decl) == TYPE_DECL) + return; + /* The language-independent code should never use the DECL_ASSEMBLER_NAME for lots of DECLs. Only FUNCTION_DECLs and VAR_DECLs for variables with static storage duration need a real |