summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-streamer-in.c11
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c1ba2e5b743..d0a6303768e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2012-09-17 Georg-Johann Lay <avr@gjlay.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.
+
+2012-09-17 Georg-Johann Lay <avr@gjlay.de>
+
* config/avr/avr.c (CONST_FIXED_P): Remove define.
* config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index a38fb470b1f..5f9f7a2fef7 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -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;
}