aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-streamer-in.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r--gcc/tree-streamer-in.c11
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);