diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-11-24 21:35:16 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-11-24 20:35:16 +0000 |
commit | ba6a6a1d44c17f25671162c00dafd9959818667f (patch) | |
tree | bfa02931487309252ffddfb0ef2cd4f62997167f /gcc/tree-streamer-in.c | |
parent | 0b87a9a2bd3835e62e690c8acd4bbb4b3bec27c7 (diff) | |
download | gcc-ba6a6a1d44c17f25671162c00dafd9959818667f.zip gcc-ba6a6a1d44c17f25671162c00dafd9959818667f.tar.gz gcc-ba6a6a1d44c17f25671162c00dafd9959818667f.tar.bz2 |
alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant.
* alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
double check that type is main variant.
* tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
variant.
(verify_type_variant): Verify that variants have no
TYPE_ALIAS_SET_KNOWN_P set
* tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
streaming so constant fields come first; stream TYPE_ALIAS_SET==0
only for main variants; stream TYPE_ALIAS_SET as a bit.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
accordingly.
From-SVN: r230838
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r-- | gcc/tree-streamer-in.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index 65a1ce3..7eeab8a 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -362,6 +362,11 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr) /* TYPE_NO_FORCE_BLK is private to stor-layout and need no streaming. */ TYPE_NEEDS_CONSTRUCTING (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_RESTRICT (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_USER_ALIGN (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_READONLY (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_ALIAS_SET (expr) = bp_unpack_value (bp, 1) ? 0 : -1; if (RECORD_OR_UNION_TYPE_P (expr)) { TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1); @@ -369,17 +374,12 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr) } else if (TREE_CODE (expr) == ARRAY_TYPE) TYPE_NONALIASED_COMPONENT (expr) = (unsigned) bp_unpack_value (bp, 1); - TYPE_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1); - TYPE_RESTRICT (expr) = (unsigned) bp_unpack_value (bp, 1); - TYPE_USER_ALIGN (expr) = (unsigned) bp_unpack_value (bp, 1); - TYPE_READONLY (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_PRECISION (expr) = bp_unpack_var_len_unsigned (bp); TYPE_ALIGN (expr) = bp_unpack_var_len_unsigned (bp); #ifdef ACCEL_COMPILER if (TYPE_ALIGN (expr) > targetm.absolute_biggest_alignment) TYPE_ALIGN (expr) = targetm.absolute_biggest_alignment; #endif - TYPE_ALIAS_SET (expr) = bp_unpack_var_len_int (bp); } |