summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-10 16:05:59 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-10 16:05:59 +0000
commit76333f63d2ce20bec1e45e5e39358e20131cd3fe (patch)
tree3b8921295eeff1ab5d2f0acc25532f985862f311
parent26d3655d96030e617b3ed2649770d0d74d5a8906 (diff)
downloadgcc-76333f63d2ce20bec1e45e5e39358e20131cd3fe.tar.gz
PR ipa/69630
* ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE on cxa_pure_virtual. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234114 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-devirt.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index df399095f08..f65902b9c0f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-03-10 Jan Hubicka <hubicka@ucw.cz>
+ PR ipa/69630
+ * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
+ on cxa_pure_virtual.
+
+2016-03-10 Jan Hubicka <hubicka@ucw.cz>
+
PR lto/69589
* tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 2da5c013cf5..e4fb56210f6 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -3177,11 +3177,11 @@ possible_polymorphic_call_targets (tree otr_type,
if (!outer_type->all_derivations_known)
{
- if (!speculative && final_warning_records)
+ if (!speculative && final_warning_records
+ && TREE_CODE (TREE_TYPE (nodes[0]->decl)) == METHOD_TYPE)
{
if (complete
&& nodes.length () == 1
- && TREE_CODE (TREE_TYPE (nodes[0]->decl)) == METHOD_TYPE
&& warn_suggest_final_types
&& !outer_type->derived_types.length ())
{