aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2016-03-16 10:21:27 +0000
committerTom de Vries <vries@gcc.gnu.org>2016-03-16 10:21:27 +0000
commit448476ff530dd40419da63d06190b46771fcf96e (patch)
treef908b5c559b27c45440ee0bab1e4a6e6d8471671
parentb462f86075e21ebea2b77b09b322b51e89b571d2 (diff)
downloadgcc-448476ff530dd40419da63d06190b46771fcf96e.zip
gcc-448476ff530dd40419da63d06190b46771fcf96e.tar.gz
gcc-448476ff530dd40419da63d06190b46771fcf96e.tar.bz2
Safely use nodes[0] in possible_polymorphic_call_targets
2016-03-16 Tom de Vries <tom@codesourcery.com> PR lto/70187 * ipa-devirt.c (possible_polymorphic_call_targets): Move nodes.length () == 1 test to before first nodes[0] access. From-SVN: r234253
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-devirt.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e7c759f..3b131b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-03-16 Tom de Vries <tom@codesourcery.com>
+ PR lto/70187
+ * ipa-devirt.c (possible_polymorphic_call_targets): Move
+ nodes.length () == 1 test to before first nodes[0] access.
+
+2016-03-16 Tom de Vries <tom@codesourcery.com>
+
PR tree-optimization/68715
* graphite-scop-detection.c (scop_detection::merge_sese): Add missing
single_pred_p test.
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index e4fb562..4df171b 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -3178,10 +3178,10 @@ possible_polymorphic_call_targets (tree otr_type,
if (!outer_type->all_derivations_known)
{
if (!speculative && final_warning_records
+ && nodes.length () == 1
&& TREE_CODE (TREE_TYPE (nodes[0]->decl)) == METHOD_TYPE)
{
if (complete
- && nodes.length () == 1
&& warn_suggest_final_types
&& !outer_type->derived_types.length ())
{
@@ -3197,7 +3197,6 @@ possible_polymorphic_call_targets (tree otr_type,
}
if (complete
&& warn_suggest_final_methods
- && nodes.length () == 1
&& types_same_for_odr (DECL_CONTEXT (nodes[0]->decl),
outer_type->type))
{