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 + + 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 * 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);