aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-06-20 21:43:29 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-06-20 21:43:29 +0200
commit0dc7d7cc944ddf8903d14199922fe31cec9693dd (patch)
treed9d386ac3cb54b91d77d0cb3b8e7a281d3b33928 /gcc
parent8a259e30b1738597b9ddd9d31974d365038fa1d1 (diff)
downloadgcc-0dc7d7cc944ddf8903d14199922fe31cec9693dd.zip
gcc-0dc7d7cc944ddf8903d14199922fe31cec9693dd.tar.gz
gcc-0dc7d7cc944ddf8903d14199922fe31cec9693dd.tar.bz2
ira-costs.c (find_costs_and_classes): Initialize cost_classes later to make sure not to dereference a NULL...
* ira-costs.c (find_costs_and_classes): Initialize cost_classes later to make sure not to dereference a NULL cost_classes_ptr pointer. From-SVN: r249426
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-costs.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f1bb3d..200dbe4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-20 Jakub Jelinek <jakub@redhat.com>
+
+ * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
+ to make sure not to dereference a NULL cost_classes_ptr pointer.
+
2017-06-20 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 9cf0119..2cd102a 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -1744,7 +1744,7 @@ find_costs_and_classes (FILE *dump_file)
int best_cost, allocno_cost;
enum reg_class best, alt_class;
cost_classes_t cost_classes_ptr = regno_cost_classes[i];
- enum reg_class *cost_classes = cost_classes_ptr->classes;
+ enum reg_class *cost_classes;
int *i_costs = temp_costs->cost;
int i_mem_cost;
int equiv_savings = regno_equiv_gains[i];
@@ -1755,6 +1755,7 @@ find_costs_and_classes (FILE *dump_file)
continue;
memcpy (temp_costs, COSTS (costs, i), struct_costs_size);
i_mem_cost = temp_costs->mem_cost;
+ cost_classes = cost_classes_ptr->classes;
}
else
{
@@ -1762,6 +1763,7 @@ find_costs_and_classes (FILE *dump_file)
continue;
memset (temp_costs, 0, struct_costs_size);
i_mem_cost = 0;
+ cost_classes = cost_classes_ptr->classes;
/* Find cost of all allocnos with the same regno. */
for (a = ira_regno_allocno_map[i];
a != NULL;