OSDN Git Service

2013-09-12 Terry Guo <terry.guo@arm.com>
authorxguo <xguo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Sep 2013 05:26:32 +0000 (05:26 +0000)
committerxguo <xguo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Sep 2013 05:26:32 +0000 (05:26 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@202551 138bc75d-0d04-0410-961f-82ee72b054a4

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

index a148b16..b9f8c33 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 840f4c2..f2b1224 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;
 }