I just committed a merge with [EMAIL PROTECTED] This merge exposed a streaming bug in constants. The TREE_OVERFLOW bug does not need to be streamed out, as it is computed during optimization.
Tested on x86_64. Diego.
2008-12-09 Diego Novillo <[EMAIL PROTECTED]> Mainline merge @142607. * configure.ac (ACX_PKGVERSION): Update revision merge string. * configure: Regenerate. 2008-12-09 Diego Novillo <[EMAIL PROTECTED]> * lto-tree-tags.def: Move COND_EXPR to TREE_SINGLE_MECHANICAL_TRUE handler. * lto-function-in.c (input_expr_operand): Remove special handler for COND_EXPR. (input_tree_operand): Likewise. * lto-tree-flags.def: Do not stream out TREE_OVERFLOW for INTEGER_CST. Index: lto-tree-tags.def =================================================================== --- lto-tree-tags.def (revision 142610) +++ lto-tree-tags.def (working copy) @@ -67,7 +67,6 @@ MAP_EXPR_TAG(ARRAY_TYPE, LTO_array_type) MAP_EXPR_TAG(BOOLEAN_TYPE, LTO_boolean_type) MAP_EXPR_TAG(COMPLEX_TYPE, LTO_complex_type) - MAP_EXPR_TAG(COND_EXPR, LTO_cond_expr) MAP_EXPR_TAG(COMPONENT_REF, LTO_component_ref) MAP_EXPR_TAG(CONST_DECL, LTO_const_decl) MAP_EXPR_TAG(CONSTRUCTOR, LTO_constructor) @@ -118,6 +117,7 @@ MAP_EXPR_TAG(COMPLEX_EXPR, LTO_complex_expr) MAP_EXPR_TAG(COMPOUND_EXPR, LTO_compound_expr) MAP_EXPR_TAG(COMPOUND_LITERAL_EXPR, LTO_compound_literal_expr) + MAP_EXPR_TAG(COND_EXPR, LTO_cond_expr) MAP_EXPR_TAG(CONJ_EXPR, LTO_conj_expr) MAP_EXPR_TAG(CONVERT_EXPR, LTO_convert_expr) MAP_EXPR_TAG(DECL_EXPR, LTO_decl_expr) Index: lto-function-in.c =================================================================== --- lto-function-in.c (revision 142610) +++ lto-function-in.c (working copy) @@ -877,18 +877,6 @@ input_expr_operand (struct lto_input_blo result = get_label_decl (data_in, ib); break; - case COND_EXPR: - { - tree op0; - tree op1; - tree op2; - op0 = input_expr_operand (ib, data_in, fn, input_record_start (ib)); - op1 = input_expr_operand (ib, data_in, fn, input_record_start (ib)); - op2 = input_expr_operand (ib, data_in, fn, input_record_start (ib)); - result = build3 (code, type, op0, op1, op2); - } - break; - case COMPONENT_REF: { tree op0; @@ -3738,18 +3726,6 @@ input_tree_operand (struct lto_input_blo } break; - case COND_EXPR: - { - tree op0; - tree op1; - tree op2; - op0 = input_tree_operand (ib, data_in, fn, input_record_start (ib)); - op1 = input_tree_operand (ib, data_in, fn, input_record_start (ib)); - op2 = input_tree_operand (ib, data_in, fn, input_record_start (ib)); - result = build3 (code, type, op0, op1, op2); - } - break; - case COMPONENT_REF: { tree op0; Index: lto-tree-flags.def =================================================================== --- lto-tree-flags.def (revision 142610) +++ lto-tree-flags.def (working copy) @@ -417,7 +417,6 @@ START_EXPR_CASE (INTEGER_CST) ADD_EXPR_FLAG (static_flag) - ADD_EXPR_FLAG (public_flag) END_EXPR_CASE (INTEGER_CST) START_EXPR_CASE (INTEGER_TYPE)