]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR lto/54598 (ICE: Segmentation fault in lto1 at tree-streamer-in.c...
authorTerry Guo <terry.guo@arm.com>
Fri, 13 Sep 2013 05:26:32 +0000 (05:26 +0000)
committerXuepeng Guo <xguo@gcc.gnu.org>
Fri, 13 Sep 2013 05:26:32 +0000 (05:26 +0000)
2013-09-12  Terry Guo  <terry.guo@arm.com>

Backport from mainline
2012-09-17  Richard Guenther  <rguenther@suse.de>

PR lto/54598
* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
FIXED_VALUE_TYPE instead of struct fixed_value.

From-SVN: r202551

gcc/ChangeLog
gcc/tree-streamer-in.c

index a148b16f77c6e1a4f8786d74ad65e2b0ae8866a9..b9f8c33a983374e6d174f8cd9ba5c4e5da6c95b1 100644 (file)
@@ -1,3 +1,12 @@
+2013-09-12  Terry Guo  <terry.guo@arm.com>
+
+       Backport from mainline
+       2012-09-17  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/54598
+       * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
+       FIXED_VALUE_TYPE instead of struct fixed_value.
+
 2013-09-10  Richard Earnshaw  <rearnsha@arm.com>
 
        PR target/58361
index 840f4c2cb6d8c9204008c6b0d2e9c3c1346cd4ab..f2b12243b12a44f4de41873889a84ebdf2e430cd 100644 (file)
@@ -172,12 +172,11 @@ unpack_ts_real_cst_value_fields (struct bitpack_d *bp, tree expr)
 static void
 unpack_ts_fixed_cst_value_fields (struct bitpack_d *bp, tree expr)
 {
-  struct fixed_value fv;
-
-  fv.mode = bp_unpack_enum (bp, machine_mode, MAX_MACHINE_MODE);
-  fv.data.low = bp_unpack_var_len_int (bp);
-  fv.data.high = bp_unpack_var_len_int (bp);
-  TREE_FIXED_CST (expr) = fv;
+  FIXED_VALUE_TYPE *fp = ggc_alloc_fixed_value ();
+  fp->mode = bp_unpack_enum (bp, machine_mode, MAX_MACHINE_MODE);
+  fp->data.low = bp_unpack_var_len_int (bp);
+  fp->data.high = bp_unpack_var_len_int (bp);
+  TREE_FIXED_CST_PTR (expr) = fp;
 }