This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: begin removing size_int_type


Richard Henderson wrote:

Indeed, I would prefer that we move the other direction.  Virtually
all invocations of build_int_cst build single-word integers.  It
would be nice if, say, build_int_cst took one HOST_WIDE_INT argument
and, say, build_int_cst_wide took the full two integer arguments.
this patch changes the interface so that,
* build_int_cst takes a single HOST_WIDE_INT that is then sign extended
* build_int_cstu takes a single unsigned HOST_WIDE_INT that is zero extended
* build_int_cst_wide takes a pair.

I decided that build_int_cst should always sign extend, rather than examine
the signedness of the type, because this behaviour matches C itself.

booted & tested on i686-pc-linux-gnu, ok?

nathan

--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk

2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>

	tree.h  (build_int_cst): New, sign extended constant.
	(build_int_cstu): New, zero extended constant.
	(build_int_cst_wide): Renamed from build_int_cst.
	* tree.c (build_int_cst, build_int_cstu): New.
	(build_int_cst_wide): Renamed from build_int_cst.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Adjust build_int_cst calls.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_classify_type,
	fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
	fold_builtin_toascii, fold_builtin_isdigit,
	simplify_builtin_strstr, simplify_builtin_strpbrk,
	fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
	* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
	DEF_ATTR_INT): Likewise.
	* c-decl.c (complete_array_type, check_bitfield_type_and_width):
	Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	convert.c (convert_to_pointer): Likewise.
	coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* except.c (init_eh, assign_filter_values): Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const, round_up,
	round_down): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_case, estimate_case_costs):
	Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.
	* tree-vectorizer.c (vect_create_index_for_array_ref,
	vect_transform_loop_bound, vect_compute_data_ref_alignment):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
	alpha_gimplify_va_arg_1): Likewise.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.
	
	* ada/cuintp.c (UI_To_gnu): Likewise.
	* ada/trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
	* ada/utils.c (init_gigi_decls): Likewise.
	* ada/utils2.c (build_call_raise, build_allocator): Likewise.
	
	* cp/call.c (convert_class_to_reference,
	build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Likewise.
	* cp/class.c (finish_struct_1, build_vtbl_initializer): Likewise.
	* cp/cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cp/cvt.c (cp_convert_to_pointer): Likewise.
	* cp/decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* cp/decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* cp/except.c (build_throw): Likewise.
	* cp/mangle.c (write_integer_cst): Likewise.
	* cp/method.c (finish_thunk): Likewise.
	* cp/rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* cp/search.c (get_dynamic_cast_base_type): Likewise.
	
	* fortran/trans-array.c (gfc_trans_array_constructor_value): Likewise.
	* fortran/trans-const.c (gfc_build_string_const, gfc_init_constants,
	gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
	* fortran/trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
	gfc_trans_entry_master_switch): Likewise.
	* fortran/trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* fortran/trans-io.c (add_case, set_error_locus,
	transfer_namelist_element, transfer_expr): Likewise.
	* fortran/trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* fortran/trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* fortran/trans.c (gfc_trans_runtime_check): Likewise.

	* java/boehm.c (get_boehm_type_descriptor
	* java/class.c (build_utf8_ref, build_static_field_ref,
	make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table): Likewise.
	* java/constants.c (get_tag_node, build_ref_from_constant_pool,
	build_constants_constructor): Likewise.
	* java/decl.c (java_init_decl_processing): Likewise.
	* java/expr.c (build_java_array_length_access, build_newarray,
	expand_java_multianewarray, expand_java_pushc, expand_iinc,
	build_java_binop, build_field_ref, expand_java_add_case,
	expand_java_call, build_known_method_ref, build_invokevirtual,
	build_invokeinterface, build_jni_stub): Likewise.
	* java/java-gimplify.c (java_gimplify_new_array_init): Likewise.
	* java/jcf-parse.c (get_constant): Likewise.
	* java/lex.c (do_java_lex): Likewise.
	* java/parse.y (patch_binop, patch_unaryop, patch_cast,
	build_newarray_node, patch_newarray): Likewise.
	* java/resource.c (compile_resource_data): Likewise.
	* java/typeck.c (build_prim_array_type): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Likewise.

Index: builtins.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/builtins.c,v
retrieving revision 1.372
diff -c -3 -p -r1.372 builtins.c
*** builtins.c	15 Aug 2004 15:44:49 -0000	1.372
--- builtins.c	23 Aug 2004 17:19:27 -0000
*************** expand_builtin_prefetch (tree arglist)
*** 903,914 ****
        if (TREE_CHAIN (TREE_CHAIN (arglist)))
  	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
        else
! 	arg2 = build_int_cst (NULL_TREE, 3, 0);
      }
    else
      {
        arg1 = integer_zero_node;
!       arg2 = build_int_cst (NULL_TREE, 3, 0);
      }
  
    /* Argument 0 is an address.  */
--- 903,914 ----
        if (TREE_CHAIN (TREE_CHAIN (arglist)))
  	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
        else
! 	arg2 = build_int_cst (NULL_TREE, 3);
      }
    else
      {
        arg1 = integer_zero_node;
!       arg2 = build_int_cst (NULL_TREE, 3);
      }
  
    /* Argument 0 is an address.  */
*************** expand_builtin_strstr (tree arglist, rtx
*** 2491,2497 ****
        /* New argument list transforming strstr(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0], 0));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return expand_expr (build_function_call_expr (fn, arglist),
  			  target, mode, EXPAND_NORMAL);
--- 2491,2497 ----
        /* New argument list transforming strstr(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0]));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return expand_expr (build_function_call_expr (fn, arglist),
  			  target, mode, EXPAND_NORMAL);
*************** expand_builtin_strpbrk (tree arglist, rt
*** 2648,2654 ****
        /* New argument list transforming strpbrk(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0], 0));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return expand_expr (build_function_call_expr (fn, arglist),
  			  target, mode, EXPAND_NORMAL);
--- 2648,2654 ----
        /* New argument list transforming strpbrk(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0]));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return expand_expr (build_function_call_expr (fn, arglist),
  			  target, mode, EXPAND_NORMAL);
*************** expand_builtin_fputs (tree arglist, rtx 
*** 4679,4685 ****
  	    arglist = build_tree_list (NULL_TREE,
  				       TREE_VALUE (TREE_CHAIN (arglist)));
  	    arglist = tree_cons (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p[0], 0),
  				 arglist);
  	    fn = fn_fputc;
  	    break;
--- 4679,4685 ----
  	    arglist = build_tree_list (NULL_TREE,
  				       TREE_VALUE (TREE_CHAIN (arglist)));
  	    arglist = tree_cons (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p[0]),
  				 arglist);
  	    fn = fn_fputc;
  	    break;
*************** build_string_literal (int len, const cha
*** 4937,4943 ****
  
    t = build_string (len, str);
    elem = build_type_variant (char_type_node, 1, 0);
!   index = build_index_type (build_int_cst (NULL_TREE, len - 1, 0));
    type = build_array_type (elem, index);
    TREE_TYPE (t) = type;
    TREE_CONSTANT (t) = 1;
--- 4937,4943 ----
  
    t = build_string (len, str);
    elem = build_type_variant (char_type_node, 1, 0);
!   index = build_index_type (build_int_cst (NULL_TREE, len - 1));
    type = build_array_type (elem, index);
    TREE_TYPE (t) = type;
    TREE_CONSTANT (t) = 1;
*************** expand_builtin_printf (tree arglist, rtx
*** 5023,5029 ****
  	  /* Given printf("c"), (where c is any one character,)
  	     convert "c"[0] to an int and pass that to the replacement
  	     function.  */
! 	  arg = build_int_cst (NULL_TREE, fmt_str[0], 0);
  	  arglist = build_tree_list (NULL_TREE, arg);
  	  fn = fn_putchar;
  	}
--- 5023,5029 ----
  	  /* Given printf("c"), (where c is any one character,)
  	     convert "c"[0] to an int and pass that to the replacement
  	     function.  */
! 	  arg = build_int_cst (NULL_TREE, fmt_str[0]);
  	  arglist = build_tree_list (NULL_TREE, arg);
  	  fn = fn_putchar;
  	}
*************** expand_builtin_sprintf (tree arglist, rt
*** 5194,5200 ****
  		   const0_rtx, VOIDmode, EXPAND_NORMAL);
        if (target == const0_rtx)
  	return const0_rtx;
!       exp = build_int_cst (NULL_TREE, strlen (fmt_str), 0);
        return expand_expr (exp, target, mode, EXPAND_NORMAL);
      }
    /* If the format is "%s", use strcpy if the result isn't used.  */
--- 5194,5200 ----
  		   const0_rtx, VOIDmode, EXPAND_NORMAL);
        if (target == const0_rtx)
  	return const0_rtx;
!       exp = build_int_cst (NULL_TREE, strlen (fmt_str));
        return expand_expr (exp, target, mode, EXPAND_NORMAL);
      }
    /* If the format is "%s", use strcpy if the result isn't used.  */
*************** static tree
*** 6271,6280 ****
  fold_builtin_classify_type (tree arglist)
  {
    if (arglist == 0)
!     return build_int_cst (NULL_TREE, no_type_class, 0);
  
    return build_int_cst (NULL_TREE,
! 			type_to_class (TREE_TYPE (TREE_VALUE (arglist))), 0);
  }
  
  /* Fold a call to __builtin_inf or __builtin_huge_val.  */
--- 6271,6280 ----
  fold_builtin_classify_type (tree arglist)
  {
    if (arglist == 0)
!     return build_int_cst (NULL_TREE, no_type_class);
  
    return build_int_cst (NULL_TREE,
! 			type_to_class (TREE_TYPE (TREE_VALUE (arglist))));
  }
  
  /* Fold a call to __builtin_inf or __builtin_huge_val.  */
*************** fold_builtin_lround (tree exp)
*** 6707,6713 ****
  
  	  real_round (&r, TYPE_MODE (ftype), &x);
  	  REAL_VALUE_TO_INT (&lo, &hi, r);
! 	  result = build_int_cst (NULL_TREE, lo, hi);
  	  if (int_fits_type_p (result, itype))
  	    return fold_convert (itype, result);
  	}
--- 6707,6713 ----
  
  	  real_round (&r, TYPE_MODE (ftype), &x);
  	  REAL_VALUE_TO_INT (&lo, &hi, r);
! 	  result = build_int_cst_wide (NULL_TREE, lo, hi);
  	  if (int_fits_type_p (result, itype))
  	    return fold_convert (itype, result);
  	}
*************** fold_builtin_bitop (tree exp)
*** 6816,6822 ****
  	  abort();
  	}
  
!       return build_int_cst (TREE_TYPE (exp), result, 0);
      }
  
    return NULL_TREE;
--- 6816,6822 ----
  	  abort();
  	}
  
!       return build_int_cst (TREE_TYPE (exp), result);
      }
  
    return NULL_TREE;
*************** fold_builtin_isascii (tree arglist)
*** 7573,7580 ****
  
        arg = build2 (BIT_AND_EXPR, integer_type_node, arg,
  		    build_int_cst (NULL_TREE,
! 				   ~ (unsigned HOST_WIDE_INT) 0x7f,
! 				   ~ (HOST_WIDE_INT) 0));
        arg = fold (build2 (EQ_EXPR, integer_type_node,
  			  arg, integer_zero_node));
  
--- 7573,7579 ----
  
        arg = build2 (BIT_AND_EXPR, integer_type_node, arg,
  		    build_int_cst (NULL_TREE,
! 				   ~ (unsigned HOST_WIDE_INT) 0x7f));
        arg = fold (build2 (EQ_EXPR, integer_type_node,
  			  arg, integer_zero_node));
  
*************** fold_builtin_toascii (tree arglist)
*** 7598,7604 ****
        tree arg = TREE_VALUE (arglist);
  
        return fold (build2 (BIT_AND_EXPR, integer_type_node, arg,
! 			   build_int_cst (NULL_TREE, 0x7f, 0)));
      }
  }
  
--- 7597,7603 ----
        tree arg = TREE_VALUE (arglist);
  
        return fold (build2 (BIT_AND_EXPR, integer_type_node, arg,
! 			   build_int_cst (NULL_TREE, 0x7f)));
      }
  }
  
*************** fold_builtin_isdigit (tree arglist)
*** 7616,7624 ****
        tree arg = TREE_VALUE (arglist);
        arg = fold_convert (unsigned_type_node, arg);
        arg = build2 (MINUS_EXPR, unsigned_type_node, arg,
! 		    build_int_cst (unsigned_type_node, TARGET_DIGIT0, 0));
        arg = build2 (LE_EXPR, integer_type_node, arg,
! 		    build_int_cst (unsigned_type_node, 9, 0));
        arg = fold (arg);
        if (in_gimple_form && !TREE_CONSTANT (arg))
          return NULL_TREE;
--- 7615,7623 ----
        tree arg = TREE_VALUE (arglist);
        arg = fold_convert (unsigned_type_node, arg);
        arg = build2 (MINUS_EXPR, unsigned_type_node, arg,
! 		    build_int_cst (unsigned_type_node, TARGET_DIGIT0));
        arg = build2 (LE_EXPR, integer_type_node, arg,
! 		    build_int_cst (unsigned_type_node, 9));
        arg = fold (arg);
        if (in_gimple_form && !TREE_CONSTANT (arg))
          return NULL_TREE;
*************** simplify_builtin_strstr (tree arglist)
*** 8696,8702 ****
        /* New argument list transforming strstr(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0], 0));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return build_function_call_expr (fn, arglist);
      }
--- 8695,8701 ----
        /* New argument list transforming strstr(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0]));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return build_function_call_expr (fn, arglist);
      }
*************** simplify_builtin_strpbrk (tree arglist)
*** 8882,8888 ****
        /* New argument list transforming strpbrk(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0], 0));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return build_function_call_expr (fn, arglist);
      }
--- 8881,8887 ----
        /* New argument list transforming strpbrk(s1, s2) to
  	 strchr(s1, s2[0]).  */
        arglist = build_tree_list (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p2[0]));
        arglist = tree_cons (NULL_TREE, s1, arglist);
        return build_function_call_expr (fn, arglist);
      }
*************** fold_builtin_fputs (tree arglist, bool i
*** 9133,9139 ****
  	    arglist = build_tree_list (NULL_TREE,
  				       TREE_VALUE (TREE_CHAIN (arglist)));
  	    arglist = tree_cons (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p[0], 0),
  				 arglist);
  	    fn = fn_fputc;
  	    break;
--- 9132,9138 ----
  	    arglist = build_tree_list (NULL_TREE,
  				       TREE_VALUE (TREE_CHAIN (arglist)));
  	    arglist = tree_cons (NULL_TREE,
! 				 build_int_cst (NULL_TREE, p[0]),
  				 arglist);
  	    fn = fn_fputc;
  	    break;
*************** simplify_builtin_sprintf (tree arglist, 
*** 9258,9264 ****
        arglist = tree_cons (NULL_TREE, dest, arglist);
        call = build_function_call_expr (fn, arglist);
        if (!ignored)
! 	retval = build_int_cst (NULL_TREE, strlen (fmt_str), 0);
      }
  
    /* If the format is "%s", use strcpy if the result isn't used.  */
--- 9257,9263 ----
        arglist = tree_cons (NULL_TREE, dest, arglist);
        call = build_function_call_expr (fn, arglist);
        if (!ignored)
! 	retval = build_int_cst (NULL_TREE, strlen (fmt_str));
      }
  
    /* If the format is "%s", use strcpy if the result isn't used.  */
Index: c-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-common.c,v
retrieving revision 1.557
diff -c -3 -p -r1.557 c-common.c
*** c-common.c	23 Aug 2004 08:41:39 -0000	1.557
--- c-common.c	23 Aug 2004 17:19:41 -0000
*************** start_fname_decls (void)
*** 660,666 ****
  
        if (decl)
  	{
! 	  saved = tree_cons (decl, build_int_cst (NULL_TREE, ix, 0), saved);
  	  *fname_vars[ix].decl = NULL_TREE;
  	}
      }
--- 660,666 ----
  
        if (decl)
  	{
! 	  saved = tree_cons (decl, build_int_cst (NULL_TREE, ix), saved);
  	  *fname_vars[ix].decl = NULL_TREE;
  	}
      }
*************** fix_string_type (tree value)
*** 851,857 ****
       For C++, this is the standard behavior.  */
    if (flag_const_strings)
      e_type = build_type_variant (e_type, 1, 0);
!   i_type = build_index_type (build_int_cst (NULL_TREE, nchars - 1, 0));
    TREE_TYPE (value) = build_array_type (e_type, i_type);
  
    TREE_CONSTANT (value) = 1;
--- 851,857 ----
       For C++, this is the standard behavior.  */
    if (flag_const_strings)
      e_type = build_type_variant (e_type, 1, 0);
!   i_type = build_index_type (build_int_cst (NULL_TREE, nchars - 1));
    TREE_TYPE (value) = build_array_type (e_type, i_type);
  
    TREE_CONSTANT (value) = 1;
*************** shorten_compare (tree *op0_ptr, tree *op
*** 1992,2000 ****
  	{
  	  /* Convert primop1 to target type, but do not introduce
  	     additional overflow.  We know primop1 is an int_cst.  */
! 	  tree tmp = build_int_cst (*restype_ptr,
! 				    TREE_INT_CST_LOW (primop1),
! 				    TREE_INT_CST_HIGH (primop1));
  
  	  primop1 = force_fit_type (tmp, 0, TREE_OVERFLOW (primop1),
  				    TREE_CONSTANT_OVERFLOW (primop1));
--- 1992,2000 ----
  	{
  	  /* Convert primop1 to target type, but do not introduce
  	     additional overflow.  We know primop1 is an int_cst.  */
! 	  tree tmp = build_int_cst_wide (*restype_ptr,
! 					 TREE_INT_CST_LOW (primop1),
! 					 TREE_INT_CST_HIGH (primop1));
  
  	  primop1 = force_fit_type (tmp, 0, TREE_OVERFLOW (primop1),
  				    TREE_CONSTANT_OVERFLOW (primop1));
*************** c_init_attributes (void)
*** 3897,3904 ****
  #define DEF_ATTR_NULL_TREE(ENUM)				\
    built_in_attributes[(int) ENUM] = NULL_TREE;
  #define DEF_ATTR_INT(ENUM, VALUE)				\
!   built_in_attributes[(int) ENUM] = build_int_cst		\
! 	(NULL_TREE, VALUE, VALUE < 0 ? -1 : 0);
  #define DEF_ATTR_IDENT(ENUM, STRING)				\
    built_in_attributes[(int) ENUM] = get_identifier (STRING);
  #define DEF_ATTR_TREE_LIST(ENUM, PURPOSE, VALUE, CHAIN)	\
--- 3897,3903 ----
  #define DEF_ATTR_NULL_TREE(ENUM)				\
    built_in_attributes[(int) ENUM] = NULL_TREE;
  #define DEF_ATTR_INT(ENUM, VALUE)				\
!   built_in_attributes[(int) ENUM] = build_int_cst (NULL_TREE, VALUE);
  #define DEF_ATTR_IDENT(ENUM, STRING)				\
    built_in_attributes[(int) ENUM] = get_identifier (STRING);
  #define DEF_ATTR_TREE_LIST(ENUM, PURPOSE, VALUE, CHAIN)	\
Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.560
diff -c -3 -p -r1.560 c-decl.c
*** c-decl.c	23 Aug 2004 08:41:42 -0000	1.560
--- c-decl.c	23 Aug 2004 17:19:54 -0000
*************** complete_array_type (tree type, tree ini
*** 3272,3283 ****
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
  	  maxindex = build_int_cst (NULL_TREE,
  				    (TREE_STRING_LENGTH (initial_value)
! 				     / eltsize) - 1, 0);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
  	  tree elts = CONSTRUCTOR_ELTS (initial_value);
! 	  maxindex = build_int_cst (NULL_TREE, -1, -1);
  	  for (; elts; elts = TREE_CHAIN (elts))
  	    {
  	      if (TREE_PURPOSE (elts))
--- 3272,3283 ----
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
  	  maxindex = build_int_cst (NULL_TREE,
  				    (TREE_STRING_LENGTH (initial_value)
! 				     / eltsize) - 1);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
  	  tree elts = CONSTRUCTOR_ELTS (initial_value);
! 	  maxindex = build_int_cst (NULL_TREE, -1);
  	  for (; elts; elts = TREE_CHAIN (elts))
  	    {
  	      if (TREE_PURPOSE (elts))
*************** complete_array_type (tree type, tree ini
*** 3294,3307 ****
  	    value = 1;
  
  	  /* Prevent further error messages.  */
! 	  maxindex = build_int_cst (NULL_TREE, 0, 0);
  	}
      }
  
    if (!maxindex)
      {
        if (do_default)
! 	maxindex = build_int_cst (NULL_TREE, 0, 0);
        value = 2;
      }
  
--- 3294,3307 ----
  	    value = 1;
  
  	  /* Prevent further error messages.  */
! 	  maxindex = build_int_cst (NULL_TREE, 0);
  	}
      }
  
    if (!maxindex)
      {
        if (do_default)
! 	maxindex = build_int_cst (NULL_TREE, 0);
        value = 2;
      }
  
*************** check_bitfield_type_and_width (tree *typ
*** 3412,3418 ****
      {
        error ("width of `%s' exceeds its type", name);
        w = max_width;
!       *width = build_int_cst (NULL_TREE, w, 0);
      }
    else
      w = tree_low_cst (*width, 1);
--- 3412,3418 ----
      {
        error ("width of `%s' exceeds its type", name);
        w = max_width;
!       *width = build_int_cst (NULL_TREE, w);
      }
    else
      w = tree_low_cst (*width, 1);
Index: c-lex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-lex.c,v
retrieving revision 1.231
diff -c -3 -p -r1.231 c-lex.c
*** c-lex.c	15 Aug 2004 15:44:51 -0000	1.231
--- c-lex.c	23 Aug 2004 17:19:55 -0000
*************** interpret_integer (const cpp_token *toke
*** 588,598 ****
      pedwarn ("integer constant is too large for \"%s\" type",
  	     (flags & CPP_N_UNSIGNED) ? "unsigned long" : "long");
  
!   value = build_int_cst (type, integer.low, integer.high);
  
    /* Convert imaginary to a complex type.  */
    if (flags & CPP_N_IMAGINARY)
!     value = build_complex (NULL_TREE, build_int_cst (type, 0, 0), value);
  
    return value;
  }
--- 588,598 ----
      pedwarn ("integer constant is too large for \"%s\" type",
  	     (flags & CPP_N_UNSIGNED) ? "unsigned long" : "long");
  
!   value = build_int_cst_wide (type, integer.low, integer.high);
  
    /* Convert imaginary to a complex type.  */
    if (flags & CPP_N_IMAGINARY)
!     value = build_complex (NULL_TREE, build_int_cst (type, 0), value);
  
    return value;
  }
*************** lex_charconst (const cpp_token *token)
*** 805,813 ****
    /* Cast to cppchar_signed_t to get correct sign-extension of RESULT
       before possibly widening to HOST_WIDE_INT for build_int_cst.  */
    if (unsignedp || (cppchar_signed_t) result >= 0)
!     value = build_int_cst (type, result, 0);
    else
!     value = build_int_cst (type, (cppchar_signed_t) result, -1);
  
    return value;
  }
--- 805,813 ----
    /* Cast to cppchar_signed_t to get correct sign-extension of RESULT
       before possibly widening to HOST_WIDE_INT for build_int_cst.  */
    if (unsignedp || (cppchar_signed_t) result >= 0)
!     value = build_int_cst_wide (type, result, 0);
    else
!     value = build_int_cst_wide (type, (cppchar_signed_t) result, -1);
  
    return value;
  }
Index: c-parse.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-parse.in,v
retrieving revision 1.228
diff -c -3 -p -r1.228 c-parse.in
*** c-parse.in	21 Aug 2004 22:49:45 -0000	1.228
--- c-parse.in	23 Aug 2004 17:20:02 -0000
*************** primary:
*** 704,711 ****
  		  e2 = TYPE_MAIN_VARIANT (groktypename ($5));
  
  		  $$.value = comptypes (e1, e2)
! 		    ? build_int_cst (NULL_TREE, 1, 0)
! 		    : build_int_cst (NULL_TREE, 0, 0);
  		  $$.original_code = ERROR_MARK;
  		}
  	| TYPES_COMPATIBLE_P '(' error ')'
--- 704,711 ----
  		  e2 = TYPE_MAIN_VARIANT (groktypename ($5));
  
  		  $$.value = comptypes (e1, e2)
! 		    ? build_int_cst (NULL_TREE, 1)
! 		    : build_int_cst (NULL_TREE, 0);
  		  $$.original_code = ERROR_MARK;
  		}
  	| TYPES_COMPATIBLE_P '(' error ')'
Index: c-pretty-print.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-pretty-print.c,v
retrieving revision 1.55
diff -c -3 -p -r1.55 c-pretty-print.c
*** c-pretty-print.c	15 Aug 2004 15:44:55 -0000	1.55
--- c-pretty-print.c	23 Aug 2004 17:20:06 -0000
*************** pp_c_integer_constant (c_pretty_printer 
*** 786,794 ****
        if (tree_int_cst_sgn (i) < 0)
          {
            pp_c_char (pp, '-');
!           i = build_int_cst (NULL_TREE,
! 			     -TREE_INT_CST_LOW (i),
! 			     ~TREE_INT_CST_HIGH (i) + !TREE_INT_CST_LOW (i));
          }
        sprintf (pp_buffer (pp)->digit_buffer,
                 HOST_WIDE_INT_PRINT_DOUBLE_HEX,
--- 786,795 ----
        if (tree_int_cst_sgn (i) < 0)
          {
            pp_c_char (pp, '-');
!           i = build_int_cst_wide (NULL_TREE,
! 				  -TREE_INT_CST_LOW (i),
! 				  ~TREE_INT_CST_HIGH (i)
! 				  + !TREE_INT_CST_LOW (i));
          }
        sprintf (pp_buffer (pp)->digit_buffer,
                 HOST_WIDE_INT_PRINT_DOUBLE_HEX,
Index: c-typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
retrieving revision 1.360
diff -c -3 -p -r1.360 c-typeck.c
*** c-typeck.c	23 Aug 2004 03:12:31 -0000	1.360
--- c-typeck.c	23 Aug 2004 17:20:22 -0000
*************** really_start_incremental_init (tree type
*** 4484,4497 ****
  	  /* Detect non-empty initializations of zero-length arrays.  */
  	  if (constructor_max_index == NULL_TREE
  	      && TYPE_SIZE (constructor_type))
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1, -1);
  
  	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
  	     to initialize VLAs will cause a proper error; avoid tree
  	     checking errors as well by setting a safe value.  */
  	  if (constructor_max_index
  	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1, -1);
  
  	  constructor_index
  	    = convert (bitsizetype,
--- 4484,4497 ----
  	  /* Detect non-empty initializations of zero-length arrays.  */
  	  if (constructor_max_index == NULL_TREE
  	      && TYPE_SIZE (constructor_type))
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1);
  
  	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
  	     to initialize VLAs will cause a proper error; avoid tree
  	     checking errors as well by setting a safe value.  */
  	  if (constructor_max_index
  	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1);
  
  	  constructor_index
  	    = convert (bitsizetype,
*************** really_start_incremental_init (tree type
*** 4506,4513 ****
      {
        /* Vectors are like simple fixed-size arrays.  */
        constructor_max_index =
! 	build_int_cst (NULL_TREE,
! 		       TYPE_VECTOR_SUBPARTS (constructor_type) - 1, 0);
        constructor_index = convert (bitsizetype, bitsize_zero_node);
        constructor_unfilled_index = constructor_index;
      }
--- 4506,4512 ----
      {
        /* Vectors are like simple fixed-size arrays.  */
        constructor_max_index =
! 	build_int_cst (NULL_TREE, TYPE_VECTOR_SUBPARTS (constructor_type) - 1);
        constructor_index = convert (bitsizetype, bitsize_zero_node);
        constructor_unfilled_index = constructor_index;
      }
*************** push_init_level (int implicit)
*** 4662,4669 ****
      {
        /* Vectors are like simple fixed-size arrays.  */
        constructor_max_index =
! 	build_int_cst (NULL_TREE,
! 		       TYPE_VECTOR_SUBPARTS (constructor_type) - 1, 0);
        constructor_index = convert (bitsizetype, integer_zero_node);
        constructor_unfilled_index = constructor_index;
      }
--- 4661,4667 ----
      {
        /* Vectors are like simple fixed-size arrays.  */
        constructor_max_index =
! 	build_int_cst (NULL_TREE, TYPE_VECTOR_SUBPARTS (constructor_type) - 1);
        constructor_index = convert (bitsizetype, integer_zero_node);
        constructor_unfilled_index = constructor_index;
      }
*************** push_init_level (int implicit)
*** 4677,4690 ****
  	  /* Detect non-empty initializations of zero-length arrays.  */
  	  if (constructor_max_index == NULL_TREE
  	      && TYPE_SIZE (constructor_type))
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1, -1);
  
  	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
  	     to initialize VLAs will cause a proper error; avoid tree
  	     checking errors as well by setting a safe value.  */
  	  if (constructor_max_index
  	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1, -1);
  
  	  constructor_index
  	    = convert (bitsizetype,
--- 4675,4688 ----
  	  /* Detect non-empty initializations of zero-length arrays.  */
  	  if (constructor_max_index == NULL_TREE
  	      && TYPE_SIZE (constructor_type))
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1);
  
  	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
  	     to initialize VLAs will cause a proper error; avoid tree
  	     checking errors as well by setting a safe value.  */
  	  if (constructor_max_index
  	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
! 	    constructor_max_index = build_int_cst (NULL_TREE, -1);
  
  	  constructor_index
  	    = convert (bitsizetype,
*************** set_nonincremental_init_from_string (tre
*** 5408,5414 ****
  		      << (bitpos - HOST_BITS_PER_WIDE_INT);
  	}
  
!       value = build_int_cst (type, val[1], val[0]);
        add_pending_init (purpose, value);
      }
  
--- 5406,5412 ----
  		      << (bitpos - HOST_BITS_PER_WIDE_INT);
  	}
  
!       value = build_int_cst_wide (type, val[1], val[0]);
        add_pending_init (purpose, value);
      }
  
Index: calls.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/calls.c,v
retrieving revision 1.363
diff -c -3 -p -r1.363 calls.c
*** calls.c	18 Aug 2004 08:23:32 -0000	1.363
--- calls.c	23 Aug 2004 17:20:31 -0000
*************** load_register_parameters (struct arg_dat
*** 1505,1512 ****
  		     seem worth generating rtl to say that.  */
  		  reg = gen_rtx_REG (word_mode, REGNO (reg));
  		  x = expand_shift (LSHIFT_EXPR, word_mode, reg,
! 				    build_int_cst (NULL_TREE,
! 						   shift, 0),
  				    reg, 1);
  		  if (x != reg)
  		    emit_move_insn (reg, x);
--- 1505,1511 ----
  		     seem worth generating rtl to say that.  */
  		  reg = gen_rtx_REG (word_mode, REGNO (reg));
  		  x = expand_shift (LSHIFT_EXPR, word_mode, reg,
! 				    build_int_cst (NULL_TREE, shift),
  				    reg, 1);
  		  if (x != reg)
  		    emit_move_insn (reg, x);
*************** load_register_parameters (struct arg_dat
*** 1544,1550 ****
  
  		  emit_move_insn (x, tem);
  		  x = expand_shift (dir, word_mode, x,
! 				    build_int_cst (NULL_TREE, shift, 0),
  				    ri, 1);
  		  if (x != ri)
  		    emit_move_insn (ri, x);
--- 1543,1549 ----
  
  		  emit_move_insn (x, tem);
  		  x = expand_shift (dir, word_mode, x,
! 				    build_int_cst (NULL_TREE, shift),
  				    ri, 1);
  		  if (x != ri)
  		    emit_move_insn (ri, x);
Index: convert.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/convert.c,v
retrieving revision 1.50
diff -c -3 -p -r1.50 convert.c
*** convert.c	15 Aug 2004 15:44:57 -0000	1.50
--- convert.c	23 Aug 2004 17:20:33 -0000
*************** convert_to_pointer (tree type, tree expr
*** 43,49 ****
  {
    if (integer_zerop (expr))
      {
!       expr = build_int_cst (type, 0, 0);
        return expr;
      }
  
--- 43,49 ----
  {
    if (integer_zerop (expr))
      {
!       expr = build_int_cst (type, 0);
        return expr;
      }
  
Index: coverage.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/coverage.c,v
retrieving revision 1.44
diff -c -3 -p -r1.44 coverage.c
*** coverage.c	15 Aug 2004 15:44:57 -0000	1.44
--- coverage.c	23 Aug 2004 17:20:35 -0000
*************** coverage_counter_alloc (unsigned counter
*** 378,384 ****
  	 will make any clever transformation on it.  */
        char buf[20];
        tree domain_tree
!         = build_index_type (build_int_cst (NULL_TREE, 1000, 0)); /* replaced later */
        tree gcov_type_array_type
          = build_array_type (GCOV_TYPE_NODE, domain_tree);
        tree_ctr_tables[counter]
--- 378,384 ----
  	 will make any clever transformation on it.  */
        char buf[20];
        tree domain_tree
!         = build_index_type (build_int_cst (NULL_TREE, 1000)); /* replaced later */
        tree gcov_type_array_type
          = build_array_type (GCOV_TYPE_NODE, domain_tree);
        tree_ctr_tables[counter]
*************** tree_coverage_counter_ref (unsigned coun
*** 435,441 ****
    /* "no" here is an array index, scaled to bytes later.  */
    return build4 (ARRAY_REF, GCOV_TYPE_NODE, tree_ctr_tables[counter],
  		 fold_convert (domain_type,
! 			       build_int_cst (NULL_TREE, no, 0)),
  		 TYPE_MIN_VALUE (domain_type),
  		 size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (GCOV_TYPE_NODE),
  			     size_int (TYPE_ALIGN_UNIT (GCOV_TYPE_NODE))));
--- 435,441 ----
    /* "no" here is an array index, scaled to bytes later.  */
    return build4 (ARRAY_REF, GCOV_TYPE_NODE, tree_ctr_tables[counter],
  		 fold_convert (domain_type,
! 			       build_int_cst (NULL_TREE, no)),
  		 TYPE_MIN_VALUE (domain_type),
  		 size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (GCOV_TYPE_NODE),
  			     size_int (TYPE_ALIGN_UNIT (GCOV_TYPE_NODE))));
*************** build_fn_info_type (unsigned int counter
*** 610,616 ****
    TREE_CHAIN (field) = fields;
    fields = field;
  
!   array_type = build_int_cst (NULL_TREE, counters - 1, 0);
    array_type = build_index_type (array_type);
    array_type = build_array_type (unsigned_type_node, array_type);
  
--- 610,616 ----
    TREE_CHAIN (field) = fields;
    fields = field;
  
!   array_type = build_int_cst (NULL_TREE, counters - 1);
    array_type = build_index_type (array_type);
    array_type = build_array_type (unsigned_type_node, array_type);
  
*************** build_fn_info_value (const struct functi
*** 637,657 ****
    tree array_value = NULL_TREE;
  
    /* ident */
!   value = tree_cons (fields, build_int_cst (unsigned_intSI_type_node,
! 					    function->ident, 0), value);
    fields = TREE_CHAIN (fields);
  
    /* checksum */
!   value = tree_cons (fields, build_int_cst (unsigned_intSI_type_node,
! 					    function->checksum, 0), value);
    fields = TREE_CHAIN (fields);
  
    /* counters */
    for (ix = 0; ix != GCOV_COUNTERS; ix++)
      if (prg_ctr_mask & (1 << ix))
        {
! 	tree counters = build_int_cst (unsigned_type_node,
! 				       function->n_ctrs[ix], 0);
  
  	array_value = tree_cons (NULL_TREE, counters, array_value);
        }
--- 637,657 ----
    tree array_value = NULL_TREE;
  
    /* ident */
!   value = tree_cons (fields, build_int_cstu (unsigned_intSI_type_node,
! 					     function->ident), value);
    fields = TREE_CHAIN (fields);
  
    /* checksum */
!   value = tree_cons (fields, build_int_cstu (unsigned_intSI_type_node,
! 					     function->checksum), value);
    fields = TREE_CHAIN (fields);
  
    /* counters */
    for (ix = 0; ix != GCOV_COUNTERS; ix++)
      if (prg_ctr_mask & (1 << ix))
        {
! 	tree counters = build_int_cstu (unsigned_type_node,
! 					function->n_ctrs[ix]);
  
  	array_value = tree_cons (NULL_TREE, counters, array_value);
        }
*************** build_ctr_info_value (unsigned int count
*** 712,719 ****
  
    /* counters */
    value = tree_cons (fields,
! 		     build_int_cst (unsigned_intSI_type_node,
! 				    prg_n_ctrs[counter], 0),
  		     value);
    fields = TREE_CHAIN (fields);
  
--- 712,719 ----
  
    /* counters */
    value = tree_cons (fields,
! 		     build_int_cstu (unsigned_intSI_type_node,
! 				     prg_n_ctrs[counter]),
  		     value);
    fields = TREE_CHAIN (fields);
  
*************** build_ctr_info_value (unsigned int count
*** 721,728 ****
      {
        tree array_type;
  
!       array_type = build_int_cst (unsigned_type_node,
! 				  prg_n_ctrs[counter] - 1, 0);
        array_type = build_index_type (array_type);
        array_type = build_array_type (TREE_TYPE (TREE_TYPE (fields)),
  				     array_type);
--- 721,728 ----
      {
        tree array_type;
  
!       array_type = build_int_cstu (unsigned_type_node,
! 				   prg_n_ctrs[counter] - 1);
        array_type = build_index_type (array_type);
        array_type = build_array_type (TREE_TYPE (TREE_TYPE (fields)),
  				     array_type);
*************** build_gcov_info (void)
*** 789,796 ****
    field = build_decl (FIELD_DECL, NULL_TREE, unsigned_intSI_type_node);
    TREE_CHAIN (field) = fields;
    fields = field;
!   value = tree_cons (field, build_int_cst (unsigned_intSI_type_node,
! 					   GCOV_VERSION, 0), value);
  
    /* next -- NULL */
    field = build_decl (FIELD_DECL, NULL_TREE, build_pointer_type (const_type));
--- 789,796 ----
    field = build_decl (FIELD_DECL, NULL_TREE, unsigned_intSI_type_node);
    TREE_CHAIN (field) = fields;
    fields = field;
!   value = tree_cons (field, build_int_cstu (unsigned_intSI_type_node,
! 					    GCOV_VERSION), value);
  
    /* next -- NULL */
    field = build_decl (FIELD_DECL, NULL_TREE, build_pointer_type (const_type));
*************** build_gcov_info (void)
*** 802,809 ****
    field = build_decl (FIELD_DECL, NULL_TREE, unsigned_intSI_type_node);
    TREE_CHAIN (field) = fields;
    fields = field;
!   value = tree_cons (field, build_int_cst (unsigned_intSI_type_node,
! 					   local_tick, 0), value);
  
    /* Filename */
    string_type = build_pointer_type (build_qualified_type (char_type_node,
--- 802,809 ----
    field = build_decl (FIELD_DECL, NULL_TREE, unsigned_intSI_type_node);
    TREE_CHAIN (field) = fields;
    fields = field;
!   value = tree_cons (field, build_int_cstu (unsigned_intSI_type_node,
! 					    local_tick), value);
  
    /* Filename */
    string_type = build_pointer_type (build_qualified_type (char_type_node,
*************** build_gcov_info (void)
*** 821,827 ****
      free (filename);
    TREE_TYPE (filename_string) = build_array_type
      (char_type_node, build_index_type
!      (build_int_cst (NULL_TREE, filename_len, 0)));
    value = tree_cons (field, build1 (ADDR_EXPR, string_type, filename_string),
  		     value);
  
--- 821,827 ----
      free (filename);
    TREE_TYPE (filename_string) = build_array_type
      (char_type_node, build_index_type
!      (build_int_cst (NULL_TREE, filename_len)));
    value = tree_cons (field, build1 (ADDR_EXPR, string_type, filename_string),
  		     value);
  
*************** build_gcov_info (void)
*** 837,844 ****
      {
        tree array_type;
  
!       array_type = build_index_type (build_int_cst (NULL_TREE,
! 						    n_fns - 1, 0));
        array_type = build_array_type (fn_info_type, array_type);
  
        fn_info_value = build_constructor (array_type, nreverse (fn_info_value));
--- 837,843 ----
      {
        tree array_type;
  
!       array_type = build_index_type (build_int_cst (NULL_TREE, n_fns - 1));
        array_type = build_array_type (fn_info_type, array_type);
  
        fn_info_value = build_constructor (array_type, nreverse (fn_info_value));
*************** build_gcov_info (void)
*** 852,858 ****
    TREE_CHAIN (field) = fields;
    fields = field;
    value = tree_cons (field,
! 		     build_int_cst (unsigned_type_node, n_fns, 0),
  		     value);
  
    /* fn_info table */
--- 851,857 ----
    TREE_CHAIN (field) = fields;
    fields = field;
    value = tree_cons (field,
! 		     build_int_cstu (unsigned_type_node, n_fns),
  		     value);
  
    /* fn_info table */
*************** build_gcov_info (void)
*** 866,878 ****
    TREE_CHAIN (field) = fields;
    fields = field;
    value = tree_cons (field,
! 		     build_int_cst (unsigned_type_node, prg_ctr_mask, 0),
  		     value);
  
    /* counters */
    ctr_info_type = build_ctr_info_type ();
    ctr_info_ary_type = build_index_type (build_int_cst (NULL_TREE,
! 						       n_ctr_types, 0));
    ctr_info_ary_type = build_array_type (ctr_info_type, ctr_info_ary_type);
    for (ix = 0; ix != GCOV_COUNTERS; ix++)
      if (prg_ctr_mask & (1 << ix))
--- 865,877 ----
    TREE_CHAIN (field) = fields;
    fields = field;
    value = tree_cons (field,
! 		     build_int_cstu (unsigned_type_node, prg_ctr_mask),
  		     value);
  
    /* counters */
    ctr_info_type = build_ctr_info_type ();
    ctr_info_ary_type = build_index_type (build_int_cst (NULL_TREE,
! 						       n_ctr_types));
    ctr_info_ary_type = build_array_type (ctr_info_type, ctr_info_ary_type);
    for (ix = 0; ix != GCOV_COUNTERS; ix++)
      if (prg_ctr_mask & (1 << ix))
Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.283
diff -c -3 -p -r1.283 except.c
*** except.c	16 Aug 2004 20:08:30 -0000	1.283
--- except.c	23 Aug 2004 17:20:44 -0000
*************** init_eh (void)
*** 376,382 ****
  			 integer_type_node);
        DECL_FIELD_CONTEXT (f_cs) = sjlj_fc_type_node;
  
!       tmp = build_index_type (build_int_cst (NULL_TREE, 4 - 1, 0));
        tmp = build_array_type (lang_hooks.types.type_for_mode (word_mode, 1),
  			      tmp);
        f_data = build_decl (FIELD_DECL, get_identifier ("__data"), tmp);
--- 376,382 ----
  			 integer_type_node);
        DECL_FIELD_CONTEXT (f_cs) = sjlj_fc_type_node;
  
!       tmp = build_index_type (build_int_cst (NULL_TREE, 4 - 1));
        tmp = build_array_type (lang_hooks.types.type_for_mode (word_mode, 1),
  			      tmp);
        f_data = build_decl (FIELD_DECL, get_identifier ("__data"), tmp);
*************** init_eh (void)
*** 392,410 ****
  
  #ifdef DONT_USE_BUILTIN_SETJMP
  #ifdef JMP_BUF_SIZE
!       tmp = build_int_cst (NULL_TREE, JMP_BUF_SIZE - 1, 0);
  #else
        /* Should be large enough for most systems, if it is not,
  	 JMP_BUF_SIZE should be defined with the proper value.  It will
  	 also tend to be larger than necessary for most systems, a more
  	 optimal port will define JMP_BUF_SIZE.  */
!       tmp = build_int_cst (NULL_TREE,
! 			   FIRST_PSEUDO_REGISTER + 2 - 1, 0);
  #endif
  #else
        /* builtin_setjmp takes a pointer to 5 words.  */
!       tmp = build_int_cst (NULL_TREE,
! 			   5 * BITS_PER_WORD / POINTER_SIZE - 1, 0);
  #endif
        tmp = build_index_type (tmp);
        tmp = build_array_type (ptr_type_node, tmp);
--- 392,408 ----
  
  #ifdef DONT_USE_BUILTIN_SETJMP
  #ifdef JMP_BUF_SIZE
!       tmp = build_int_cst (NULL_TREE, JMP_BUF_SIZE - 1);
  #else
        /* Should be large enough for most systems, if it is not,
  	 JMP_BUF_SIZE should be defined with the proper value.  It will
  	 also tend to be larger than necessary for most systems, a more
  	 optimal port will define JMP_BUF_SIZE.  */
!       tmp = build_int_cst (NULL_TREE, FIRST_PSEUDO_REGISTER + 2 - 1);
  #endif
  #else
        /* builtin_setjmp takes a pointer to 5 words.  */
!       tmp = build_int_cst (NULL_TREE, 5 * BITS_PER_WORD / POINTER_SIZE - 1);
  #endif
        tmp = build_index_type (tmp);
        tmp = build_array_type (ptr_type_node, tmp);
*************** assign_filter_values (void)
*** 1416,1422 ****
  	      for (;tp_node; tp_node = TREE_CHAIN (tp_node))
  		{
  		  int flt = add_ttypes_entry (ttypes, TREE_VALUE (tp_node));
! 		  tree flt_node = build_int_cst (NULL_TREE, flt, 0);
  
  		  r->u.catch.filter_list
  		    = tree_cons (NULL_TREE, flt_node, r->u.catch.filter_list);
--- 1414,1420 ----
  	      for (;tp_node; tp_node = TREE_CHAIN (tp_node))
  		{
  		  int flt = add_ttypes_entry (ttypes, TREE_VALUE (tp_node));
! 		  tree flt_node = build_int_cst (NULL_TREE, flt);
  
  		  r->u.catch.filter_list
  		    = tree_cons (NULL_TREE, flt_node, r->u.catch.filter_list);
*************** assign_filter_values (void)
*** 1427,1433 ****
  	      /* Get a filter value for the NULL list also since it will need
  		 an action record anyway.  */
  	      int flt = add_ttypes_entry (ttypes, NULL);
! 	      tree flt_node = build_int_cst (NULL_TREE, flt, 0);
  
  	      r->u.catch.filter_list
  		= tree_cons (NULL_TREE, flt_node, r->u.catch.filter_list);
--- 1425,1431 ----
  	      /* Get a filter value for the NULL list also since it will need
  		 an action record anyway.  */
  	      int flt = add_ttypes_entry (ttypes, NULL);
! 	      tree flt_node = build_int_cst (NULL_TREE, flt);
  
  	      r->u.catch.filter_list
  		= tree_cons (NULL_TREE, flt_node, r->u.catch.filter_list);
Index: expmed.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expmed.c,v
retrieving revision 1.191
diff -c -3 -p -r1.191 expmed.c
*** expmed.c	19 Aug 2004 10:35:54 -0000	1.191
--- expmed.c	23 Aug 2004 17:20:53 -0000
*************** store_fixed_bit_field (rtx op0, unsigned
*** 899,906 ****
  			      NULL_RTX, 1, OPTAB_LIB_WIDEN);
        if (bitpos > 0)
  	value = expand_shift (LSHIFT_EXPR, mode, value,
! 			      build_int_cst (NULL_TREE,
! 					     bitpos, 0), NULL_RTX, 1);
      }
  
    /* Now clear the chosen bits in OP0,
--- 899,905 ----
  			      NULL_RTX, 1, OPTAB_LIB_WIDEN);
        if (bitpos > 0)
  	value = expand_shift (LSHIFT_EXPR, mode, value,
! 			      build_int_cst (NULL_TREE, bitpos), NULL_RTX, 1);
      }
  
    /* Now clear the chosen bits in OP0,
*************** extract_bit_field (rtx str_rtx, unsigned
*** 1329,1341 ****
        /* Signed bit field: sign-extend with two arithmetic shifts.  */
        target = expand_shift (LSHIFT_EXPR, mode, target,
  			     build_int_cst (NULL_TREE,
! 					    GET_MODE_BITSIZE (mode) - bitsize,
! 					    0),
  			     NULL_RTX, 0);
        return expand_shift (RSHIFT_EXPR, mode, target,
  			   build_int_cst (NULL_TREE,
! 					  GET_MODE_BITSIZE (mode) - bitsize,
! 					  0),
  			   NULL_RTX, 0);
      }
  
--- 1328,1338 ----
        /* Signed bit field: sign-extend with two arithmetic shifts.  */
        target = expand_shift (LSHIFT_EXPR, mode, target,
  			     build_int_cst (NULL_TREE,
! 					    GET_MODE_BITSIZE (mode) - bitsize),
  			     NULL_RTX, 0);
        return expand_shift (RSHIFT_EXPR, mode, target,
  			   build_int_cst (NULL_TREE,
! 					  GET_MODE_BITSIZE (mode) - bitsize),
  			   NULL_RTX, 0);
      }
  
*************** extract_fixed_bit_field (enum machine_mo
*** 1740,1746 ****
  	{
  	  /* If the field does not already start at the lsb,
  	     shift it so it does.  */
! 	  tree amount = build_int_cst (NULL_TREE, bitpos, 0);
  	  /* Maybe propagate the target for the shift.  */
  	  /* But not if we will return it--could confuse integrate.c.  */
  	  rtx subtarget = (target != 0 && REG_P (target) ? target : 0);
--- 1737,1743 ----
  	{
  	  /* If the field does not already start at the lsb,
  	     shift it so it does.  */
! 	  tree amount = build_int_cst (NULL_TREE, bitpos);
  	  /* Maybe propagate the target for the shift.  */
  	  /* But not if we will return it--could confuse integrate.c.  */
  	  rtx subtarget = (target != 0 && REG_P (target) ? target : 0);
*************** extract_fixed_bit_field (enum machine_mo
*** 1781,1787 ****
      {
        tree amount
  	= build_int_cst (NULL_TREE,
! 			 GET_MODE_BITSIZE (mode) - (bitsize + bitpos), 0);
        /* Maybe propagate the target for the shift.  */
        rtx subtarget = (target != 0 && REG_P (target) ? target : 0);
        op0 = expand_shift (LSHIFT_EXPR, mode, op0, amount, subtarget, 1);
--- 1778,1784 ----
      {
        tree amount
  	= build_int_cst (NULL_TREE,
! 			 GET_MODE_BITSIZE (mode) - (bitsize + bitpos));
        /* Maybe propagate the target for the shift.  */
        rtx subtarget = (target != 0 && REG_P (target) ? target : 0);
        op0 = expand_shift (LSHIFT_EXPR, mode, op0, amount, subtarget, 1);
*************** extract_fixed_bit_field (enum machine_mo
*** 1789,1795 ****
  
    return expand_shift (RSHIFT_EXPR, mode, op0,
  		       build_int_cst (NULL_TREE,
! 				      GET_MODE_BITSIZE (mode) - bitsize, 0),
  		       target, 0);
  }
  
--- 1786,1792 ----
  
    return expand_shift (RSHIFT_EXPR, mode, op0,
  		       build_int_cst (NULL_TREE,
! 				      GET_MODE_BITSIZE (mode) - bitsize),
  		       target, 0);
  }
  
*************** extract_split_bit_field (rtx op0, unsign
*** 1937,1951 ****
  	{
  	  if (bitsize != bitsdone)
  	    part = expand_shift (LSHIFT_EXPR, word_mode, part,
! 				 build_int_cst (NULL_TREE,
! 						bitsize - bitsdone, 0), 0, 1);
  	}
        else
  	{
  	  if (bitsdone != thissize)
  	    part = expand_shift (LSHIFT_EXPR, word_mode, part,
  				 build_int_cst (NULL_TREE,
! 						bitsdone - thissize, 0), 0, 1);
  	}
  
        if (first)
--- 1934,1948 ----
  	{
  	  if (bitsize != bitsdone)
  	    part = expand_shift (LSHIFT_EXPR, word_mode, part,
! 				 build_int_cst (NULL_TREE, bitsize - bitsdone),
! 				 0, 1);
  	}
        else
  	{
  	  if (bitsdone != thissize)
  	    part = expand_shift (LSHIFT_EXPR, word_mode, part,
  				 build_int_cst (NULL_TREE,
! 						bitsdone - thissize), 0, 1);
  	}
  
        if (first)
*************** extract_split_bit_field (rtx op0, unsign
*** 1964,1975 ****
      return result;
    /* Signed bit field: sign-extend with two arithmetic shifts.  */
    result = expand_shift (LSHIFT_EXPR, word_mode, result,
! 			 build_int_cst (NULL_TREE,
! 					BITS_PER_WORD - bitsize, 0),
  			 NULL_RTX, 0);
    return expand_shift (RSHIFT_EXPR, word_mode, result,
! 		       build_int_cst (NULL_TREE,
! 				      BITS_PER_WORD - bitsize, 0), NULL_RTX, 0);
  }
  
  /* Add INC into TARGET.  */
--- 1961,1971 ----
      return result;
    /* Signed bit field: sign-extend with two arithmetic shifts.  */
    result = expand_shift (LSHIFT_EXPR, word_mode, result,
! 			 build_int_cst (NULL_TREE, BITS_PER_WORD - bitsize),
  			 NULL_RTX, 0);
    return expand_shift (RSHIFT_EXPR, word_mode, result,
! 		       build_int_cst (NULL_TREE, BITS_PER_WORD - bitsize),
! 		       NULL_RTX, 0);
  }
  
  /* Add INC into TARGET.  */
*************** expand_shift (enum tree_code code, enum 
*** 2088,2094 ****
  	      tree other_amount
  		= fold (build2 (MINUS_EXPR, type, convert
  				(type, build_int_cst
! 				 (NULL_TREE, GET_MODE_BITSIZE (mode), 0)),
  				amount));
  
  	      shifted = force_reg (mode, shifted);
--- 2084,2090 ----
  	      tree other_amount
  		= fold (build2 (MINUS_EXPR, type, convert
  				(type, build_int_cst
! 				 (NULL_TREE, GET_MODE_BITSIZE (mode))),
  				amount));
  
  	      shifted = force_reg (mode, shifted);
*************** expand_mult_const (enum machine_mode mod
*** 2558,2571 ****
  	{
  	case alg_shift:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log, 0),
  				NULL_RTX, 0);
  	  val_so_far <<= log;
  	  break;
  
  	case alg_add_t_m2:
  	  tem = expand_shift (LSHIFT_EXPR, mode, op0,
! 			      build_int_cst (NULL_TREE, log, 0),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
--- 2554,2567 ----
  	{
  	case alg_shift:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log),
  				NULL_RTX, 0);
  	  val_so_far <<= log;
  	  break;
  
  	case alg_add_t_m2:
  	  tem = expand_shift (LSHIFT_EXPR, mode, op0,
! 			      build_int_cst (NULL_TREE, log),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
*************** expand_mult_const (enum machine_mode mod
*** 2574,2580 ****
  
  	case alg_sub_t_m2:
  	  tem = expand_shift (LSHIFT_EXPR, mode, op0,
! 			      build_int_cst (NULL_TREE, log, 0),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
--- 2570,2576 ----
  
  	case alg_sub_t_m2:
  	  tem = expand_shift (LSHIFT_EXPR, mode, op0,
! 			      build_int_cst (NULL_TREE, log),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
*************** expand_mult_const (enum machine_mode mod
*** 2583,2589 ****
  
  	case alg_add_t2_m:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log, 0),
  				shift_subtarget,
  				0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, op0),
--- 2579,2585 ----
  
  	case alg_add_t2_m:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log),
  				shift_subtarget,
  				0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, op0),
*************** expand_mult_const (enum machine_mode mod
*** 2593,2599 ****
  
  	case alg_sub_t2_m:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log, 0),
  				shift_subtarget, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, accum, op0),
  				 add_target ? add_target : accum_target);
--- 2589,2595 ----
  
  	case alg_sub_t2_m:
  	  accum = expand_shift (LSHIFT_EXPR, mode, accum,
! 				build_int_cst (NULL_TREE, log),
  				shift_subtarget, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, accum, op0),
  				 add_target ? add_target : accum_target);
*************** expand_mult_const (enum machine_mode mod
*** 2602,2608 ****
  
  	case alg_add_factor:
  	  tem = expand_shift (LSHIFT_EXPR, mode, accum,
! 			      build_int_cst (NULL_TREE, log, 0),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
--- 2598,2604 ----
  
  	case alg_add_factor:
  	  tem = expand_shift (LSHIFT_EXPR, mode, accum,
! 			      build_int_cst (NULL_TREE, log),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_PLUS (mode, accum, tem),
  				 add_target ? add_target : accum_target);
*************** expand_mult_const (enum machine_mode mod
*** 2611,2617 ****
  
  	case alg_sub_factor:
  	  tem = expand_shift (LSHIFT_EXPR, mode, accum,
! 			      build_int_cst (NULL_TREE, log, 0),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, tem, accum),
  				 (add_target
--- 2607,2613 ----
  
  	case alg_sub_factor:
  	  tem = expand_shift (LSHIFT_EXPR, mode, accum,
! 			      build_int_cst (NULL_TREE, log),
  			      NULL_RTX, 0);
  	  accum = force_operand (gen_rtx_MINUS (mode, tem, accum),
  				 (add_target
*************** expand_mult_highpart_adjust (enum machin
*** 2907,2914 ****
    enum rtx_code adj_code = unsignedp ? PLUS : MINUS;
  
    tem = expand_shift (RSHIFT_EXPR, mode, op0,
! 		      build_int_cst (NULL_TREE,
! 				     GET_MODE_BITSIZE (mode) - 1, 0),
  		      NULL_RTX, 0);
    tem = expand_and (mode, tem, op1, NULL_RTX);
    adj_operand
--- 2903,2909 ----
    enum rtx_code adj_code = unsignedp ? PLUS : MINUS;
  
    tem = expand_shift (RSHIFT_EXPR, mode, op0,
! 		      build_int_cst (NULL_TREE, GET_MODE_BITSIZE (mode) - 1),
  		      NULL_RTX, 0);
    tem = expand_and (mode, tem, op1, NULL_RTX);
    adj_operand
*************** expand_mult_highpart_adjust (enum machin
*** 2916,2923 ****
  		     adj_operand);
  
    tem = expand_shift (RSHIFT_EXPR, mode, op1,
! 		      build_int_cst (NULL_TREE,
! 				     GET_MODE_BITSIZE (mode) - 1, 0),
  		      NULL_RTX, 0);
    tem = expand_and (mode, tem, op0, NULL_RTX);
    target = force_operand (gen_rtx_fmt_ee (adj_code, mode, adj_operand, tem),
--- 2911,2917 ----
  		     adj_operand);
  
    tem = expand_shift (RSHIFT_EXPR, mode, op1,
! 		      build_int_cst (NULL_TREE, GET_MODE_BITSIZE (mode) - 1),
  		      NULL_RTX, 0);
    tem = expand_and (mode, tem, op0, NULL_RTX);
    target = force_operand (gen_rtx_fmt_ee (adj_code, mode, adj_operand, tem),
*************** extract_high_half (enum machine_mode mod
*** 2938,2945 ****
  
    wider_mode = GET_MODE_WIDER_MODE (mode);
    op = expand_shift (RSHIFT_EXPR, wider_mode, op,
! 		     build_int_cst (NULL_TREE,
! 				    GET_MODE_BITSIZE (mode), 0), 0, 1);
    return convert_modes (mode, wider_mode, op, 0);
  }
  
--- 2932,2938 ----
  
    wider_mode = GET_MODE_WIDER_MODE (mode);
    op = expand_shift (RSHIFT_EXPR, wider_mode, op,
! 		     build_int_cst (NULL_TREE, GET_MODE_BITSIZE (mode)), 0, 1);
    return convert_modes (mode, wider_mode, op, 0);
  }
  
*************** expand_sdiv_pow2 (enum machine_mode mode
*** 3202,3208 ****
    int logd;
  
    logd = floor_log2 (d);
!   shift = build_int_cst (NULL_TREE, logd, 0);
  
    if (d == 2 && BRANCH_COST >= 1)
      {
--- 3195,3201 ----
    int logd;
  
    logd = floor_log2 (d);
!   shift = build_int_cst (NULL_TREE, logd);
  
    if (d == 2 && BRANCH_COST >= 1)
      {
*************** expand_sdiv_pow2 (enum machine_mode mode
*** 3249,3255 ****
  			     NULL_RTX, 0, OPTAB_LIB_WIDEN);
        else
  	temp = expand_shift (RSHIFT_EXPR, mode, temp,
! 			     build_int_cst (NULL_TREE, ushift, 0),
  			     NULL_RTX, 1);
        temp = expand_binop (mode, add_optab, temp, op0, NULL_RTX,
  			   0, OPTAB_LIB_WIDEN);
--- 3242,3248 ----
  			     NULL_RTX, 0, OPTAB_LIB_WIDEN);
        else
  	temp = expand_shift (RSHIFT_EXPR, mode, temp,
! 			     build_int_cst (NULL_TREE, ushift),
  			     NULL_RTX, 1);
        temp = expand_binop (mode, add_optab, temp, op0, NULL_RTX,
  			   0, OPTAB_LIB_WIDEN);
*************** expand_divmod (int rem_flag, enum tree_c
*** 3527,3533 ****
  		      }
  		    quotient = expand_shift (RSHIFT_EXPR, compute_mode, op0,
  					     build_int_cst (NULL_TREE,
! 							    pre_shift, 0),
  					     tquotient, 1);
  		  }
  		else if (size <= HOST_BITS_PER_WIDE_INT)
--- 3520,3526 ----
  		      }
  		    quotient = expand_shift (RSHIFT_EXPR, compute_mode, op0,
  					     build_int_cst (NULL_TREE,
! 							    pre_shift),
  					     tquotient, 1);
  		  }
  		else if (size <= HOST_BITS_PER_WIDE_INT)
*************** expand_divmod (int rem_flag, enum tree_c
*** 3585,3599 ****
  						NULL_RTX);
  			    t3 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t2,
! 			       build_int_cst (NULL_TREE, 1, 0),
  			       NULL_RTX,1);
  			    t4 = force_operand (gen_rtx_PLUS (compute_mode,
  							      t1, t3),
  						NULL_RTX);
  			    quotient = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t4,
! 			       build_int_cst (NULL_TREE,
! 					      post_shift - 1, 0),
  			       tquotient, 1);
  			  }
  			else
--- 3578,3591 ----
  						NULL_RTX);
  			    t3 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t2,
! 			       build_int_cst (NULL_TREE, 1),
  			       NULL_RTX,1);
  			    t4 = force_operand (gen_rtx_PLUS (compute_mode,
  							      t1, t3),
  						NULL_RTX);
  			    quotient = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t4,
! 			       build_int_cst (NULL_TREE, post_shift - 1),
  			       tquotient, 1);
  			  }
  			else
*************** expand_divmod (int rem_flag, enum tree_c
*** 3606,3612 ****
  
  			    t1 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, op0,
! 			       build_int_cst (NULL_TREE, pre_shift, 0),
  			       NULL_RTX, 1);
  			    extra_cost
  			      = (shift_cost[compute_mode][pre_shift]
--- 3598,3604 ----
  
  			    t1 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, op0,
! 			       build_int_cst (NULL_TREE, pre_shift),
  			       NULL_RTX, 1);
  			    extra_cost
  			      = (shift_cost[compute_mode][pre_shift]
*************** expand_divmod (int rem_flag, enum tree_c
*** 3618,3625 ****
  			      goto fail1;
  			    quotient = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t2,
! 			       build_int_cst (NULL_TREE,
! 					      post_shift, 0),
  			       tquotient, 1);
  			  }
  		      }
--- 3610,3616 ----
  			      goto fail1;
  			    quotient = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t2,
! 			       build_int_cst (NULL_TREE, post_shift),
  			       tquotient, 1);
  			  }
  		      }
*************** expand_divmod (int rem_flag, enum tree_c
*** 3728,3738 ****
  			  goto fail1;
  			t2 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, t1,
! 			   build_int_cst (NULL_TREE, post_shift, 0),
  			   NULL_RTX, 0);
  			t3 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1, 0),
  			   NULL_RTX, 0);
  			if (d < 0)
  			  quotient
--- 3719,3729 ----
  			  goto fail1;
  			t2 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, t1,
! 			   build_int_cst (NULL_TREE, post_shift),
  			   NULL_RTX, 0);
  			t3 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1),
  			   NULL_RTX, 0);
  			if (d < 0)
  			  quotient
*************** expand_divmod (int rem_flag, enum tree_c
*** 3767,3777 ****
  					    NULL_RTX);
  			t3 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, t2,
! 			   build_int_cst (NULL_TREE, post_shift, 0),
  			   NULL_RTX, 0);
  			t4 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1, 0),
  			   NULL_RTX, 0);
  			if (d < 0)
  			  quotient
--- 3758,3768 ----
  					    NULL_RTX);
  			t3 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, t2,
! 			   build_int_cst (NULL_TREE, post_shift),
  			   NULL_RTX, 0);
  			t4 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1),
  			   NULL_RTX, 0);
  			if (d < 0)
  			  quotient
*************** expand_divmod (int rem_flag, enum tree_c
*** 3828,3834 ****
  		      }
  		    quotient = expand_shift
  		      (RSHIFT_EXPR, compute_mode, op0,
! 		       build_int_cst (NULL_TREE, pre_shift, 0),
  		       tquotient, 0);
  		  }
  		else
--- 3819,3825 ----
  		      }
  		    quotient = expand_shift
  		      (RSHIFT_EXPR, compute_mode, op0,
! 		       build_int_cst (NULL_TREE, pre_shift),
  		       tquotient, 0);
  		  }
  		else
*************** expand_divmod (int rem_flag, enum tree_c
*** 3845,3851 ****
  		      {
  			t1 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1, 0),
  			   NULL_RTX, 0);
  			t2 = expand_binop (compute_mode, xor_optab, op0, t1,
  					   NULL_RTX, 0, OPTAB_WIDEN);
--- 3836,3842 ----
  		      {
  			t1 = expand_shift
  			  (RSHIFT_EXPR, compute_mode, op0,
! 			   build_int_cst (NULL_TREE, size - 1),
  			   NULL_RTX, 0);
  			t2 = expand_binop (compute_mode, xor_optab, op0, t1,
  					   NULL_RTX, 0, OPTAB_WIDEN);
*************** expand_divmod (int rem_flag, enum tree_c
*** 3859,3865 ****
  			  {
  			    t4 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t3,
! 			       build_int_cst (NULL_TREE, post_shift, 0),
  			       NULL_RTX, 1);
  			    quotient = expand_binop (compute_mode, xor_optab,
  						     t4, t1, tquotient, 0,
--- 3850,3856 ----
  			  {
  			    t4 = expand_shift
  			      (RSHIFT_EXPR, compute_mode, t3,
! 			       build_int_cst (NULL_TREE, post_shift),
  			       NULL_RTX, 1);
  			    quotient = expand_binop (compute_mode, xor_optab,
  						     t4, t1, tquotient, 0,
*************** expand_divmod (int rem_flag, enum tree_c
*** 3877,3883 ****
  				   0, OPTAB_WIDEN);
  		nsign = expand_shift
  		  (RSHIFT_EXPR, compute_mode, t2,
! 		   build_int_cst (NULL_TREE, size - 1, 0),
  		   NULL_RTX, 0);
  		t3 = force_operand (gen_rtx_MINUS (compute_mode, t1, nsign),
  				    NULL_RTX);
--- 3868,3874 ----
  				   0, OPTAB_WIDEN);
  		nsign = expand_shift
  		  (RSHIFT_EXPR, compute_mode, t2,
! 		   build_int_cst (NULL_TREE, size - 1),
  		   NULL_RTX, 0);
  		t3 = force_operand (gen_rtx_MINUS (compute_mode, t1, nsign),
  				    NULL_RTX);
*************** expand_divmod (int rem_flag, enum tree_c
*** 3992,3999 ****
  		rtx t1, t2, t3;
  		unsigned HOST_WIDE_INT d = INTVAL (op1);
  		t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 				   build_int_cst (NULL_TREE,
! 						  floor_log2 (d), 0),
  				   tquotient, 1);
  		t2 = expand_binop (compute_mode, and_optab, op0,
  				   GEN_INT (d - 1),
--- 3983,3989 ----
  		rtx t1, t2, t3;
  		unsigned HOST_WIDE_INT d = INTVAL (op1);
  		t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 				   build_int_cst (NULL_TREE, floor_log2 (d)),
  				   tquotient, 1);
  		t2 = expand_binop (compute_mode, and_optab, op0,
  				   GEN_INT (d - 1),
*************** expand_divmod (int rem_flag, enum tree_c
*** 4091,4098 ****
  		rtx t1, t2, t3;
  		unsigned HOST_WIDE_INT d = INTVAL (op1);
  		t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 				   build_int_cst (NULL_TREE,
! 						  floor_log2 (d), 0),
  				   tquotient, 0);
  		t2 = expand_binop (compute_mode, and_optab, op0,
  				   GEN_INT (d - 1),
--- 4081,4087 ----
  		rtx t1, t2, t3;
  		unsigned HOST_WIDE_INT d = INTVAL (op1);
  		t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 				   build_int_cst (NULL_TREE, floor_log2 (d)),
  				   tquotient, 0);
  		t2 = expand_binop (compute_mode, and_optab, op0,
  				   GEN_INT (d - 1),
*************** expand_divmod (int rem_flag, enum tree_c
*** 4214,4220 ****
  	    pre_shift = floor_log2 (d & -d);
  	    ml = invert_mod2n (d >> pre_shift, size);
  	    t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 			       build_int_cst (NULL_TREE, pre_shift, 0),
  			       NULL_RTX, unsignedp);
  	    quotient = expand_mult (compute_mode, t1,
  				    gen_int_mode (ml, compute_mode),
--- 4203,4209 ----
  	    pre_shift = floor_log2 (d & -d);
  	    ml = invert_mod2n (d >> pre_shift, size);
  	    t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
! 			       build_int_cst (NULL_TREE, pre_shift),
  			       NULL_RTX, unsignedp);
  	    quotient = expand_mult (compute_mode, t1,
  				    gen_int_mode (ml, compute_mode),
*************** expand_divmod (int rem_flag, enum tree_c
*** 4249,4255 ****
  	      }
  	    tem = plus_constant (op1, -1);
  	    tem = expand_shift (RSHIFT_EXPR, compute_mode, tem,
! 				build_int_cst (NULL_TREE, 1, 0),
  				NULL_RTX, 1);
  	    do_cmp_and_jump (remainder, tem, LEU, compute_mode, label);
  	    expand_inc (quotient, const1_rtx);
--- 4238,4244 ----
  	      }
  	    tem = plus_constant (op1, -1);
  	    tem = expand_shift (RSHIFT_EXPR, compute_mode, tem,
! 				build_int_cst (NULL_TREE, 1),
  				NULL_RTX, 1);
  	    do_cmp_and_jump (remainder, tem, LEU, compute_mode, label);
  	    expand_inc (quotient, const1_rtx);
*************** expand_divmod (int rem_flag, enum tree_c
*** 4275,4287 ****
  	    abs_rem = expand_abs (compute_mode, remainder, NULL_RTX, 1, 0);
  	    abs_op1 = expand_abs (compute_mode, op1, NULL_RTX, 1, 0);
  	    tem = expand_shift (LSHIFT_EXPR, compute_mode, abs_rem,
! 				build_int_cst (NULL_TREE, 1, 0),
  				NULL_RTX, 1);
  	    do_cmp_and_jump (tem, abs_op1, LTU, compute_mode, label);
  	    tem = expand_binop (compute_mode, xor_optab, op0, op1,
  				NULL_RTX, 0, OPTAB_WIDEN);
  	    mask = expand_shift (RSHIFT_EXPR, compute_mode, tem,
! 				 build_int_cst (NULL_TREE, size - 1, 0),
  				 NULL_RTX, 0);
  	    tem = expand_binop (compute_mode, xor_optab, mask, const1_rtx,
  				NULL_RTX, 0, OPTAB_WIDEN);
--- 4264,4276 ----
  	    abs_rem = expand_abs (compute_mode, remainder, NULL_RTX, 1, 0);
  	    abs_op1 = expand_abs (compute_mode, op1, NULL_RTX, 1, 0);
  	    tem = expand_shift (LSHIFT_EXPR, compute_mode, abs_rem,
! 				build_int_cst (NULL_TREE, 1),
  				NULL_RTX, 1);
  	    do_cmp_and_jump (tem, abs_op1, LTU, compute_mode, label);
  	    tem = expand_binop (compute_mode, xor_optab, op0, op1,
  				NULL_RTX, 0, OPTAB_WIDEN);
  	    mask = expand_shift (RSHIFT_EXPR, compute_mode, tem,
! 				 build_int_cst (NULL_TREE, size - 1),
  				 NULL_RTX, 0);
  	    tem = expand_binop (compute_mode, xor_optab, mask, const1_rtx,
  				NULL_RTX, 0, OPTAB_WIDEN);
*************** make_tree (tree type, rtx x)
*** 4434,4447 ****
  		     < HOST_BITS_PER_WIDE_INT)))
  	  hi = -1;
        
! 	t = build_int_cst (type, INTVAL (x), hi);
  	
  	return t;
        }
        
      case CONST_DOUBLE:
        if (GET_MODE (x) == VOIDmode)
! 	t = build_int_cst (type, CONST_DOUBLE_LOW (x), CONST_DOUBLE_HIGH (x));
        else
  	{
  	  REAL_VALUE_TYPE d;
--- 4423,4437 ----
  		     < HOST_BITS_PER_WIDE_INT)))
  	  hi = -1;
        
! 	t = build_int_cst_wide (type, INTVAL (x), hi);
  	
  	return t;
        }
        
      case CONST_DOUBLE:
        if (GET_MODE (x) == VOIDmode)
! 	t = build_int_cst_wide (type,
! 				CONST_DOUBLE_LOW (x), CONST_DOUBLE_HIGH (x));
        else
  	{
  	  REAL_VALUE_TYPE d;
Index: expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.c,v
retrieving revision 1.708
diff -c -3 -p -r1.708 expr.c
*** expr.c	22 Aug 2004 21:58:48 -0000	1.708
--- expr.c	23 Aug 2004 17:21:12 -0000
*************** convert_move (rtx to, rtx from, int unsi
*** 648,654 ****
  	     Generate what we need with	shifts.  */
  	  shift_amount = build_int_cst (NULL_TREE,
  					GET_MODE_BITSIZE (to_mode)
! 					- GET_MODE_BITSIZE (from_mode), 0);
  	  from = gen_lowpart (to_mode, force_reg (from_mode, from));
  	  tmp = expand_shift (LSHIFT_EXPR, to_mode, from, shift_amount,
  			      to, unsignedp);
--- 648,654 ----
  	     Generate what we need with	shifts.  */
  	  shift_amount = build_int_cst (NULL_TREE,
  					GET_MODE_BITSIZE (to_mode)
! 					- GET_MODE_BITSIZE (from_mode));
  	  from = gen_lowpart (to_mode, force_reg (from_mode, from));
  	  tmp = expand_shift (LSHIFT_EXPR, to_mode, from, shift_amount,
  			      to, unsignedp);
*************** emit_group_load (rtx dst, rtx orig_src, 
*** 1703,1710 ****
  
        if (shift)
  	tmps[i] = expand_shift (LSHIFT_EXPR, mode, tmps[i],
! 				build_int_cst (NULL_TREE,
! 					       shift, 0), tmps[i], 0);
      }
  
    /* Copy the extracted pieces into the proper (probable) hard regs.  */
--- 1703,1709 ----
  
        if (shift)
  	tmps[i] = expand_shift (LSHIFT_EXPR, mode, tmps[i],
! 				build_int_cst (NULL_TREE, shift), tmps[i], 0);
      }
  
    /* Copy the extracted pieces into the proper (probable) hard regs.  */
*************** emit_group_store (rtx orig_dst, rtx src,
*** 1815,1822 ****
  	    {
  	      int shift = (bytelen - (ssize - bytepos)) * BITS_PER_UNIT;
  	      tmps[i] = expand_shift (RSHIFT_EXPR, mode, tmps[i],
! 				      build_int_cst (NULL_TREE,
! 						     shift, 0), tmps[i], 0);
  	    }
  	  bytelen = ssize - bytepos;
  	}
--- 1814,1821 ----
  	    {
  	      int shift = (bytelen - (ssize - bytepos)) * BITS_PER_UNIT;
  	      tmps[i] = expand_shift (RSHIFT_EXPR, mode, tmps[i],
! 				      build_int_cst (NULL_TREE, shift),
! 				      tmps[i], 0);
  	    }
  	  bytelen = ssize - bytepos;
  	}
*************** expand_assignment (tree to, tree from, i
*** 3642,3648 ****
  		  binop = xor_optab;
  		}
  	      value = expand_shift (LSHIFT_EXPR, GET_MODE (str_rtx), value,
! 				    build_int_cst (NULL_TREE,bitpos1, 0),
  				    NULL_RTX, 1);
  	      result = expand_binop (GET_MODE (str_rtx), binop, str_rtx,
  				     value, str_rtx, 1, OPTAB_WIDEN);
--- 3641,3647 ----
  		  binop = xor_optab;
  		}
  	      value = expand_shift (LSHIFT_EXPR, GET_MODE (str_rtx), value,
! 				    build_int_cst (NULL_TREE, bitpos1),
  				    NULL_RTX, 1);
  	      result = expand_binop (GET_MODE (str_rtx), binop, str_rtx,
  				     value, str_rtx, 1, OPTAB_WIDEN);
*************** store_constructor (tree exp, rtx target,
*** 4538,4544 ****
  		value
  		  = fold (build2 (LSHIFT_EXPR, type, value,
  				  build_int_cst (NULL_TREE,
! 						 BITS_PER_WORD - bitsize, 0)));
  	      bitsize = BITS_PER_WORD;
  	      mode = word_mode;
  	    }
--- 4537,4543 ----
  		value
  		  = fold (build2 (LSHIFT_EXPR, type, value,
  				  build_int_cst (NULL_TREE,
! 						 BITS_PER_WORD - bitsize)));
  	      bitsize = BITS_PER_WORD;
  	      mode = word_mode;
  	    }
*************** store_field (rtx target, HOST_WIDE_INT b
*** 5274,5280 ****
  				   NULL_RTX);
  
  	      count = build_int_cst (NULL_TREE,
! 				     GET_MODE_BITSIZE (tmode) - bitsize, 0);
  	      temp = expand_shift (LSHIFT_EXPR, tmode, temp, count, 0, 0);
  	      return expand_shift (RSHIFT_EXPR, tmode, temp, count, 0, 0);
  	    }
--- 5273,5279 ----
  				   NULL_RTX);
  
  	      count = build_int_cst (NULL_TREE,
! 				     GET_MODE_BITSIZE (tmode) - bitsize);
  	      temp = expand_shift (LSHIFT_EXPR, tmode, temp, count, 0, 0);
  	      return expand_shift (RSHIFT_EXPR, tmode, temp, count, 0, 0);
  	    }
*************** expand_expr_real_1 (tree exp, rtx target
*** 6767,6774 ****
  		      {
  			tree count
  			  = build_int_cst (NULL_TREE,
! 					   GET_MODE_BITSIZE (imode) - bitsize,
! 					   0);
  
  			op0 = expand_shift (LSHIFT_EXPR, imode, op0, count,
  					    target, 0);
--- 6766,6772 ----
  		      {
  			tree count
  			  = build_int_cst (NULL_TREE,
! 					   GET_MODE_BITSIZE (imode) - bitsize);
  
  			op0 = expand_shift (LSHIFT_EXPR, imode, op0, count,
  					    target, 0);
*************** reduce_to_bit_field_precision (rtx exp, 
*** 8234,8240 ****
    else
      {
        tree count = build_int_cst (NULL_TREE,
! 				  GET_MODE_BITSIZE (GET_MODE (exp)) - prec, 0);
        exp = expand_shift (LSHIFT_EXPR, GET_MODE (exp), exp, count, target, 0);
        return expand_shift (RSHIFT_EXPR, GET_MODE (exp), exp, count, target, 0);
      }
--- 8232,8238 ----
    else
      {
        tree count = build_int_cst (NULL_TREE,
! 				  GET_MODE_BITSIZE (GET_MODE (exp)) - prec);
        exp = expand_shift (LSHIFT_EXPR, GET_MODE (exp), exp, count, target, 0);
        return expand_shift (RSHIFT_EXPR, GET_MODE (exp), exp, count, target, 0);
      }
Index: fold-const.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fold-const.c,v
retrieving revision 1.442
diff -c -3 -p -r1.442 fold-const.c
*** fold-const.c	23 Aug 2004 08:47:08 -0000	1.442
--- fold-const.c	23 Aug 2004 17:21:35 -0000
*************** force_fit_type (tree t, int overflowable
*** 268,274 ****
    if (overflowed || overflowed_const
        || low != TREE_INT_CST_LOW (t) || high != TREE_INT_CST_HIGH (t))
      {
!       t = build_int_cst (TREE_TYPE (t), low, high);
        
        if (overflowed
  	  || overflowable < 0
--- 268,274 ----
    if (overflowed || overflowed_const
        || low != TREE_INT_CST_LOW (t) || high != TREE_INT_CST_HIGH (t))
      {
!       t = build_int_cst_wide (TREE_TYPE (t), low, high);
        
        if (overflowed
  	  || overflowable < 0
*************** int_const_binop (enum tree_code code, tr
*** 1412,1418 ****
        abort ();
      }
  
!   t = build_int_cst (TREE_TYPE (arg1), low, hi);
  
    if (notrunc)
      {
--- 1412,1418 ----
        abort ();
      }
  
!   t = build_int_cst_wide (TREE_TYPE (arg1), low, hi);
  
    if (notrunc)
      {
*************** fold_convert_const (enum tree_code code,
*** 1775,1782 ****
  
  	  /* Given an integer constant, make new constant with new type,
  	     appropriately sign-extended or truncated.  */
! 	  t = build_int_cst (type, TREE_INT_CST_LOW (arg1),
! 			     TREE_INT_CST_HIGH (arg1));
  
  	  t = force_fit_type (t,
  			      /* Don't set the overflow when
--- 1775,1782 ----
  
  	  /* Given an integer constant, make new constant with new type,
  	     appropriately sign-extended or truncated.  */
! 	  t = build_int_cst_wide (type, TREE_INT_CST_LOW (arg1),
! 				  TREE_INT_CST_HIGH (arg1));
  
  	  t = force_fit_type (t,
  			      /* Don't set the overflow when
*************** fold_convert_const (enum tree_code code,
*** 1867,1873 ****
  	  if (! overflow)
  	    REAL_VALUE_TO_INT (&low, &high, r);
  
! 	  t = build_int_cst (type, low, high);
  
  	  t = force_fit_type (t, -1, overflow | TREE_OVERFLOW (arg1),
  			      TREE_CONSTANT_OVERFLOW (arg1));
--- 1867,1873 ----
  	  if (! overflow)
  	    REAL_VALUE_TO_INT (&low, &high, r);
  
! 	  t = build_int_cst_wide (type, low, high);
  
  	  t = force_fit_type (t, -1, overflow | TREE_OVERFLOW (arg1),
  			      TREE_CONSTANT_OVERFLOW (arg1));
*************** invert_truthvalue (tree arg)
*** 2942,2948 ****
      {
      case INTEGER_CST:
        return fold_convert (type,
! 			   build_int_cst (NULL_TREE, integer_zerop (arg), 0));
  
      case TRUTH_AND_EXPR:
        return build2 (TRUTH_OR_EXPR, type,
--- 2942,2948 ----
      {
      case INTEGER_CST:
        return fold_convert (type,
! 			   build_int_cst (NULL_TREE, integer_zerop (arg)));
  
      case TRUTH_AND_EXPR:
        return build2 (TRUTH_OR_EXPR, type,
*************** optimize_bit_field_compare (enum tree_co
*** 3177,3183 ****
      lbitpos = nbitsize - lbitsize - lbitpos;
  
    /* Make the mask to be used against the extracted field.  */
!   mask = build_int_cst (unsigned_type, ~0, ~0);
    mask = force_fit_type (mask, 0, false, false);
    mask = fold_convert (unsigned_type, mask);
    mask = const_binop (LSHIFT_EXPR, mask, size_int (nbitsize - lbitsize), 0);
--- 3177,3183 ----
      lbitpos = nbitsize - lbitsize - lbitpos;
  
    /* Make the mask to be used against the extracted field.  */
!   mask = build_int_cst (unsigned_type, -1);
    mask = force_fit_type (mask, 0, false, false);
    mask = fold_convert (unsigned_type, mask);
    mask = const_binop (LSHIFT_EXPR, mask, size_int (nbitsize - lbitsize), 0);
*************** decode_field_reference (tree exp, HOST_W
*** 3333,3339 ****
    unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1);
    precision = TYPE_PRECISION (unsigned_type);
  
!   mask = build_int_cst (unsigned_type, ~0, ~0);
    mask = force_fit_type (mask, 0, false, false);
    
    mask = const_binop (LSHIFT_EXPR, mask, size_int (precision - *pbitsize), 0);
--- 3333,3339 ----
    unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1);
    precision = TYPE_PRECISION (unsigned_type);
  
!   mask = build_int_cst (unsigned_type, -1);
    mask = force_fit_type (mask, 0, false, false);
    
    mask = const_binop (LSHIFT_EXPR, mask, size_int (precision - *pbitsize), 0);
*************** all_ones_mask_p (tree mask, int size)
*** 3359,3365 ****
    unsigned int precision = TYPE_PRECISION (type);
    tree tmask;
  
!   tmask = build_int_cst (lang_hooks.types.signed_type (type), ~0, ~0);
    tmask = force_fit_type (tmask, 0, false, false);
    
    return
--- 3359,3365 ----
    unsigned int precision = TYPE_PRECISION (type);
    tree tmask;
  
!   tmask = build_int_cst (lang_hooks.types.signed_type (type), -1);
    tmask = force_fit_type (tmask, 0, false, false);
    
    return
*************** constant_boolean_node (int value, tree t
*** 5347,5353 ****
      return lang_hooks.truthvalue_conversion (value ? integer_one_node
  						   : integer_zero_node);
    else
!     return build_int_cst (type, value, 0);
  }
  
  /* Transform `a + (b ? x : y)' into `b ? (a + x) : (a + y)'.
--- 5347,5353 ----
      return lang_hooks.truthvalue_conversion (value ? integer_one_node
  						   : integer_zero_node);
    else
!     return build_int_cst (type, value);
  }
  
  /* Transform `a + (b ? x : y)' into `b ? (a + x) : (a + y)'.
*************** fold_div_compare (enum tree_code code, t
*** 5680,5686 ****
  			 TREE_INT_CST_HIGH (arg01),
  			 TREE_INT_CST_LOW (arg1),
  			 TREE_INT_CST_HIGH (arg1), &lpart, &hpart);
!   prod = build_int_cst (TREE_TYPE (arg00), lpart, hpart);
    prod = force_fit_type (prod, -1, overflow, false);
  
    if (TYPE_UNSIGNED (TREE_TYPE (arg0)))
--- 5680,5686 ----
  			 TREE_INT_CST_HIGH (arg01),
  			 TREE_INT_CST_LOW (arg1),
  			 TREE_INT_CST_HIGH (arg1), &lpart, &hpart);
!   prod = build_int_cst_wide (TREE_TYPE (arg00), lpart, hpart);
    prod = force_fit_type (prod, -1, overflow, false);
  
    if (TYPE_UNSIGNED (TREE_TYPE (arg0)))
*************** fold_div_compare (enum tree_code code, t
*** 5694,5700 ****
  			     TREE_INT_CST_LOW (tmp),
  			     TREE_INT_CST_HIGH (tmp),
  			     &lpart, &hpart);
!       hi = build_int_cst (TREE_TYPE (arg00), lpart, hpart);
        hi = force_fit_type (hi, -1, overflow | TREE_OVERFLOW (prod),
  			   TREE_CONSTANT_OVERFLOW (prod));
      }
--- 5694,5700 ----
  			     TREE_INT_CST_LOW (tmp),
  			     TREE_INT_CST_HIGH (tmp),
  			     &lpart, &hpart);
!       hi = build_int_cst_wide (TREE_TYPE (arg00), lpart, hpart);
        hi = force_fit_type (hi, -1, overflow | TREE_OVERFLOW (prod),
  			   TREE_CONSTANT_OVERFLOW (prod));
      }
*************** fold (tree expr)
*** 6602,6608 ****
  		    {
  		      alt0 = fold (build2 (MULT_EXPR, type, arg00,
  					   build_int_cst (NULL_TREE,
! 							  int01 / int11, 0)));
  		      alt1 = arg10;
  		      same = arg11;
  		    }
--- 6602,6608 ----
  		    {
  		      alt0 = fold (build2 (MULT_EXPR, type, arg00,
  					   build_int_cst (NULL_TREE,
! 							  int01 / int11)));
  		      alt1 = arg10;
  		      same = arg11;
  		    }
*************** fold (tree expr)
*** 7236,7242 ****
        if (TREE_CODE (arg0) == BIT_NOT_EXPR
  	  && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
  	{
! 	  t1 = build_int_cst (type, -1, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg1);
  	}
--- 7236,7242 ----
        if (TREE_CODE (arg0) == BIT_NOT_EXPR
  	  && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
  	{
! 	  t1 = build_int_cst (type, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg1);
  	}
*************** fold (tree expr)
*** 7245,7251 ****
        if (TREE_CODE (arg1) == BIT_NOT_EXPR
  	  && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
  	{
! 	  t1 = build_int_cst (type, -1, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg0);
  	}
--- 7245,7251 ----
        if (TREE_CODE (arg1) == BIT_NOT_EXPR
  	  && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
  	{
! 	  t1 = build_int_cst (type, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg0);
  	}
*************** fold (tree expr)
*** 7285,7291 ****
        if (TREE_CODE (arg0) == BIT_NOT_EXPR
  	  && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
  	{
! 	  t1 = build_int_cst (type, -1, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg1);
  	}
--- 7285,7291 ----
        if (TREE_CODE (arg0) == BIT_NOT_EXPR
  	  && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
  	{
! 	  t1 = build_int_cst (type, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg1);
  	}
*************** fold (tree expr)
*** 7294,7300 ****
        if (TREE_CODE (arg1) == BIT_NOT_EXPR
  	  && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
  	{
! 	  t1 = build_int_cst (type, -1, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg0);
  	}
--- 7294,7300 ----
        if (TREE_CODE (arg1) == BIT_NOT_EXPR
  	  && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
  	{
! 	  t1 = build_int_cst (type, -1);
  	  t1 = force_fit_type (t1, 0, false, false);
  	  return omit_one_operand (type, t1, arg0);
  	}
*************** fold (tree expr)
*** 7614,7620 ****
  	      low = ((unsigned HOST_WIDE_INT) 1 << l) - 1;
  	    }
  
! 	  mask = build_int_cst (type, low, high);
  	  return fold (build2 (BIT_AND_EXPR, type,
  			       fold_convert (type, arg0), mask));
  	}
--- 7614,7620 ----
  	      low = ((unsigned HOST_WIDE_INT) 1 << l) - 1;
  	    }
  
! 	  mask = build_int_cst_wide (type, low, high);
  	  return fold (build2 (BIT_AND_EXPR, type,
  			       fold_convert (type, arg0), mask));
  	}
*************** fold (tree expr)
*** 7673,7679 ****
        if (code == LROTATE_EXPR && TREE_CODE (arg1) == INTEGER_CST)
  	{
  	  tree tem = build_int_cst (NULL_TREE,
! 				    GET_MODE_BITSIZE (TYPE_MODE (type)), 0);
  	  tem = fold_convert (TREE_TYPE (arg1), tem);
  	  tem = const_binop (MINUS_EXPR, tem, arg1, 0);
  	  return fold (build2 (RROTATE_EXPR, type, arg0, tem));
--- 7673,7679 ----
        if (code == LROTATE_EXPR && TREE_CODE (arg1) == INTEGER_CST)
  	{
  	  tree tem = build_int_cst (NULL_TREE,
! 				    GET_MODE_BITSIZE (TYPE_MODE (type)));
  	  tem = fold_convert (TREE_TYPE (arg1), tem);
  	  tem = const_binop (MINUS_EXPR, tem, arg1, 0);
  	  return fold (build2 (RROTATE_EXPR, type, arg0, tem));
*************** fold (tree expr)
*** 8091,8098 ****
  		return omit_one_operand (type, folded_compare, varop);
  
  	      shift = build_int_cst (NULL_TREE,
! 				     TYPE_PRECISION (TREE_TYPE (varop)) - size,
! 				     0);
  	      shift = fold_convert (TREE_TYPE (varop), shift);
  	      newconst = fold (build2 (LSHIFT_EXPR, TREE_TYPE (varop),
  				       newconst, shift));
--- 8091,8097 ----
  		return omit_one_operand (type, folded_compare, varop);
  
  	      shift = build_int_cst (NULL_TREE,
! 				     TYPE_PRECISION (TREE_TYPE (varop)) - size);
  	      shift = fold_convert (TREE_TYPE (varop), shift);
  	      newconst = fold (build2 (LSHIFT_EXPR, TREE_TYPE (varop),
  				       newconst, shift));
*************** fold_read_from_constant_string (tree exp
*** 10271,10277 ****
  	return fold_convert (TREE_TYPE (exp),
  			     build_int_cst (NULL_TREE,
  					    (TREE_STRING_POINTER (string)
! 					     [TREE_INT_CST_LOW (index)]), 0));
      }
    return NULL;
  }
--- 10270,10276 ----
  	return fold_convert (TREE_TYPE (exp),
  			     build_int_cst (NULL_TREE,
  					    (TREE_STRING_POINTER (string)
! 					     [TREE_INT_CST_LOW (index)])));
      }
    return NULL;
  }
*************** fold_negate_const (tree arg0, tree type)
*** 10293,10299 ****
        int overflow = neg_double (TREE_INT_CST_LOW (arg0),
  				 TREE_INT_CST_HIGH (arg0),
  				 &low, &high);
!       t = build_int_cst (type, low, high);
        t = force_fit_type (t, 1,
  			  (overflow | TREE_OVERFLOW (arg0))
  			  && !TYPE_UNSIGNED (type),
--- 10292,10298 ----
        int overflow = neg_double (TREE_INT_CST_LOW (arg0),
  				 TREE_INT_CST_HIGH (arg0),
  				 &low, &high);
!       t = build_int_cst_wide (type, low, high);
        t = force_fit_type (t, 1,
  			  (overflow | TREE_OVERFLOW (arg0))
  			  && !TYPE_UNSIGNED (type),
*************** fold_abs_const (tree arg0, tree type)
*** 10337,10343 ****
  	  int overflow = neg_double (TREE_INT_CST_LOW (arg0),
  				     TREE_INT_CST_HIGH (arg0),
  				     &low, &high);
! 	  t = build_int_cst (type, low, high);
  	  t = force_fit_type (t, -1, overflow | TREE_OVERFLOW (arg0),
  			      TREE_CONSTANT_OVERFLOW (arg0));
  	  return t;
--- 10336,10342 ----
  	  int overflow = neg_double (TREE_INT_CST_LOW (arg0),
  				     TREE_INT_CST_HIGH (arg0),
  				     &low, &high);
! 	  t = build_int_cst_wide (type, low, high);
  	  t = force_fit_type (t, -1, overflow | TREE_OVERFLOW (arg0),
  			      TREE_CONSTANT_OVERFLOW (arg0));
  	  return t;
*************** fold_not_const (tree arg0, tree type)
*** 10368,10376 ****
  
    if (TREE_CODE (arg0) == INTEGER_CST)
      {
!       t = build_int_cst (type,
! 			 ~ TREE_INT_CST_LOW (arg0),
! 			 ~ TREE_INT_CST_HIGH (arg0));
        t = force_fit_type (t, 0, TREE_OVERFLOW (arg0),
  			  TREE_CONSTANT_OVERFLOW (arg0));
      }
--- 10367,10375 ----
  
    if (TREE_CODE (arg0) == INTEGER_CST)
      {
!       t = build_int_cst_wide (type,
! 			      ~ TREE_INT_CST_LOW (arg0),
! 			      ~ TREE_INT_CST_HIGH (arg0));
        t = force_fit_type (t, 0, TREE_OVERFLOW (arg0),
  			  TREE_CONSTANT_OVERFLOW (arg0));
      }
*************** round_up (tree value, int divisor)
*** 10640,10648 ****
      {
        tree t;
        
!       t = build_int_cst (TREE_TYPE (value), divisor - 1, 0);
        value = size_binop (PLUS_EXPR, value, t);
!       t = build_int_cst (TREE_TYPE (value), -divisor, -1);
        value = size_binop (BIT_AND_EXPR, value, t);
      }
    else
--- 10639,10647 ----
      {
        tree t;
        
!       t = build_int_cst (TREE_TYPE (value), divisor - 1);
        value = size_binop (PLUS_EXPR, value, t);
!       t = build_int_cst (TREE_TYPE (value), -divisor);
        value = size_binop (BIT_AND_EXPR, value, t);
      }
    else
*************** round_down (tree value, int divisor)
*** 10687,10693 ****
      {
        tree t;
        
!       t = build_int_cst (TREE_TYPE (value), -divisor, -1);
        value = size_binop (BIT_AND_EXPR, value, t);
      }
    else
--- 10686,10692 ----
      {
        tree t;
        
!       t = build_int_cst (TREE_TYPE (value), -divisor);
        value = size_binop (BIT_AND_EXPR, value, t);
      }
    else
Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.569
diff -c -3 -p -r1.569 function.c
*** function.c	18 Aug 2004 08:23:50 -0000	1.569
--- function.c	23 Aug 2004 17:21:48 -0000
*************** assign_parm_setup_block (tree parm, stru
*** 2616,2622 ****
  	      rtx reg = gen_rtx_REG (word_mode, REGNO (data->entry_parm));
  
  	      x = expand_shift (LSHIFT_EXPR, word_mode, reg,
! 				build_int_cst (NULL_TREE, by, 0),
  				NULL_RTX, 1);
  	      tem = change_address (mem, word_mode, 0);
  	      emit_move_insn (tem, x);
--- 2616,2622 ----
  	      rtx reg = gen_rtx_REG (word_mode, REGNO (data->entry_parm));
  
  	      x = expand_shift (LSHIFT_EXPR, word_mode, reg,
! 				build_int_cst (NULL_TREE, by),
  				NULL_RTX, 1);
  	      tem = change_address (mem, word_mode, 0);
  	      emit_move_insn (tem, x);
Index: stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stmt.c,v
retrieving revision 1.389
diff -c -3 -p -r1.389 stmt.c
*** stmt.c	18 Aug 2004 08:24:16 -0000	1.389
--- stmt.c	23 Aug 2004 17:21:54 -0000
*************** shift_return_value (rtx val)
*** 1546,1552 ****
        if (shift > 0)
  	val = expand_shift (LSHIFT_EXPR, GET_MODE (target),
  			    gen_lowpart (GET_MODE (target), val),
! 			    build_int_cst (NULL_TREE, shift, 0), target, 1);
      }
    return val;
  }
--- 1546,1552 ----
        if (shift > 0)
  	val = expand_shift (LSHIFT_EXPR, GET_MODE (target),
  			    gen_lowpart (GET_MODE (target), val),
! 			    build_int_cst (NULL_TREE, shift), target, 1);
      }
    return val;
  }
*************** expand_case (tree exp)
*** 2554,2561 ****
  	      if (TREE_CODE (index_expr) != INTEGER_CST)
  		{
  		  index_expr
! 		    = build_int_cst (NULL_TREE, INTVAL (index),
! 				   unsignedp || INTVAL (index) >= 0 ? 0 : -1);
  		  index_expr = convert (index_type, index_expr);
  		}
  
--- 2554,2562 ----
  	      if (TREE_CODE (index_expr) != INTEGER_CST)
  		{
  		  index_expr
! 		    = build_int_cst_wide (NULL_TREE, INTVAL (index),
! 					  unsignedp || INTVAL (index) >= 0
! 					  ? 0 : -1);
  		  index_expr = convert (index_type, index_expr);
  		}
  
*************** estimate_case_costs (case_node_ptr node)
*** 2727,2733 ****
  {
    tree min_ascii = integer_minus_one_node;
    tree max_ascii = convert (TREE_TYPE (node->high),
! 			    build_int_cst (NULL_TREE, 127, 0));
    case_node_ptr n;
    int i;
  
--- 2728,2734 ----
  {
    tree min_ascii = integer_minus_one_node;
    tree max_ascii = convert (TREE_TYPE (node->high),
! 			    build_int_cst (NULL_TREE, 127));
    case_node_ptr n;
    int i;
  
Index: stor-layout.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stor-layout.c,v
retrieving revision 1.204
diff -c -3 -p -r1.204 stor-layout.c
*** stor-layout.c	23 Aug 2004 08:47:07 -0000	1.204
--- stor-layout.c	23 Aug 2004 17:21:58 -0000
*************** layout_type (tree type)
*** 1538,1544 ****
      case VECTOR_TYPE:
        {
  	int nunits = TYPE_VECTOR_SUBPARTS (type);
! 	tree nunits_tree = build_int_cst (NULL_TREE, nunits, 0);
  	tree innertype = TREE_TYPE (type);
  
  	if (nunits & (nunits - 1))
--- 1538,1544 ----
      case VECTOR_TYPE:
        {
  	int nunits = TYPE_VECTOR_SUBPARTS (type);
! 	tree nunits_tree = build_int_cst (NULL_TREE, nunits);
  	tree innertype = TREE_TYPE (type);
  
  	if (nunits & (nunits - 1))
*************** initialize_sizetypes (void)
*** 1864,1878 ****
    TYPE_ALIGN (t) = GET_MODE_ALIGNMENT (SImode);
    TYPE_USER_ALIGN (t) = 0;
    TYPE_IS_SIZETYPE (t) = 1;
!   TYPE_SIZE (t) = build_int_cst (t, GET_MODE_BITSIZE (SImode), 0);
!   TYPE_SIZE_UNIT (t) = build_int_cst (t, GET_MODE_SIZE (SImode), 0);
    TYPE_UNSIGNED (t) = 1;
    TYPE_PRECISION (t) = GET_MODE_BITSIZE (SImode);
!   TYPE_MIN_VALUE (t) = build_int_cst (t, 0, 0);
  
    /* 1000 avoids problems with possible overflow and is certainly
       larger than any size value we'd want to be storing.  */
!   TYPE_MAX_VALUE (t) = build_int_cst (t, 1000, 0);
  
    /* These two must be different nodes because of the caching done in
       size_int_wide.  */
--- 1864,1878 ----
    TYPE_ALIGN (t) = GET_MODE_ALIGNMENT (SImode);
    TYPE_USER_ALIGN (t) = 0;
    TYPE_IS_SIZETYPE (t) = 1;
!   TYPE_SIZE (t) = build_int_cst (t, GET_MODE_BITSIZE (SImode));
!   TYPE_SIZE_UNIT (t) = build_int_cst (t, GET_MODE_SIZE (SImode));
    TYPE_UNSIGNED (t) = 1;
    TYPE_PRECISION (t) = GET_MODE_BITSIZE (SImode);
!   TYPE_MIN_VALUE (t) = build_int_cst (t, 0);
  
    /* 1000 avoids problems with possible overflow and is certainly
       larger than any size value we'd want to be storing.  */
!   TYPE_MAX_VALUE (t) = build_int_cst (t, 1000);
  
    /* These two must be different nodes because of the caching done in
       size_int_wide.  */
*************** set_min_and_max_values_for_integral_type
*** 1976,2009 ****
  
    if (is_unsigned)
      {
!       min_value = build_int_cst (type, 0, 0);
        max_value 
! 	= build_int_cst (type, precision - HOST_BITS_PER_WIDE_INT >= 0
! 			 ? -1 : ((HOST_WIDE_INT) 1 << precision) - 1,
! 			 precision - HOST_BITS_PER_WIDE_INT > 0
! 			 ? ((unsigned HOST_WIDE_INT) ~0
! 			    >> (HOST_BITS_PER_WIDE_INT
! 				- (precision - HOST_BITS_PER_WIDE_INT)))
! 			 : 0);
      }
    else
      {
        min_value 
! 	= build_int_cst (type,
! 			 (precision - HOST_BITS_PER_WIDE_INT > 0
! 			  ? 0 : (HOST_WIDE_INT) (-1) << (precision - 1)),
! 			 (((HOST_WIDE_INT) (-1)
! 			   << (precision - HOST_BITS_PER_WIDE_INT - 1 > 0
! 			       ? precision - HOST_BITS_PER_WIDE_INT - 1
! 			       : 0))));    
        max_value
! 	= build_int_cst (type,
! 			 (precision - HOST_BITS_PER_WIDE_INT > 0
! 			  ? -1 : ((HOST_WIDE_INT) 1 << (precision - 1)) - 1),
! 			 (precision - HOST_BITS_PER_WIDE_INT - 1 > 0
! 			  ? (((HOST_WIDE_INT) 1
! 			      << (precision - HOST_BITS_PER_WIDE_INT - 1))) - 1
! 			  : 0));
      }
  
    TYPE_MIN_VALUE (type) = min_value;
--- 1976,2013 ----
  
    if (is_unsigned)
      {
!       min_value = build_int_cst (type, 0);
        max_value 
! 	= build_int_cst_wide (type,
! 			      (precision - HOST_BITS_PER_WIDE_INT >= 0
! 			       ? -1
! 			       : ((HOST_WIDE_INT) 1 << precision) - 1),
! 			      (precision - HOST_BITS_PER_WIDE_INT > 0
! 			       ? ((unsigned HOST_WIDE_INT) ~0
! 				  >> (HOST_BITS_PER_WIDE_INT
! 				      - (precision - HOST_BITS_PER_WIDE_INT)))
! 			       : 0));
      }
    else
      {
        min_value 
! 	= build_int_cst_wide (type,
! 			      (precision - HOST_BITS_PER_WIDE_INT > 0
! 			       ? 0
! 			       : (HOST_WIDE_INT) (-1) << (precision - 1)),
! 			      (((HOST_WIDE_INT) (-1)
! 				<< (precision - HOST_BITS_PER_WIDE_INT - 1 > 0
! 				    ? precision - HOST_BITS_PER_WIDE_INT - 1
! 				    : 0))));    
        max_value
! 	= build_int_cst_wide (type,
! 			      (precision - HOST_BITS_PER_WIDE_INT > 0
! 			       ? -1
! 			       : ((HOST_WIDE_INT) 1 << (precision - 1)) - 1),
! 			      (precision - HOST_BITS_PER_WIDE_INT - 1 > 0
! 			       ? (((HOST_WIDE_INT) 1
! 				   << (precision - HOST_BITS_PER_WIDE_INT - 1))) - 1
! 			       : 0));
      }
  
    TYPE_MIN_VALUE (type) = min_value;
Index: tree-chrec.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-chrec.c,v
retrieving revision 2.3
diff -c -3 -p -r2.3 tree-chrec.c
*** tree-chrec.c	15 Aug 2004 15:45:00 -0000	2.3
--- tree-chrec.c	23 Aug 2004 17:22:00 -0000
*************** chrec_fold_multiply_poly_poly (tree type
*** 218,224 ****
       
       /* "2*b*d".  */
       chrec_fold_multiply
!      (type, build_int_cst (NULL_TREE, 2, 0),
        chrec_fold_multiply (type, CHREC_RIGHT (poly0), CHREC_RIGHT (poly1))));
  }
  
--- 218,224 ----
       
       /* "2*b*d".  */
       chrec_fold_multiply
!      (type, build_int_cst (NULL_TREE, 2),
        chrec_fold_multiply (type, CHREC_RIGHT (poly0), CHREC_RIGHT (poly1))));
  }
  
*************** reset_evolution_in_loop (unsigned loop_n
*** 645,651 ****
        && CHREC_VARIABLE (chrec) > loop_num)
      return build 
        (TREE_CODE (chrec), 
!        build_int_cst (NULL_TREE, CHREC_VARIABLE (chrec), 0), 
         reset_evolution_in_loop (loop_num, CHREC_LEFT (chrec), new_evol), 
         reset_evolution_in_loop (loop_num, CHREC_RIGHT (chrec), new_evol));
    
--- 645,651 ----
        && CHREC_VARIABLE (chrec) > loop_num)
      return build 
        (TREE_CODE (chrec), 
!        build_int_cst (NULL_TREE, CHREC_VARIABLE (chrec)), 
         reset_evolution_in_loop (loop_num, CHREC_LEFT (chrec), new_evol), 
         reset_evolution_in_loop (loop_num, CHREC_RIGHT (chrec), new_evol));
    
Index: tree-chrec.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-chrec.h,v
retrieving revision 2.2
diff -c -3 -p -r2.2 tree-chrec.h
*** tree-chrec.h	15 Aug 2004 15:45:00 -0000	2.2
--- tree-chrec.h	23 Aug 2004 17:22:01 -0000
*************** build_polynomial_chrec (unsigned loop_nu
*** 105,111 ****
      return chrec_dont_know;
  
    return build (POLYNOMIAL_CHREC, TREE_TYPE (left), 
! 		build_int_cst (NULL_TREE, loop_num, 0), left, right);
  }
  
  
--- 105,111 ----
      return chrec_dont_know;
  
    return build (POLYNOMIAL_CHREC, TREE_TYPE (left), 
! 		build_int_cst (NULL_TREE, loop_num), left, right);
  }
  
  
Index: tree-complex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-complex.c,v
retrieving revision 2.8
diff -c -3 -p -r2.8 tree-complex.c
*** tree-complex.c	15 Aug 2004 15:45:00 -0000	2.8
--- tree-complex.c	23 Aug 2004 17:22:03 -0000
*************** build_replicated_const (tree type, tree 
*** 506,512 ****
    else
      abort ();
  
!   ret = build_int_cst (type, low, high);
    return ret;
  }
  
--- 506,512 ----
    else
      abort ();
  
!   ret = build_int_cst_wide (type, low, high);
    return ret;
  }
  
Index: tree-eh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-eh.c,v
retrieving revision 2.15
diff -c -3 -p -r2.15 tree-eh.c
*** tree-eh.c	19 Aug 2004 21:34:23 -0000	2.15
--- tree-eh.c	23 Aug 2004 17:22:07 -0000
*************** honor_protect_cleanup_actions (struct le
*** 833,839 ****
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region), 0));
        tsi_link_after (&i, x, TSI_CONTINUE_LINKING);
      }
  
--- 833,839 ----
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region)));
        tsi_link_after (&i, x, TSI_CONTINUE_LINKING);
      }
  
*************** lower_try_finally_onedest (struct leh_st
*** 940,946 ****
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region), 0));
        append_to_statement_list (x, tf->top_p);
  
        return;
--- 940,946 ----
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region)));
        append_to_statement_list (x, tf->top_p);
  
        return;
*************** lower_try_finally_copy (struct leh_state
*** 1029,1035 ****
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region), 0));
        append_to_statement_list (x, &new_stmt);
      }
  
--- 1029,1035 ----
  
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region)));
        append_to_statement_list (x, &new_stmt);
      }
  
*************** lower_try_finally_switch (struct leh_sta
*** 1137,1143 ****
    if (tf->may_fallthru)
      {
        x = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		 build_int_cst (NULL_TREE, fallthru_index, 0));
        append_to_statement_list (x, tf->top_p);
  
        if (tf->may_throw)
--- 1137,1143 ----
    if (tf->may_fallthru)
      {
        x = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		 build_int_cst (NULL_TREE, fallthru_index));
        append_to_statement_list (x, tf->top_p);
  
        if (tf->may_throw)
*************** lower_try_finally_switch (struct leh_sta
*** 1148,1154 ****
  
  
        last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			 build_int_cst (NULL_TREE, fallthru_index, 0), NULL,
  			 create_artificial_label ());
        TREE_VEC_ELT (case_label_vec, last_case_index) = last_case;
        last_case_index++;
--- 1148,1154 ----
  
  
        last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			 build_int_cst (NULL_TREE, fallthru_index), NULL,
  			 create_artificial_label ());
        TREE_VEC_ELT (case_label_vec, last_case_index) = last_case;
        last_case_index++;
*************** lower_try_finally_switch (struct leh_sta
*** 1167,1177 ****
        append_to_statement_list (x, tf->top_p);
  
        x = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		 build_int_cst (NULL_TREE, eh_index, 0));
        append_to_statement_list (x, tf->top_p);
  
        last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			 build_int_cst (NULL_TREE, eh_index, 0), NULL,
  			 create_artificial_label ());
        TREE_VEC_ELT (case_label_vec, last_case_index) = last_case;
        last_case_index++;
--- 1167,1177 ----
        append_to_statement_list (x, tf->top_p);
  
        x = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		 build_int_cst (NULL_TREE, eh_index));
        append_to_statement_list (x, tf->top_p);
  
        last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			 build_int_cst (NULL_TREE, eh_index), NULL,
  			 create_artificial_label ());
        TREE_VEC_ELT (case_label_vec, last_case_index) = last_case;
        last_case_index++;
*************** lower_try_finally_switch (struct leh_sta
*** 1180,1186 ****
        append_to_statement_list (x, &switch_body);
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region), 0));
        append_to_statement_list (x, &switch_body);
      }
  
--- 1180,1186 ----
        append_to_statement_list (x, &switch_body);
        x = build1 (RESX_EXPR, void_type_node,
  		  build_int_cst (NULL_TREE,
! 				 get_eh_region_number (tf->region)));
        append_to_statement_list (x, &switch_body);
      }
  
*************** lower_try_finally_switch (struct leh_sta
*** 1202,1215 ****
        if (q->index < 0)
  	{
  	  mod = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		       build_int_cst (NULL_TREE, return_index, 0));
  	  do_return_redirection (q, finally_label, mod, &return_val);
  	  switch_id = return_index;
  	}
        else
  	{
  	  mod = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		       build_int_cst (NULL_TREE, q->index, 0));
  	  do_goto_redirection (q, finally_label, mod);
  	  switch_id = q->index;
  	}
--- 1202,1215 ----
        if (q->index < 0)
  	{
  	  mod = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		       build_int_cst (NULL_TREE, return_index));
  	  do_return_redirection (q, finally_label, mod, &return_val);
  	  switch_id = return_index;
  	}
        else
  	{
  	  mod = build (MODIFY_EXPR, void_type_node, finally_tmp,
! 		       build_int_cst (NULL_TREE, q->index));
  	  do_goto_redirection (q, finally_label, mod);
  	  switch_id = q->index;
  	}
*************** lower_try_finally_switch (struct leh_sta
*** 1218,1224 ****
        if (!TREE_VEC_ELT (case_label_vec, case_index))
  	{
  	  last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			     build_int_cst (NULL_TREE, switch_id, 0), NULL,
  			     create_artificial_label ());
  	  TREE_VEC_ELT (case_label_vec, case_index) = last_case;
  
--- 1218,1224 ----
        if (!TREE_VEC_ELT (case_label_vec, case_index))
  	{
  	  last_case = build (CASE_LABEL_EXPR, void_type_node,
! 			     build_int_cst (NULL_TREE, switch_id), NULL,
  			     create_artificial_label ());
  	  TREE_VEC_ELT (case_label_vec, case_index) = last_case;
  
Index: tree-mudflap.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-mudflap.c,v
retrieving revision 2.17
diff -c -3 -p -r2.17 tree-mudflap.c
*** tree-mudflap.c	15 Aug 2004 15:45:00 -0000	2.17
--- tree-mudflap.c	23 Aug 2004 17:22:10 -0000
*************** mf_build_string (const char *string)
*** 77,83 ****
    tree result = mf_mark (build_string (len + 1, string));
  
    TREE_TYPE (result) = build_array_type
!     (char_type_node, build_index_type (build_int_cst (NULL_TREE, len, 0)));
    TREE_CONSTANT (result) = 1;
    TREE_INVARIANT (result) = 1;
    TREE_READONLY (result) = 1;
--- 77,83 ----
    tree result = mf_mark (build_string (len + 1, string));
  
    TREE_TYPE (result) = build_array_type
!     (char_type_node, build_index_type (build_int_cst (NULL_TREE, len)));
    TREE_CONSTANT (result) = 1;
    TREE_INVARIANT (result) = 1;
    TREE_READONLY (result) = 1;
*************** mx_register_decls (tree decl, tree *stmt
*** 918,924 ****
                                    size,
                                    tree_cons (NULL_TREE,
  					     /* __MF_TYPE_STACK */
!                                              build_int_cst (NULL_TREE, 3, 0),
                                               NULL_TREE)));
            /* __mf_unregister (...) */
            unregister_fncall = build_function_call_expr (mf_unregister_fndecl,
--- 918,924 ----
                                    size,
                                    tree_cons (NULL_TREE,
  					     /* __MF_TYPE_STACK */
!                                              build_int_cst (NULL_TREE, 3),
                                               NULL_TREE)));
            /* __mf_unregister (...) */
            unregister_fncall = build_function_call_expr (mf_unregister_fndecl,
*************** mx_register_decls (tree decl, tree *stmt
*** 936,942 ****
                                    size,
                                    tree_cons (NULL_TREE,
  					     /* __MF_TYPE_STACK */
!                                              build_int_cst (NULL_TREE, 3, 0),
                                               tree_cons (NULL_TREE,
                                                          variable_name,
                                                          NULL_TREE))));
--- 936,942 ----
                                    size,
                                    tree_cons (NULL_TREE,
  					     /* __MF_TYPE_STACK */
!                                              build_int_cst (NULL_TREE, 3),
                                               tree_cons (NULL_TREE,
                                                          variable_name,
                                                          NULL_TREE))));
*************** mudflap_register_call (tree obj, tree ob
*** 1079,1085 ****
  
    args = tree_cons (NULL_TREE, varname, NULL_TREE);
  
!   arg = build_int_cst (NULL_TREE, 4, 0); /* __MF_TYPE_STATIC */
    args = tree_cons (NULL_TREE, arg, args);
  
    arg = convert (size_type_node, object_size);
--- 1079,1085 ----
  
    args = tree_cons (NULL_TREE, varname, NULL_TREE);
  
!   arg = build_int_cst (NULL_TREE, 4); /* __MF_TYPE_STATIC */
    args = tree_cons (NULL_TREE, arg, args);
  
    arg = convert (size_type_node, object_size);
*************** mudflap_enqueue_constant (tree obj)
*** 1161,1167 ****
      return;
  
    if (TREE_CODE (obj) == STRING_CST)
!     object_size = build_int_cst (NULL_TREE, TREE_STRING_LENGTH (obj), 0);
    else
      object_size = size_in_bytes (TREE_TYPE (obj));
  
--- 1161,1167 ----
      return;
  
    if (TREE_CODE (obj) == STRING_CST)
!     object_size = build_int_cst (NULL_TREE, TREE_STRING_LENGTH (obj));
    else
      object_size = size_in_bytes (TREE_TYPE (obj));
  
Index: tree-nested.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-nested.c,v
retrieving revision 2.12
diff -c -3 -p -r2.12 tree-nested.c
*** tree-nested.c	15 Aug 2004 15:45:00 -0000	2.12
--- tree-nested.c	23 Aug 2004 17:22:13 -0000
*************** get_trampoline_type (void)
*** 405,411 ****
        align = STACK_BOUNDARY;
      }
  
!   t = build_index_type (build_int_cst (NULL_TREE, size - 1, 0));
    t = build_array_type (char_type_node, t);
    t = build_decl (FIELD_DECL, get_identifier ("__data"), t);
    DECL_ALIGN (t) = align;
--- 405,411 ----
        align = STACK_BOUNDARY;
      }
  
!   t = build_index_type (build_int_cst (NULL_TREE, size - 1));
    t = build_array_type (char_type_node, t);
    t = build_decl (FIELD_DECL, get_identifier ("__data"), t);
    DECL_ALIGN (t) = align;
*************** get_nl_goto_field (struct nesting_info *
*** 489,495 ****
        size = size + 1;
  
        type = build_array_type
! 	(type, build_index_type (build_int_cst (NULL_TREE, size, 0)));
  
        field = make_node (FIELD_DECL);
        DECL_NAME (field) = get_identifier ("__nl_goto_buf");
--- 489,495 ----
        size = size + 1;
  
        type = build_array_type
! 	(type, build_index_type (build_int_cst (NULL_TREE, size)));
  
        field = make_node (FIELD_DECL);
        DECL_NAME (field) = get_identifier ("__nl_goto_buf");
Index: tree-pretty-print.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-pretty-print.c,v
retrieving revision 2.30
diff -c -3 -p -r2.30 tree-pretty-print.c
*** tree-pretty-print.c	15 Aug 2004 15:45:00 -0000	2.30
--- tree-pretty-print.c	23 Aug 2004 17:22:17 -0000
*************** dump_generic_node (pretty_printer *buffe
*** 473,482 ****
  	  if (tree_int_cst_sgn (val) < 0)
  	    {
  	      pp_character (buffer, '-');
! 	      val = build_int_cst (NULL_TREE,
! 				   -TREE_INT_CST_LOW (val),
! 				   ~TREE_INT_CST_HIGH (val)
! 				   + !TREE_INT_CST_LOW (val));
  	    }
  	  /* Would "%x%0*x" or "%x%*0x" get zero-padding on all
  	     systems?  */
--- 473,482 ----
  	  if (tree_int_cst_sgn (val) < 0)
  	    {
  	      pp_character (buffer, '-');
! 	      val = build_int_cst_wide (NULL_TREE,
! 					-TREE_INT_CST_LOW (val),
! 					~TREE_INT_CST_HIGH (val)
! 					+ !TREE_INT_CST_LOW (val));
  	    }
  	  /* Would "%x%0*x" or "%x%*0x" get zero-padding on all
  	     systems?  */
Index: tree-ssa-ccp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-ccp.c,v
retrieving revision 2.31
diff -c -3 -p -r2.31 tree-ssa-ccp.c
*** tree-ssa-ccp.c	15 Aug 2004 15:45:00 -0000	2.31
--- tree-ssa-ccp.c	23 Aug 2004 17:22:23 -0000
*************** widen_bitfield (tree val, tree field, tr
*** 1150,1156 ****
  
        wide_val = build (BIT_AND_EXPR, TREE_TYPE (var), val, 
  			fold_convert (TREE_TYPE (var),
! 				      build_int_cst (NULL_TREE, mask, 0)));
      }
    else
      {
--- 1150,1156 ----
  
        wide_val = build (BIT_AND_EXPR, TREE_TYPE (var), val, 
  			fold_convert (TREE_TYPE (var),
! 				      build_int_cst (NULL_TREE, mask)));
      }
    else
      {
*************** widen_bitfield (tree val, tree field, tr
*** 1162,1168 ****
  
        wide_val = build (BIT_IOR_EXPR, TREE_TYPE (var), val,
  			fold_convert (TREE_TYPE (var),
! 				      build_int_cst (NULL_TREE, mask, 0)));
      }
  
    return fold (wide_val);
--- 1162,1168 ----
  
        wide_val = build (BIT_IOR_EXPR, TREE_TYPE (var), val,
  			fold_convert (TREE_TYPE (var),
! 				      build_int_cst (NULL_TREE, mask)));
      }
  
    return fold (wide_val);
*************** maybe_fold_offset_to_array_ref (tree bas
*** 1693,1699 ****
  	  || lrem || hrem)
  	return NULL_TREE;
  
!       idx = build_int_cst (NULL_TREE, lquo, hquo);
      }
  
    /* Assume the low bound is zero.  If there is a domain type, get the
--- 1693,1699 ----
  	  || lrem || hrem)
  	return NULL_TREE;
  
!       idx = build_int_cst_wide (NULL_TREE, lquo, hquo);
      }
  
    /* Assume the low bound is zero.  If there is a domain type, get the
Index: tree-ssa-dom.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-dom.c,v
retrieving revision 2.32
diff -c -3 -p -r2.32 tree-ssa-dom.c
*** tree-ssa-dom.c	15 Aug 2004 15:45:01 -0000	2.32
--- tree-ssa-dom.c	23 Aug 2004 17:22:31 -0000
*************** simplify_rhs_and_lookup_avail_expr (stru
*** 1795,1801 ****
  
  	  if (rhs_code == TRUNC_DIV_EXPR)
  	    t = build (RSHIFT_EXPR, TREE_TYPE (op0), op0,
! 		       build_int_cst (NULL_TREE, tree_log2 (op1), 0));
  	  else
  	    t = build (BIT_AND_EXPR, TREE_TYPE (op0), op0,
  		       local_fold (build (MINUS_EXPR, TREE_TYPE (op1),
--- 1795,1801 ----
  
  	  if (rhs_code == TRUNC_DIV_EXPR)
  	    t = build (RSHIFT_EXPR, TREE_TYPE (op0), op0,
! 		       build_int_cst (NULL_TREE, tree_log2 (op1)));
  	  else
  	    t = build (BIT_AND_EXPR, TREE_TYPE (op0), op0,
  		       local_fold (build (MINUS_EXPR, TREE_TYPE (op1),
Index: tree-ssa-loop-niter.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-niter.c,v
retrieving revision 2.2
diff -c -3 -p -r2.2 tree-ssa-loop-niter.c
*** tree-ssa-loop-niter.c	15 Aug 2004 15:45:01 -0000	2.2
--- tree-ssa-loop-niter.c	23 Aug 2004 17:22:34 -0000
*************** number_of_iterations_cond (tree type, tr
*** 351,357 ****
  	 (inverse(s/d) * (c/d)) mod (size of mode/d).  */
        s = step0;
        d = integer_one_node;
!       bound = convert (niter_type, build_int_cst (NULL_TREE, ~0, ~0));
        while (1)
  	{
  	  tmp = EXEC_BINARY (BIT_AND_EXPR, niter_type, s,
--- 351,357 ----
  	 (inverse(s/d) * (c/d)) mod (size of mode/d).  */
        s = step0;
        d = integer_one_node;
!       bound = convert (niter_type, build_int_cst (NULL_TREE, -1));
        while (1)
  	{
  	  tmp = EXEC_BINARY (BIT_AND_EXPR, niter_type, s,
*************** loop_niter_by_eval (struct loop *loop, e
*** 877,883 ****
  	    fprintf (dump_file,
  		     "Proved that loop %d iterates %d times using brute force.\n",
  		     loop->num, i);
! 	  return build_int_cst (NULL_TREE, i, 0);
  	}
  
        for (j = 0; j < 2; j++)
--- 877,883 ----
  	    fprintf (dump_file,
  		     "Proved that loop %d iterates %d times using brute force.\n",
  		     loop->num, i);
! 	  return build_int_cst (NULL_TREE, i);
  	}
  
        for (j = 0; j < 2; j++)
*************** upper_bound_in_type (tree outer, tree in
*** 1091,1097 ****
  
    return convert (outer,
  		  convert (inner,
! 			   build_int_cst (NULL_TREE, lo, hi)));
  }
  
  /* Returns the smallest value obtainable by casting something in INNER type to
--- 1091,1097 ----
  
    return convert (outer,
  		  convert (inner,
! 			   build_int_cst_wide (NULL_TREE, lo, hi)));
  }
  
  /* Returns the smallest value obtainable by casting something in INNER type to
*************** lower_bound_in_type (tree outer, tree in
*** 1118,1124 ****
  
    return convert (outer,
  		  convert (inner,
! 			   build_int_cst (NULL_TREE, lo, hi)));
  }
  
  /* Returns true if statement S1 dominates statement S2.  */
--- 1118,1124 ----
  
    return convert (outer,
  		  convert (inner,
! 			   build_int_cst_wide (NULL_TREE, lo, hi)));
  }
  
  /* Returns true if statement S1 dominates statement S2.  */
Index: tree-vectorizer.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-vectorizer.c,v
retrieving revision 2.2
diff -c -3 -p -r2.2 tree-vectorizer.c
*** tree-vectorizer.c	19 Aug 2004 07:16:55 -0000	2.2
--- tree-vectorizer.c	23 Aug 2004 17:22:41 -0000
*************** vect_create_index_for_array_ref (tree st
*** 619,625 ****
      abort ();	
  #endif
  
!   vf = build_int_cst (unsigned_type_node, vectorization_factor, 0);
  
    if (vect_debug_details (NULL))
      {
--- 619,625 ----
      abort ();	
  #endif
  
!   vf = build_int_cst (unsigned_type_node, vectorization_factor);
  
    if (vect_debug_details (NULL))
      {
*************** vect_transform_loop_bound (loop_vec_info
*** 1520,1526 ****
  
    /* new loop exit test:  */
    lb_type = TREE_TYPE (TREE_OPERAND (TREE_OPERAND (orig_cond_expr, 0), 1));
!   new_loop_bound = build_int_cst (lb_type, old_N/vf, 0);
  
    if (exit_edge->flags & EDGE_TRUE_VALUE) /* 'then' edge exits the loop.  */
      cond = build2 (GE_EXPR, boolean_type_node, indx_after_incr, new_loop_bound);
--- 1520,1526 ----
  
    /* new loop exit test:  */
    lb_type = TREE_TYPE (TREE_OPERAND (TREE_OPERAND (orig_cond_expr, 0), 1));
!   new_loop_bound = build_int_cst (lb_type, old_N/vf);
  
    if (exit_edge->flags & EDGE_TRUE_VALUE) /* 'then' edge exits the loop.  */
      cond = build2 (GE_EXPR, boolean_type_node, indx_after_incr, new_loop_bound);
*************** vect_compute_data_ref_alignment (struct 
*** 2253,2259 ****
    tree base_decl = NULL_TREE;
    tree bit_offset = size_zero_node;
    tree offset = size_zero_node;
!   tree unit_bits = build_int_cst (unsigned_type_node, BITS_PER_UNIT, 0);
    tree nunits;
    tree alignment;
  
--- 2253,2259 ----
    tree base_decl = NULL_TREE;
    tree bit_offset = size_zero_node;
    tree offset = size_zero_node;
!   tree unit_bits = build_int_cst (unsigned_type_node, BITS_PER_UNIT);
    tree nunits;
    tree alignment;
  
*************** vect_compute_data_ref_alignment (struct 
*** 2357,2366 ****
  
    /* alignment required, in bytes: */
    alignment = build_int_cst (unsigned_type_node, 
! 				TYPE_ALIGN (vectype)/BITS_PER_UNIT, 0);
    /* bytes per scalar element: */
    nunits = build_int_cst (unsigned_type_node, 
! 				GET_MODE_SIZE (TYPE_MODE (scalar_type)), 0);
  
    /* misalign = (offset + (init-array_first_index)*nunits) % alignment  */
    if (vect_debug_details (NULL))
--- 2357,2366 ----
  
    /* alignment required, in bytes: */
    alignment = build_int_cst (unsigned_type_node, 
! 			     TYPE_ALIGN (vectype)/BITS_PER_UNIT);
    /* bytes per scalar element: */
    nunits = build_int_cst (unsigned_type_node, 
! 			  GET_MODE_SIZE (TYPE_MODE (scalar_type)));
  
    /* misalign = (offset + (init-array_first_index)*nunits) % alignment  */
    if (vect_debug_details (NULL))
Index: tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.c,v
retrieving revision 1.413
diff -c -3 -p -r1.413 tree.c
*** tree.c	23 Aug 2004 08:41:45 -0000	1.413
--- tree.c	23 Aug 2004 17:22:53 -0000
*************** copy_list (tree list)
*** 421,431 ****
  }
  
  
  /* Create an INT_CST node of TYPE and value HI:LOW.  If TYPE is NULL,
     integer_type_node is used.  */
  
  tree
! build_int_cst (tree type, unsigned HOST_WIDE_INT low, HOST_WIDE_INT hi)
  {
    tree t;
    int ix = -1;
--- 421,446 ----
  }
  
  
+ /* Create an INT_CST node with a LOW value sign extended.  */
+ 
+ tree build_int_cst (tree type, HOST_WIDE_INT low)
+ {
+   return build_int_cst_wide (type, low,
+ 			     low < 0 ? -1 : 0);
+ }
+ 
+ /* Create an INT_CST node with a LOW value zero extended.  */
+ 
+ tree build_int_cstu (tree type, unsigned HOST_WIDE_INT low)
+ {
+   return build_int_cst_wide (type, low, 0);
+ }
+ 
  /* Create an INT_CST node of TYPE and value HI:LOW.  If TYPE is NULL,
     integer_type_node is used.  */
  
  tree
! build_int_cst_wide (tree type, unsigned HOST_WIDE_INT low, HOST_WIDE_INT hi)
  {
    tree t;
    int ix = -1;
*************** make_vector_type (tree innertype, int nu
*** 5330,5336 ****
    layout_type (t);
  
    {
!     tree index = build_int_cst (NULL_TREE, nunits - 1, 0);
      tree array = build_array_type (innertype, build_index_type (index));
      tree rt = make_node (RECORD_TYPE);
  
--- 5345,5351 ----
    layout_type (t);
  
    {
!     tree index = build_int_cst (NULL_TREE, nunits - 1);
      tree array = build_array_type (innertype, build_index_type (index));
      tree rt = make_node (RECORD_TYPE);
  
*************** build_common_tree_nodes (int signed_char
*** 5407,5413 ****
       boolean_type_node before calling build_common_tree_nodes_2.  */
    boolean_type_node = make_unsigned_type (BOOL_TYPE_SIZE);
    TREE_SET_CODE (boolean_type_node, BOOLEAN_TYPE);
!   TYPE_MAX_VALUE (boolean_type_node) = build_int_cst (boolean_type_node, 1, 0);
    TYPE_PRECISION (boolean_type_node) = 1;
  
    /* Fill in the rest of the sized types.  Reuse existing type nodes
--- 5422,5428 ----
       boolean_type_node before calling build_common_tree_nodes_2.  */
    boolean_type_node = make_unsigned_type (BOOL_TYPE_SIZE);
    TREE_SET_CODE (boolean_type_node, BOOLEAN_TYPE);
!   TYPE_MAX_VALUE (boolean_type_node) = build_int_cst (boolean_type_node, 1);
    TYPE_PRECISION (boolean_type_node) = 1;
  
    /* Fill in the rest of the sized types.  Reuse existing type nodes
*************** void
*** 5436,5444 ****
  build_common_tree_nodes_2 (int short_double)
  {
    /* Define these next since types below may used them.  */
!   integer_zero_node = build_int_cst (NULL_TREE, 0, 0);
!   integer_one_node = build_int_cst (NULL_TREE, 1, 0);
!   integer_minus_one_node = build_int_cst (NULL_TREE, -1, -1);
  
    size_zero_node = size_int (0);
    size_one_node = size_int (1);
--- 5451,5459 ----
  build_common_tree_nodes_2 (int short_double)
  {
    /* Define these next since types below may used them.  */
!   integer_zero_node = build_int_cst (NULL_TREE, 0);
!   integer_one_node = build_int_cst (NULL_TREE, 1);
!   integer_minus_one_node = build_int_cst (NULL_TREE, -1);
  
    size_zero_node = size_int (0);
    size_one_node = size_int (1);
*************** build_common_tree_nodes_2 (int short_dou
*** 5457,5464 ****
    TYPE_ALIGN (void_type_node) = BITS_PER_UNIT;
    TYPE_USER_ALIGN (void_type_node) = 0;
  
!   null_pointer_node = build_int_cst (build_pointer_type (void_type_node),
! 				     0, 0);
    layout_type (TREE_TYPE (null_pointer_node));
  
    ptr_type_node = build_pointer_type (void_type_node);
--- 5472,5478 ----
    TYPE_ALIGN (void_type_node) = BITS_PER_UNIT;
    TYPE_USER_ALIGN (void_type_node) = 0;
  
!   null_pointer_node = build_int_cst (build_pointer_type (void_type_node), 0);
    layout_type (TREE_TYPE (null_pointer_node));
  
    ptr_type_node = build_pointer_type (void_type_node);
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.601
diff -c -3 -p -r1.601 tree.h
*** tree.h	23 Aug 2004 11:56:54 -0000	1.601
--- tree.h	23 Aug 2004 17:23:02 -0000
*************** extern tree build4_stat (enum tree_code,
*** 2749,2755 ****
  			 tree MEM_STAT_DECL);
  #define build4(c,t1,t2,t3,t4,t5) build4_stat (c,t1,t2,t3,t4,t5 MEM_STAT_INFO)
  
! extern tree build_int_cst (tree, unsigned HOST_WIDE_INT, HOST_WIDE_INT);
  extern tree build_vector (tree, tree);
  extern tree build_constructor (tree, tree);
  extern tree build_real_from_int_cst (tree, tree);
--- 2749,2757 ----
  			 tree MEM_STAT_DECL);
  #define build4(c,t1,t2,t3,t4,t5) build4_stat (c,t1,t2,t3,t4,t5 MEM_STAT_INFO)
  
! extern tree build_int_cst (tree, HOST_WIDE_INT);
! extern tree build_int_cstu (tree, unsigned HOST_WIDE_INT);
! extern tree build_int_cst_wide (tree, unsigned HOST_WIDE_INT, HOST_WIDE_INT);
  extern tree build_vector (tree, tree);
  extern tree build_constructor (tree, tree);
  extern tree build_real_from_int_cst (tree, tree);
Index: ada/cuintp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/cuintp.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 cuintp.c
*** ada/cuintp.c	16 Aug 2004 16:41:31 -0000	1.10
--- ada/cuintp.c	23 Aug 2004 17:23:04 -0000
*************** UI_To_gnu (Uint Input, tree type)
*** 63,71 ****
  
    if (Input <= Uint_Direct_Last)
      gnu_ret = convert (type, build_int_cst (NULL_TREE,
! 					    Input - Uint_Direct_Bias,
! 					    Input < Uint_Direct_Bias
! 					    ? -1 : 0));
    else
      {
        Int Idx =    Uints_Ptr[Input].Loc;
--- 63,69 ----
  
    if (Input <= Uint_Direct_Last)
      gnu_ret = convert (type, build_int_cst (NULL_TREE,
! 					    Input - Uint_Direct_Bias));
    else
      {
        Int Idx =    Uints_Ptr[Input].Loc;
*************** UI_To_gnu (Uint Input, tree type)
*** 76,88 ****
        tree comp_type
  	= (TYPE_PRECISION (type) >= TYPE_PRECISION (integer_type_node)
  	   ? type : integer_type_node);
!       tree gnu_base = convert (comp_type, build_int_cst (NULL_TREE, Base, 0));
  
        if (Length <= 0)
  	abort ();
  
!       gnu_ret = convert (comp_type, build_int_cst (NULL_TREE,
! 						   First, First < 0 ? -1 : 0));
        if (First < 0)
  	for (Idx++, Length--; Length; Idx++, Length--)
  	  gnu_ret = fold (build (MINUS_EXPR, comp_type,
--- 74,85 ----
        tree comp_type
  	= (TYPE_PRECISION (type) >= TYPE_PRECISION (integer_type_node)
  	   ? type : integer_type_node);
!       tree gnu_base = convert (comp_type, build_int_cst (NULL_TREE, Base));
  
        if (Length <= 0)
  	abort ();
  
!       gnu_ret = convert (comp_type, build_int_cst (NULL_TREE, First));
        if (First < 0)
  	for (Idx++, Length--; Length; Idx++, Length--)
  	  gnu_ret = fold (build (MINUS_EXPR, comp_type,
*************** UI_To_gnu (Uint Input, tree type)
*** 90,96 ****
  					      gnu_ret, gnu_base)),
  				 convert (comp_type,
  					  build_int_cst (NULL_TREE,
! 							 Udigits_Ptr[Idx], 0))));
        else
  	for (Idx++, Length--; Length; Idx++, Length--)
  	  gnu_ret = fold (build (PLUS_EXPR, comp_type,
--- 87,93 ----
  					      gnu_ret, gnu_base)),
  				 convert (comp_type,
  					  build_int_cst (NULL_TREE,
! 							 Udigits_Ptr[Idx]))));
        else
  	for (Idx++, Length--; Length; Idx++, Length--)
  	  gnu_ret = fold (build (PLUS_EXPR, comp_type,
*************** UI_To_gnu (Uint Input, tree type)
*** 98,104 ****
  					      gnu_ret, gnu_base)),
  				 convert (comp_type,
  					  build_int_cst (NULL_TREE,
! 							 Udigits_Ptr[Idx], 0))));
      }
  
    gnu_ret = convert (type, gnu_ret);
--- 95,101 ----
  					      gnu_ret, gnu_base)),
  				 convert (comp_type,
  					  build_int_cst (NULL_TREE,
! 							 Udigits_Ptr[Idx]))));
      }
  
    gnu_ret = convert (type, gnu_ret);
Index: ada/trans.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/trans.c,v
retrieving revision 1.75
diff -c -3 -p -r1.75 trans.c
*** ada/trans.c	16 Aug 2004 16:41:31 -0000	1.75
--- ada/trans.c	23 Aug 2004 17:23:22 -0000
*************** Exception_Handler_to_gnu_sjlj (Node_Id g
*** 2218,2225 ****
  		  (TRUTH_ORIF_EXPR, integer_type_node,
  		   build_binary_op (EQ_EXPR, integer_type_node, gnu_comp,
  				    convert (TREE_TYPE (gnu_comp),
! 					     build_int_cst (NULL_TREE,
! 							    'V', 0))),
  		   this_choice);
  	    }
  	}
--- 2218,2224 ----
  		  (TRUTH_ORIF_EXPR, integer_type_node,
  		   build_binary_op (EQ_EXPR, integer_type_node, gnu_comp,
  				    convert (TREE_TYPE (gnu_comp),
! 					     build_int_cst (NULL_TREE, 'V'))),
  		   this_choice);
  	    }
  	}
*************** gnat_to_gnu (Node_Id gnat_node)
*** 2507,2513 ****
        else
  	gnu_result = convert (gnu_result_type,
  			      build_int_cst (NULL_TREE,
! 					     Char_Literal_Value (gnat_node), 0));
        break;
  
      case N_Real_Literal:
--- 2506,2512 ----
        else
  	gnu_result = convert (gnu_result_type,
  			      build_int_cst (NULL_TREE,
! 					     Char_Literal_Value (gnat_node)));
        break;
  
      case N_Real_Literal:
*************** gnat_to_gnu (Node_Id gnat_node)
*** 2623,2630 ****
  			     convert (TREE_TYPE (gnu_result_type),
  				      build_int_cst
  				      (NULL_TREE,
! 				       Get_String_Char (gnat_string, i + 1),
! 				       0)),
  			   gnu_list);
  
  	      gnu_idx = int_const_binop (PLUS_EXPR, gnu_idx, integer_one_node,
--- 2622,2628 ----
  			     convert (TREE_TYPE (gnu_result_type),
  				      build_int_cst
  				      (NULL_TREE,
! 				       Get_String_Char (gnat_string, i + 1))),
  			   gnu_list);
  
  	      gnu_idx = int_const_binop (PLUS_EXPR, gnu_idx, integer_one_node,
Index: ada/utils.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/utils.c,v
retrieving revision 1.76
diff -c -3 -p -r1.76 utils.c
*** ada/utils.c	15 Aug 2004 15:45:06 -0000	1.76
--- ada/utils.c	23 Aug 2004 17:23:29 -0000
*************** init_gigi_decls (tree long_long_float_ty
*** 580,586 ****
    /* Make the types and functions used for exception processing.    */
    jmpbuf_type
      = build_array_type (gnat_type_for_mode (Pmode, 0),
! 			build_index_type (build_int_cst (NULL_TREE, 5, 0)));
    create_type_decl (get_identifier ("JMPBUF_T"), jmpbuf_type, NULL,
  		    false, true, Empty);
    jmpbuf_ptr_type = build_pointer_type (jmpbuf_type);
--- 580,586 ----
    /* Make the types and functions used for exception processing.    */
    jmpbuf_type
      = build_array_type (gnat_type_for_mode (Pmode, 0),
! 			build_index_type (build_int_cst (NULL_TREE, 5)));
    create_type_decl (get_identifier ("JMPBUF_T"), jmpbuf_type, NULL,
  		    false, true, Empty);
    jmpbuf_ptr_type = build_pointer_type (jmpbuf_type);
Index: ada/utils2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/utils2.c,v
retrieving revision 1.35
diff -c -3 -p -r1.35 utils2.c
*** ada/utils2.c	20 Aug 2004 14:17:39 -0000	1.35
--- ada/utils2.c	23 Aug 2004 17:23:34 -0000
*************** build_call_raise (int msg)
*** 1444,1456 ****
  
    TREE_TYPE (filename)
      = build_array_type (char_type_node,
! 			build_index_type (build_int_cst (NULL_TREE, len, 0)));
  
    return
      build_call_2_expr (fndecl,
  		       build1 (ADDR_EXPR, build_pointer_type (char_type_node),
  			       filename),
! 		       build_int_cst (NULL_TREE, input_line, 0));
  }
  
  /* Return a CONSTRUCTOR of TYPE whose list is LIST.  */
--- 1444,1456 ----
  
    TREE_TYPE (filename)
      = build_array_type (char_type_node,
! 			build_index_type (build_int_cst (NULL_TREE, len)));
  
    return
      build_call_2_expr (fndecl,
  		       build1 (ADDR_EXPR, build_pointer_type (char_type_node),
  			       filename),
! 		       build_int_cst (NULL_TREE, input_line));
  }
  
  /* Return a CONSTRUCTOR of TYPE whose list is LIST.  */
*************** build_allocator (tree type, tree init, t
*** 1799,1805 ****
        /* If the size overflows, pass -1 so the allocator will raise
  	 storage error.  */
        if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
! 	size = build_int_cst (ssizetype, -1, -1);
  
        storage = build_call_alloc_dealloc (NULL_TREE, size,
  					  TYPE_ALIGN (storage_type),
--- 1799,1805 ----
        /* If the size overflows, pass -1 so the allocator will raise
  	 storage error.  */
        if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
! 	size = build_int_cst (ssizetype, -1);
  
        storage = build_call_alloc_dealloc (NULL_TREE, size,
  					  TYPE_ALIGN (storage_type),
*************** build_allocator (tree type, tree init, t
*** 1872,1878 ****
    /* If the size overflows, pass -1 so the allocator will raise
       storage error.  */
    if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
!     size = build_int_cst (ssizetype, -1, -1);
  
    /* If this is a type whose alignment is larger than the
       biggest we support in normal alignment and this is in
--- 1872,1878 ----
    /* If the size overflows, pass -1 so the allocator will raise
       storage error.  */
    if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
!     size = build_int_cst (ssizetype, -1);
  
    /* If this is a type whose alignment is larger than the
       biggest we support in normal alignment and this is in
Index: config/alpha/alpha.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v
retrieving revision 1.387
diff -c -3 -p -r1.387 alpha.c
*** config/alpha/alpha.c	18 Aug 2004 17:05:00 -0000	1.387
--- config/alpha/alpha.c	23 Aug 2004 17:23:51 -0000
*************** alpha_initialize_trampoline (rtx tramp, 
*** 4912,4918 ****
        temp = expand_binop (DImode, sub_optab, fnaddr, temp, temp, 1,
  			   OPTAB_WIDEN);
        temp = expand_shift (RSHIFT_EXPR, Pmode, temp,
! 		           build_int_cst (NULL_TREE, 2, 0), NULL_RTX, 1);
        temp = expand_and (SImode, gen_lowpart (SImode, temp),
  			 GEN_INT (0x3fff), 0);
  
--- 4912,4918 ----
        temp = expand_binop (DImode, sub_optab, fnaddr, temp, temp, 1,
  			   OPTAB_WIDEN);
        temp = expand_shift (RSHIFT_EXPR, Pmode, temp,
! 		           build_int_cst (NULL_TREE, 2), NULL_RTX, 1);
        temp = expand_and (SImode, gen_lowpart (SImode, temp),
  			 GEN_INT (0x3fff), 0);
  
*************** alpha_va_start (tree valist, rtx nextarg
*** 5366,5377 ****
  
        t = make_tree (ptr_type_node, virtual_incoming_args_rtx);
        t = build (PLUS_EXPR, ptr_type_node, t,
! 		 build_int_cst (NULL_TREE, offset, 0));
        t = build (MODIFY_EXPR, TREE_TYPE (base_field), base_field, t);
        TREE_SIDE_EFFECTS (t) = 1;
        expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
!       t = build_int_cst (NULL_TREE, NUM_ARGS * UNITS_PER_WORD, 0);
        t = build (MODIFY_EXPR, TREE_TYPE (offset_field), offset_field, t);
        TREE_SIDE_EFFECTS (t) = 1;
        expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 5366,5377 ----
  
        t = make_tree (ptr_type_node, virtual_incoming_args_rtx);
        t = build (PLUS_EXPR, ptr_type_node, t,
! 		 build_int_cst (NULL_TREE, offset));
        t = build (MODIFY_EXPR, TREE_TYPE (base_field), base_field, t);
        TREE_SIDE_EFFECTS (t) = 1;
        expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
!       t = build_int_cst (NULL_TREE, NUM_ARGS * UNITS_PER_WORD);
        t = build (MODIFY_EXPR, TREE_TYPE (offset_field), offset_field, t);
        TREE_SIDE_EFFECTS (t) = 1;
        expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** alpha_gimplify_va_arg_1 (tree type, tree
*** 5387,5393 ****
       reserved for the registers.  */
    if (targetm.calls.must_pass_in_stack (TYPE_MODE (type), type))
      {
!       t = build_int_cst (TREE_TYPE (offset), 6*8, 0);
        t = build (MODIFY_EXPR, TREE_TYPE (offset), offset,
  		 build (MAX_EXPR, TREE_TYPE (offset), offset, t));
        gimplify_and_add (t, pre_p);
--- 5387,5393 ----
       reserved for the registers.  */
    if (targetm.calls.must_pass_in_stack (TYPE_MODE (type), type))
      {
!       t = build_int_cst (TREE_TYPE (offset), 6*8);
        t = build (MODIFY_EXPR, TREE_TYPE (offset), offset,
  		 build (MAX_EXPR, TREE_TYPE (offset), offset, t));
        gimplify_and_add (t, pre_p);
*************** alpha_gimplify_va_arg_1 (tree type, tree
*** 5416,5422 ****
      {
        tree fpaddend, cond, fourtyeight;
  
!       fourtyeight = build_int_cst (TREE_TYPE (addend), 6*8, 0);
        fpaddend = fold (build (MINUS_EXPR, TREE_TYPE (addend),
  			      addend, fourtyeight));
        cond = fold (build (LT_EXPR, boolean_type_node, addend, fourtyeight));
--- 5416,5422 ----
      {
        tree fpaddend, cond, fourtyeight;
  
!       fourtyeight = build_int_cst (TREE_TYPE (addend), 6*8);
        fpaddend = fold (build (MINUS_EXPR, TREE_TYPE (addend),
  			      addend, fourtyeight));
        cond = fold (build (LT_EXPR, boolean_type_node, addend, fourtyeight));
Index: config/arm/arm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
retrieving revision 1.395
diff -c -3 -p -r1.395 arm.c
*** config/arm/arm.c	23 Aug 2004 08:41:54 -0000	1.395
--- config/arm/arm.c	23 Aug 2004 17:24:21 -0000
*************** arm_get_cookie_size (tree type)
*** 14889,14895 ****
    if (!TARGET_AAPCS_BASED)
      return default_cxx_get_cookie_size (type);
  
!   size = build_int_cst (sizetype, 8, 0);
    return size;
  }
  
--- 14889,14895 ----
    if (!TARGET_AAPCS_BASED)
      return default_cxx_get_cookie_size (type);
  
!   size = build_int_cst (sizetype, 8);
    return size;
  }
  
Index: config/c4x/c4x.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/c4x/c4x.c,v
retrieving revision 1.160
diff -c -3 -p -r1.160 c4x.c
*** config/c4x/c4x.c	18 Aug 2004 07:12:19 -0000	1.160
--- config/c4x/c4x.c	23 Aug 2004 17:24:31 -0000
*************** c4x_gimplify_va_arg_expr (tree valist, t
*** 738,744 ****
      type = build_pointer_type (type);
  
    t = build (PREDECREMENT_EXPR, TREE_TYPE (valist), valist,
! 	     build_int_cst (NULL_TREE, int_size_in_bytes (type), 0));
    t = fold_convert (build_pointer_type (type), t);
    t = build_fold_indirect_ref (t);
  
--- 738,744 ----
      type = build_pointer_type (type);
  
    t = build (PREDECREMENT_EXPR, TREE_TYPE (valist), valist,
! 	     build_int_cst (NULL_TREE, int_size_in_bytes (type)));
    t = fold_convert (build_pointer_type (type), t);
    t = build_fold_indirect_ref (t);
  
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.714
diff -c -3 -p -r1.714 i386.c
*** config/i386/i386.c	21 Aug 2004 06:49:14 -0000	1.714
--- config/i386/i386.c	23 Aug 2004 17:25:03 -0000
*************** ix86_va_start (tree valist, rtx nextarg)
*** 3232,3243 ****
  	     (int) words, (int) n_gpr, (int) n_fpr);
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr * 8, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr * 16 + 8*REGPARM_MAX, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
--- 3232,3243 ----
  	     (int) words, (int) n_gpr, (int) n_fpr);
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr * 8));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr * 16 + 8*REGPARM_MAX));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
*************** ix86_va_start (tree valist, rtx nextarg)
*** 3245,3251 ****
    t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx);
    if (words != 0)
      t = build (PLUS_EXPR, TREE_TYPE (ovf), t,
! 	       build_int_cst (NULL_TREE, words * UNITS_PER_WORD, 0));
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 3245,3251 ----
    t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx);
    if (words != 0)
      t = build (PLUS_EXPR, TREE_TYPE (ovf), t,
! 	       build_int_cst (NULL_TREE, words * UNITS_PER_WORD));
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** ix86_gimplify_va_arg (tree valist, tree 
*** 3365,3371 ****
        if (needed_intregs)
  	{
  	  t = build_int_cst (TREE_TYPE (gpr),
! 			     (REGPARM_MAX - needed_intregs + 1) * 8, 0);
  	  t = build2 (GE_EXPR, boolean_type_node, gpr, t);
  	  t2 = build1 (GOTO_EXPR, void_type_node, lab_false);
  	  t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE);
--- 3365,3371 ----
        if (needed_intregs)
  	{
  	  t = build_int_cst (TREE_TYPE (gpr),
! 			     (REGPARM_MAX - needed_intregs + 1) * 8);
  	  t = build2 (GE_EXPR, boolean_type_node, gpr, t);
  	  t2 = build1 (GOTO_EXPR, void_type_node, lab_false);
  	  t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE);
*************** ix86_gimplify_va_arg (tree valist, tree 
*** 3375,3381 ****
  	{
  	  t = build_int_cst (TREE_TYPE (fpr),
  			     (SSE_REGPARM_MAX - needed_sseregs + 1) * 16
! 			     + REGPARM_MAX * 8, 0);
  	  t = build2 (GE_EXPR, boolean_type_node, fpr, t);
  	  t2 = build1 (GOTO_EXPR, void_type_node, lab_false);
  	  t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE);
--- 3375,3381 ----
  	{
  	  t = build_int_cst (TREE_TYPE (fpr),
  			     (SSE_REGPARM_MAX - needed_sseregs + 1) * 16
! 			     + REGPARM_MAX * 8);
  	  t = build2 (GE_EXPR, boolean_type_node, fpr, t);
  	  t2 = build1 (GOTO_EXPR, void_type_node, lab_false);
  	  t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE);
*************** ix86_gimplify_va_arg (tree valist, tree 
*** 3446,3459 ****
        if (needed_intregs)
  	{
  	  t = build2 (PLUS_EXPR, TREE_TYPE (gpr), gpr,
! 		      build_int_cst (NULL_TREE, needed_intregs * 8, 0));
  	  t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr, t);
  	  gimplify_and_add (t, pre_p);
  	}
        if (needed_sseregs)
  	{
  	  t = build2 (PLUS_EXPR, TREE_TYPE (fpr), fpr,
! 		      build_int_cst (NULL_TREE, needed_sseregs * 16, 0));
  	  t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr, t);
  	  gimplify_and_add (t, pre_p);
  	}
--- 3446,3459 ----
        if (needed_intregs)
  	{
  	  t = build2 (PLUS_EXPR, TREE_TYPE (gpr), gpr,
! 		      build_int_cst (NULL_TREE, needed_intregs * 8));
  	  t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr, t);
  	  gimplify_and_add (t, pre_p);
  	}
        if (needed_sseregs)
  	{
  	  t = build2 (PLUS_EXPR, TREE_TYPE (fpr), fpr,
! 		      build_int_cst (NULL_TREE, needed_sseregs * 16));
  	  t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr, t);
  	  gimplify_and_add (t, pre_p);
  	}
*************** ix86_gimplify_va_arg (tree valist, tree 
*** 3474,3482 ****
      {
        HOST_WIDE_INT align = FUNCTION_ARG_BOUNDARY (VOIDmode, type) / 8;
        t = build (PLUS_EXPR, TREE_TYPE (ovf), ovf,
! 		 build_int_cst (NULL_TREE, align - 1, 0));
        t = build (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		 build_int_cst (NULL_TREE, -align, -1));
      }
    gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue);
  
--- 3474,3482 ----
      {
        HOST_WIDE_INT align = FUNCTION_ARG_BOUNDARY (VOIDmode, type) / 8;
        t = build (PLUS_EXPR, TREE_TYPE (ovf), ovf,
! 		 build_int_cst (NULL_TREE, align - 1));
        t = build (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		 build_int_cst (NULL_TREE, -align));
      }
    gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue);
  
*************** ix86_gimplify_va_arg (tree valist, tree 
*** 3484,3490 ****
    gimplify_and_add (t2, pre_p);
  
    t = build2 (PLUS_EXPR, TREE_TYPE (t), t,
! 	      build_int_cst (NULL_TREE, rsize * UNITS_PER_WORD, 0));
    t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    gimplify_and_add (t, pre_p);
  
--- 3484,3490 ----
    gimplify_and_add (t2, pre_p);
  
    t = build2 (PLUS_EXPR, TREE_TYPE (t), t,
! 	      build_int_cst (NULL_TREE, rsize * UNITS_PER_WORD));
    t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    gimplify_and_add (t, pre_p);
  
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.319
diff -c -3 -p -r1.319 ia64.c
*** config/ia64/ia64.c	18 Aug 2004 21:08:27 -0000	1.319
--- config/ia64/ia64.c	23 Aug 2004 17:25:23 -0000
*************** ia64_gimplify_va_arg (tree valist, tree 
*** 3400,3408 ****
        ? int_size_in_bytes (type) > 8 : TYPE_ALIGN (type) > 8 * BITS_PER_UNIT)
      {
        tree t = build (PLUS_EXPR, TREE_TYPE (valist), valist,
! 		      build_int_cst (NULL_TREE, 2 * UNITS_PER_WORD - 1, 0));
        t = build (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		 build_int_cst (NULL_TREE, -2 * UNITS_PER_WORD, -1));
        t = build (MODIFY_EXPR, TREE_TYPE (valist), valist, t);
        gimplify_and_add (t, pre_p);
      }
--- 3400,3408 ----
        ? int_size_in_bytes (type) > 8 : TYPE_ALIGN (type) > 8 * BITS_PER_UNIT)
      {
        tree t = build (PLUS_EXPR, TREE_TYPE (valist), valist,
! 		      build_int_cst (NULL_TREE, 2 * UNITS_PER_WORD - 1));
        t = build (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		 build_int_cst (NULL_TREE, -2 * UNITS_PER_WORD));
        t = build (MODIFY_EXPR, TREE_TYPE (valist), valist, t);
        gimplify_and_add (t, pre_p);
      }
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.452
diff -c -3 -p -r1.452 mips.c
*** config/mips/mips.c	23 Aug 2004 06:53:46 -0000	1.452
--- config/mips/mips.c	23 Aug 2004 17:25:41 -0000
*************** mips_build_builtin_va_list (void)
*** 3385,3391 ****
  			  unsigned_char_type_node);
        /* Explicitly pad to the size of a pointer, so that -Wpadded won't
  	 warn on every user file.  */
!       index = build_int_cst (NULL_TREE, GET_MODE_SIZE (ptr_mode) - 2 - 1, 0);
        array = build_array_type (unsigned_char_type_node,
  			        build_index_type (index));
        f_res = build_decl (FIELD_DECL, get_identifier ("__reserved"), array);
--- 3385,3391 ----
  			  unsigned_char_type_node);
        /* Explicitly pad to the size of a pointer, so that -Wpadded won't
  	 warn on every user file.  */
!       index = build_int_cst (NULL_TREE, GET_MODE_SIZE (ptr_mode) - 2 - 1);
        array = build_array_type (unsigned_char_type_node,
  			        build_index_type (index));
        f_res = build_decl (FIELD_DECL, get_identifier ("__reserved"), array);
*************** mips_va_start (tree valist, rtx nextarg)
*** 3470,3476 ****
  	  if (cum->stack_words > 0)
  	    t = build (PLUS_EXPR, TREE_TYPE (ovfl), t,
  		       build_int_cst (NULL_TREE,
! 				      cum->stack_words * UNITS_PER_WORD, 0));
  	  t = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t);
   	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
--- 3470,3476 ----
  	  if (cum->stack_words > 0)
  	    t = build (PLUS_EXPR, TREE_TYPE (ovfl), t,
  		       build_int_cst (NULL_TREE,
! 				      cum->stack_words * UNITS_PER_WORD));
  	  t = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t);
   	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
*************** mips_va_start (tree valist, rtx nextarg)
*** 3487,3500 ****
  	  fpr_offset &= ~(UNITS_PER_FPVALUE - 1);
  	  if (fpr_offset)
  	    t = build (PLUS_EXPR, TREE_TYPE (ftop), t,
! 		       build_int_cst (NULL_TREE, -fpr_offset, -1));
  	  t = build (MODIFY_EXPR, TREE_TYPE (ftop), ftop, t);
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
  	  /* Emit code to initialize GOFF, the offset from GTOP of the
  	     next GPR argument.  */
  	  t = build (MODIFY_EXPR, TREE_TYPE (goff), goff,
! 		     build_int_cst (NULL_TREE, gpr_save_area_size, 0));
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
  	  /* Likewise emit code to initialize FOFF, the offset from FTOP
--- 3487,3500 ----
  	  fpr_offset &= ~(UNITS_PER_FPVALUE - 1);
  	  if (fpr_offset)
  	    t = build (PLUS_EXPR, TREE_TYPE (ftop), t,
! 		       build_int_cst (NULL_TREE, -fpr_offset));
  	  t = build (MODIFY_EXPR, TREE_TYPE (ftop), ftop, t);
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
  	  /* Emit code to initialize GOFF, the offset from GTOP of the
  	     next GPR argument.  */
  	  t = build (MODIFY_EXPR, TREE_TYPE (goff), goff,
! 		     build_int_cst (NULL_TREE, gpr_save_area_size));
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
  	  /* Likewise emit code to initialize FOFF, the offset from FTOP
*************** mips_va_start (tree valist, rtx nextarg)
*** 3502,3508 ****
  	  fpr_save_area_size
  	    = (MAX_ARGS_IN_REGISTERS - cum->num_fprs) * UNITS_PER_FPREG;
  	  t = build (MODIFY_EXPR, TREE_TYPE (foff), foff,
! 		     build_int_cst (NULL_TREE, fpr_save_area_size, 0));
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  	}
        else
--- 3502,3508 ----
  	  fpr_save_area_size
  	    = (MAX_ARGS_IN_REGISTERS - cum->num_fprs) * UNITS_PER_FPREG;
  	  t = build (MODIFY_EXPR, TREE_TYPE (foff), foff,
! 		     build_int_cst (NULL_TREE, fpr_save_area_size));
  	  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  	}
        else
*************** mips_gimplify_va_arg_expr (tree valist, 
*** 3626,3632 ****
  	    {
  	      /* [1] Emit code for: off &= -rsize.	*/
  	      t = build (BIT_AND_EXPR, TREE_TYPE (off), off,
! 			 build_int_cst (NULL_TREE, -rsize, -1));
  	      t = build (MODIFY_EXPR, TREE_TYPE (off), off, t);
  	      gimplify_and_add (t, pre_p);
  	    }
--- 3626,3632 ----
  	    {
  	      /* [1] Emit code for: off &= -rsize.	*/
  	      t = build (BIT_AND_EXPR, TREE_TYPE (off), off,
! 			 build_int_cst (NULL_TREE, -rsize));
  	      t = build (MODIFY_EXPR, TREE_TYPE (off), off, t);
  	      gimplify_and_add (t, pre_p);
  	    }
*************** mips_gimplify_va_arg_expr (tree valist, 
*** 3640,3646 ****
        /* [5] Emit code for: off -= rsize.  We do this as a form of
  	 post-increment not available to C.  Also widen for the
  	 coming pointer arithmetic.  */
!       t = fold_convert (TREE_TYPE (off), build_int_cst (NULL_TREE, rsize, 0));
        t = build (POSTDECREMENT_EXPR, TREE_TYPE (off), off, t);
        t = fold_convert (sizetype, t);
        t = fold_convert (TREE_TYPE (top), t);
--- 3640,3646 ----
        /* [5] Emit code for: off -= rsize.  We do this as a form of
  	 post-increment not available to C.  Also widen for the
  	 coming pointer arithmetic.  */
!       t = fold_convert (TREE_TYPE (off), build_int_cst (NULL_TREE, rsize));
        t = build (POSTDECREMENT_EXPR, TREE_TYPE (off), off, t);
        t = fold_convert (sizetype, t);
        t = fold_convert (TREE_TYPE (top), t);
*************** mips_gimplify_va_arg_expr (tree valist, 
*** 3651,3657 ****
        if (BYTES_BIG_ENDIAN && rsize > size)
  	{
  	  u = fold_convert (TREE_TYPE (t), build_int_cst (NULL_TREE,
! 							  rsize - size, 0));
  	  t = build (PLUS_EXPR, TREE_TYPE (t), t, u);
  	}
        COND_EXPR_THEN (addr) = t;
--- 3651,3657 ----
        if (BYTES_BIG_ENDIAN && rsize > size)
  	{
  	  u = fold_convert (TREE_TYPE (t), build_int_cst (NULL_TREE,
! 							  rsize - size));
  	  t = build (PLUS_EXPR, TREE_TYPE (t), t, u);
  	}
        COND_EXPR_THEN (addr) = t;
*************** mips_gimplify_va_arg_expr (tree valist, 
*** 3660,3669 ****
  	{
  	  /* [9] Emit: ovfl += ((intptr_t) ovfl + osize - 1) & -osize.  */
  	  u = fold_convert (TREE_TYPE (ovfl),
! 			    build_int_cst (NULL_TREE, osize - 1, 0));
  	  t = build (PLUS_EXPR, TREE_TYPE (ovfl), ovfl, u);
  	  u = fold_convert (TREE_TYPE (ovfl),
! 			    build_int_cst (NULL_TREE, -osize, -1));
  	  t = build (BIT_AND_EXPR, TREE_TYPE (ovfl), t, u);
  	  align = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t);
  	}
--- 3660,3669 ----
  	{
  	  /* [9] Emit: ovfl += ((intptr_t) ovfl + osize - 1) & -osize.  */
  	  u = fold_convert (TREE_TYPE (ovfl),
! 			    build_int_cst (NULL_TREE, osize - 1));
  	  t = build (PLUS_EXPR, TREE_TYPE (ovfl), ovfl, u);
  	  u = fold_convert (TREE_TYPE (ovfl),
! 			    build_int_cst (NULL_TREE, -osize));
  	  t = build (BIT_AND_EXPR, TREE_TYPE (ovfl), t, u);
  	  align = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t);
  	}
*************** mips_gimplify_va_arg_expr (tree valist, 
*** 3674,3685 ****
  	 post-increment ovfl by osize.  On big-endian machines,
  	 the argument has OSIZE - SIZE bytes of leading padding.  */
        u = fold_convert (TREE_TYPE (ovfl),
! 			build_int_cst (NULL_TREE, osize, 0));
        t = build (POSTINCREMENT_EXPR, TREE_TYPE (ovfl), ovfl, u);
        if (BYTES_BIG_ENDIAN && osize > size)
  	{
  	  u = fold_convert (TREE_TYPE (t),
! 			    build_int_cst (NULL_TREE, osize - size, 0));
  	  t = build (PLUS_EXPR, TREE_TYPE (t), t, u);
  	}
  
--- 3674,3685 ----
  	 post-increment ovfl by osize.  On big-endian machines,
  	 the argument has OSIZE - SIZE bytes of leading padding.  */
        u = fold_convert (TREE_TYPE (ovfl),
! 			build_int_cst (NULL_TREE, osize));
        t = build (POSTINCREMENT_EXPR, TREE_TYPE (ovfl), ovfl, u);
        if (BYTES_BIG_ENDIAN && osize > size)
  	{
  	  u = fold_convert (TREE_TYPE (t),
! 			    build_int_cst (NULL_TREE, osize - size));
  	  t = build (PLUS_EXPR, TREE_TYPE (t), t, u);
  	}
  
Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.273
diff -c -3 -p -r1.273 pa.c
*** config/pa/pa.c	20 Aug 2004 15:11:42 -0000	1.273
--- config/pa/pa.c	23 Aug 2004 17:26:00 -0000
*************** hppa_gimplify_va_arg_expr (tree valist, 
*** 6117,6123 ****
  
        /* Copied from va-pa.h, but we probably don't need to align to
  	 word size, since we generate and preserve that invariant.  */
!       u = build_int_cst (valist_type, (size > 4 ? -8 : -4), -1);
        t = build (BIT_AND_EXPR, valist_type, t, u);
  
        t = build (MODIFY_EXPR, valist_type, valist, t);
--- 6117,6123 ----
  
        /* Copied from va-pa.h, but we probably don't need to align to
  	 word size, since we generate and preserve that invariant.  */
!       u = build_int_cst (valist_type, (size > 4 ? -8 : -4));
        t = build (BIT_AND_EXPR, valist_type, t, u);
  
        t = build (MODIFY_EXPR, valist_type, valist, t);
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.696
diff -c -3 -p -r1.696 rs6000.c
*** config/rs6000/rs6000.c	23 Aug 2004 08:41:57 -0000	1.696
--- config/rs6000/rs6000.c	23 Aug 2004 17:26:38 -0000
*************** rs6000_va_start (tree valist, rtx nextar
*** 5450,5461 ****
  	     words, n_gpr, n_fpr);
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
--- 5450,5461 ----
  	     words, n_gpr, n_fpr);
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
*************** rs6000_va_start (tree valist, rtx nextar
*** 5463,5469 ****
    t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx);
    if (words != 0)
      t = build (PLUS_EXPR, TREE_TYPE (ovf), t,
! 	       build_int_cst (NULL_TREE, words * UNITS_PER_WORD, 0));
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 5463,5469 ----
    t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx);
    if (words != 0)
      t = build (PLUS_EXPR, TREE_TYPE (ovf), t,
! 	       build_int_cst (NULL_TREE, words * UNITS_PER_WORD));
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** rs6000_va_start (tree valist, rtx nextar
*** 5471,5477 ****
    /* Find the register save area.  */
    t = make_tree (TREE_TYPE (sav), virtual_stack_vars_rtx);
    t = build (PLUS_EXPR, TREE_TYPE (sav), t,
! 	     build_int_cst (NULL_TREE, -RS6000_VARARGS_SIZE, -1));
    t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 5471,5477 ----
    /* Find the register save area.  */
    t = make_tree (TREE_TYPE (sav), virtual_stack_vars_rtx);
    t = build (PLUS_EXPR, TREE_TYPE (sav), t,
! 	     build_int_cst (NULL_TREE, -RS6000_VARARGS_SIZE));
    t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** rs6000_gimplify_va_arg (tree valist, tre
*** 5629,5635 ****
      {
        t = build2 (PLUS_EXPR, TREE_TYPE (t), t, size_int (align - 1));
        t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		  build_int_cst (NULL_TREE, -align, -1));
      }
    gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue);
  
--- 5629,5635 ----
      {
        t = build2 (PLUS_EXPR, TREE_TYPE (t), t, size_int (align - 1));
        t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t,
! 		  build_int_cst (NULL_TREE, -align));
      }
    gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue);
  
*************** static void 
*** 16428,16434 ****
  add_compiler_branch_island (tree label_name, tree function_name, int line_number)
  {
    tree branch_island = build_tree_list (function_name, label_name);
!   TREE_TYPE (branch_island) = build_int_cst (NULL_TREE, line_number, 0);
    TREE_CHAIN (branch_island) = branch_island_list;
    branch_island_list = branch_island;
  }
--- 16428,16434 ----
  add_compiler_branch_island (tree label_name, tree function_name, int line_number)
  {
    tree branch_island = build_tree_list (function_name, label_name);
!   TREE_TYPE (branch_island) = build_int_cst (NULL_TREE, line_number);
    TREE_CHAIN (branch_island) = branch_island_list;
    branch_island_list = branch_island;
  }
Index: config/s390/s390.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.172
diff -c -3 -p -r1.172 s390.c
*** config/s390/s390.c	22 Aug 2004 22:07:12 -0000	1.172
--- config/s390/s390.c	23 Aug 2004 17:26:53 -0000
*************** s390_va_start (tree valist, rtx nextarg 
*** 7050,7061 ****
    n_fpr = current_function_args_info.fprs;
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
--- 7050,7061 ----
    n_fpr = current_function_args_info.fprs;
  
    t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
! 	     build_int_cst (NULL_TREE, n_gpr));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
! 	     build_int_cst (NULL_TREE, n_fpr));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
*************** s390_va_start (tree valist, rtx nextarg 
*** 7068,7074 ****
      fprintf (stderr, "va_start: n_gpr = %d, n_fpr = %d off %d\n",
  	     (int)n_gpr, (int)n_fpr, off);
  
!   t = build (PLUS_EXPR, TREE_TYPE (ovf), t, build_int_cst (NULL_TREE, off, 0));
  
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
--- 7068,7074 ----
      fprintf (stderr, "va_start: n_gpr = %d, n_fpr = %d off %d\n",
  	     (int)n_gpr, (int)n_fpr, off);
  
!   t = build (PLUS_EXPR, TREE_TYPE (ovf), t, build_int_cst (NULL_TREE, off));
  
    t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
    TREE_SIDE_EFFECTS (t) = 1;
*************** s390_va_start (tree valist, rtx nextarg 
*** 7080,7089 ****
      t = build (PLUS_EXPR, TREE_TYPE (sav), t,
  	       build_int_cst (NULL_TREE,
  			      -(RETURN_REGNUM - 2) * UNITS_PER_WORD
! 			      - (TARGET_64BIT ? 4 : 2) * 8, -1));
    else
      t = build (PLUS_EXPR, TREE_TYPE (sav), t,
! 	       build_int_cst (NULL_TREE, -RETURN_REGNUM * UNITS_PER_WORD, -1));
  
    t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
    TREE_SIDE_EFFECTS (t) = 1;
--- 7080,7089 ----
      t = build (PLUS_EXPR, TREE_TYPE (sav), t,
  	       build_int_cst (NULL_TREE,
  			      -(RETURN_REGNUM - 2) * UNITS_PER_WORD
! 			      - (TARGET_64BIT ? 4 : 2) * 8));
    else
      t = build (PLUS_EXPR, TREE_TYPE (sav), t,
! 	       build_int_cst (NULL_TREE, -RETURN_REGNUM * UNITS_PER_WORD));
  
    t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
    TREE_SIDE_EFFECTS (t) = 1;
Index: config/sh/sh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
retrieving revision 1.293
diff -c -3 -p -r1.293 sh.c
*** config/sh/sh.c	18 Aug 2004 21:08:33 -0000	1.293
--- config/sh/sh.c	23 Aug 2004 17:27:13 -0000
*************** sh_va_start (tree valist, rtx nextarg)
*** 6339,6345 ****
    else
      nfp = 0;
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, UNITS_PER_WORD * nfp, 0)));
    t = build (MODIFY_EXPR, ptr_type_node, next_fp_limit, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 6339,6345 ----
    else
      nfp = 0;
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, UNITS_PER_WORD * nfp)));
    t = build (MODIFY_EXPR, ptr_type_node, next_fp_limit, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** sh_va_start (tree valist, rtx nextarg)
*** 6354,6360 ****
    else
      nint = 0;
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, UNITS_PER_WORD * nint, 0)));
    t = build (MODIFY_EXPR, ptr_type_node, next_o_limit, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 6354,6360 ----
    else
      nint = 0;
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, UNITS_PER_WORD * nint)));
    t = build (MODIFY_EXPR, ptr_type_node, next_o_limit, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
Index: config/stormy16/stormy16.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/stormy16/stormy16.c,v
retrieving revision 1.66
diff -c -3 -p -r1.66 stormy16.c
*** config/stormy16/stormy16.c	17 Aug 2004 22:51:28 -0000	1.66
--- config/stormy16/stormy16.c	23 Aug 2004 17:27:19 -0000
*************** xstormy16_expand_builtin_va_start (tree 
*** 1487,1500 ****
  
    t = make_tree (TREE_TYPE (base), virtual_incoming_args_rtx);
    t = build (PLUS_EXPR, TREE_TYPE (base), t, 
! 	     build_int_cst (NULL_TREE, INCOMING_FRAME_SP_OFFSET, 0));
    t = build (MODIFY_EXPR, TREE_TYPE (base), base, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (count), count, 
  	     build_int_cst (NULL_TREE,
! 			    current_function_args_info * UNITS_PER_WORD, 0));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  }
--- 1487,1500 ----
  
    t = make_tree (TREE_TYPE (base), virtual_incoming_args_rtx);
    t = build (PLUS_EXPR, TREE_TYPE (base), t, 
! 	     build_int_cst (NULL_TREE, INCOMING_FRAME_SP_OFFSET));
    t = build (MODIFY_EXPR, TREE_TYPE (base), base, t);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  
    t = build (MODIFY_EXPR, TREE_TYPE (count), count, 
  	     build_int_cst (NULL_TREE,
! 			    current_function_args_info * UNITS_PER_WORD));
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
  }
Index: config/xtensa/xtensa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.c,v
retrieving revision 1.68
diff -c -3 -p -r1.68 xtensa.c
*** config/xtensa/xtensa.c	19 Aug 2004 06:12:11 -0000	1.68
--- config/xtensa/xtensa.c	23 Aug 2004 17:27:24 -0000
*************** xtensa_va_start (tree valist, rtx nextar
*** 2379,2385 ****
    /* Set the __va_stk member to ($arg_ptr - 32).  */
    u = make_tree (ptr_type_node, virtual_incoming_args_rtx);
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, -32, -1)));
    t = build (MODIFY_EXPR, ptr_type_node, stk, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 2379,2385 ----
    /* Set the __va_stk member to ($arg_ptr - 32).  */
    u = make_tree (ptr_type_node, virtual_incoming_args_rtx);
    u = fold (build (PLUS_EXPR, ptr_type_node, u,
! 		   build_int_cst (NULL_TREE, -32)));
    t = build (MODIFY_EXPR, ptr_type_node, stk, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** xtensa_va_start (tree valist, rtx nextar
*** 2389,2395 ****
       alignment offset for __va_stk.  */
    if (arg_words >= MAX_ARGS_IN_REGISTERS)
      arg_words += 2;
!   u = build_int_cst (NULL_TREE, arg_words * UNITS_PER_WORD, 0);
    t = build (MODIFY_EXPR, integer_type_node, ndx, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
--- 2389,2395 ----
       alignment offset for __va_stk.  */
    if (arg_words >= MAX_ARGS_IN_REGISTERS)
      arg_words += 2;
!   u = build_int_cst (NULL_TREE, arg_words * UNITS_PER_WORD);
    t = build (MODIFY_EXPR, integer_type_node, ndx, u);
    TREE_SIDE_EFFECTS (t) = 1;
    expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
*************** xtensa_gimplify_va_arg_expr (tree valist
*** 2456,2464 ****
        int align = TYPE_ALIGN (type) / BITS_PER_UNIT;
  
        t = build (PLUS_EXPR, integer_type_node, orig_ndx,
! 		 build_int_cst (NULL_TREE, align - 1, 0));
        t = build (BIT_AND_EXPR, integer_type_node, t,
! 		 build_int_cst (NULL_TREE, -align, -1));
        t = build (MODIFY_EXPR, integer_type_node, orig_ndx, t);
        gimplify_and_add (t, pre_p);
      }
--- 2456,2464 ----
        int align = TYPE_ALIGN (type) / BITS_PER_UNIT;
  
        t = build (PLUS_EXPR, integer_type_node, orig_ndx,
! 		 build_int_cst (NULL_TREE, align - 1));
        t = build (BIT_AND_EXPR, integer_type_node, t,
! 		 build_int_cst (NULL_TREE, -align));
        t = build (MODIFY_EXPR, integer_type_node, orig_ndx, t);
        gimplify_and_add (t, pre_p);
      }
*************** xtensa_gimplify_va_arg_expr (tree valist
*** 2488,2494 ****
        lab_false = create_artificial_label ();
        lab_over = create_artificial_label ();
  
!       t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD, 0);
        t = build (GT_EXPR, boolean_type_node, ndx, t);
        t = build (COND_EXPR, void_type_node, t,
  		 build (GOTO_EXPR, void_type_node, lab_false),
--- 2488,2494 ----
        lab_false = create_artificial_label ();
        lab_over = create_artificial_label ();
  
!       t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD);
        t = build (GT_EXPR, boolean_type_node, ndx, t);
        t = build (COND_EXPR, void_type_node, t,
  		 build (GOTO_EXPR, void_type_node, lab_false),
*************** xtensa_gimplify_va_arg_expr (tree valist
*** 2518,2524 ****
  
    lab_false2 = create_artificial_label ();
  
!   t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD, 0);
    t = build (GT_EXPR, boolean_type_node, orig_ndx, t);
    t = build (COND_EXPR, void_type_node, t,
  	     build (GOTO_EXPR, void_type_node, lab_false2),
--- 2518,2524 ----
  
    lab_false2 = create_artificial_label ();
  
!   t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD);
    t = build (GT_EXPR, boolean_type_node, orig_ndx, t);
    t = build (COND_EXPR, void_type_node, t,
  	     build (GOTO_EXPR, void_type_node, lab_false2),
Index: cp/call.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/call.c,v
retrieving revision 1.501
diff -c -3 -p -r1.501 call.c
*** cp/call.c	16 Aug 2004 02:07:45 -0000	1.501
--- cp/call.c	23 Aug 2004 17:27:37 -0000
*************** convert_class_to_reference (tree t, tree
*** 919,925 ****
       error messages, which we should not issue now because we are just
       trying to find a conversion operator.  Therefore, we use NULL,
       cast to the appropriate type.  */
!   arglist = build_int_cst (build_pointer_type (s), 0, 0);
    arglist = build_tree_list (NULL_TREE, arglist);
  
    reference_type = build_reference_type (t);
--- 919,925 ----
       error messages, which we should not issue now because we are just
       trying to find a conversion operator.  Therefore, we use NULL,
       cast to the appropriate type.  */
!   arglist = build_int_cst (build_pointer_type (s), 0);
    arglist = build_tree_list (NULL_TREE, arglist);
  
    reference_type = build_reference_type (t);
*************** build_user_type_conversion_1 (tree totyp
*** 2519,2525 ****
  
        ctors = BASELINK_FUNCTIONS (ctors);
  
!       t = build_int_cst (build_pointer_type (totype), 0, 0);
        args = build_tree_list (NULL_TREE, expr);
        /* We should never try to call the abstract or base constructor
  	 from here.  */
--- 2519,2525 ----
  
        ctors = BASELINK_FUNCTIONS (ctors);
  
!       t = build_int_cst (build_pointer_type (totype), 0);
        args = build_tree_list (NULL_TREE, expr);
        /* We should never try to call the abstract or base constructor
  	 from here.  */
*************** convert_like_real (conversion *convs, tr
*** 4181,4187 ****
  	if (DECL_CONSTRUCTOR_P (convfn))
  	  {
  	    tree t = build_int_cst (build_pointer_type (DECL_CONTEXT (convfn)),
! 				    0, 0);
  
  	    args = build_tree_list (NULL_TREE, expr);
  	    if (DECL_HAS_IN_CHARGE_PARM_P (convfn)
--- 4181,4187 ----
  	if (DECL_CONSTRUCTOR_P (convfn))
  	  {
  	    tree t = build_int_cst (build_pointer_type (DECL_CONTEXT (convfn)),
! 				    0);
  
  	    args = build_tree_list (NULL_TREE, expr);
  	    if (DECL_HAS_IN_CHARGE_PARM_P (convfn)
*************** build_java_interface_fn_ref (tree fn, tr
*** 4959,4965 ****
          break;
        i++;
      }
!   idx = build_int_cst (NULL_TREE, i, 0);
  
    lookup_args = tree_cons (NULL_TREE, klass_ref, 
  			   tree_cons (NULL_TREE, iface_ref,
--- 4959,4965 ----
          break;
        i++;
      }
!   idx = build_int_cst (NULL_TREE, i);
  
    lookup_args = tree_cons (NULL_TREE, klass_ref, 
  			   tree_cons (NULL_TREE, iface_ref,
*************** build_special_member_call (tree instance
*** 5035,5041 ****
    /* Handle the special case where INSTANCE is NULL_TREE.  */
    if (name == complete_ctor_identifier && !instance)
      {
!       instance = build_int_cst (build_pointer_type (class_type), 0, 0);
        instance = build1 (INDIRECT_REF, class_type, instance);
      }
    else
--- 5035,5041 ----
    /* Handle the special case where INSTANCE is NULL_TREE.  */
    if (name == complete_ctor_identifier && !instance)
      {
!       instance = build_int_cst (build_pointer_type (class_type), 0);
        instance = build1 (INDIRECT_REF, class_type, instance);
      }
    else
Index: cp/class.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/class.c,v
retrieving revision 1.656
diff -c -3 -p -r1.656 class.c
*** cp/class.c	20 Aug 2004 14:17:26 -0000	1.656
--- cp/class.c	23 Aug 2004 17:27:53 -0000
*************** finish_struct_1 (tree t)
*** 5085,5091 ****
  	       thunk base function.  */
  	    DECL_VINDEX (fndecl) = NULL_TREE;
  	  else if (TREE_CODE (DECL_VINDEX (fndecl)) != INTEGER_CST)
! 	    DECL_VINDEX (fndecl) = build_int_cst (NULL_TREE, vindex, 0);
  	}
      }
  
--- 5085,5091 ----
  	       thunk base function.  */
  	    DECL_VINDEX (fndecl) = NULL_TREE;
  	  else if (TREE_CODE (DECL_VINDEX (fndecl)) != INTEGER_CST)
! 	    DECL_VINDEX (fndecl) = build_int_cst (NULL_TREE, vindex);
  	}
      }
  
*************** build_vtbl_initializer (tree binfo,
*** 7279,7285 ****
    vid.generate_vcall_entries = true;
    /* The first vbase or vcall offset is at index -3 in the vtable.  */
    vid.index = build_int_cst (ssizetype,
! 			     -3 * TARGET_VTABLE_DATA_ENTRY_DISTANCE, -1);
  
    /* Add entries to the vtable for RTTI.  */
    build_rtti_vtbl_entries (binfo, &vid);
--- 7279,7285 ----
    vid.generate_vcall_entries = true;
    /* The first vbase or vcall offset is at index -3 in the vtable.  */
    vid.index = build_int_cst (ssizetype,
! 			     -3 * TARGET_VTABLE_DATA_ENTRY_DISTANCE);
  
    /* Add entries to the vtable for RTTI.  */
    build_rtti_vtbl_entries (binfo, &vid);
*************** build_vtbl_initializer (tree binfo,
*** 7405,7411 ****
  	      {
  		tree fdesc = build2 (FDESC_EXPR, vfunc_ptr_type_node,
  				     TREE_OPERAND (init, 0),
! 				     build_int_cst (NULL_TREE, i, 0));
  		TREE_CONSTANT (fdesc) = 1;
  		TREE_INVARIANT (fdesc) = 1;
  
--- 7405,7411 ----
  	      {
  		tree fdesc = build2 (FDESC_EXPR, vfunc_ptr_type_node,
  				     TREE_OPERAND (init, 0),
! 				     build_int_cst (NULL_TREE, i));
  		TREE_CONSTANT (fdesc) = 1;
  		TREE_INVARIANT (fdesc) = 1;
  
Index: cp/cp-gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cp-gimplify.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 cp-gimplify.c
*** cp/cp-gimplify.c	16 Aug 2004 02:07:50 -0000	1.10
--- cp/cp-gimplify.c	23 Aug 2004 17:27:54 -0000
*************** cp_gimplify_expr (tree *expr_p, tree *pr
*** 211,217 ****
  
      case EMPTY_CLASS_EXPR:
        /* We create an INTEGER_CST with RECORD_TYPE and value zero.  */
!       *expr_p = build_int_cst (TREE_TYPE (*expr_p), 0, 0);
        ret = GS_OK;
        break;
  
--- 211,217 ----
  
      case EMPTY_CLASS_EXPR:
        /* We create an INTEGER_CST with RECORD_TYPE and value zero.  */
!       *expr_p = build_int_cst (TREE_TYPE (*expr_p), 0);
        ret = GS_OK;
        break;
  
Index: cp/cvt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cvt.c,v
retrieving revision 1.161
diff -c -3 -p -r1.161 cvt.c
*** cp/cvt.c	16 Aug 2004 02:07:50 -0000	1.161
--- cp/cvt.c	23 Aug 2004 17:27:57 -0000
*************** cp_convert_to_pointer (tree type, tree e
*** 264,275 ****
  	{
  	  /* A NULL pointer-to-member is represented by -1, not by
  	     zero.  */
! 	  expr = build_int_cst (type, -1, -1);
  	  /* Fix up the representation of -1 if appropriate.  */
  	  expr = force_fit_type (expr, 0, false, false);
  	}
        else
! 	expr = build_int_cst (type, 0, 0);
        
        return expr;
      }
--- 264,275 ----
  	{
  	  /* A NULL pointer-to-member is represented by -1, not by
  	     zero.  */
! 	  expr = build_int_cst (type, -1);
  	  /* Fix up the representation of -1 if appropriate.  */
  	  expr = force_fit_type (expr, 0, false, false);
  	}
        else
! 	expr = build_int_cst (type, 0);
        
        return expr;
      }
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.1276
diff -c -3 -p -r1.1276 decl.c
*** cp/decl.c	21 Aug 2004 01:31:24 -0000	1.1276
--- cp/decl.c	23 Aug 2004 17:28:20 -0000
*************** cxx_init_decl_processing (void)
*** 2963,2970 ****
    java_char_type_node = record_builtin_java_type ("__java_char", -16);
    java_boolean_type_node = record_builtin_java_type ("__java_boolean", -1);
  
!   integer_two_node = build_int_cst (NULL_TREE, 2, 0);
!   integer_three_node = build_int_cst (NULL_TREE, 3, 0);
  
    record_builtin_type (RID_BOOL, "bool", boolean_type_node);
    truthvalue_type_node = boolean_type_node;
--- 2963,2970 ----
    java_char_type_node = record_builtin_java_type ("__java_char", -16);
    java_boolean_type_node = record_builtin_java_type ("__java_boolean", -1);
  
!   integer_two_node = build_int_cst (NULL_TREE, 2);
!   integer_three_node = build_int_cst (NULL_TREE, 3);
  
    record_builtin_type (RID_BOOL, "bool", boolean_type_node);
    truthvalue_type_node = boolean_type_node;
*************** complete_array_type (tree type, tree ini
*** 5254,5266 ****
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
  	  maxindex = build_int_cst (NULL_TREE,
  				    (TREE_STRING_LENGTH (initial_value)
! 				     / eltsize) - 1, 0);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
  	  tree elts = CONSTRUCTOR_ELTS (initial_value);
  
! 	  maxindex = build_int_cst (ssizetype, -1, -1);
  	  for (; elts; elts = TREE_CHAIN (elts))
  	    {
  	      if (TREE_PURPOSE (elts))
--- 5254,5266 ----
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
  	  maxindex = build_int_cst (NULL_TREE,
  				    (TREE_STRING_LENGTH (initial_value)
! 				     / eltsize) - 1);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
  	  tree elts = CONSTRUCTOR_ELTS (initial_value);
  
! 	  maxindex = build_int_cst (ssizetype, -1);
  	  for (; elts; elts = TREE_CHAIN (elts))
  	    {
  	      if (TREE_PURPOSE (elts))
*************** complete_array_type (tree type, tree ini
*** 5278,5291 ****
  	    initial_value = NULL_TREE;
  
  	  /* Prevent further error messages.  */
! 	  maxindex = build_int_cst (NULL_TREE, 0, 0);
  	}
      }
  
    if (!maxindex)
      {
        if (do_default)
! 	maxindex = build_int_cst (NULL_TREE, 0, 0);
        value = 2;
      }
  
--- 5278,5291 ----
  	    initial_value = NULL_TREE;
  
  	  /* Prevent further error messages.  */
! 	  maxindex = build_int_cst (NULL_TREE, 0);
  	}
      }
  
    if (!maxindex)
      {
        if (do_default)
! 	maxindex = build_int_cst (NULL_TREE, 0);
        value = 2;
      }
  
Index: cp/decl2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl2.c,v
retrieving revision 1.735
diff -c -3 -p -r1.735 decl2.c
*** cp/decl2.c	16 Aug 2004 14:29:25 -0000	1.735
--- cp/decl2.c	23 Aug 2004 17:28:28 -0000
*************** start_static_initialization_or_destructi
*** 2351,2357 ****
    guard_if_stmt = begin_if_stmt ();
    cond = cp_build_binary_op (EQ_EXPR,
  			     priority_decl,
! 			     build_int_cst (NULL_TREE, priority, 0));
    init_cond = initp ? integer_one_node : integer_zero_node;
    init_cond = cp_build_binary_op (EQ_EXPR,
  				  initialize_p_decl,
--- 2351,2357 ----
    guard_if_stmt = begin_if_stmt ();
    cond = cp_build_binary_op (EQ_EXPR,
  			     priority_decl,
! 			     build_int_cst (NULL_TREE, priority));
    init_cond = initp ? integer_one_node : integer_zero_node;
    init_cond = cp_build_binary_op (EQ_EXPR,
  				  initialize_p_decl,
*************** generate_ctor_or_dtor_function (bool con
*** 2602,2611 ****
  	      body = start_objects (function_key, priority);
  
  	    arguments = tree_cons (NULL_TREE,
! 				   build_int_cst (NULL_TREE, priority, 0), 
  				   NULL_TREE);
  	    arguments = tree_cons (NULL_TREE,
! 				   build_int_cst (NULL_TREE, constructor_p, 0),
  				   arguments);
  	    finish_expr_stmt (build_function_call (fndecl, arguments));
  	  }
--- 2602,2611 ----
  	      body = start_objects (function_key, priority);
  
  	    arguments = tree_cons (NULL_TREE,
! 				   build_int_cst (NULL_TREE, priority), 
  				   NULL_TREE);
  	    arguments = tree_cons (NULL_TREE,
! 				   build_int_cst (NULL_TREE, constructor_p),
  				   arguments);
  	    finish_expr_stmt (build_function_call (fndecl, arguments));
  	  }
Index: cp/except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/except.c,v
retrieving revision 1.174
diff -c -3 -p -r1.174 except.c
*** cp/except.c	16 Aug 2004 02:07:56 -0000	1.174
--- cp/except.c	23 Aug 2004 17:28:29 -0000
*************** build_throw (tree exp)
*** 721,727 ****
  	  cleanup = build1 (ADDR_EXPR, cleanup_type, cleanup);
  	}
        else
! 	cleanup = build_int_cst (cleanup_type, 0, 0);
  	
        tmp = tree_cons (NULL_TREE, cleanup, NULL_TREE);
        tmp = tree_cons (NULL_TREE, throw_type, tmp);
--- 721,727 ----
  	  cleanup = build1 (ADDR_EXPR, cleanup_type, cleanup);
  	}
        else
! 	cleanup = build_int_cst (cleanup_type, 0);
  	
        tmp = tree_cons (NULL_TREE, cleanup, NULL_TREE);
        tmp = tree_cons (NULL_TREE, throw_type, tmp);
Index: cp/mangle.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/mangle.c,v
retrieving revision 1.105
diff -c -3 -p -r1.105 mangle.c
*** cp/mangle.c	16 Aug 2004 02:07:58 -0000	1.105
--- cp/mangle.c	23 Aug 2004 17:28:35 -0000
*************** write_integer_cst (const tree cst)
*** 1183,1191 ****
  	}
        
        type = c_common_signed_or_unsigned_type (1, TREE_TYPE (cst));
!       base = build_int_cst (type, chunk, 0);
!       n = build_int_cst (type,
! 			 TREE_INT_CST_LOW (cst), TREE_INT_CST_HIGH (cst));
  
        if (sign < 0)
  	{
--- 1183,1191 ----
  	}
        
        type = c_common_signed_or_unsigned_type (1, TREE_TYPE (cst));
!       base = build_int_cstu (type, chunk);
!       n = build_int_cst_wide (type,
! 			      TREE_INT_CST_LOW (cst), TREE_INT_CST_HIGH (cst));
  
        if (sign < 0)
  	{
Index: cp/method.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/method.c,v
retrieving revision 1.310
diff -c -3 -p -r1.310 method.c
*** cp/method.c	20 Aug 2004 14:17:33 -0000	1.310
--- cp/method.c	23 Aug 2004 17:28:37 -0000
*************** void
*** 179,187 ****
  finish_thunk (tree thunk)
  {
    tree function, name;
!   tree fixed_offset = build_int_cst (ssizetype,
! 				     THUNK_FIXED_OFFSET (thunk),
! 				     THUNK_FIXED_OFFSET (thunk) < 0 ? -1 : 0);
    tree virtual_offset = THUNK_VIRTUAL_OFFSET (thunk);
  
    my_friendly_assert (!DECL_NAME (thunk) && DECL_THUNK_P (thunk), 20021127);
--- 179,185 ----
  finish_thunk (tree thunk)
  {
    tree function, name;
!   tree fixed_offset = build_int_cst (ssizetype, THUNK_FIXED_OFFSET (thunk));
    tree virtual_offset = THUNK_VIRTUAL_OFFSET (thunk);
  
    my_friendly_assert (!DECL_NAME (thunk) && DECL_THUNK_P (thunk), 20021127);
Index: cp/rtti.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/rtti.c,v
retrieving revision 1.196
diff -c -3 -p -r1.196 rtti.c
*** cp/rtti.c	16 Aug 2004 02:08:02 -0000	1.196
--- cp/rtti.c	23 Aug 2004 17:28:40 -0000
*************** build_headof (tree exp)
*** 151,157 ****
  
    /* The offset-to-top field is at index -2 from the vptr.  */
    index = build_int_cst (NULL_TREE,
! 			 -2 * TARGET_VTABLE_DATA_ENTRY_DISTANCE, -1);
  
    offset = build_vtbl_ref (build_indirect_ref (exp, NULL), index);
  
--- 151,157 ----
  
    /* The offset-to-top field is at index -2 from the vptr.  */
    index = build_int_cst (NULL_TREE,
! 			 -2 * TARGET_VTABLE_DATA_ENTRY_DISTANCE);
  
    offset = build_vtbl_ref (build_indirect_ref (exp, NULL), index);
  
*************** get_tinfo_decl_dynamic (tree exp)
*** 227,233 ****
  
        /* The RTTI information is at index -1.  */
        index = build_int_cst (NULL_TREE,
! 			     -1 * TARGET_VTABLE_DATA_ENTRY_DISTANCE, -1);
        t = build_vtbl_ref (exp, index);
        t = convert (type_info_ptr_type, t);
      }
--- 227,233 ----
  
        /* The RTTI information is at index -1.  */
        index = build_int_cst (NULL_TREE,
! 			     -1 * TARGET_VTABLE_DATA_ENTRY_DISTANCE);
        t = build_vtbl_ref (exp, index);
        t = convert (type_info_ptr_type, t);
      }
*************** build_dynamic_cast_1 (tree type, tree ex
*** 590,596 ****
  		{
  		  warning ("dynamic_cast of `%#D' to `%#T' can never succeed",
  			      op, type);
! 		  retval = build_int_cst (type, 0, 0); 
  		  return retval;
  		}
  	    }
--- 590,596 ----
  		{
  		  warning ("dynamic_cast of `%#D' to `%#T' can never succeed",
  			      op, type);
! 		  retval = build_int_cst (type, 0); 
  		  return retval;
  		}
  	    }
*************** ptr_initializer (tree desc, tree target)
*** 879,885 ****
    
    if (incomplete)
      flags |= 8;
!   init = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, flags, 0), init);
    init = tree_cons (NULL_TREE,
                      get_tinfo_ptr (TYPE_MAIN_VARIANT (to)),
                      init);
--- 879,885 ----
    
    if (incomplete)
      flags |= 8;
!   init = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, flags), init);
    init = tree_cons (NULL_TREE,
                      get_tinfo_ptr (TYPE_MAIN_VARIANT (to)),
                      init);
*************** ptm_initializer (tree desc, tree target)
*** 909,915 ****
      flags |= 0x8;
    if (!COMPLETE_TYPE_P (klass))
      flags |= 0x10;
!   init = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, flags, 0), init);
    init = tree_cons (NULL_TREE,
  		    get_tinfo_ptr (TYPE_MAIN_VARIANT (to)),
                      init);
--- 909,915 ----
      flags |= 0x8;
    if (!COMPLETE_TYPE_P (klass))
      flags |= 0x10;
!   init = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, flags), init);
    init = tree_cons (NULL_TREE,
  		    get_tinfo_ptr (TYPE_MAIN_VARIANT (to)),
                      init);
*************** get_pseudo_ti_init (tree type, tree var_
*** 1090,1099 ****
                
                /* Combine offset and flags into one field.  */
                offset = cp_build_binary_op (LSHIFT_EXPR, offset,
! 					   build_int_cst (NULL_TREE, 8, 0));
                offset = cp_build_binary_op (BIT_IOR_EXPR, offset,
! 					   build_int_cst (NULL_TREE,
! 							  flags, 0));
                base_init = tree_cons (NULL_TREE, offset, base_init);
                base_init = tree_cons (NULL_TREE, tinfo, base_init);
                base_init = build_constructor (NULL_TREE, base_init);
--- 1090,1098 ----
                
                /* Combine offset and flags into one field.  */
                offset = cp_build_binary_op (LSHIFT_EXPR, offset,
! 					   build_int_cst (NULL_TREE, 8));
                offset = cp_build_binary_op (BIT_IOR_EXPR, offset,
! 					   build_int_cst (NULL_TREE, flags));
                base_init = tree_cons (NULL_TREE, offset, base_init);
                base_init = tree_cons (NULL_TREE, tinfo, base_init);
                base_init = build_constructor (NULL_TREE, base_init);
*************** get_pseudo_ti_init (tree type, tree var_
*** 1103,1113 ****
  	  base_inits = tree_cons (NULL_TREE, base_inits, NULL_TREE);
  	  /* Prepend the number of bases.  */
  	  base_inits = tree_cons (NULL_TREE,
! 				  build_int_cst (NULL_TREE, nbases, 0),
  				  base_inits);
  	  /* Prepend the hint flags.  */
  	  base_inits = tree_cons (NULL_TREE,
! 				  build_int_cst (NULL_TREE, hint, 0),
  				  base_inits);
  
            return class_initializer (var_desc, type, base_inits);
--- 1102,1112 ----
  	  base_inits = tree_cons (NULL_TREE, base_inits, NULL_TREE);
  	  /* Prepend the number of bases.  */
  	  base_inits = tree_cons (NULL_TREE,
! 				  build_int_cst (NULL_TREE, nbases),
  				  base_inits);
  	  /* Prepend the hint flags.  */
  	  base_inits = tree_cons (NULL_TREE,
! 				  build_int_cst (NULL_TREE, hint),
  				  base_inits);
  
            return class_initializer (var_desc, type, base_inits);
Index: cp/search.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/search.c,v
retrieving revision 1.308
diff -c -3 -p -r1.308 search.c
*** cp/search.c	15 Aug 2004 15:45:25 -0000	1.308
--- cp/search.c	23 Aug 2004 17:28:45 -0000
*************** get_dynamic_cast_base_type (tree subtype
*** 346,352 ****
    
    if (!boff)
      return offset;
!   offset = build_int_cst (ssizetype, boff, -1);
    return offset;
  }
  
--- 346,352 ----
    
    if (!boff)
      return offset;
!   offset = build_int_cst (ssizetype, boff);
    return offset;
  }
  
Index: fortran/trans-array.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-array.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 trans-array.c
*** fortran/trans-array.c	20 Aug 2004 13:53:21 -0000	1.19
--- fortran/trans-array.c	23 Aug 2004 17:28:54 -0000
*************** gfc_trans_array_constructor_value (stmtb
*** 796,802 ****
  		  p = p->next;
  		}
  
! 	      bound = build_int_cst (NULL_TREE, n - 1, 0);
                /* Create an array type to hold them.  */
  	      tmptype = build_range_type (gfc_array_index_type,
  					  gfc_index_zero_node, bound);
--- 796,802 ----
  		  p = p->next;
  		}
  
! 	      bound = build_int_cst (NULL_TREE, n - 1);
                /* Create an array type to hold them.  */
  	      tmptype = build_range_type (gfc_array_index_type,
  					  gfc_index_zero_node, bound);
*************** gfc_trans_array_constructor_value (stmtb
*** 821,827 ****
  	      init = gfc_build_addr_expr (NULL, init);
  
  	      size = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (type));
! 	      bound = build_int_cst (NULL_TREE, n * size, 0);
  	      tmp = gfc_chainon_list (NULL_TREE, tmp);
  	      tmp = gfc_chainon_list (tmp, init);
  	      tmp = gfc_chainon_list (tmp, bound);
--- 821,827 ----
  	      init = gfc_build_addr_expr (NULL, init);
  
  	      size = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (type));
! 	      bound = build_int_cst (NULL_TREE, n * size);
  	      tmp = gfc_chainon_list (NULL_TREE, tmp);
  	      tmp = gfc_chainon_list (tmp, init);
  	      tmp = gfc_chainon_list (tmp, bound);
Index: fortran/trans-const.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-const.c,v
retrieving revision 1.8
diff -c -3 -p -r1.8 trans-const.c
*** fortran/trans-const.c	22 Aug 2004 20:01:22 -0000	1.8
--- fortran/trans-const.c	23 Aug 2004 17:28:54 -0000
*************** gfc_build_string_const (int length, cons
*** 82,88 ****
    tree len;
  
    str = build_string (length, s);
!   len = build_int_cst (NULL_TREE, length, 0);
    TREE_TYPE (str) =
      build_array_type (gfc_character1_type_node,
  		      build_range_type (gfc_strlen_type_node,
--- 82,88 ----
    tree len;
  
    str = build_string (length, s);
!   len = build_int_cst (NULL_TREE, length);
    TREE_TYPE (str) =
      build_array_type (gfc_character1_type_node,
  		      build_range_type (gfc_strlen_type_node,
*************** gfc_init_constants (void)
*** 146,152 ****
    int n;
  
    for (n = 0; n <= GFC_MAX_DIMENSIONS; n++)
!     gfc_rank_cst[n] = build_int_cst (gfc_array_index_type, n, 0);
  
    gfc_strconst_bounds = gfc_build_string_const (21, "Array bound mismatch");
  
--- 146,152 ----
    int n;
  
    for (n = 0; n <= GFC_MAX_DIMENSIONS; n++)
!     gfc_rank_cst[n] = build_int_cst (gfc_array_index_type, n);
  
    gfc_strconst_bounds = gfc_build_string_const (21, "Array bound mismatch");
  
*************** gfc_conv_mpz_to_tree (mpz_t i, int kind)
*** 180,187 ****
    if (mpz_fits_slong_p (i))
      {
        val = mpz_get_si (i);
!       res = build_int_cst (gfc_get_int_type (kind),
! 			   val, (val < 0) ? (HOST_WIDE_INT)-1 : 0);
        return (res);
      }
  
--- 180,186 ----
    if (mpz_fits_slong_p (i))
      {
        val = mpz_get_si (i);
!       res = build_int_cst (gfc_get_int_type (kind), val);
        return (res);
      }
  
*************** gfc_conv_mpz_to_tree (mpz_t i, int kind)
*** 218,224 ****
        high = (high << 4) + (low >> (BITS_PER_HOST_WIDE_INT - 4));
        low = (low << 4) + n;
      }
!   res = build_int_cst (gfc_get_int_type (kind), low, high);
    if (negate)
      res = fold (build1 (NEGATE_EXPR, TREE_TYPE (res), res));
  
--- 217,223 ----
        high = (high << 4) + (low >> (BITS_PER_HOST_WIDE_INT - 4));
        low = (low << 4) + n;
      }
!   res = build_int_cst_wide (gfc_get_int_type (kind), low, high);
    if (negate)
      res = fold (build1 (NEGATE_EXPR, TREE_TYPE (res), res));
  
*************** gfc_conv_constant_to_tree (gfc_expr * ex
*** 322,328 ****
        return gfc_conv_mpfr_to_tree (expr->value.real, expr->ts.kind);
  
      case BT_LOGICAL:
!       return build_int_cst (NULL_TREE, expr->value.logical, 0);
  
      case BT_COMPLEX:
        {
--- 321,327 ----
        return gfc_conv_mpfr_to_tree (expr->value.real, expr->ts.kind);
  
      case BT_LOGICAL:
!       return build_int_cst (NULL_TREE, expr->value.logical);
  
      case BT_COMPLEX:
        {
Index: fortran/trans-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-decl.c,v
retrieving revision 1.33
diff -c -3 -p -r1.33 trans-decl.c
*** fortran/trans-decl.c	22 Aug 2004 20:01:22 -0000	1.33
--- fortran/trans-decl.c	23 Aug 2004 17:28:59 -0000
*************** gfc_get_symbol_decl (gfc_symbol * sym)
*** 793,799 ****
            ASSIGN_ADDR can not be used. Equal -1 means that ASSIGN_ADDR is the
            target label's address. Other value is the length of format string
            and ASSIGN_ADDR is the address of format string.  */
!       DECL_INITIAL (length) = build_int_cst (NULL_TREE, -2, -1);
      }
  
    if (sym->ts.type == BT_CHARACTER)
--- 793,799 ----
            ASSIGN_ADDR can not be used. Equal -1 means that ASSIGN_ADDR is the
            target label's address. Other value is the length of format string
            and ASSIGN_ADDR is the address of format string.  */
!       DECL_INITIAL (length) = build_int_cst (NULL_TREE, -2);
      }
  
    if (sym->ts.type == BT_CHARACTER)
*************** build_entry_thunks (gfc_namespace * ns)
*** 1354,1360 ****
        gfc_start_block (&body);
  
        /* Pass extra parameter identifying this entry point.  */
!       tmp = build_int_cst (gfc_array_index_type, el->id, 0);
        args = tree_cons (NULL_TREE, tmp, NULL_TREE);
        string_args = NULL_TREE;
  
--- 1354,1360 ----
        gfc_start_block (&body);
  
        /* Pass extra parameter identifying this entry point.  */
!       tmp = build_int_cst (gfc_array_index_type, el->id);
        args = tree_cons (NULL_TREE, tmp, NULL_TREE);
        string_args = NULL_TREE;
  
*************** gfc_trans_entry_master_switch (gfc_entry
*** 2122,2128 ****
        /* Add the case label.  */
        label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
        DECL_CONTEXT (label) = current_function_decl;
!       val = build_int_cst (gfc_array_index_type, el->id, 0);
        tmp = build_v (CASE_LABEL_EXPR, val, NULL_TREE, label);
        gfc_add_expr_to_block (&block, tmp);
        
--- 2122,2128 ----
        /* Add the case label.  */
        label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
        DECL_CONTEXT (label) = current_function_decl;
!       val = build_int_cst (gfc_array_index_type, el->id);
        tmp = build_v (CASE_LABEL_EXPR, val, NULL_TREE, label);
        gfc_add_expr_to_block (&block, tmp);
        
Index: fortran/trans-intrinsic.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-intrinsic.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 trans-intrinsic.c
*** fortran/trans-intrinsic.c	15 Aug 2004 19:26:32 -0000	1.14
--- fortran/trans-intrinsic.c	23 Aug 2004 17:29:04 -0000
*************** gfc_conv_intrinsic_ibits (gfc_se * se, g
*** 1760,1766 ****
    arg2 = TREE_VALUE (arg2);
    type = TREE_TYPE (arg);
  
!   mask = build_int_cst (NULL_TREE, -1, ~(unsigned HOST_WIDE_INT) 0);
    mask = build (LSHIFT_EXPR, type, mask, arg3);
    mask = build1 (BIT_NOT_EXPR, type, mask);
  
--- 1760,1766 ----
    arg2 = TREE_VALUE (arg2);
    type = TREE_TYPE (arg);
  
!   mask = build_int_cst (NULL_TREE, -1);
    mask = build (LSHIFT_EXPR, type, mask, arg3);
    mask = build1 (BIT_NOT_EXPR, type, mask);
  
*************** gfc_conv_intrinsic_len (gfc_se * se, gfc
*** 1884,1890 ****
    switch (arg->expr_type)
      {
      case EXPR_CONSTANT:
!       len = build_int_cst (NULL_TREE, arg->value.character.length, 0);
        break;
  
      default:
--- 1884,1890 ----
    switch (arg->expr_type)
      {
      case EXPR_CONSTANT:
!       len = build_int_cst (NULL_TREE, arg->value.character.length);
        break;
  
      default:
*************** void prepare_arg_info (gfc_se * se, gfc_
*** 2329,2337 ****
  
     /* Caculate the numbers of bits of exponent, fraction and word  */
     n = gfc_validate_kind (a1->ts.type, a1->ts.kind);
!    tmp = build_int_cst (NULL_TREE, gfc_real_kinds[n].digits - 1, 0);
     rcs->fdigits = convert (masktype, tmp);
!    wbits = build_int_cst (NULL_TREE, TYPE_PRECISION (rcs->type) - 1, 0);
     wbits = convert (masktype, wbits);
     rcs->edigits = fold (build (MINUS_EXPR, masktype, wbits, tmp));
  
--- 2329,2337 ----
  
     /* Caculate the numbers of bits of exponent, fraction and word  */
     n = gfc_validate_kind (a1->ts.type, a1->ts.kind);
!    tmp = build_int_cst (NULL_TREE, gfc_real_kinds[n].digits - 1);
     rcs->fdigits = convert (masktype, tmp);
!    wbits = build_int_cst (NULL_TREE, TYPE_PRECISION (rcs->type) - 1);
     wbits = convert (masktype, wbits);
     rcs->edigits = fold (build (MINUS_EXPR, masktype, wbits, tmp));
  
Index: fortran/trans-io.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-io.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 trans-io.c
*** fortran/trans-io.c	18 Aug 2004 01:20:05 -0000	1.11
--- fortran/trans-io.c	23 Aug 2004 17:29:06 -0000
*************** add_case (int label_value, gfc_st_label 
*** 451,457 ****
    if (label == NULL)
      return;			/* No label, no case */
  
!   value = build_int_cst (NULL_TREE, label_value, 0);
  
    /* Make a backend label for this case.  */
    tmp = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
--- 451,457 ----
    if (label == NULL)
      return;			/* No label, no case */
  
!   value = build_int_cst (NULL_TREE, label_value);
  
    /* Make a backend label for this case.  */
    tmp = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
*************** set_error_locus (stmtblock_t * block, lo
*** 524,530 ****
    gfc_add_modify_expr (block, locus_file, tmp);
  
    line = where->lb->linenum;
!   gfc_add_modify_expr (block, locus_line, build_int_cst (NULL_TREE, line, 0));
  }
  
  
--- 524,530 ----
    gfc_add_modify_expr (block, locus_file, tmp);
  
    line = where->lb->linenum;
!   gfc_add_modify_expr (block, locus_line, build_int_cst (NULL_TREE, line));
  }
  
  
*************** transfer_namelist_element (stmtblock_t *
*** 896,902 ****
    args = gfc_chainon_list (NULL_TREE, addr_expr);
    args = gfc_chainon_list (args, string);
    args = gfc_chainon_list (args, string_length);
!   arg2 = build_int_cst (gfc_array_index_type, ts->kind, 0);
    args = gfc_chainon_list (args,arg2);
  
    switch (ts->type)
--- 896,902 ----
    args = gfc_chainon_list (NULL_TREE, addr_expr);
    args = gfc_chainon_list (args, string);
    args = gfc_chainon_list (args, string_length);
!   arg2 = build_int_cst (gfc_array_index_type, ts->kind);
    args = gfc_chainon_list (args,arg2);
  
    switch (ts->type)
*************** transfer_expr (gfc_se * se, gfc_typespec
*** 1152,1173 ****
    switch (ts->type)
      {
      case BT_INTEGER:
!       arg2 = build_int_cst (NULL_TREE, kind, 0);
        function = iocall_x_integer;
        break;
  
      case BT_REAL:
!       arg2 = build_int_cst (NULL_TREE, kind, 0);
        function = iocall_x_real;
        break;
  
      case BT_COMPLEX:
!       arg2 = build_int_cst (NULL_TREE, kind, 0);
        function = iocall_x_complex;
        break;
  
      case BT_LOGICAL:
!       arg2 = build_int_cst (NULL_TREE, kind, 0);
        function = iocall_x_logical;
        break;
  
--- 1152,1173 ----
    switch (ts->type)
      {
      case BT_INTEGER:
!       arg2 = build_int_cst (NULL_TREE, kind);
        function = iocall_x_integer;
        break;
  
      case BT_REAL:
!       arg2 = build_int_cst (NULL_TREE, kind);
        function = iocall_x_real;
        break;
  
      case BT_COMPLEX:
!       arg2 = build_int_cst (NULL_TREE, kind);
        function = iocall_x_complex;
        break;
  
      case BT_LOGICAL:
!       arg2 = build_int_cst (NULL_TREE, kind);
        function = iocall_x_logical;
        break;
  
Index: fortran/trans-stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-stmt.c,v
retrieving revision 1.8
diff -c -3 -p -r1.8 trans-stmt.c
*** fortran/trans-stmt.c	17 Aug 2004 15:34:09 -0000	1.8
--- fortran/trans-stmt.c	23 Aug 2004 17:29:13 -0000
*************** gfc_trans_label_assign (gfc_code * code)
*** 113,119 ****
      {
        label_str = code->label->format->value.character.string;
        label_len = code->label->format->value.character.length;
!       len_tree = build_int_cst (NULL_TREE, label_len, 0);
        label_tree = gfc_build_string_const (label_len + 1, label_str);
        label_tree = gfc_build_addr_expr (pchar_type_node, label_tree);
      }
--- 113,119 ----
      {
        label_str = code->label->format->value.character.string;
        label_len = code->label->format->value.character.length;
!       len_tree = build_int_cst (NULL_TREE, label_len);
        label_tree = gfc_build_string_const (label_len + 1, label_str);
        label_tree = gfc_build_addr_expr (pchar_type_node, label_tree);
      }
*************** gfc_trans_pause (gfc_code * code)
*** 287,293 ****
  
    if (code->expr == NULL)
      {
!       tmp = build_int_cst (gfc_int4_type_node, code->ext.stop_code, 0);
        args = gfc_chainon_list (NULL_TREE, tmp);
        fndecl = gfor_fndecl_pause_numeric;
      }
--- 287,293 ----
  
    if (code->expr == NULL)
      {
!       tmp = build_int_cst (gfc_int4_type_node, code->ext.stop_code);
        args = gfc_chainon_list (NULL_TREE, tmp);
        fndecl = gfor_fndecl_pause_numeric;
      }
*************** gfc_trans_stop (gfc_code * code)
*** 326,332 ****
  
    if (code->expr == NULL)
      {
!       tmp = build_int_cst (gfc_int4_type_node, code->ext.stop_code, 0);
        args = gfc_chainon_list (NULL_TREE, tmp);
        fndecl = gfor_fndecl_stop_numeric;
      }
--- 326,332 ----
  
    if (code->expr == NULL)
      {
!       tmp = build_int_cst (gfc_int4_type_node, code->ext.stop_code);
        args = gfc_chainon_list (NULL_TREE, tmp);
        fndecl = gfor_fndecl_stop_numeric;
      }
*************** gfc_trans_character_select (gfc_code *co
*** 1100,1106 ****
      }
  
    type = build_array_type (select_struct, build_index_type
! 			   (build_int_cst (NULL_TREE, n - 1, 0)));
  
    init = build1 (CONSTRUCTOR, type, nreverse(init));
    TREE_CONSTANT (init) = 1;
--- 1100,1106 ----
      }
  
    type = build_array_type (select_struct, build_index_type
! 			   (build_int_cst (NULL_TREE, n - 1)));
  
    init = build1 (CONSTRUCTOR, type, nreverse(init));
    TREE_CONSTANT (init) = 1;
*************** gfc_trans_character_select (gfc_code *co
*** 1118,1124 ****
    init = gfc_build_addr_expr (pvoid_type_node, init);
    args = gfc_chainon_list (NULL_TREE, init);
  
!   tmp = build_int_cst (NULL_TREE, n, 0);
    args = gfc_chainon_list (args, tmp);
  
    tmp = gfc_build_addr_expr (pvoid_type_node, end_label);
--- 1118,1124 ----
    init = gfc_build_addr_expr (pvoid_type_node, init);
    args = gfc_chainon_list (NULL_TREE, init);
  
!   tmp = build_int_cst (NULL_TREE, n);
    args = gfc_chainon_list (args, tmp);
  
    tmp = gfc_build_addr_expr (pvoid_type_node, end_label);
Index: fortran/trans-types.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans-types.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 trans-types.c
*** fortran/trans-types.c	20 Aug 2004 13:31:08 -0000	1.11
--- fortran/trans-types.c	23 Aug 2004 17:29:16 -0000
*************** gfc_init_types (void)
*** 168,180 ****
        hi = 0;
        lo = (~(unsigned HOST_WIDE_INT) 0) >> (sizeof (HOST_WIDE_INT) * 8 - n);
      }
!   gfc_max_array_element_size = build_int_cst (long_unsigned_type_node, lo, hi);
  
    size_type_node = gfc_array_index_type;
    boolean_type_node = gfc_get_logical_type (gfc_default_logical_kind ());
  
!   boolean_true_node = build_int_cst (boolean_type_node, 1, 0);
!   boolean_false_node = build_int_cst (boolean_type_node, 0, 0);
  }
  
  /* Get a type node for an integer kind */
--- 168,181 ----
        hi = 0;
        lo = (~(unsigned HOST_WIDE_INT) 0) >> (sizeof (HOST_WIDE_INT) * 8 - n);
      }
!   gfc_max_array_element_size
!     = build_int_cst_wide (long_unsigned_type_node, lo, hi);
  
    size_type_node = gfc_array_index_type;
    boolean_type_node = gfc_get_logical_type (gfc_default_logical_kind ());
  
!   boolean_true_node = build_int_cst (boolean_type_node, 1);
!   boolean_false_node = build_int_cst (boolean_type_node, 0);
  }
  
  /* Get a type node for an integer kind */
*************** gfc_get_dtype (tree type, int rank)
*** 597,607 ****
  
        i += TREE_INT_CST_LOW (size) << GFC_DTYPE_SIZE_SHIFT;
      }
!   dtype = build_int_cst (gfc_array_index_type, i, 0);
  
    if (size && !INTEGER_CST_P (size))
      {
!       tmp = build_int_cst (gfc_array_index_type, GFC_DTYPE_SIZE_SHIFT, 0);
        tmp  = fold (build (LSHIFT_EXPR, gfc_array_index_type, size, tmp));
        dtype = fold (build (PLUS_EXPR, gfc_array_index_type, tmp, dtype));
      }
--- 598,608 ----
  
        i += TREE_INT_CST_LOW (size) << GFC_DTYPE_SIZE_SHIFT;
      }
!   dtype = build_int_cst (gfc_array_index_type, i);
  
    if (size && !INTEGER_CST_P (size))
      {
!       tmp = build_int_cst (gfc_array_index_type, GFC_DTYPE_SIZE_SHIFT);
        tmp  = fold (build (LSHIFT_EXPR, gfc_array_index_type, size, tmp));
        dtype = fold (build (PLUS_EXPR, gfc_array_index_type, tmp, dtype));
      }
Index: fortran/trans.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/trans.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 trans.c
*** fortran/trans.c	17 Aug 2004 15:34:09 -0000	1.11
--- fortran/trans.c	23 Aug 2004 17:29:16 -0000
*************** gfc_trans_runtime_check (tree cond, tree
*** 365,371 ****
    tmp = gfc_build_addr_expr (pchar_type_node, gfc_strconst_current_filename);
    args = gfc_chainon_list (args, tmp);
  
!   tmp = build_int_cst (NULL_TREE, input_line, 0);
    args = gfc_chainon_list (args, tmp);
  
    tmp = gfc_build_function_call (gfor_fndecl_runtime_error, args);
--- 365,371 ----
    tmp = gfc_build_addr_expr (pchar_type_node, gfc_strconst_current_filename);
    args = gfc_chainon_list (args, tmp);
  
!   tmp = build_int_cst (NULL_TREE, input_line);
    args = gfc_chainon_list (args, tmp);
  
    tmp = gfc_build_function_call (gfor_fndecl_runtime_error, args);
Index: java/boehm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/boehm.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 boehm.c
*** java/boehm.c	15 Aug 2004 15:45:29 -0000	1.19
--- java/boehm.c	23 Aug 2004 17:29:17 -0000
*************** get_boehm_type_descriptor (tree type)
*** 206,218 ****
  	  last_set_index >>= 1;
  	  ++count;
  	}
!       value = build_int_cst (value_type, low, high);
      }
    else if (! pointer_after_end)
      {
        /* Bottom two bits for bitmap mark type are 01.  */
        set_bit (&low, &high, 0);
!       value = build_int_cst (value_type, low, high);
      }
    else
      {
--- 206,218 ----
  	  last_set_index >>= 1;
  	  ++count;
  	}
!       value = build_int_cst_wide (value_type, low, high);
      }
    else if (! pointer_after_end)
      {
        /* Bottom two bits for bitmap mark type are 01.  */
        set_bit (&low, &high, 0);
!       value = build_int_cst_wide (value_type, low, high);
      }
    else
      {
*************** get_boehm_type_descriptor (tree type)
*** 223,229 ****
  	    | DS_PROC)
  	 Here DS_PROC == 2.  */
      procedure_object_descriptor:
!       value = build_int_cst (value_type, 2, 0);
      }
  
    return value;
--- 223,229 ----
  	    | DS_PROC)
  	 Here DS_PROC == 2.  */
      procedure_object_descriptor:
!       value = build_int_cst (value_type, 2);
      }
  
    return value;
Index: java/class.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/class.c,v
retrieving revision 1.205
diff -c -3 -p -r1.205 class.c
*** java/class.c	19 Aug 2004 14:32:31 -0000	1.205
--- java/class.c	23 Aug 2004 17:29:22 -0000
*************** build_utf8_ref (tree name)
*** 880,887 ****
    FINISH_RECORD (ctype);
    START_RECORD_CONSTRUCTOR (cinit, ctype);
    name_hash = hashUtf8String (name_ptr, name_len) & 0xFFFF;
!   PUSH_FIELD_VALUE (cinit, "hash", build_int_cst (NULL_TREE, name_hash, 0));
!   PUSH_FIELD_VALUE (cinit, "length", build_int_cst (NULL_TREE, name_len, 0));
    string = build_string (name_len, name_ptr);
    TREE_TYPE (string) = str_type;
    PUSH_FIELD_VALUE (cinit, "data", string);
--- 880,887 ----
    FINISH_RECORD (ctype);
    START_RECORD_CONSTRUCTOR (cinit, ctype);
    name_hash = hashUtf8String (name_ptr, name_len) & 0xFFFF;
!   PUSH_FIELD_VALUE (cinit, "hash", build_int_cst (NULL_TREE, name_hash));
!   PUSH_FIELD_VALUE (cinit, "length", build_int_cst (NULL_TREE, name_len));
    string = build_string (name_len, name_ptr);
    TREE_TYPE (string) = str_type;
    PUSH_FIELD_VALUE (cinit, "data", string);
*************** build_static_field_ref (tree fdecl)
*** 1082,1088 ****
      {
        tree table_index 
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (fdecl, &TYPE_ATABLE_METHODS (output_class)), 0);
        tree field_address
  	= build4 (ARRAY_REF, build_pointer_type (TREE_TYPE (fdecl)), 
  		  TYPE_ATABLE_DECL (output_class), table_index,
--- 1082,1088 ----
      {
        tree table_index 
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (fdecl, &TYPE_ATABLE_METHODS (output_class)));
        tree field_address
  	= build4 (ARRAY_REF, build_pointer_type (TREE_TYPE (fdecl)), 
  		  TYPE_ATABLE_DECL (output_class), table_index,
*************** build_static_field_ref (tree fdecl)
*** 1114,1120 ****
  	}
        field_index *= int_size_in_bytes (field_type_node);
        ref = fold (build2 (PLUS_EXPR, field_ptr_type_node,
! 			  ref, build_int_cst (NULL_TREE, field_index, 0)));
        ref = build1 (INDIRECT_REF, field_type_node, ref);
        ref = build3 (COMPONENT_REF, field_info_union_node,
  		    ref, lookup_field (&field_type_node, info_ident),
--- 1114,1120 ----
  	}
        field_index *= int_size_in_bytes (field_type_node);
        ref = fold (build2 (PLUS_EXPR, field_ptr_type_node,
! 			  ref, build_int_cst (NULL_TREE, field_index)));
        ref = build1 (INDIRECT_REF, field_type_node, ref);
        ref = build3 (COMPONENT_REF, field_info_union_node,
  		    ref, lookup_field (&field_type_node, info_ident),
*************** make_field_value (tree fdecl)
*** 1268,1274 ****
    if (! resolved)
      flags |= 0x8000 /* FIELD_UNRESOLVED_FLAG */;
  
!   PUSH_FIELD_VALUE (finit, "accflags", build_int_cst (NULL_TREE, flags, 0));
    PUSH_FIELD_VALUE (finit, "bsize", TYPE_SIZE_UNIT (TREE_TYPE (fdecl)));
  
    PUSH_FIELD_VALUE
--- 1268,1274 ----
    if (! resolved)
      flags |= 0x8000 /* FIELD_UNRESOLVED_FLAG */;
  
!   PUSH_FIELD_VALUE (finit, "accflags", build_int_cst (NULL_TREE, flags));
    PUSH_FIELD_VALUE (finit, "bsize", TYPE_SIZE_UNIT (TREE_TYPE (fdecl)));
  
    PUSH_FIELD_VALUE
*************** make_method_value (tree mdecl)
*** 1303,1309 ****
    /* For interfaces, the index field contains the dispatch index. */
    if (CLASS_INTERFACE (TYPE_NAME (class_decl)))
      index = build_int_cst (NULL_TREE,
! 			   get_interface_method_index (mdecl, class_decl), 0);
    else if (!flag_indirect_dispatch && get_method_index (mdecl) != NULL_TREE)
      index = get_method_index (mdecl);
    else
--- 1303,1309 ----
    /* For interfaces, the index field contains the dispatch index. */
    if (CLASS_INTERFACE (TYPE_NAME (class_decl)))
      index = build_int_cst (NULL_TREE,
! 			   get_interface_method_index (mdecl, class_decl));
    else if (!flag_indirect_dispatch && get_method_index (mdecl) != NULL_TREE)
      index = get_method_index (mdecl);
    else
*************** make_method_value (tree mdecl)
*** 1326,1332 ****
  			(IDENTIFIER_POINTER(signature),
  			 IDENTIFIER_LENGTH(signature)))));
    }
!   PUSH_FIELD_VALUE (minit, "accflags", build_int_cst (NULL_TREE, accflags, 0));
    PUSH_FIELD_VALUE (minit, "index", index);
    PUSH_FIELD_VALUE (minit, "ncode", code);
  
--- 1326,1332 ----
  			(IDENTIFIER_POINTER(signature),
  			 IDENTIFIER_LENGTH(signature)))));
    }
!   PUSH_FIELD_VALUE (minit, "accflags", build_int_cst (NULL_TREE, accflags));
    PUSH_FIELD_VALUE (minit, "index", index);
    PUSH_FIELD_VALUE (minit, "ncode", code);
  
*************** get_dispatch_table (tree type, tree this
*** 1439,1445 ****
  	    for (j = 0; j < TARGET_VTABLE_USES_DESCRIPTORS; ++j)
  	      {
  		tree fdesc = build2 (FDESC_EXPR, nativecode_ptr_type_node, 
! 				     method, build_int_cst (NULL_TREE, j, 0));
  		TREE_CONSTANT (fdesc) = 1;
  		TREE_INVARIANT (fdesc) = 1;
  	        list = tree_cons (NULL_TREE, fdesc, list);
--- 1439,1445 ----
  	    for (j = 0; j < TARGET_VTABLE_USES_DESCRIPTORS; ++j)
  	      {
  		tree fdesc = build2 (FDESC_EXPR, nativecode_ptr_type_node, 
! 				     method, build_int_cst (NULL_TREE, j));
  		TREE_CONSTANT (fdesc) = 1;
  		TREE_INVARIANT (fdesc) = 1;
  	        list = tree_cons (NULL_TREE, fdesc, list);
*************** make_class_data (tree type)
*** 1553,1560 ****
    /** Offset from start of virtual function table declaration
        to where objects actually point at, following new g++ ABI. */
    tree dtable_start_offset = build_int_cst (NULL_TREE,
! 					    2 * POINTER_SIZE / BITS_PER_UNIT,
! 					    0);
  
    this_class_addr = build_class_ref (type);
    decl = TREE_OPERAND (this_class_addr, 0);
--- 1553,1559 ----
    /** Offset from start of virtual function table declaration
        to where objects actually point at, following new g++ ABI. */
    tree dtable_start_offset = build_int_cst (NULL_TREE,
! 					    2 * POINTER_SIZE / BITS_PER_UNIT);
  
    this_class_addr = build_class_ref (type);
    decl = TREE_OPERAND (this_class_addr, 0);
*************** make_class_data (tree type)
*** 1668,1674 ****
    else
      {
        int super_index = alloc_class_constant (super);
!       super = build_int_cst (ptr_type_node, super_index, 0);
      }
  
    /* Build and emit the array of implemented interfaces. */
--- 1667,1673 ----
    else
      {
        int super_index = alloc_class_constant (super);
!       super = build_int_cst (ptr_type_node, super_index);
      }
  
    /* Build and emit the array of implemented interfaces. */
*************** make_class_data (tree type)
*** 1697,1703 ****
  	  else
  	    {
  	      int int_index = alloc_class_constant (iclass);
! 	      index = build_int_cst (ptr_type_node, int_index, 0);
  	    }
  	  init = tree_cons (NULL_TREE, index, init); 
  	}
--- 1696,1702 ----
  	  else
  	    {
  	      int int_index = alloc_class_constant (iclass);
! 	      index = build_int_cst (ptr_type_node, int_index);
  	    }
  	  init = tree_cons (NULL_TREE, index, init); 
  	}
*************** make_class_data (tree type)
*** 1743,1749 ****
    PUSH_FIELD_VALUE (cons, "name", build_utf8_ref (DECL_NAME (type_decl)));
    PUSH_FIELD_VALUE (cons, "accflags",
  		    build_int_cst (NULL_TREE,
! 				   get_access_flags_from_decl (type_decl), 0));
  
    PUSH_FIELD_VALUE (cons, "superclass", 
  		    CLASS_INTERFACE (type_decl) ? null_pointer_node : super);
--- 1742,1748 ----
    PUSH_FIELD_VALUE (cons, "name", build_utf8_ref (DECL_NAME (type_decl)));
    PUSH_FIELD_VALUE (cons, "accflags",
  		    build_int_cst (NULL_TREE,
! 				   get_access_flags_from_decl (type_decl)));
  
    PUSH_FIELD_VALUE (cons, "superclass", 
  		    CLASS_INTERFACE (type_decl) ? null_pointer_node : super);
*************** make_class_data (tree type)
*** 1751,1757 ****
    PUSH_FIELD_VALUE (cons, "methods",
  		    build1 (ADDR_EXPR, method_ptr_type_node, methods_decl));
    PUSH_FIELD_VALUE (cons, "method_count",
! 		    build_int_cst (NULL_TREE, method_count, 0));
  
    if (flag_indirect_dispatch)
      PUSH_FIELD_VALUE (cons, "vtable_method_count", integer_minus_one_node);
--- 1750,1756 ----
    PUSH_FIELD_VALUE (cons, "methods",
  		    build1 (ADDR_EXPR, method_ptr_type_node, methods_decl));
    PUSH_FIELD_VALUE (cons, "method_count",
! 		    build_int_cst (NULL_TREE, method_count));
  
    if (flag_indirect_dispatch)
      PUSH_FIELD_VALUE (cons, "vtable_method_count", integer_minus_one_node);
*************** make_class_data (tree type)
*** 1763,1771 ****
  		    : build1 (ADDR_EXPR, field_ptr_type_node, fields_decl));
    PUSH_FIELD_VALUE (cons, "size_in_bytes", size_in_bytes (type));
    PUSH_FIELD_VALUE (cons, "field_count",
! 		    build_int_cst (NULL_TREE, field_count, 0));
    PUSH_FIELD_VALUE (cons, "static_field_count",
! 		    build_int_cst (NULL_TREE, static_field_count, 0));
  
    if (flag_indirect_dispatch)
      PUSH_FIELD_VALUE (cons, "vtable", null_pointer_node);
--- 1762,1770 ----
  		    : build1 (ADDR_EXPR, field_ptr_type_node, fields_decl));
    PUSH_FIELD_VALUE (cons, "size_in_bytes", size_in_bytes (type));
    PUSH_FIELD_VALUE (cons, "field_count",
! 		    build_int_cst (NULL_TREE, field_count));
    PUSH_FIELD_VALUE (cons, "static_field_count",
! 		    build_int_cst (NULL_TREE, static_field_count));
  
    if (flag_indirect_dispatch)
      PUSH_FIELD_VALUE (cons, "vtable", null_pointer_node);
*************** make_class_data (tree type)
*** 1812,1818 ****
    PUSH_FIELD_VALUE (cons, "interfaces", interfaces);
    PUSH_FIELD_VALUE (cons, "loader", null_pointer_node);
    PUSH_FIELD_VALUE (cons, "interface_count",
! 		    build_int_cst (NULL_TREE, interface_len, 0));
    PUSH_FIELD_VALUE (cons, "state", integer_zero_node);
  
    PUSH_FIELD_VALUE (cons, "thread", null_pointer_node);
--- 1811,1817 ----
    PUSH_FIELD_VALUE (cons, "interfaces", interfaces);
    PUSH_FIELD_VALUE (cons, "loader", null_pointer_node);
    PUSH_FIELD_VALUE (cons, "interface_count",
! 		    build_int_cst (NULL_TREE, interface_len));
    PUSH_FIELD_VALUE (cons, "state", integer_zero_node);
  
    PUSH_FIELD_VALUE (cons, "thread", null_pointer_node);
*************** emit_symbol_table (tree name, tree the_t
*** 2446,2452 ****
       uninitialized static array of INDEX + 1 elements. The extra entry
       is used by the runtime to track whether the table has been
       initialized. */
!   table_size = build_index_type (build_int_cst (NULL_TREE, index, 0));
    the_array_type = build_array_type (the_array_element_type, table_size);
    the_table = build_decl (VAR_DECL, name, the_array_type);
    TREE_STATIC (the_table) = 1;
--- 2445,2451 ----
       uninitialized static array of INDEX + 1 elements. The extra entry
       is used by the runtime to track whether the table has been
       initialized. */
!   table_size = build_index_type (build_int_cst (NULL_TREE, index));
    the_array_type = build_array_type (the_array_element_type, table_size);
    the_table = build_decl (VAR_DECL, name, the_array_type);
    TREE_STATIC (the_table) = 1;
*************** emit_catch_table (tree this_class)
*** 2487,2493 ****
  	       TYPE_CATCH_CLASSES (this_class));
    table_size = build_index_type
      (build_int_cst (NULL_TREE,
! 		    list_length (TYPE_CATCH_CLASSES (this_class)), 0));
    array_type 
      = build_array_type (TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (this_class))),
  			table_size);
--- 2486,2492 ----
  	       TYPE_CATCH_CLASSES (this_class));
    table_size = build_index_type
      (build_int_cst (NULL_TREE,
! 		    list_length (TYPE_CATCH_CLASSES (this_class))));
    array_type 
      = build_array_type (TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (this_class))),
  			table_size);
Index: java/constants.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/constants.c,v
retrieving revision 1.39
diff -c -3 -p -r1.39 constants.c
*** java/constants.c	15 Aug 2004 15:45:30 -0000	1.39
--- java/constants.c	23 Aug 2004 17:29:24 -0000
*************** get_tag_node (int tag)
*** 324,330 ****
    /* A Cache for build_int_cst (CONSTANT_XXX, 0). */
  
    if (tag_nodes[tag] == NULL_TREE)
!     tag_nodes[tag] = build_int_cst (NULL_TREE, tag, 0);
    return tag_nodes[tag];
  }
  
--- 324,330 ----
    /* A Cache for build_int_cst (CONSTANT_XXX, 0). */
  
    if (tag_nodes[tag] == NULL_TREE)
!     tag_nodes[tag] = build_int_cst (NULL_TREE, tag);
    return tag_nodes[tag];
  }
  
*************** tree
*** 424,430 ****
  build_ref_from_constant_pool (int index)
  {
    tree d = build_constant_data_ref ();
!   tree i = build_int_cst (NULL_TREE, index, 0);
    return build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (d)), d, i,
  		 NULL_TREE, NULL_TREE);
  }
--- 424,430 ----
  build_ref_from_constant_pool (int index)
  {
    tree d = build_constant_data_ref ();
!   tree i = build_int_cst (NULL_TREE, index);
    return build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (d)), d, i,
  		 NULL_TREE, NULL_TREE);
  }
*************** build_constants_constructor (void)
*** 453,459 ****
    if (outgoing_cpool->count > 0)
      {
        tree data_decl, tags_decl, tags_type;
!       tree max_index = build_int_cst (sizetype, outgoing_cpool->count - 1, 0);
        tree index_type = build_index_type (max_index);
  
        /* Add dummy 0'th element of constant pool. */
--- 453,459 ----
    if (outgoing_cpool->count > 0)
      {
        tree data_decl, tags_decl, tags_type;
!       tree max_index = build_int_cst (sizetype, outgoing_cpool->count - 1);
        tree index_type = build_index_type (max_index);
  
        /* Add dummy 0'th element of constant pool. */
*************** build_constants_constructor (void)
*** 485,491 ****
      }
    START_RECORD_CONSTRUCTOR (cons, constants_type_node);
    PUSH_FIELD_VALUE (cons, "size",
! 		    build_int_cst (NULL_TREE, outgoing_cpool->count, 0));
    PUSH_FIELD_VALUE (cons, "tags", tags_value);
    PUSH_FIELD_VALUE (cons, "data", data_value);
    FINISH_RECORD_CONSTRUCTOR (cons);
--- 485,491 ----
      }
    START_RECORD_CONSTRUCTOR (cons, constants_type_node);
    PUSH_FIELD_VALUE (cons, "size",
! 		    build_int_cst (NULL_TREE, outgoing_cpool->count));
    PUSH_FIELD_VALUE (cons, "tags", tags_value);
    PUSH_FIELD_VALUE (cons, "data", data_value);
    FINISH_RECORD_CONSTRUCTOR (cons);
Index: java/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/decl.c,v
retrieving revision 1.195
diff -c -3 -p -r1.195 decl.c
*** java/decl.c	15 Aug 2004 15:45:30 -0000	1.195
--- java/decl.c	23 Aug 2004 17:29:28 -0000
*************** java_init_decl_processing (void)
*** 585,608 ****
  
    /* Define these next since types below may used them.  */
    integer_type_node = java_type_for_size (INT_TYPE_SIZE, 0);
!   integer_zero_node = build_int_cst (NULL_TREE, 0, 0);
!   integer_one_node = build_int_cst (NULL_TREE, 1, 0);
!   integer_two_node = build_int_cst (NULL_TREE, 2, 0);
!   integer_four_node = build_int_cst (NULL_TREE, 4, 0);
!   integer_minus_one_node = build_int_cst (NULL_TREE, -1, -1);
  
    /* A few values used for range checking in the lexer.  */
!   decimal_int_max = build_int_cst (unsigned_int_type_node, 0x80000000, 0);
  #if HOST_BITS_PER_WIDE_INT == 64
!   decimal_long_max = build_int_cst (unsigned_long_type_node,
! 				    0x8000000000000000LL, 0);
! #else
! #if HOST_BITS_PER_WIDE_INT == 32
!   decimal_long_max = build_int_cst (unsigned_long_type_node, 0, 0x80000000);
  #else
   #error "unsupported size"
  #endif
- #endif
  
    size_zero_node = size_int (0);
    size_one_node = size_int (1);
--- 585,607 ----
  
    /* Define these next since types below may used them.  */
    integer_type_node = java_type_for_size (INT_TYPE_SIZE, 0);
!   integer_zero_node = build_int_cst (NULL_TREE, 0);
!   integer_one_node = build_int_cst (NULL_TREE, 1);
!   integer_two_node = build_int_cst (NULL_TREE, 2);
!   integer_four_node = build_int_cst (NULL_TREE, 4);
!   integer_minus_one_node = build_int_cst (NULL_TREE, -1);
  
    /* A few values used for range checking in the lexer.  */
!   decimal_int_max = build_int_cstu (unsigned_int_type_node, 0x80000000);
  #if HOST_BITS_PER_WIDE_INT == 64
!   decimal_long_max = build_int_cstu (unsigned_long_type_node,
! 				     0x8000000000000000LL);
! #elif HOST_BITS_PER_WIDE_INT == 32
!   decimal_long_max = build_int_cst_wide (unsigned_long_type_node,
! 					 0, 0x80000000);
  #else
   #error "unsupported size"
  #endif
  
    size_zero_node = size_int (0);
    size_one_node = size_int (1);
*************** java_init_decl_processing (void)
*** 610,616 ****
    bitsize_one_node = bitsize_int (1);
    bitsize_unit_node = bitsize_int (BITS_PER_UNIT);
  
!   long_zero_node = build_int_cst (long_type_node, 0, 0);
  
    void_type_node = make_node (VOID_TYPE);
    pushdecl (build_decl (TYPE_DECL, get_identifier ("void"), void_type_node));
--- 609,615 ----
    bitsize_one_node = bitsize_int (1);
    bitsize_unit_node = bitsize_int (BITS_PER_UNIT);
  
!   long_zero_node = build_int_cst (long_type_node, 0);
  
    void_type_node = make_node (VOID_TYPE);
    pushdecl (build_decl (TYPE_DECL, get_identifier ("void"), void_type_node));
*************** java_init_decl_processing (void)
*** 620,626 ****
    layout_type (t); /* Uses size_zero_node */
    return_address_type_node = build_pointer_type (t);
  
!   null_pointer_node = build_int_cst (ptr_type_node, 0, 0);
  
  #if 0
    /* Make a type to be the domain of a few array types
--- 619,625 ----
    layout_type (t); /* Uses size_zero_node */
    return_address_type_node = build_pointer_type (t);
  
!   null_pointer_node = build_int_cst (ptr_type_node, 0);
  
  #if 0
    /* Make a type to be the domain of a few array types
Index: java/expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/expr.c,v
retrieving revision 1.203
diff -c -3 -p -r1.203 expr.c
*** java/expr.c	20 Aug 2004 09:13:12 -0000	1.203
--- java/expr.c	23 Aug 2004 17:29:35 -0000
*************** build_java_array_length_access (tree nod
*** 698,704 ****
  
    length = java_array_type_length (type);
    if (length >= 0)
!     return build_int_cst (NULL_TREE, length, 0);
  
    node = build3 (COMPONENT_REF, int_type_node,
  		 build_java_indirect_ref (array_type, node,
--- 698,704 ----
  
    length = java_array_type_length (type);
    if (length >= 0)
!     return build_int_cst (NULL_TREE, length);
  
    node = build3 (COMPONENT_REF, int_type_node,
  		 build_java_indirect_ref (array_type, node,
*************** build_newarray (int atype_value, tree le
*** 910,916 ****
       and save the runtime some work. However, the bytecode generator
       expects to find the type_code int here. */
    if (flag_emit_class_files)
!     type_arg = build_int_cst (NULL_TREE, atype_value, 0);
    else
      type_arg = build_class_ref (prim_type);
  
--- 910,916 ----
       and save the runtime some work. However, the bytecode generator
       expects to find the type_code int here. */
    if (flag_emit_class_files)
!     type_arg = build_int_cst (NULL_TREE, atype_value);
    else
      type_arg = build_class_ref (prim_type);
  
*************** expand_java_multianewarray (tree class_t
*** 971,977 ****
  		      build_address_of (soft_multianewarray_node),
  		      tree_cons (NULL_TREE, build_class_ref (class_type),
  				 tree_cons (NULL_TREE, 
! 					    build_int_cst (NULL_TREE, ndim, 0),
  					    args)),
  		      NULL_TREE));
  }
--- 971,977 ----
  		      build_address_of (soft_multianewarray_node),
  		      tree_cons (NULL_TREE, build_class_ref (class_type),
  				 tree_cons (NULL_TREE, 
! 					    build_int_cst (NULL_TREE, ndim),
  					    args)),
  		      NULL_TREE));
  }
*************** expand_java_pushc (int ival, tree type)
*** 1082,1088 ****
    if (type == ptr_type_node && ival == 0)
      value = null_pointer_node;
    else if (type == int_type_node || type == long_type_node)
!     value = build_int_cst (type, ival, ival < 0 ? -1 : 0);
    else if (type == float_type_node || type == double_type_node)
      {
        REAL_VALUE_TYPE x;
--- 1082,1088 ----
    if (type == ptr_type_node && ival == 0)
      value = null_pointer_node;
    else if (type == int_type_node || type == long_type_node)
!     value = build_int_cst (type, ival);
    else if (type == float_type_node || type == double_type_node)
      {
        REAL_VALUE_TYPE x;
*************** expand_iinc (unsigned int local_var_inde
*** 1287,1293 ****
  
    flush_quick_stack ();
    local_var = find_local_variable (local_var_index, int_type_node, pc);
!   constant_value = build_int_cst (NULL_TREE, ival, ival < 0 ? -1 : 0);
    res = fold (build2 (PLUS_EXPR, int_type_node, local_var, constant_value));
    java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (local_var), local_var, res));
    update_aliases (local_var, local_var_index, pc);
--- 1287,1293 ----
  
    flush_quick_stack ();
    local_var = find_local_variable (local_var_index, int_type_node, pc);
!   constant_value = build_int_cst (NULL_TREE, ival);
    res = fold (build2 (PLUS_EXPR, int_type_node, local_var, constant_value));
    java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (local_var), local_var, res));
    update_aliases (local_var, local_var_index, pc);
*************** build_java_binop (enum tree_code op, tre
*** 1358,1364 ****
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
        mask = build_int_cst (NULL_TREE,
! 			    TYPE_PRECISION (TREE_TYPE (arg1)) - 1, 0);
        arg2 = fold (build2 (BIT_AND_EXPR, int_type_node, arg2, mask));
        break;
  
--- 1358,1364 ----
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
        mask = build_int_cst (NULL_TREE,
! 			    TYPE_PRECISION (TREE_TYPE (arg1)) - 1);
        arg2 = fold (build2 (BIT_AND_EXPR, int_type_node, arg2, mask));
        break;
  
*************** build_field_ref (tree self_value, tree s
*** 1539,1546 ****
  	{
  	  tree otable_index
  	    = build_int_cst (NULL_TREE, get_symbol_table_index 
! 			     (field_decl, &TYPE_OTABLE_METHODS (output_class)),
! 			     0);
  	  tree field_offset
  	    = build4 (ARRAY_REF, integer_type_node,
  		      TYPE_OTABLE_DECL (output_class), otable_index,
--- 1539,1545 ----
  	{
  	  tree otable_index
  	    = build_int_cst (NULL_TREE, get_symbol_table_index 
! 			     (field_decl, &TYPE_OTABLE_METHODS (output_class)));
  	  tree field_offset
  	    = build4 (ARRAY_REF, integer_type_node,
  		      TYPE_OTABLE_DECL (output_class), otable_index,
*************** expand_java_add_case (tree switch_expr, 
*** 1688,1694 ****
  {
    tree value, x;
  
!   value = build_int_cst (TREE_TYPE (switch_expr), match, match < 0 ? -1 : 0);
    
    x = build3 (CASE_LABEL_EXPR, void_type_node, value, NULL_TREE,
  	      create_artificial_label ());
--- 1687,1693 ----
  {
    tree value, x;
  
!   value = build_int_cst (TREE_TYPE (switch_expr), match);
    
    x = build3 (CASE_LABEL_EXPR, void_type_node, value, NULL_TREE,
  	      create_artificial_label ());
*************** static void
*** 1703,1710 ****
  expand_java_call (int target_pc, int return_address)
  {
    tree target_label = lookup_label (target_pc);
!   tree value = build_int_cst (NULL_TREE,
! 			      return_address, return_address < 0 ? -1 : 0);
    push_value (value);
    flush_quick_stack ();
    expand_goto (target_label);
--- 1702,1708 ----
  expand_java_call (int target_pc, int return_address)
  {
    tree target_label = lookup_label (target_pc);
!   tree value = build_int_cst (NULL_TREE, return_address);
    push_value (value);
    flush_quick_stack ();
    expand_goto (target_label);
*************** build_known_method_ref (tree method, tre
*** 1836,1842 ****
  	{
  	  tree table_index
  	    = build_int_cst (NULL_TREE, get_symbol_table_index 
! 			     (method, &TYPE_ATABLE_METHODS (output_class)), 0);
  	  func = build4 (ARRAY_REF,  method_ptr_type_node, 
  			 TYPE_ATABLE_DECL (output_class), table_index,
  			 NULL_TREE, NULL_TREE);
--- 1834,1840 ----
  	{
  	  tree table_index
  	    = build_int_cst (NULL_TREE, get_symbol_table_index 
! 			     (method, &TYPE_ATABLE_METHODS (output_class)));
  	  func = build4 (ARRAY_REF,  method_ptr_type_node, 
  			 TYPE_ATABLE_DECL (output_class), table_index,
  			 NULL_TREE, NULL_TREE);
*************** build_known_method_ref (tree method, tre
*** 1880,1886 ****
  	}
        method_index *= int_size_in_bytes (method_type_node);
        ref = fold (build2 (PLUS_EXPR, method_ptr_type_node,
! 			  ref, build_int_cst (NULL_TREE, method_index, 0)));
        ref = build1 (INDIRECT_REF, method_type_node, ref);
        func = build3 (COMPONENT_REF, nativecode_ptr_type_node,
  		     ref, lookup_field (&method_type_node, ncode_ident),
--- 1878,1884 ----
  	}
        method_index *= int_size_in_bytes (method_type_node);
        ref = fold (build2 (PLUS_EXPR, method_ptr_type_node,
! 			  ref, build_int_cst (NULL_TREE, method_index)));
        ref = build1 (INDIRECT_REF, method_type_node, ref);
        func = build3 (COMPONENT_REF, nativecode_ptr_type_node,
  		     ref, lookup_field (&method_type_node, ncode_ident),
*************** build_invokevirtual (tree dtable, tree m
*** 1961,1967 ****
      {
        otable_index 
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (method, &TYPE_OTABLE_METHODS (output_class)), 0);
        method_index = build4 (ARRAY_REF, integer_type_node, 
  			     TYPE_OTABLE_DECL (output_class), 
  			     otable_index, NULL_TREE, NULL_TREE);
--- 1959,1965 ----
      {
        otable_index 
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (method, &TYPE_OTABLE_METHODS (output_class)));
        method_index = build4 (ARRAY_REF, integer_type_node, 
  			     TYPE_OTABLE_DECL (output_class), 
  			     otable_index, NULL_TREE, NULL_TREE);
*************** build_invokeinterface (tree dtable, tree
*** 2021,2034 ****
      {
        otable_index
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (method, &TYPE_OTABLE_METHODS (output_class)), 0);
        idx = build4 (ARRAY_REF, integer_type_node,
  		    TYPE_OTABLE_DECL (output_class), otable_index,
  		    NULL_TREE, NULL_TREE);
      }
    else
      idx = build_int_cst (NULL_TREE,
! 			 get_interface_method_index (method, interface), 0);
  
    lookup_arg = tree_cons (NULL_TREE, dtable,
                            tree_cons (NULL_TREE, build_class_ref (interface),
--- 2019,2032 ----
      {
        otable_index
  	= build_int_cst (NULL_TREE, get_symbol_table_index 
! 			 (method, &TYPE_OTABLE_METHODS (output_class)));
        idx = build4 (ARRAY_REF, integer_type_node,
  		    TYPE_OTABLE_DECL (output_class), otable_index,
  		    NULL_TREE, NULL_TREE);
      }
    else
      idx = build_int_cst (NULL_TREE,
! 			 get_interface_method_index (method, interface));
  
    lookup_arg = tree_cons (NULL_TREE, dtable,
                            tree_cons (NULL_TREE, build_class_ref (interface),
*************** build_jni_stub (tree method)
*** 2282,2288 ****
    /* We call _Jv_LookupJNIMethod to find the actual underlying
       function pointer.  _Jv_LookupJNIMethod will throw the appropriate
       exception if this function is not found at runtime.  */
!   tem = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, args_size, 0));
    method_sig = build_java_signature (TREE_TYPE (method));
    lookup_arg = tree_cons (NULL_TREE,
                            build_utf8_ref (unmangle_classname
--- 2280,2286 ----
    /* We call _Jv_LookupJNIMethod to find the actual underlying
       function pointer.  _Jv_LookupJNIMethod will throw the appropriate
       exception if this function is not found at runtime.  */
!   tem = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, args_size));
    method_sig = build_java_signature (TREE_TYPE (method));
    lookup_arg = tree_cons (NULL_TREE,
                            build_utf8_ref (unmangle_classname
Index: java/java-gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/java-gimplify.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 java-gimplify.c
*** java/java-gimplify.c	18 Aug 2004 07:46:27 -0000	1.12
--- java/java-gimplify.c	23 Aug 2004 17:29:35 -0000
*************** java_gimplify_new_array_init (tree exp)
*** 242,248 ****
    tree data_field = lookup_field (&array_type, get_identifier ("data"));
    tree element_type = TYPE_ARRAY_ELEMENT (array_type);
    HOST_WIDE_INT ilength = java_array_type_length (array_type);
!   tree length = build_int_cst (NULL_TREE, ilength, 0);
    tree init = TREE_OPERAND (exp, 0);
    tree values = CONSTRUCTOR_ELTS (init);
  
--- 242,248 ----
    tree data_field = lookup_field (&array_type, get_identifier ("data"));
    tree element_type = TYPE_ARRAY_ELEMENT (array_type);
    HOST_WIDE_INT ilength = java_array_type_length (array_type);
!   tree length = build_int_cst (NULL_TREE, ilength);
    tree init = TREE_OPERAND (exp, 0);
    tree values = CONSTRUCTOR_ELTS (init);
  
*************** java_gimplify_new_array_init (tree exp)
*** 263,269 ****
  			 data_field, NULL_TREE);
        tree assignment = build2 (MODIFY_EXPR, element_type,
  				build4 (ARRAY_REF, element_type, lhs,
! 					build_int_cst (NULL_TREE, index++, 0),
  					NULL_TREE, NULL_TREE),
  				TREE_VALUE (values));
        body = build2 (COMPOUND_EXPR, element_type, body, assignment);
--- 263,269 ----
  			 data_field, NULL_TREE);
        tree assignment = build2 (MODIFY_EXPR, element_type,
  				build4 (ARRAY_REF, element_type, lhs,
! 					build_int_cst (NULL_TREE, index++),
  					NULL_TREE, NULL_TREE),
  				TREE_VALUE (values));
        body = build2 (COMPOUND_EXPR, element_type, body, assignment);
Index: java/jcf-parse.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/jcf-parse.c,v
retrieving revision 1.168
diff -c -3 -p -r1.168 jcf-parse.c
*** java/jcf-parse.c	16 Aug 2004 11:49:22 -0000	1.168
--- java/jcf-parse.c	23 Aug 2004 17:29:38 -0000
*************** get_constant (JCF *jcf, int index)
*** 266,272 ****
      case CONSTANT_Integer:
        {
  	jint num = JPOOL_INT(jcf, index);
! 	value = build_int_cst (int_type_node, num, num < 0 ? -1 : 0);
  	break;
        }
      case CONSTANT_Long:
--- 266,272 ----
      case CONSTANT_Integer:
        {
  	jint num = JPOOL_INT(jcf, index);
! 	value = build_int_cst (int_type_node, num);
  	break;
        }
      case CONSTANT_Long:
*************** get_constant (JCF *jcf, int index)
*** 278,284 ****
  	lshift_double (num, 0, 32, 64, &lo, &hi, 0);
  	num = JPOOL_UINT (jcf, index+1);
  	add_double (lo, hi, num, 0, &lo, &hi);
! 	value = build_int_cst (long_type_node, lo, hi);
  	value = force_fit_type (value, 0, false, false);
  	break;
        }
--- 278,284 ----
  	lshift_double (num, 0, 32, 64, &lo, &hi, 0);
  	num = JPOOL_UINT (jcf, index+1);
  	add_double (lo, hi, num, 0, &lo, &hi);
! 	value = build_int_cst_wide (long_type_node, lo, hi);
  	value = force_fit_type (value, 0, false, false);
  	break;
        }
Index: java/lex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/lex.c,v
retrieving revision 1.112
diff -c -3 -p -r1.112 lex.c
*** java/lex.c	19 Aug 2004 10:36:07 -0000	1.112
--- java/lex.c	23 Aug 2004 17:29:42 -0000
*************** do_java_lex (YYSTYPE *java_lval)
*** 1277,1285 ****
  #ifndef JC1_LITE
        /* Range checking.  */
        /* Temporarily set type to unsigned.  */
!       value = build_int_cst (long_suffix
! 			     ? unsigned_long_type_node
! 			     : unsigned_int_type_node, low, high);
        SET_LVAL_NODE (value);
  
        /* For base 10 numbers, only values up to the highest value
--- 1277,1285 ----
  #ifndef JC1_LITE
        /* Range checking.  */
        /* Temporarily set type to unsigned.  */
!       value = build_int_cst_wide (long_suffix
! 				  ? unsigned_long_type_node
! 				  : unsigned_int_type_node, low, high);
        SET_LVAL_NODE (value);
  
        /* For base 10 numbers, only values up to the highest value
*************** do_java_lex (YYSTYPE *java_lval)
*** 1300,1307 ****
  	}
  
        /* Sign extend the value.  */
!       value = build_int_cst (long_suffix ? long_type_node : int_type_node,
! 			     low, high);
        value = force_fit_type (value, 0, false, false);
  
        if (radix != 10)
--- 1300,1307 ----
  	}
  
        /* Sign extend the value.  */
!       value = build_int_cst_wide (long_suffix ? long_type_node : int_type_node,
! 				  low, high);
        value = force_fit_type (value, 0, false, false);
  
        if (radix != 10)
*************** do_java_lex (YYSTYPE *java_lval)
*** 1340,1346 ****
          char_lit = 0;		/* We silently convert it to zero.  */
  
        JAVA_LEX_CHAR_LIT (char_lit);
!       SET_LVAL_NODE (build_int_cst (char_type_node, char_lit, 0));
        return CHAR_LIT_TK;
      }
  
--- 1340,1346 ----
          char_lit = 0;		/* We silently convert it to zero.  */
  
        JAVA_LEX_CHAR_LIT (char_lit);
!       SET_LVAL_NODE (build_int_cst (char_type_node, char_lit));
        return CHAR_LIT_TK;
      }
  
Index: java/parse.y
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/parse.y,v
retrieving revision 1.503
diff -c -3 -p -r1.503 parse.y
*** java/parse.y	18 Aug 2004 17:57:03 -0000	1.503
--- java/parse.y	23 Aug 2004 17:30:16 -0000
*************** patch_binop (tree node, tree wfl_op1, tr
*** 13334,13343 ****
        /* Shift int only up to 0x1f and long up to 0x3f */
        if (prom_type == int_type_node)
  	op2 = fold (build2 (BIT_AND_EXPR, int_type_node, op2,
! 			    build_int_cst (NULL_TREE, 0x1f, 0)));
        else
  	op2 = fold (build2 (BIT_AND_EXPR, int_type_node, op2,
! 			    build_int_cst (NULL_TREE, 0x3f, 0)));
  
        /* The >>> operator is a >> operating on unsigned quantities */
        if (code == URSHIFT_EXPR && ! flag_emit_class_files)
--- 13334,13343 ----
        /* Shift int only up to 0x1f and long up to 0x3f */
        if (prom_type == int_type_node)
  	op2 = fold (build2 (BIT_AND_EXPR, int_type_node, op2,
! 			    build_int_cst (NULL_TREE, 0x1f)));
        else
  	op2 = fold (build2 (BIT_AND_EXPR, int_type_node, op2,
! 			    build_int_cst (NULL_TREE, 0x3f)));
  
        /* The >>> operator is a >> operating on unsigned quantities */
        if (code == URSHIFT_EXPR && ! flag_emit_class_files)
*************** patch_unaryop (tree node, tree wfl_op)
*** 14032,14043 ****
  	     both operands, if really necessary */
  	  if (JINTEGRAL_TYPE_P (op_type))
  	    {
! 	      value = build_int_cst (op_type, 1, 0);
  	      TREE_TYPE (node) = op_type;
  	    }
  	  else
  	    {
! 	      value = build_int_cst (NULL_TREE, 1, 0);
  	      TREE_TYPE (node) =
  		binary_numeric_promotion (op_type,
  					  TREE_TYPE (value), &op, &value);
--- 14032,14043 ----
  	     both operands, if really necessary */
  	  if (JINTEGRAL_TYPE_P (op_type))
  	    {
! 	      value = build_int_cst (op_type, 1);
  	      TREE_TYPE (node) = op_type;
  	    }
  	  else
  	    {
! 	      value = build_int_cst (NULL_TREE, 1);
  	      TREE_TYPE (node) =
  		binary_numeric_promotion (op_type,
  					  TREE_TYPE (value), &op, &value);
*************** patch_cast (tree node, tree wfl_op)
*** 14263,14269 ****
  static tree
  build_null_of_type (tree type)
  {
!   tree node = build_int_cst (promote_type (type), 0, 0);
    return node;
  }
  
--- 14263,14269 ----
  static tree
  build_null_of_type (tree type)
  {
!   tree node = build_int_cst (promote_type (type), 0);
    return node;
  }
  
*************** build_newarray_node (tree type, tree dim
*** 14345,14351 ****
  {
    tree node = build3 (NEW_ARRAY_EXPR, NULL_TREE, type,
  		      nreverse (dims),
! 		      build_int_cst (NULL_TREE, extra_dims, 0));
    return node;
  }
  
--- 14345,14351 ----
  {
    tree node = build3 (NEW_ARRAY_EXPR, NULL_TREE, type,
  		      nreverse (dims),
! 		      build_int_cst (NULL_TREE, extra_dims));
    return node;
  }
  
*************** patch_newarray (tree node)
*** 14444,14451 ****
  		 tree_cons (NULL_TREE,
  			    build_class_ref (TREE_TYPE (array_type)),
  			    tree_cons (NULL_TREE,
! 				       build_int_cst (NULL_TREE,
! 						      ndims, 0), dims )),
  		 NULL_TREE);
  }
  
--- 14444,14451 ----
  		 tree_cons (NULL_TREE,
  			    build_class_ref (TREE_TYPE (array_type)),
  			    tree_cons (NULL_TREE,
! 				       build_int_cst (NULL_TREE, ndims),
! 				       dims)),
  		 NULL_TREE);
  }
  
Index: java/resource.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/resource.c,v
retrieving revision 1.16
diff -c -3 -p -r1.16 resource.c
*** java/resource.c	15 Aug 2004 15:45:30 -0000	1.16
--- java/resource.c	23 Aug 2004 17:30:16 -0000
*************** compile_resource_data (const char *name,
*** 69,77 ****
    FINISH_RECORD (rtype);
    START_RECORD_CONSTRUCTOR (rinit, rtype);
    PUSH_FIELD_VALUE (rinit, "name_length", 
! 		    build_int_cst (NULL_TREE, strlen (name), 0));
    PUSH_FIELD_VALUE (rinit, "resource_length", 
! 		    build_int_cst (NULL_TREE, length, 0));
    data = build_string (strlen(name) + length, buffer);
    TREE_TYPE (data) = data_type;
    PUSH_FIELD_VALUE (rinit, "data", data);
--- 69,77 ----
    FINISH_RECORD (rtype);
    START_RECORD_CONSTRUCTOR (rinit, rtype);
    PUSH_FIELD_VALUE (rinit, "name_length", 
! 		    build_int_cst (NULL_TREE, strlen (name)));
    PUSH_FIELD_VALUE (rinit, "resource_length", 
! 		    build_int_cst (NULL_TREE, length));
    data = build_string (strlen(name) + length, buffer);
    TREE_TYPE (data) = data_type;
    PUSH_FIELD_VALUE (rinit, "data", data);
Index: java/typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/typeck.c,v
retrieving revision 1.71
diff -c -3 -p -r1.71 typeck.c
*** java/typeck.c	15 Aug 2004 15:45:30 -0000	1.71
--- java/typeck.c	23 Aug 2004 17:30:18 -0000
*************** build_prim_array_type (tree element_type
*** 357,364 ****
  
    if (length != -1)
      {
!       tree max_index = build_int_cst (sizetype,
! 				      length - 1, (0 == length ? -1 : 0));
        index = build_index_type (max_index);
      }
    return build_array_type (element_type, index);
--- 357,363 ----
  
    if (length != -1)
      {
!       tree max_index = build_int_cst (sizetype, length - 1);
        index = build_index_type (max_index);
      }
    return build_array_type (element_type, index);
Index: objc/objc-act.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/objc/objc-act.c,v
retrieving revision 1.238
diff -c -3 -p -r1.238 objc-act.c
*** objc/objc-act.c	17 Aug 2004 15:42:55 -0000	1.238
--- objc/objc-act.c	23 Aug 2004 17:30:36 -0000
*************** build_objc_string_object (tree string)
*** 1432,1438 ****
      }
    else
      {
!       initlist = build_tree_list (fields, build_int_cst (NULL_TREE, 0, 0));
      }
  
    fields = TREE_CHAIN (fields);
--- 1432,1438 ----
      }
    else
      {
!       initlist = build_tree_list (fields, build_int_cst (NULL_TREE, 0));
      }
  
    fields = TREE_CHAIN (fields);
*************** build_objc_string_object (tree string)
*** 1443,1449 ****
                   
    fields = TREE_CHAIN (fields);
    
!   initlist = tree_cons (fields, build_int_cst (NULL_TREE, length, 0), initlist);
    constructor = objc_build_constructor (constant_string_type,
  					nreverse (initlist));
  
--- 1443,1449 ----
                   
    fields = TREE_CHAIN (fields);
    
!   initlist = tree_cons (fields, build_int_cst (NULL_TREE, length), initlist);
    constructor = objc_build_constructor (constant_string_type,
  					nreverse (initlist));
  
*************** build_objc_symtab_template (void)
*** 1596,1602 ****
  		   (FIELD_DECL,
  		    build_array_type
  		    (ptr_type_node,
! 		     build_index_type (build_int_cst (NULL_TREE, index, 0))),
  		    "defs");
        chainon (field_decl_chain, field_decl);
      }
--- 1596,1602 ----
  		   (FIELD_DECL,
  		    build_array_type
  		    (ptr_type_node,
! 		     build_index_type (build_int_cst (NULL_TREE, index))),
  		    "defs");
        chainon (field_decl_chain, field_decl);
      }
*************** init_def_list (tree type)
*** 1641,1647 ****
        if (static_instances_decl)
  	expr = build_unary_op (ADDR_EXPR, static_instances_decl, 0);
        else
! 	expr = build_int_cst (NULL_TREE, 0, 0);
  
        initlist = tree_cons (NULL_TREE, expr, initlist);
      }
--- 1641,1647 ----
        if (static_instances_decl)
  	expr = build_unary_op (ADDR_EXPR, static_instances_decl, 0);
        else
! 	expr = build_int_cst (NULL_TREE, 0);
  
        initlist = tree_cons (NULL_TREE, expr, initlist);
      }
*************** init_objc_symtab (tree type)
*** 1658,1669 ****
  
    /* sel_ref_cnt = { ..., 5, ... } */
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0, 0));
  
    /* refs = { ..., _OBJC_SELECTOR_TABLE, ... } */
  
    if (flag_next_runtime || ! sel_ref_chain)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      initlist = tree_cons (NULL_TREE,
  			  build_unary_op (ADDR_EXPR,
--- 1658,1669 ----
  
    /* sel_ref_cnt = { ..., 5, ... } */
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0));
  
    /* refs = { ..., _OBJC_SELECTOR_TABLE, ... } */
  
    if (flag_next_runtime || ! sel_ref_chain)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      initlist = tree_cons (NULL_TREE,
  			  build_unary_op (ADDR_EXPR,
*************** init_objc_symtab (tree type)
*** 1672,1682 ****
  
    /* cls_def_cnt = { ..., 5, ... } */
  
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, imp_count, 0), initlist);
  
    /* cat_def_cnt = { ..., 5, ... } */
  
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, cat_count, 0), initlist);
  
    /* cls_def = { ..., { &Foo, &Bar, ...}, ... } */
  
--- 1672,1682 ----
  
    /* cls_def_cnt = { ..., 5, ... } */
  
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, imp_count), initlist);
  
    /* cat_def_cnt = { ..., 5, ... } */
  
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, cat_count), initlist);
  
    /* cls_def = { ..., { &Foo, &Bar, ...}, ... } */
  
*************** init_module_descriptor (tree type)
*** 1777,1783 ****
  
    /* version = { 1, ... } */
  
!   expr = build_int_cst (NULL_TREE, OBJC_VERSION, 0);
    initlist = build_tree_list (NULL_TREE, expr);
  
    /* size = { ..., sizeof (struct objc_module), ... } */
--- 1777,1783 ----
  
    /* version = { 1, ... } */
  
!   expr = build_int_cst (NULL_TREE, OBJC_VERSION);
    initlist = build_tree_list (NULL_TREE, expr);
  
    /* size = { ..., sizeof (struct objc_module), ... } */
*************** init_module_descriptor (tree type)
*** 1795,1801 ****
    if (UOBJC_SYMBOLS_decl)
      expr = build_unary_op (ADDR_EXPR, UOBJC_SYMBOLS_decl, 0);
    else
!     expr = build_int_cst (NULL_TREE, 0, 0);
    initlist = tree_cons (NULL_TREE, expr, initlist);
  
    return objc_build_constructor (type, nreverse (initlist));
--- 1795,1801 ----
    if (UOBJC_SYMBOLS_decl)
      expr = build_unary_op (ADDR_EXPR, UOBJC_SYMBOLS_decl, 0);
    else
!     expr = build_int_cst (NULL_TREE, 0);
    initlist = tree_cons (NULL_TREE, expr, initlist);
  
    return objc_build_constructor (type, nreverse (initlist));
*************** generate_static_references (void)
*** 2002,2008 ****
  	}
  
        /* Output {..., NULL}.  */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
        expr = objc_build_constructor (TREE_TYPE (decl), nreverse (initlist));
        finish_decl (decl, expr, NULL_TREE);
--- 2002,2008 ----
  	}
  
        /* Output {..., NULL}.  */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
        expr = objc_build_constructor (TREE_TYPE (decl), nreverse (initlist));
        finish_decl (decl, expr, NULL_TREE);
*************** generate_static_references (void)
*** 2010,2016 ****
  	= tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, decl, 1), decls);
      }
  
!   decls = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), decls);
    ident = get_identifier ("_OBJC_STATIC_INSTANCES");
    expr_decl = build_nt (ARRAY_REF, ident, NULL_TREE, NULL_TREE, NULL_TREE);
    decl_spec = tree_cons (NULL_TREE, build_pointer_type (void_type_node),
--- 2010,2016 ----
  	= tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, decl, 1), decls);
      }
  
!   decls = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), decls);
    ident = get_identifier ("_OBJC_STATIC_INSTANCES");
    expr_decl = build_nt (ARRAY_REF, ident, NULL_TREE, NULL_TREE, NULL_TREE);
    decl_spec = tree_cons (NULL_TREE, build_pointer_type (void_type_node),
*************** build_selector_translation_table (void)
*** 2205,2211 ****
        DECL_EXTERNAL (UOBJC_SELECTOR_TABLE_decl) = 0;
        TREE_STATIC (UOBJC_SELECTOR_TABLE_decl) = 1;
        /* NULL terminate the list and fix the decl for output.  */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
        DECL_INITIAL (UOBJC_SELECTOR_TABLE_decl) = objc_ellipsis_node;
        initlist = objc_build_constructor (TREE_TYPE (UOBJC_SELECTOR_TABLE_decl),
  					 nreverse (initlist));
--- 2205,2211 ----
        DECL_EXTERNAL (UOBJC_SELECTOR_TABLE_decl) = 0;
        TREE_STATIC (UOBJC_SELECTOR_TABLE_decl) = 1;
        /* NULL terminate the list and fix the decl for output.  */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
        DECL_INITIAL (UOBJC_SELECTOR_TABLE_decl) = objc_ellipsis_node;
        initlist = objc_build_constructor (TREE_TYPE (UOBJC_SELECTOR_TABLE_decl),
  					 nreverse (initlist));
*************** get_proto_encoding (tree proto)
*** 2231,2237 ****
        return add_objc_string (encoding, meth_var_types);
      }
    else
!     return build_int_cst (NULL_TREE, 0, 0);
  }
  
  /* sel_ref_chain is a list whose "value" fields will be instances of
--- 2231,2237 ----
        return add_objc_string (encoding, meth_var_types);
      }
    else
!     return build_int_cst (NULL_TREE, 0);
  }
  
  /* sel_ref_chain is a list whose "value" fields will be instances of
*************** build_typed_selector_reference (tree ide
*** 2258,2264 ****
   return_at_index:
    expr = build_unary_op (ADDR_EXPR,
  			 build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 					  build_int_cst (NULL_TREE, index, 0)),
  			 1);
    return build_c_cast (objc_selector_type, expr);
  }
--- 2258,2264 ----
   return_at_index:
    expr = build_unary_op (ADDR_EXPR,
  			 build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 					  build_int_cst (NULL_TREE, index)),
  			 1);
    return build_c_cast (objc_selector_type, expr);
  }
*************** build_selector_reference (tree ident)
*** 2276,2282 ****
  	return (flag_next_runtime
  		? TREE_PURPOSE (*chain)
  		: build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 				   build_int_cst (NULL_TREE, index, 0)));
  
        index++;
        chain = &TREE_CHAIN (*chain);
--- 2276,2282 ----
  	return (flag_next_runtime
  		? TREE_PURPOSE (*chain)
  		: build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 				   build_int_cst (NULL_TREE, index)));
  
        index++;
        chain = &TREE_CHAIN (*chain);
*************** build_selector_reference (tree ident)
*** 2289,2295 ****
    return (flag_next_runtime
  	  ? expr
  	  : build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 			     build_int_cst (NULL_TREE, index, 0)));
  }
  
  static GTY(()) int class_reference_idx;
--- 2289,2295 ----
    return (flag_next_runtime
  	  ? expr
  	  : build_array_ref (UOBJC_SELECTOR_TABLE_decl,
! 			     build_int_cst (NULL_TREE, index)));
  }
  
  static GTY(()) int class_reference_idx;
*************** build_next_objc_exception_stuff (void)
*** 3277,3283 ****
  
    /* int buf[_JBLEN]; */
  
!   index = build_index_type (build_int_cst (NULL_TREE, _JBLEN - 1, 0));
    field_decl = create_builtin_decl (FIELD_DECL,
  				    build_array_type (integer_type_node, index),
  				    "buf");
--- 3277,3283 ----
  
    /* int buf[_JBLEN]; */
  
!   index = build_index_type (build_int_cst (NULL_TREE, _JBLEN - 1));
    field_decl = create_builtin_decl (FIELD_DECL,
  				    build_array_type (integer_type_node, index),
  				    "buf");
*************** build_next_objc_exception_stuff (void)
*** 3285,3291 ****
  
    /* void *pointers[4]; */
  
!   index = build_index_type (build_int_cst (NULL_TREE, 4 - 1, 0));
    field_decl = create_builtin_decl (FIELD_DECL,
  				    build_array_type (ptr_type_node, index),
  				    "pointers");
--- 3285,3291 ----
  
    /* void *pointers[4]; */
  
!   index = build_index_type (build_int_cst (NULL_TREE, 4 - 1));
    field_decl = create_builtin_decl (FIELD_DECL,
  				    build_array_type (ptr_type_node, index),
  				    "pointers");
*************** build_method_prototype_list_template (tr
*** 3523,3529 ****
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("method_list"),
! 			 build_int_cst (NULL_TREE, size, 0), NULL_TREE, NULL_TREE);
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
  
--- 3523,3529 ----
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("method_list"),
! 			 build_int_cst (NULL_TREE, size), NULL_TREE, NULL_TREE);
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
  
*************** generate_descriptor_table (tree type, co
*** 3669,3675 ****
  		     decl_specs, 1, NULL_TREE);
    DECL_CONTEXT (decl) = NULL_TREE;
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, size, 0));
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl, objc_build_constructor (type, nreverse (initlist)),
--- 3669,3675 ----
  		     decl_specs, 1, NULL_TREE);
    DECL_CONTEXT (decl) = NULL_TREE;
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, size));
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl, objc_build_constructor (type, nreverse (initlist)),
*************** generate_protocols (void)
*** 3879,3885 ****
  	  TREE_TYPE (refs_expr) = cast_type2;
  	}
        else
! 	refs_expr = build_int_cst (NULL_TREE, 0, 0);
  
        /* UOBJC_INSTANCE_METHODS_decl/UOBJC_CLASS_METHODS_decl are set
  	 by generate_method_descriptors, which is called above.  */
--- 3879,3885 ----
  	  TREE_TYPE (refs_expr) = cast_type2;
  	}
        else
! 	refs_expr = build_int_cst (NULL_TREE, 0);
  
        /* UOBJC_INSTANCE_METHODS_decl/UOBJC_CLASS_METHODS_decl are set
  	 by generate_method_descriptors, which is called above.  */
*************** build_protocol_initializer (tree type, t
*** 3912,3924 ****
    /* Filling the "isa" in with one allows the runtime system to
       detect that the version change...should remove before final release.  */
  
!   expr = build_int_cst (cast_type, PROTOCOL_VERSION, 0);
    initlist = tree_cons (NULL_TREE, expr, initlist);
    initlist = tree_cons (NULL_TREE, protocol_name, initlist);
    initlist = tree_cons (NULL_TREE, protocol_list, initlist);
  
    if (!instance_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
--- 3912,3924 ----
    /* Filling the "isa" in with one allows the runtime system to
       detect that the version change...should remove before final release.  */
  
!   expr = build_int_cst (cast_type, PROTOCOL_VERSION);
    initlist = tree_cons (NULL_TREE, expr, initlist);
    initlist = tree_cons (NULL_TREE, protocol_name, initlist);
    initlist = tree_cons (NULL_TREE, protocol_list, initlist);
  
    if (!instance_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
*************** build_protocol_initializer (tree type, t
*** 3926,3932 ****
      }
  
    if (!class_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, class_methods, 0);
--- 3926,3932 ----
      }
  
    if (!class_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, class_methods, 0);
*************** build_ivar_list_template (tree list_type
*** 4419,4425 ****
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("ivar_list"),
! 			 build_int_cst (NULL_TREE, size, 0), NULL_TREE, NULL_TREE);
  
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
--- 4419,4425 ----
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("ivar_list"),
! 			 build_int_cst (NULL_TREE, size), NULL_TREE, NULL_TREE);
  
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
*************** build_method_list_template (tree list_ty
*** 4467,4473 ****
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("method_list"),
! 			 build_int_cst (NULL_TREE, size, 0), NULL_TREE, NULL_TREE);
  
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
--- 4467,4473 ----
  
    decl_specs = build_tree_list (NULL_TREE, list_type);
    field_decl = build_nt (ARRAY_REF, get_identifier ("method_list"),
! 			 build_int_cst (NULL_TREE, size), NULL_TREE, NULL_TREE);
  
    field_decl = grokfield (field_decl, decl_specs, NULL_TREE);
    chainon (field_decl_chain, field_decl);
*************** build_ivar_list_initializer (tree type, 
*** 4494,4500 ****
  			  ivar);
        else
  	/* Unnamed bit-field ivar (yuck).  */
! 	ivar = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), ivar);
  
        /* Set type.  */
        encode_field_decl (field_decl,
--- 4494,4500 ----
  			  ivar);
        else
  	/* Unnamed bit-field ivar (yuck).  */
! 	ivar = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), ivar);
  
        /* Set type.  */
        encode_field_decl (field_decl,
*************** generate_ivars_list (tree type, const ch
*** 4537,4543 ****
    decl = start_decl (synth_id_with_class_suffix (name, objc_implementation_context),
  		     decl_specs, 1, NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, size, 0));
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl,
--- 4537,4543 ----
    decl = start_decl (synth_id_with_class_suffix (name, objc_implementation_context),
  		     decl_specs, 1, NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, size));
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl,
*************** generate_dispatch_table (tree type, cons
*** 4712,4719 ****
    decl = start_decl (synth_id_with_class_suffix (name, objc_implementation_context),
  		     decl_specs, 1, NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0, 0));
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, size, 0), initlist);
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl,
--- 4712,4719 ----
    decl = start_decl (synth_id_with_class_suffix (name, objc_implementation_context),
  		     decl_specs, 1, NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0));
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, size), initlist);
    initlist = tree_cons (NULL_TREE, list, initlist);
  
    finish_decl (decl,
*************** generate_protocol_list (tree i_or_p)
*** 4845,4853 ****
        size++;
  
    /* Build initializer.  */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), NULL_TREE);
  
!   e = build_int_cst (cast_type, size, 0);
    initlist = tree_cons (NULL_TREE, e, initlist);
  
    for (lproto = plist; lproto; lproto = TREE_CHAIN (lproto))
--- 4845,4853 ----
        size++;
  
    /* Build initializer.  */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), NULL_TREE);
  
!   e = build_int_cst (cast_type, size);
    initlist = tree_cons (NULL_TREE, e, initlist);
  
    for (lproto = plist; lproto; lproto = TREE_CHAIN (lproto))
*************** generate_protocol_list (tree i_or_p)
*** 4873,4890 ****
      expr_decl = build_nt (ARRAY_REF,
  			  synth_id_with_class_suffix ("_OBJC_PROTOCOL_REFS",
  						      i_or_p),
! 			  build_int_cst (NULL_TREE, size + 2, 0), NULL_TREE, NULL_TREE);
    else if (TREE_CODE (i_or_p) == CLASS_INTERFACE_TYPE)
      expr_decl = build_nt (ARRAY_REF,
  			  synth_id_with_class_suffix ("_OBJC_CLASS_PROTOCOLS",
  						      i_or_p),
! 			  build_int_cst (NULL_TREE, size + 2, 0), NULL_TREE, NULL_TREE);
    else if (TREE_CODE (i_or_p) == CATEGORY_INTERFACE_TYPE)
      expr_decl
        = build_nt (ARRAY_REF,
  		  synth_id_with_class_suffix ("_OBJC_CATEGORY_PROTOCOLS",
  					      i_or_p),
! 		  build_int_cst (NULL_TREE, size + 2, 0), NULL_TREE, NULL_TREE);
    else
      abort ();
  
--- 4873,4890 ----
      expr_decl = build_nt (ARRAY_REF,
  			  synth_id_with_class_suffix ("_OBJC_PROTOCOL_REFS",
  						      i_or_p),
! 			  build_int_cst (NULL_TREE, size + 2), NULL_TREE, NULL_TREE);
    else if (TREE_CODE (i_or_p) == CLASS_INTERFACE_TYPE)
      expr_decl = build_nt (ARRAY_REF,
  			  synth_id_with_class_suffix ("_OBJC_CLASS_PROTOCOLS",
  						      i_or_p),
! 			  build_int_cst (NULL_TREE, size + 2), NULL_TREE, NULL_TREE);
    else if (TREE_CODE (i_or_p) == CATEGORY_INTERFACE_TYPE)
      expr_decl
        = build_nt (ARRAY_REF,
  		  synth_id_with_class_suffix ("_OBJC_CATEGORY_PROTOCOLS",
  					      i_or_p),
! 		  build_int_cst (NULL_TREE, size + 2), NULL_TREE, NULL_TREE);
    else
      abort ();
  
*************** build_category_initializer (tree type, t
*** 4911,4924 ****
    initlist = tree_cons (NULL_TREE, class_name, initlist);
  
    if (!instance_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
        initlist = tree_cons (NULL_TREE, expr, initlist);
      }
    if (!class_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, class_methods, 0);
--- 4911,4924 ----
    initlist = tree_cons (NULL_TREE, class_name, initlist);
  
    if (!instance_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
        initlist = tree_cons (NULL_TREE, expr, initlist);
      }
    if (!class_methods)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, class_methods, 0);
*************** build_category_initializer (tree type, t
*** 4927,4933 ****
  
    /* protocol_list = */
    if (!protocol_list)
!      initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
       {
         tree cast_type2 = groktypename
--- 4927,4933 ----
  
    /* protocol_list = */
    if (!protocol_list)
!      initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
       {
         tree cast_type2 = groktypename
*************** build_shared_structure_initializer (tree
*** 4986,5002 ****
    initlist = tree_cons (NULL_TREE, default_conversion (name), initlist);
  
    /* version = */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
    /* info = */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, status, 0), initlist);
  
    /* instance_size = */
    initlist = tree_cons (NULL_TREE, size, initlist);
  
    /* objc_ivar_list = */
    if (!ivar_list)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, ivar_list, 0);
--- 4986,5002 ----
    initlist = tree_cons (NULL_TREE, default_conversion (name), initlist);
  
    /* version = */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
    /* info = */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, status), initlist);
  
    /* instance_size = */
    initlist = tree_cons (NULL_TREE, size, initlist);
  
    /* objc_ivar_list = */
    if (!ivar_list)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, ivar_list, 0);
*************** build_shared_structure_initializer (tree
*** 5005,5011 ****
  
    /* objc_method_list = */
    if (!dispatch_table)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, dispatch_table, 0);
--- 5005,5011 ----
  
    /* objc_method_list = */
    if (!dispatch_table)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        expr = build_unary_op (ADDR_EXPR, dispatch_table, 0);
*************** build_shared_structure_initializer (tree
*** 5014,5035 ****
  
    if (flag_next_runtime)
      /* method_cache = */
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
      {
        /* dtable = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
        /* subclass_list = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
        /* sibling_class = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
      }
  
    /* protocol_list = */
    if (! protocol_list)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
    else
       {
         tree cast_type2
--- 5014,5035 ----
  
    if (flag_next_runtime)
      /* method_cache = */
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
      {
        /* dtable = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
        /* subclass_list = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
        /* sibling_class = */
!       initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
      }
  
    /* protocol_list = */
    if (! protocol_list)
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
    else
       {
         tree cast_type2
*************** build_shared_structure_initializer (tree
*** 5048,5057 ****
  
    if (flag_next_runtime)
      /* sel_id = NULL */
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
    /* gc_object_type = NULL */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0, 0), initlist);
  
    return objc_build_constructor (type, nreverse (initlist));
  }
--- 5048,5057 ----
  
    if (flag_next_runtime)
      /* sel_id = NULL */
!     initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
    /* gc_object_type = NULL */
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
  
    return objc_build_constructor (type, nreverse (initlist));
  }
*************** generate_shared_structures (void)
*** 5160,5166 ****
        super_expr = build_c_cast (cast_type, super_expr); /* cast! */
      }
    else
!     super_expr = build_int_cst (NULL_TREE, 0, 0);
  
    root_expr = add_objc_string (my_root_id, class_names);
    root_expr = build_c_cast (cast_type, root_expr); /* cast! */
--- 5160,5166 ----
        super_expr = build_c_cast (cast_type, super_expr); /* cast! */
      }
    else
!     super_expr = build_int_cst (NULL_TREE, 0);
  
    root_expr = add_objc_string (my_root_id, class_names);
    root_expr = build_c_cast (cast_type, root_expr); /* cast! */
*************** handle_impent (struct imp_entry *impent)
*** 9017,9023 ****
      {
        tree decl, init;
  
!       init = build_int_cst (c_common_type_for_size (BITS_PER_WORD, 1), 0, 0);
        decl = build_decl (VAR_DECL, get_identifier (string), TREE_TYPE (init));
        TREE_PUBLIC (decl) = 1;
        TREE_READONLY (decl) = 1;
--- 9017,9023 ----
      {
        tree decl, init;
  
!       init = build_int_cst (c_common_type_for_size (BITS_PER_WORD, 1), 0);
        decl = build_decl (VAR_DECL, get_identifier (string), TREE_TYPE (init));
        TREE_PUBLIC (decl) = 1;
        TREE_READONLY (decl) = 1;
*************** generate_objc_image_info (void)
*** 9047,9059 ****
  		 tree_cons (NULL_TREE,
  			    build_array_type
  			    (integer_type_node,
! 			     build_index_type (build_int_cst (NULL_TREE, 1, 0))),
  			    sc_spec),
  		 1,
  		 NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0, 0));
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 1, 0), initlist);
    initlist = build_constructor (TREE_TYPE (decl), nreverse (initlist));
  
    TREE_USED (decl) = DECL_IGNORED_P (decl) = DECL_ARTIFICIAL (decl) = 1;
--- 9047,9059 ----
  		 tree_cons (NULL_TREE,
  			    build_array_type
  			    (integer_type_node,
! 			     build_index_type (build_int_cst (NULL_TREE, 1))),
  			    sc_spec),
  		 1,
  		 NULL_TREE);
  
!   initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0));
!   initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 1), initlist);
    initlist = build_constructor (TREE_TYPE (decl), nreverse (initlist));
  
    TREE_USED (decl) = DECL_IGNORED_P (decl) = DECL_ARTIFICIAL (decl) = 1;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]