diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-24 06:13:44 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-24 06:13:44 +0000 |
commit | 1fda15e2319ade173bbcfcee7a5272bc410ef17d (patch) | |
tree | be52c0776019c9e0eed372c7670a1d87ad3d6732 /gcc/ipa-icf.c | |
parent | 6ffeceb15bc17d43de07000e1806690a9b6c3c68 (diff) | |
download | gcc-1fda15e2319ade173bbcfcee7a5272bc410ef17d.tar.gz |
* ipa-utils.h (method_class_type): Remove.
* cgraphunit.c (walk_polymorphic_call_targets): Use TYPE_METHOD_BASETYPE.
* ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
on main variants only.
(method_class_type): Remove.
(update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
(build_type_inheritance_graph): Likewise.
* ipa-icf.c (sem_function::equals_wpa): Likewise.
* pa-polymorphic-call.c (decl_maybe_in_construction_p,
check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223629 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-icf.c')
-rw-r--r-- | gcc/ipa-icf.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c index e7a317ab79d..190cd4c43d9 100644 --- a/gcc/ipa-icf.c +++ b/gcc/ipa-icf.c @@ -663,8 +663,8 @@ sem_function::equals_wpa (sem_item *item, if (TREE_CODE (TREE_TYPE (item->decl)) != METHOD_TYPE) return return_false_with_msg ("DECL_CXX_CONSTURCTOR type mismatch"); else if (!func_checker::compatible_polymorphic_types_p - (method_class_type (TREE_TYPE (decl)), - method_class_type (TREE_TYPE (item->decl)), false)) + (TYPE_METHOD_BASETYPE (TREE_TYPE (decl)), + TYPE_METHOD_BASETYPE (TREE_TYPE (item->decl)), false)) return return_false_with_msg ("ctor polymorphic type mismatch"); } @@ -753,8 +753,8 @@ sem_function::equals_wpa (sem_item *item, if (TREE_CODE (TREE_TYPE (decl)) != TREE_CODE (TREE_TYPE (item->decl))) return return_false_with_msg ("METHOD_TYPE and FUNCTION_TYPE mismatch"); if (!func_checker::compatible_polymorphic_types_p - (method_class_type (TREE_TYPE (decl)), - method_class_type (TREE_TYPE (item->decl)), false)) + (TYPE_METHOD_BASETYPE (TREE_TYPE (decl)), + TYPE_METHOD_BASETYPE (TREE_TYPE (item->decl)), false)) return return_false_with_msg ("THIS pointer ODR type mismatch"); } @@ -2722,14 +2722,14 @@ sem_item_optimizer::update_hash_by_addr_refs () { if (TREE_CODE (TREE_TYPE (m_items[i]->decl)) == METHOD_TYPE && contains_polymorphic_type_p - (method_class_type (TREE_TYPE (m_items[i]->decl))) + (TYPE_METHOD_BASETYPE (TREE_TYPE (m_items[i]->decl))) && (DECL_CXX_CONSTRUCTOR_P (m_items[i]->decl) || (static_cast<sem_function *> (m_items[i])->param_used_p (0) && static_cast<sem_function *> (m_items[i]) ->compare_polymorphic_p ()))) { tree class_type - = method_class_type (TREE_TYPE (m_items[i]->decl)); + = TYPE_METHOD_BASETYPE (TREE_TYPE (m_items[i]->decl)); inchash::hash hstate (m_items[i]->hash); if (TYPE_NAME (class_type) |