ira-costs.c (find_costs_and_classes): Initialize cost_classes later to make sure...
authorJakub Jelinek <jakub@redhat.com>
Tue, 20 Jun 2017 19:43:29 +0000 (21:43 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 20 Jun 2017 19:43:29 +0000 (21:43 +0200)
* 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

gcc/ChangeLog
gcc/ira-costs.c

index 8f1bb3d35fadbfae522b36430f159cf9dfa1c2f0..200dbe41fd608e0d32c1910cb279151230548271 100644 (file)
@@ -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
index 9cf0119422553d27d1b0bca9be7ca126d5d03371..2cd102a08102b8606c0ed89a5043336ac993c00b 100644 (file)
@@ -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;