Fix bootstrap issue with gcc 4.1

Jan Hubicka hubicka@ucw.cz
Wed May 3 16:22:00 GMT 2017


Hi,
my change to sreals makes GCC to be miscompiled with GCC 4.1 and -O0.  This is
related to fact that using sreal implies a non-trivial constructor and thus
ggc_cleared_alloc is no longer standard compliant.  I however do not quite understand
why GCC 4.1 manages to misoptimize this code but I have checked that this helps
to fix the issue and hopefully will re-start our periodic testers.

Bootstrapped x86_64-linux and comitted.

Honza

Index: ipa-inline.h
===================================================================
--- ipa-inline.h	(revision 247549)
+++ ipa-inline.h	(working copy)
@@ -175,6 +175,16 @@ struct GTY(()) inline_summary
   int growth;
   /* Number of SCC on the beginning of inlining process.  */
   int scc_no;
+
+  void inline_summary ()
+    : estimated_self_stack_size (0), self_size (0), self_time (0), min_size (0),
+      inlinable (false), contains_cilk_spawn (false), single_caller (false),
+      fp_expressions (false), estimated_stack_size (false),
+      stack_frame_offset (false), time (0), size (0), conds (NULL),
+      entry (NULL), loop_iterations (NULL), loop_stride (NULL),
+      array_ined (NULL), growth (0), scc_no (0)
+    {
+    }
 };
 
 class GTY((user)) inline_summary_t: public function_summary <inline_summary *>
@@ -185,7 +195,7 @@ public:
 
   static inline_summary_t *create_ggc (symbol_table *symtab)
   {
-    struct inline_summary_t *summary = new (ggc_cleared_alloc <inline_summary_t> ())
+    struct inline_summary_t *summary = new (ggc_alloc <inline_summary_t> ())
       inline_summary_t(symtab, true);
     summary->disable_insertion_hook ();
     return summary;



More information about the Gcc-patches mailing list