summaryrefslogtreecommitdiff
path: root/gcc/tree-streamer-out.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-04 23:04:18 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-04 23:04:18 +0000
commitd85a20139d881d9d1adab64ffc7305cb3ae98e2a (patch)
tree0f4ef35ecb306a63e1426bcc2ec3b362210eccfe /gcc/tree-streamer-out.c
parent4d4ec3c86cac3f21e5908f762285a995b69dd4e2 (diff)
parent7d500d30a2205a6e6e6783a4b92cc38d66f3b70b (diff)
downloadgcc-d85a20139d881d9d1adab64ffc7305cb3ae98e2a.tar.gz
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@202265 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-streamer-out.c')
-rw-r--r--gcc/tree-streamer-out.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index e6ddc7566ab..f678ae7b269 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
+#include "tm.h"
#include "diagnostic.h"
#include "tree.h"
#include "tree-streamer.h"
@@ -184,7 +185,6 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
/* Note that we do not write LABEL_DECL_UID. The reader will
always assume an initial value of -1 so that the
label_to_block_map is recreated by gimple_set_bb. */
- bp_pack_value (bp, DECL_ERROR_ISSUED (expr), 1);
bp_pack_var_len_unsigned (bp, EH_LANDING_PAD_NR (expr));
}
@@ -229,7 +229,6 @@ pack_ts_decl_wrtl_value_fields (struct bitpack_d *bp, tree expr)
static void
pack_ts_decl_with_vis_value_fields (struct bitpack_d *bp, tree expr)
{
- bp_pack_value (bp, DECL_DEFER_OUTPUT (expr), 1);
bp_pack_value (bp, DECL_COMMON (expr), 1);
bp_pack_value (bp, DECL_DLLIMPORT_P (expr), 1);
bp_pack_value (bp, DECL_WEAK (expr), 1);
@@ -241,11 +240,17 @@ pack_ts_decl_with_vis_value_fields (struct bitpack_d *bp, tree expr)
if (TREE_CODE (expr) == VAR_DECL)
{
bp_pack_value (bp, DECL_HARD_REGISTER (expr), 1);
- bp_pack_value (bp, DECL_IN_TEXT_SECTION (expr), 1);
+ /* DECL_IN_TEXT_SECTION is set during final asm output only. */
bp_pack_value (bp, DECL_IN_CONSTANT_POOL (expr), 1);
bp_pack_value (bp, DECL_TLS_MODEL (expr), 3);
}
+ if (TREE_CODE (expr) == FUNCTION_DECL)
+ {
+ bp_pack_value (bp, DECL_FINAL_P (expr), 1);
+ bp_pack_value (bp, DECL_CXX_CONSTRUCTOR_P (expr), 1);
+ bp_pack_value (bp, DECL_CXX_DESTRUCTOR_P (expr), 1);
+ }
if (VAR_OR_FUNCTION_DECL_P (expr))
bp_pack_var_len_unsigned (bp, DECL_INIT_PRIORITY (expr));
}
@@ -297,7 +302,10 @@ pack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, TYPE_NO_FORCE_BLK (expr), 1);
bp_pack_value (bp, TYPE_NEEDS_CONSTRUCTING (expr), 1);
if (RECORD_OR_UNION_TYPE_P (expr))
- bp_pack_value (bp, TYPE_TRANSPARENT_AGGR (expr), 1);
+ {
+ bp_pack_value (bp, TYPE_TRANSPARENT_AGGR (expr), 1);
+ bp_pack_value (bp, TYPE_FINAL_P (expr), 1);
+ }
else if (TREE_CODE (expr) == ARRAY_TYPE)
bp_pack_value (bp, TYPE_NONALIASED_COMPONENT (expr), 1);
bp_pack_value (bp, TYPE_PACKED (expr), 1);
@@ -819,9 +827,8 @@ write_ts_binfo_tree_pointers (struct output_block *ob, tree expr, bool ref_p)
FOR_EACH_VEC_SAFE_ELT (BINFO_BASE_ACCESSES (expr), i, t)
stream_write_tree (ob, t, ref_p);
- stream_write_tree (ob, BINFO_INHERITANCE_CHAIN (expr), ref_p);
- stream_write_tree (ob, BINFO_SUBVTT_INDEX (expr), ref_p);
- stream_write_tree (ob, BINFO_VPTR_INDEX (expr), ref_p);
+ /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX
+ and BINFO_VPTR_INDEX; these are used by C++ FE only. */
}