aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-05-28 18:49:51 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-05-28 18:49:51 +0000
commit86561bb62b0c40ecc6a7d30c6e59a8a1139ae11d (patch)
treea257ccf3f4392ed6e69eaa8a19d53a5dd19d8f65
parent0a74c7586cbf24b875c05507e6861070e74ffb69 (diff)
downloadgcc-86561bb62b0c40ecc6a7d30c6e59a8a1139ae11d.zip
gcc-86561bb62b0c40ecc6a7d30c6e59a8a1139ae11d.tar.gz
gcc-86561bb62b0c40ecc6a7d30c6e59a8a1139ae11d.tar.bz2
re PR lto/44312 (lto-streamer-in.c: In function ‘lto_read_tree’: warning: ‘fv.mode’ is used uninitialized in this function)
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. From-SVN: r159993
-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 5b083fd..1406ba2 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 2be1a40..f562d9c 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 58fe70e..d43de21 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);