aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-12-04 14:44:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-12-04 14:44:24 +0000
commit246551974690175d93ce481e65ce2a26bdb37958 (patch)
tree07b2476137ab183614c61f46dc4951b804999431 /gcc
parentc8b3e92f208415d758fcd6cf28ebe1b8202a36b9 (diff)
downloadgcc-246551974690175d93ce481e65ce2a26bdb37958.zip
gcc-246551974690175d93ce481e65ce2a26bdb37958.tar.gz
gcc-246551974690175d93ce481e65ce2a26bdb37958.tar.bz2
lto-streamer-out.c (pack_ts_decl_common_value_fields): Revert previous change.
2009-12-04 Richard Guenther <rguenther@suse.de> * lto-streamer-out.c (pack_ts_decl_common_value_fields): Revert previous change. (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR. * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): Likewise. From-SVN: r154980
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/lto-streamer-in.c5
-rw-r--r--gcc/lto-streamer-out.c9
3 files changed, 19 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6319ca9..450d54d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2009-12-04 Richard Guenther <rguenther@suse.de>
+ * lto-streamer-out.c (pack_ts_decl_common_value_fields):
+ Revert previous change.
+ (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
+ * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
+ Likewise.
+
+2009-12-04 Richard Guenther <rguenther@suse.de>
+
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
BUILT_IN_MALLOC.
(call_may_clobber_ref_p_1): Likewise.
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 16ae9b8..a0ead410 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -2044,6 +2044,11 @@ lto_input_ts_decl_common_tree_pointers (struct lto_input_block *ib,
if (TREE_CODE (expr) == PARM_DECL)
TREE_CHAIN (expr) = lto_input_chain (ib, data_in);
+
+ if ((TREE_CODE (expr) == VAR_DECL
+ || TREE_CODE (expr) == PARM_DECL)
+ && DECL_HAS_VALUE_EXPR_P (expr))
+ SET_DECL_VALUE_EXPR (expr, lto_input_tree (ib, data_in));
}
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 30d35c7..49877ff 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -430,11 +430,9 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
|| TREE_CODE (expr) == VAR_DECL)
{
bp_pack_value (bp, DECL_BY_REFERENCE (expr), 1);
- /* DECL_HAS_VALUE_EXPR_P: Do not falsely pretend we have value
- expressions, we do not stream those at the moment. */
if (TREE_CODE (expr) == VAR_DECL
|| TREE_CODE (expr) == PARM_DECL)
- bp_pack_value (bp, false, 1);
+ bp_pack_value (bp, DECL_HAS_VALUE_EXPR_P (expr), 1);
bp_pack_value (bp, DECL_RESTRICTED_P (expr), 1);
}
}
@@ -850,6 +848,11 @@ lto_output_ts_decl_common_tree_pointers (struct output_block *ob, tree expr,
if (TREE_CODE (expr) == PARM_DECL)
lto_output_chain (ob, TREE_CHAIN (expr), ref_p);
+
+ if ((TREE_CODE (expr) == VAR_DECL
+ || TREE_CODE (expr) == PARM_DECL)
+ && DECL_HAS_VALUE_EXPR_P (expr))
+ lto_output_tree_or_ref (ob, DECL_VALUE_EXPR (expr), ref_p);
}