diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-04 23:04:18 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-04 23:04:18 +0000 |
commit | d85a20139d881d9d1adab64ffc7305cb3ae98e2a (patch) | |
tree | 0f4ef35ecb306a63e1426bcc2ec3b362210eccfe /gcc/tree-streamer-out.c | |
parent | 4d4ec3c86cac3f21e5908f762285a995b69dd4e2 (diff) | |
parent | 7d500d30a2205a6e6e6783a4b92cc38d66f3b70b (diff) | |
download | gcc-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.c | 21 |
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. */ } |