summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-28 18:49:51 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-28 18:49:51 +0000
commite968c41c24d7d3c5664acd6160b47e0b836608f6 (patch)
treea257ccf3f4392ed6e69eaa8a19d53a5dd19d8f65
parent134c053efb725c8dfa8238c3329ea0439f96df09 (diff)
downloadgcc-e968c41c24d7d3c5664acd6160b47e0b836608f6.tar.gz
2010-05-28 Richard Guenther <rguenther@suse.de>
PR lto/44312 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields): Stream fixed-point constants mode. (unpack_ts_type_value_fields): Fix width of TYPE_MODE and TYPE_PRECISION. * lto-streamer-out.c (pack_ts_fixed_cst_value_fields): Stream fixed-point constants mode. (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE and TYPE_PRECISION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159993 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/lto-streamer-in.c5
-rw-r--r--gcc/lto-streamer-out.c5
3 files changed, 18 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5b083fd4d7b..1406ba2c78d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2010-05-28 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44312
+ * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
+ Stream fixed-point constants mode.
+ (unpack_ts_type_value_fields): Fix width of TYPE_MODE
+ and TYPE_PRECISION.
+ * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
+ Stream fixed-point constants mode.
+ (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
+ and TYPE_PRECISION.
+
2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 2be1a40e5ae..f562d9c38a3 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1637,6 +1637,7 @@ unpack_ts_fixed_cst_value_fields (struct bitpack_d *bp, tree expr)
fv.data.low = (HOST_WIDE_INT) bp_unpack_value (bp, HOST_BITS_PER_WIDE_INT);
fv.data.high = (HOST_WIDE_INT) bp_unpack_value (bp, HOST_BITS_PER_WIDE_INT);
+ fv.mode = (enum machine_mode) bp_unpack_value (bp, HOST_BITS_PER_INT);
TREE_FIXED_CST (expr) = fv;
}
@@ -1770,8 +1771,8 @@ unpack_ts_type_value_fields (struct bitpack_d *bp, tree expr)
{
enum machine_mode mode;
- TYPE_PRECISION (expr) = (unsigned) bp_unpack_value (bp, 9);
- mode = (enum machine_mode) bp_unpack_value (bp, 7);
+ TYPE_PRECISION (expr) = (unsigned) bp_unpack_value (bp, 10);
+ mode = (enum machine_mode) bp_unpack_value (bp, 8);
SET_TYPE_MODE (expr, mode);
TYPE_STRING_FLAG (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_NO_FORCE_BLK (expr) = (unsigned) bp_unpack_value (bp, 1);
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 58fe70e3018..d43de21616a 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -387,6 +387,7 @@ pack_ts_fixed_cst_value_fields (struct bitpack_d *bp, tree expr)
struct fixed_value fv = TREE_FIXED_CST (expr);
bp_pack_value (bp, fv.data.low, HOST_BITS_PER_WIDE_INT);
bp_pack_value (bp, fv.data.high, HOST_BITS_PER_WIDE_INT);
+ bp_pack_value (bp, fv.mode, HOST_BITS_PER_INT);
}
@@ -513,8 +514,8 @@ pack_ts_function_decl_value_fields (struct bitpack_d *bp, tree expr)
static void
pack_ts_type_value_fields (struct bitpack_d *bp, tree expr)
{
- bp_pack_value (bp, TYPE_PRECISION (expr), 9);
- bp_pack_value (bp, TYPE_MODE (expr), 7);
+ bp_pack_value (bp, TYPE_PRECISION (expr), 10);
+ bp_pack_value (bp, TYPE_MODE (expr), 8);
bp_pack_value (bp, TYPE_STRING_FLAG (expr), 1);
bp_pack_value (bp, TYPE_NO_FORCE_BLK (expr), 1);
bp_pack_value (bp, TYPE_NEEDS_CONSTRUCTING (expr), 1);