re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu...
authorYury Gribov <tetra2005@gmail.com>
Thu, 29 Jun 2017 08:50:21 +0000 (08:50 +0000)
committerMaxim Ostapenko <chefmax@gcc.gnu.org>
Thu, 29 Jun 2017 08:50:21 +0000 (11:50 +0300)
2017-06-29  Yury Gribov  <tetra2005@gmail.com>

PR bootstrap/80565
        * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
code.
        * ipa-inline.h
(edge_growth_cache_entry::edge_growth_cache_entry): New
function.
        (reset_edge_growth_cache): Update to use constructor.

From-SVN: r249771

gcc/ChangeLog
gcc/ipa-cp.c
gcc/ipa-inline.h

index 5211806db14504a566e2812a4a4e53e1f83f3400..68129a5aafa366cfd5acca406d32498e656c2060 100644 (file)
@@ -1,3 +1,13 @@
+2017-06-29  Yury Gribov  <tetra2005@gmail.com>
+
+       PR bootstrap/80565
+        * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
+       code.
+        * ipa-inline.h
+       (edge_growth_cache_entry::edge_growth_cache_entry): New
+       function.
+        (reset_edge_growth_cache): Update to use constructor.
+
 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
        * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
index c7e3c7107ca9d3a0c3aeed263ea7f3087651e926..ee0aa9f9c6cdb8a0bd7e307f12e667b88aed24fb 100644 (file)
@@ -159,6 +159,10 @@ public:
   /* Time benefit and size cost that specializing the function for this value
      can bring about in it's callees (transitively).  */
   int prop_time_benefit, prop_size_cost;
+
+  ipcp_value_base ()
+    : local_time_benefit (0), local_size_cost (0),
+      prop_time_benefit (0), prop_size_cost (0) {}
 };
 
 /* Describes one particular value stored in struct ipcp_lattice.  */
@@ -188,6 +192,10 @@ public:
   /* True if this valye is currently on the topo-sort stack.  */
   bool on_stack;
 
+  ipcp_value()
+    : sources (0), next (0), scc_next (0), topo_next (0),
+      spec_node (0), dfs (0), low_link (0), on_stack (false) {}
+
   void add_source (cgraph_edge *cs, ipcp_value *src_val, int src_idx,
                   HOST_WIDE_INT offset);
 };
index 54c1ed97d5782e7586198c8cf2e9ea30f8205538..4b9a1c2191ad49c7172e38e9ffe07910ef3715e6 100644 (file)
@@ -28,6 +28,14 @@ struct edge_growth_cache_entry
   sreal time, nonspec_time;
   int size;
   ipa_hints hints;
+
+  edge_growth_cache_entry()
+    : size (0), hints (0) {}
+
+  edge_growth_cache_entry(int64_t time, int64_t nonspec_time,
+                         int size, ipa_hints hints)
+    : time (time), nonspec_time (nonspec_time), size (size),
+      hints (hints) {}
 };
 
 extern vec<edge_growth_cache_entry> edge_growth_cache;
@@ -116,7 +124,7 @@ reset_edge_growth_cache (struct cgraph_edge *edge)
 {
   if ((int)edge_growth_cache.length () > edge->uid)
     {
-      struct edge_growth_cache_entry zero = {0, 0, 0, 0};
+      struct edge_growth_cache_entry zero (0, 0, 0, 0);
       edge_growth_cache[edge->uid] = zero;
     }
 }