diff options
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r-- | gcc/tree-streamer-in.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index 47a539a..a86bcd8 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -272,6 +272,12 @@ unpack_ts_decl_with_vis_value_fields (struct bitpack_d *bp, tree expr) DECL_TLS_MODEL (expr) = (enum tls_model) bp_unpack_value (bp, 3); } + if (TREE_CODE (expr) == FUNCTION_DECL) + { + DECL_FINAL_P (expr) = (unsigned) bp_unpack_value (bp, 1); + DECL_CXX_CONSTRUCTOR_P (expr) = (unsigned) bp_unpack_value (bp, 1); + DECL_CXX_DESTRUCTOR_P (expr) = (unsigned) bp_unpack_value (bp, 1); + } if (VAR_OR_FUNCTION_DECL_P (expr)) { priority_type p; @@ -343,7 +349,10 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr) TYPE_NO_FORCE_BLK (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_NEEDS_CONSTRUCTING (expr) = (unsigned) bp_unpack_value (bp, 1); if (RECORD_OR_UNION_TYPE_P (expr)) - TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1); + { + TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1); + TYPE_FINAL_P (expr) = (unsigned) bp_unpack_value (bp, 1); + } 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); |