Blame SOURCES/gdb-rhbz795424-bitpos-20of25.patch

4c2ad1
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
4c2ad1
From: Fedora GDB patches <invalid@email.com>
4c2ad1
Date: Fri, 27 Oct 2017 21:07:50 +0200
4c2ad1
Subject: gdb-rhbz795424-bitpos-20of25.patch
4c2ad1
4c2ad1
;; Fix `GDB cannot access struct member whose offset is larger than 256MB'
4c2ad1
;; (RH BZ 795424).
4c2ad1
;;=push
4c2ad1
4c2ad1
http://sourceware.org/ml/gdb-patches/2012-09/msg00631.html
4c2ad1
4c2ad1
--MP_/yp5f+W_ED2JtUlSyBi8xujr
4c2ad1
Content-Type: text/plain; charset=US-ASCII
4c2ad1
Content-Transfer-Encoding: 7bit
4c2ad1
Content-Disposition: inline
4c2ad1
4c2ad1
Hi,
4c2ad1
4c2ad1
This is patch 1/4, which implements the bulk of the changes in type
4c2ad1
length and bitpos/type offset. I have verified that there are no
4c2ad1
regressions resulting from this patch by running the testsuite on
4c2ad1
Fedora 16 x86_64.  Patch and changelog attached.
4c2ad1
4c2ad1
Regards,
4c2ad1
Siddhesh
4c2ad1
4c2ad1
--MP_/yp5f+W_ED2JtUlSyBi8xujr
4c2ad1
Content-Type: text/plain
4c2ad1
Content-Transfer-Encoding: quoted-printable
4c2ad1
Content-Disposition: attachment; filename=ChangeLog-main
4c2ad1
4c2ad1
gdb/ChangeLog
4c2ad1
4c2ad1
2012-08-05  Siddhesh Poyarekar  <siddhesh@redhat.com>
4c2ad1
4c2ad1
	* ada-lang.c (fat_pntr_bounds_bitpos): Return LONGEST.
4c2ad1
	(fat_pntr_data_bitpos): Likewise.
4c2ad1
	(desc_bound_bitpos): Likewise.
4c2ad1
	(constrained_packed_array_type): Expand ELT_BITS parameter to
4c2ad1
	LONGEST.
4c2ad1
	(move_bits): Expand parameters SRC_OFFSET and N to LONGEST.
4c2ad1
	(cond_offset_host): Expand parameter OFFSET to LONGEST.
4c2ad1
	(cond_offset_target): Likewise.
4c2ad1
	(ada_type_of_array): Expand ARRAY_BITSIZE to LONGEST.
4c2ad1
	(decode_constrained_packed_array_type): Expand BITS to LONGEST.
4c2ad1
	(decode_constrained_packed_array): Expand BIT_POS to LONGEST.
4c2ad1
	(ada_value_primitive_packed_val): Expand parameter OFFSET to
4c2ad1
	LONGEST.  Expand TARG, NTARG and NEW_OFFSET to LONGEST.
4c2ad1
	(ada_value_assign): Expand FROM_SIZE to LONGEST.
4c2ad1
	(value_assign_to_component): Expand BITS to LONGEST.
4c2ad1
	(ensure_lval): Expand LEN to LONGEST.
4c2ad1
	(value_pointer): Expand LEN to ULONGEST.
4c2ad1
	(value_tag_from_contents_and_address): Expand TAG_BYTE_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(ada_value_primitive_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	Expand bit_pos to LONGEST.
4c2ad1
	(find_struct_field): Expand parameters OFFSET and BYTE_OFFSET_P to
4c2ad1
	LONGEST.  Expand BIT_POS and FLD_OFFSET to LONGEST.
4c2ad1
	(ada_search_struct_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	Expand VAR_OFFSET to LONGEST.
4c2ad1
	(ada_index_struct_field): Expand parameters INDEX and OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(ada_index_struct_field_1): Expand parameters INDEX_P and OFFSET
4c2ad1
	to LONGEST.
4c2ad1
	(ada_value_struct_elt): Expand BYTE_OFFSET to LONGEST.
4c2ad1
	(align_value): Return ULONGEST.  Expand parameter OFF and
4c2ad1
	ALIGNMENT to ULONGEST.
4c2ad1
	(ada_template_to_fixed_record_type_1): Expand OFF, BIT_LEN and
4c2ad1
	fld_bit_len to LONGEST.  Expand FIELD_OFFSET to LONGEST.  Use
4c2ad1
	pulongest function to print TYPE_LENGTH.
4c2ad1
	(to_fixed_array_type): Expand LEN to LONGEST.
4c2ad1
	* ada-lang.h (ada_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(ada_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	(ada_value_primitive_packed_val): Expand parameter OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* ada-typeprint.c (ada_print_type): Use pulongest to print
4c2ad1
	TYPE_LENGTH.
4c2ad1
	* ada-valprint.c (val_print_packed_array_elements): Expand ELTLEN
4c2ad1
	to ULONGEST.
4c2ad1
	(char_at): Expand parameter I to LONGEST.
4c2ad1
	(printstr): Expand parameter LENGTH, I, REP1, REPS to ULONGEST.
4c2ad1
	Use pulongest to format print REPS.
4c2ad1
	(ada_printstr): Expand parameter LENGTH to LONGEST.
4c2ad1
	(ada_val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(ada_val_print_array): Expand ELTLEN, LEN to ULONGEST and TEMP_LEN
4c2ad1
	to LONGEST.
4c2ad1
	(ada_val_print_1): Expand parameter OFFSET to LONGEST.
4c2ad1
	(print_variant_part): Expand parameters OFFSET and OUTER_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(print_field_values): Likewise.  Expand BIT_POS to LONGEST.
4c2ad1
	* annotate.c (annotate_array_section_begin): Expand parameter
4c2ad1
	IDX to LONGEST.  Use plongest to format-print IDX.
4c2ad1
	(annotate_elt_rep): Expand parameter REPCOUNT to ULONGEST.  Use
4c2ad1
	plongest to format-print REPCOUNT.
4c2ad1
	* annotate.h: Likewise.
4c2ad1
	* arm-linux-nat.c (arm_linux_region_ok_for_hw_watchpoint):
4c2ad1
	Expand parameter parameter LEN to LONGEST.
4c2ad1
	* ax-gdb.c (gen_left_shift): Expand parameter DISTANCE to LONGEST.
4c2ad1
	(gen_offset): Expand parameter OFFSET to LONGEST.
4c2ad1
	(gen_bitfield_ref): Expand parameters START, END to LONGEST.
4c2ad1
	Expand BOUND_START, BOUND_END, OFFSET to LONGEST.
4c2ad1
	(gen_primitive_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(gen_struct_ref_recursive): Likewise.
4c2ad1
	* ax-general.c (ax_trace_quick): Expand parameter N to LONGEST.
4c2ad1
	* ax.h (ax_trace_quick): Likewise.
4c2ad1
	* breakpoint.c (breakpoint_address_match_range): Expand parameter
4c2ad1
	LEN1 to LONGEST.
4c2ad1
	(can_use_hardware_watchpoint): Expand LEN to LONGEST.
4c2ad1
	* breakpoint.h (struct bp_target_info): Expand member LENGTH to
4c2ad1
	LONGEST.
4c2ad1
	(struct bp_location): Likewise.
4c2ad1
	* c-lang.c (c_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	(evaluate_subexp_c): Expand ELEMENT_SIZE, I to LONGEST.
4c2ad1
	* c-lang.h (c_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(c_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	(cp_print_value_fields): Expand parameter OFFSET to LONGEST.
4c2ad1
	(cp_print_value_fields_rtti): Likewise.
4c2ad1
	* c-typeprint.c (c_type_print_varspec_suffix): Remove cast down to
4c2ad1
	int and use plongest to print LONGEST.
4c2ad1
	* c-valprint.c (c_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.  Expand OFFSET to LONGEST, ELTLEN to ULONGEST.
4c2ad1
	(c_value_print): Expand TOP to LONGEST.
4c2ad1
	* cp-abi.c (baseclass_offset): Return LONGEST.  Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.  Expand RES to LONGEST.
4c2ad1
	(value_virtual_fn_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_rtti_type): Expand parameter TOP to point to LONGEST.
4c2ad1
	* cp-abi.h (value_virtual_fn_field): Expand OFFSET to LONGEST.
4c2ad1
	(value_rtti_type): Expand TOP to point to LONGEST.
4c2ad1
	(baseclass_offset): Return LONGEST.  Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(struct cp_abi_ops): Expand parameter OFFSET for VIRTUAL_FN_FIELD
4c2ad1
	to LONGEST.  Expand parameter TOP to point to LONGEST in
4c2ad1
	VALUE_RTTI_TYPE.  Return LONGEST from BASECLASS_OFFSET and expand
4c2ad1
	parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	* cp-valprint.c (cp_print_value_fields): Expand parameter OFFSET
4c2ad1
	to LONGEST.  Expand I_OFFSET to LONGEST.
4c2ad1
	(cp_print_value_fields_rtti): Expand parameter OFFSET to
4c2ad1
	LONGEST.  Expand TOP to LONGEST.
4c2ad1
	(cp_print_value): Expand parameter OFFSET to LONGEST.  Expand
4c2ad1
	THISOFFSET, BOFFSET to LONGEST.
4c2ad1
	* d-lang.h (d_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* d-valprint.c (dynamic_array_type): Likewise.
4c2ad1
	(d_val_print): Likewise.
4c2ad1
	* doublest.c (floatformat_from_length): Expand parameter LEN to
4c2ad1
	LONGEST.  Use plongest to format string for LONGEST.
4c2ad1
	* dwarf2loc.c (copy_bitwise): Expand parameters DEST_OFFSET_BITS,
4c2ad1
	BIT_COUNT to ULONGEST.  Rename parameter SOURCE_OFFSET_BITS to
4c2ad1
	SOURCE_OFFSET and expand to ULONGEST.  New variable
4c2ad1
	SOURCE_OFFSET_BITS.
4c2ad1
	(read_pieced_value): Expand OFFSET, DEST_OFFSET_BITS,
4c2ad1
	SOURCE_OFFSET_BITS, SOURCE_OFFSET to LONGEST.  Expand TYPE_LEN,
4c2ad1
	THIS_SIZE, THIS_SIZE_BITS to ULONGEST.
4c2ad1
	(write_pieced_value): Likewise.
4c2ad1
	(check_pieced_value_bits): Expand parameters BIT_OFFSET and
4c2ad1
	BIT_LENGTH to LONGEST.  Expand THIS_SIZE_BITS to ULONGEST.
4c2ad1
	(check_pieced_value_validity): Expand parameters BIT_OFFSET and
4c2ad1
	BIT_LENGTH to LONGEST.
4c2ad1
	(check_pieced_synthetic_pointer): Likewise.
4c2ad1
	(indirect_pieced_value): Expand BIT_LENGTH, BYTE_OFFSET and
4c2ad1
	BIT_OFFSET to LONGEST.
4c2ad1
	(dwarf2_evaluate_loc_desc_full): Expand N to ULONGEST.
4c2ad1
	* dwarf2read.c (dwarf2_const_value_length_mismatch_complaint):
4c2ad1
	Expand parameters ARG2 and ARG3 to LONGEST.  Use plongest to
4c2ad1
	print ARG2 and ARG3.
4c2ad1
	(dwarf2_add_field): Expand ANONYMOUS_SIZE, BIT_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* eval.c (evaluate_struct_tuple): Expand BITPOS to LONGEST.
4c2ad1
	(init_array_element): Expand ELEMENT_SIZE to LONGEST.
4c2ad1
	(binop_promote): Expand PROMOTED_LEN1, PROMOTED_LEN2, RESULT_LEN
4c2ad1
	to ULONGEST.
4c2ad1
	(evaluate_subexp_standard): Expand MEM_OFFSET, TOP, ELEMENT_SIZE
4c2ad1
	to LONGEST.
4c2ad1
	* f-lang.c (f_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	* f-lang.h (f_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* f-valprint.c (f77_array_offset_tbl): Make LONGEST.
4c2ad1
	(f77_create_arrayprint_offset_tbl): Expand ELTLEN to LONGEST.
4c2ad1
	(f77_print_array_1): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.  Expand I to LONGEST.
4c2ad1
	(f77_print_array): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(f_val_print): Likewise.  Expand OFFSET to LONGEST.
4c2ad1
	* findvar.c (default_value_from_register): Expand LEN to LONGEST.
4c2ad1
	(read_frame_register_value): Expand OFFSET, REG_OFFSET, LEN,
4c2ad1
	REG_LEN to LONGEST.
4c2ad1
	* frame.c (get_frame_register_bytes): Expand parameter LEN to
4c2ad1
	LONGEST.
4c2ad1
	* frame.h (get_frame_register_bytes): Likewise.
4c2ad1
	* gdbtypes.c (init_type): Expand parameter LENGTH to LONGEST.
4c2ad1
	(is_unique_ancestor_worker): Expand parameters OFFSET,
4c2ad1
	EMBEDDED_OFFSET to LONGEST.  Expand THIS_OFFSET to LONGEST.
4c2ad1
	(is_unique_ancestor): Expand OFFSET to LONGEST.
4c2ad1
	(recursive_dump_type): Use pulongest to format print TYPE_LENGTH.
4c2ad1
	Use plongest to format print TYPE_FIELD_BITPOS.
4c2ad1
	(arch_type): Expand parameter LENGTH to LONGEST.
4c2ad1
	* gdbtypes.h (struct type.main_type.fld_bnds.fields): Expand
4c2ad1
	member BITPOS to LONGEST.
4c2ad1
	(struct type): Expand member LENGTH to ULONGEST.
4c2ad1
	(init_type): Expand parameter LENGTH to LONGEST.
4c2ad1
	(arch_type): Likewise.
4c2ad1
	* gnu-v2-abi.c (gnuv2_virtual_fn_field): Expand parameter OFFSET
4c2ad1
	to LONGEST.
4c2ad1
	(gnuv2_value_rtti_type): Expand parameter TOP to point to LONGEST.
4c2ad1
	(gnuv2_baseclass_offset): Return LONGEST.  Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.  Expand FIELD_OFFSET, BOFFSET,
4c2ad1
	FIELD_LENGTH to LONGEST.
4c2ad1
	* gnu-v3-abi.c (build_gdb_vtable_type): Expand OFFSET to LONGEST.
4c2ad1
	(vtable_address_point_offset): Return LONGEST.
4c2ad1
	(gnuv3_rtti_type): Expand parameter TOP_P to point to LONGEST.
4c2ad1
	(gnuv3_virtual_fn_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(gnuv3_baseclass_offset): Return LONGEST.  Expand parameter
4c2ad1
	EMBEDDED_OFSET to LONGEST.  Expand CUR_BASE_OFFSET, BASE_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(gnuv3_find_method_in): Expand POS to LONGEST.
4c2ad1
	* go-lang.h (go_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* go-valprint.c (print_go_string): Likewise.
4c2ad1
	(go_val_print): Likewise.
4c2ad1
	* i386-nat.c (i386_handle_nonaligned_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	(i386_region_ok_for_watchpoint): Likewise.
4c2ad1
	* inf-ttrace.c (inf_ttrace_region_ok_for_hw_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	* jv-lang.c (java_link_class_type): Expand BOFFSET to LONGEST.
4c2ad1
	(java_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	* jv-lang.h (java_val_print): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* jv-valprint.c (java_print_value_fields): Expand parameter OFFSET
4c2ad1
	to LONGEST.
4c2ad1
	(java_val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	* language.c (unk_lang_printstr): Expand parameter LENGTH to
4c2ad1
	ULONGEST.
4c2ad1
	(unk_lang_val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	* language.h (language_defn): Expand parameter LENGTH of
4c2ad1
	LA_PRINTSTR to ULONGEST.  Expand parameter EMBEDDED_OFFSET of
4c2ad1
	LA_VAL_PRINT to LONGEST.
4c2ad1
	* m2-lang.c (m2_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	Expand I, REP1, REPS to ULONGEST.  Use pulongest to format print
4c2ad1
	REPS.
4c2ad1
	* m2-lang.h (m2_val_print): Expand parameter embedded_offset to
4c2ad1
	LONGEST.
4c2ad1
	* m2-typeprint.c (m2_array): New variable VAL.  Use pulongest to
4c2ad1
	* format print VAL.
4c2ad1
	(m2_enum): expand LASTVAL to LONGEST.
4c2ad1
	* m2-valprint.c (m2_print_long_set): Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(m2_print_unbounded_array): Likewise.
4c2ad1
	(m2_print_array_contents): Likewise.
4c2ad1
	(m2_val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	Expand I, LEN, TEMP_LEN to ULONGEST.
4c2ad1
	* memrange.c (mem_ranges_overlap): Expand parameters LEN1, LEN2 to
4c2ad1
	LONGEST.
4c2ad1
	* memrange.h (struct mem_range): Expand member LENGTH to LONGEST.
4c2ad1
	(mem_ranges_overlap): Expand parameters LEN1, LEN2 to LONGEST.
4c2ad1
	* mips-linux-nat.c (mips_linux_region_ok_for_hw_watchpoint):
4c2ad1
	Expand parameter LEN to LONGEST.
4c2ad1
	* objc-lang.c (objc_printstr): Expand parameter LENGTH to
4c2ad1
	ULONGEST.  Expand I, REP1, REPS to ULONGEST.  use pulongest to
4c2ad1
	format print REPS.
4c2ad1
	* opencl-lang.c (lookup_opencl_vector_type): Expand parameter
4c2ad1
	EL_LENGTH to ULONGEST.  Expand LENGTH to ULONGEST.
4c2ad1
	(lval_func_read): Expand OFFSET, N, I, J and ELSIZE to LONGEST.
4c2ad1
	(lval_func_write): Likewise.
4c2ad1
	(lval_func_check_validity): Expand parameter LENGTH to LONGEST.
4c2ad1
	Expand ELSIZE, START, END, I, STARTREST, ENDREST, COMP_OFFSET,
4c2ad1
	COMP_LENGTH to LONGEST.
4c2ad1
	(lval_func_check_any_valid): Expand ELSIZE to LONGEST.
4c2ad1
	(lval_func_check_synthetic_pointer): Expand parameters OFFSET and
4c2ad1
	LENGTH to LONGEST.  Expand ELSIZE, START, END, I, STARTREST,
4c2ad1
	ENDREST, COMP_LENGTH, COMP_OFFSET to LONGEST.
4c2ad1
	* p-lang.c (is_pascal_string_type): Expand parameters LENGTH_POS,
4c2ad1
	STRING_POS, LENGTH_SIZE to point to LONGEST.
4c2ad1
	(pascal_printstr): Expand parameter LENGTH to ULONGEST.  Expand
4c2ad1
	I, REP1, REPS to ULONGEST.  Use pulongest to format print REPS.
4c2ad1
	* p-lang.h (pascal_val_print): Expand parameter EMBEDDED_OFFSET
4c2ad1
	to LONGEST.
4c2ad1
	(is_pascal_string_type): Expand parameters LENGTH_POS, STRING_POS,
4c2ad1
	LENGTH_SIZE to point to LONGEST.
4c2ad1
	(pascal_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	(pascal_object_print_value_fields): Expand parameter OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	* p-valprint.c (pascal_val_print): Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.  Expand ELTLEN to ULONGEST.  Expand
4c2ad1
	LENGTH_SIZE, LENGTH_POS, STRING_POS to LONGEST.
4c2ad1
	(pascal_object_print_value_fields): Expand parameter OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(pascal_object_print_value): Likewise.  Expand BOFFSET,
4c2ad1
	THISOFFSET to LONGEST.
4c2ad1
	* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint):
4c2ad1
	Expand parameter LEN to point to LONGEST.
4c2ad1
	* printcmd.c (print_formatted): Expand LEN to LONGEST.
4c2ad1
	(print_scalar_formatted): Likewise.
4c2ad1
	* procfs.c (procfs_region_ok_for_hw_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	* python/py-prettyprint.c (apply_val_pretty_printer): Expand
4c2ad1
	parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	* python/python.h (apply_val_pretty_printer): Likewise.
4c2ad1
	* regcache.c (regcache_xfer_part): Expand parameter OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(regcache_raw_read_part): Likewise.
4c2ad1
	(regcache_raw_write_part): Likewise.
4c2ad1
	(regcache_cooked_read_part): Likewise.
4c2ad1
	(regcache_cooked_write_part): Likewise.
4c2ad1
	* regcache.h (regcache_raw_read_part): Likewise.
4c2ad1
	(regcache_raw_write_part): Likewise.
4c2ad1
	(regcache_cooked_read_part): Likewise.
4c2ad1
	(regcache_cooked_write_part): Likewise.
4c2ad1
	* remote.c (remote_region_ok_for_hw_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	* s390-nat.c (s390_region_ok_for_hw_watchpoint): Expand
4c2ad1
	parameter LEN to LONGEST.
4c2ad1
	* spu-multiarch.c (spu_region_ok_for_hw_watchpoint): Expand
4c2ad1
	parameter len to LONGEST.
4c2ad1
	* stack.c (print_frame_nameless_args): Expand parameter START to
4c2ad1
	LONGEST.
4c2ad1
	(print_frame_args): Expand HIGHEST_OFFSET, CURRENT_OFFSET,
4c2ad1
	ARG_SIZE, START to LONGEST.
4c2ad1
	* symmisc.c (print_symbol): Expand I to ULONGEST.  Use pulongest
4c2ad1
	to format print TYPE_LENGTH.
4c2ad1
	* target.c (default_region_ok_for_hw_watchpoint): Expand parameter
4c2ad1
	LEN to LONGEST.
4c2ad1
	(debug_to_region_ok_for_hw_watchpoint): Likewise.
4c2ad1
	* target.h (struct target_ops): Expand parameter LEN to LONGEST
4c2ad1
	for TO_REGION_OK_FOR_HW_WATCHPOINT.
4c2ad1
	* tracepoint.c (add_memrange): Expand parameter LEN to LONGEST.
4c2ad1
	Use plongest to format print LEN.
4c2ad1
	(collect_symbol): Expand LEN to ULONGEST.  Use pulongest to
4c2ad1
	format print LEN.
4c2ad1
	(scope_info): Expand J to LONGEST.  Use pulongest to format
4c2ad1
	print TYPE_LENGTH.
4c2ad1
	* typeprint.c (whatis_exp): Expand TOP to LONGEST.
4c2ad1
	* valarith.c (value_subscripted_rvalue): Expand parameters INDEX
4c2ad1
	and LOWERBOUND to LONGEST.  Expand ELT_SIZE, ELT_OFFS to ULONGEST.
4c2ad1
	(value_concat): expand INVAL1LEN and INVAL2LEN to ssize_t.
4c2ad1
	(value_logical_not): Expand LEN to LONGEST.
4c2ad1
	(value_strcmp): Expand LEN1, LEN2, I, LEN to LONGEST.
4c2ad1
	* valops.c (value_allocate_space_in_inferior): Expand parameter
4c2ad1
	LEN to LONGEST.
4c2ad1
	(value_cast_structs): Expand TOP to LONGEST.
4c2ad1
	(value_cast): Expand ELEMENT_LENGTH to ULONGEST.  Expand
4c2ad1
	VAL_LENGTH to LONGEST.
4c2ad1
	(dynamic_cast_check_1): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.  Expand OFFSET to LONGEST.
4c2ad1
	(dynamic_cast_check_2): Likewise.
4c2ad1
	(value_dynamic_cast): Expand TOP to LONGEST.
4c2ad1
	(read_value_memory): Expand EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(value_assign): Expand CHANGED_LEN, OFFSET to LONGEST.
4c2ad1
	(value_array): Expand TYPELENGTH to ULONGEST.
4c2ad1
	(update_search_result): Expand parameters LAST_BOFFSET, BOFFSET
4c2ad1
	to LONGEST.
4c2ad1
	(do_search_struct_field): Expand parameter OFFSET, LAST_BOFFSET
4c2ad1
	to LONGEST.  Expand NEW_OFFSET, BOFFSET to LONGEST.
4c2ad1
	(search_struct_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	Expand BOFFSET to LONGEST.
4c2ad1
	(search_struct_method): Expand parameter OFFSET to LONGEST.
4c2ad1
	Expand BASE_OFFSET, THIS_OFFSET to LONGEST.
4c2ad1
	(find_method_list): Expand parameters OFFSET, BOFFSET to
4c2ad1
	LONGEST.  Expand BASE_OFFSET to LONGEST.
4c2ad1
	(value_find_oload_method_list): Expand parameter BOFFSET to point
4c2ad1
	to LONGEST.
4c2ad1
	(find_overload_match): Expand BOFFSET to LONGEST.
4c2ad1
	(value_struct_elt_for_reference): Expand parameter OFFSET to
4c2ad1
	LONGEST.  Remove unneeded cast.  Expand BASE_OFFSET to LONGEST.
4c2ad1
	(value_rtti_indirect_type): Expand parameter TOP to point to
4c2ad1
	LONGEST.
4c2ad1
	(value_full_object): Expand parameter XTOP to LONGEST.  Expand
4c2ad1
	TOP to LONGEST.
4c2ad1
	* valprint.c (valprint_check_validity): Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(generic_val_print): Likewise.
4c2ad1
	(val_print): Likewise.
4c2ad1
	(val_print_scalar_formatted): Likewise.
4c2ad1
	(print_hex_chars): Expand parameter LEN to ULONGEST.
4c2ad1
	(val_print_array_elements): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST, I to ULONGEST.  Expand LEN, ELTLEN, REP1, REPS to
4c2ad1
	ULONGEST.  Use pulongest to format print REPS.
4c2ad1
	(generic_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	* valprint.h (val_print_array_elements): Expand parameter
4c2ad1
	EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(val_print_scalar_formatted): Likewise.
4c2ad1
	(print_hex_chars): Expand parameter LEN to ULONGEST.
4c2ad1
	(generic_val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(generic_printstr): Expand parameter LENGTH to ULONGEST.
4c2ad1
	* value.c (struct range): Expand members OFFSET, LENGTH to
4c2ad1
	LONGEST.
4c2ad1
	(ranges_overlap): Expand parameters OFFSET1, OFFSET2, LEN1 AND
4c2ad1
	LEN2 to LONGEST.
4c2ad1
	(range_contain): Expand parameter OFFSET, LENGTH to LONGEST.
4c2ad1
	(struct value): Expand members OFFSET, EMBEDDED_OFFSET,
4c2ad1
	POINTED_TO_OFFSET to LONGEST.
4c2ad1
	(value_bytes_available): Expand parameters OFFSET, LENGTH to
4c2ad1
	LONGEST.
4c2ad1
	(mark_value_bytes_unavailable): Likewise.
4c2ad1
	(find_first_range_overlap): Likewise.
4c2ad1
	(value_available_contents_eq): Expand parameters OFFSET1, OFFSET2
4c2ad1
	and LENGTH to LONGEST.
4c2ad1
	(value_offset): Return LONGEST.
4c2ad1
	(set_value_offset): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_contents_copy_raw): Expand parameters SRC_OFFSET,
4c2ad1
	DST_OFFSET, LENGTH to ssize_t.
4c2ad1
	(value_contents_copy): Likewise.
4c2ad1
	(value_bits_valid): Expand parameters OFFSET, LENGTH to LONGEST.
4c2ad1
	(value_bits_synthetic_pointer): Likewise.
4c2ad1
	(value_embedded_offset): Return LONGEST.
4c2ad1
	(set_value_embedded_offset): Expand parameter VAL to LONGEST.
4c2ad1
	(value_pointed_to_offset): Return LONGEST.
4c2ad1
	(set_value_pointed_to_offset): Expand parameter VAL to LONGEST.
4c2ad1
	(set_internalvar_component): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_primitive_field): Likewise.  Expand BITPOS, BOFFSET,
4c2ad1
	CONTAINER_BITSIZE to LONGEST.
4c2ad1
	(value_fn_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(unpack_value_bits_as_long_1): Expand parameters EMBEDDED_OFFSET,
4c2ad1
	BITPOS to LONGEST.  Expand READ_OFFSET to LONGEST.
4c2ad1
	(unpack_value_bits_as_long): Expand parameter EMBEDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(unpack_value_field_as_long_1): Likewise.  Expand BITPOS to
4c2ad1
	LONGEST.
4c2ad1
	(unpack_value_field_as_long): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(value_field_bitfield): Likewise.
4c2ad1
	(modify_field): Expand parameter BITPOS to LONGEST.  Expand
4c2ad1
	BYTESIZE to LONGEST.
4c2ad1
	* value.h (value_offset): Return LONGEST.
4c2ad1
	(set_value_offset): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_pointed_to_offset): Return LONGEST.
4c2ad1
	(set_value_pointed_to_offset): Expand parameter VAL to LONGEST.
4c2ad1
	(value_embedded_offset): Return LONGEST.
4c2ad1
	(set_value_embedded_offset): Expand parameter VAL to LONGEST.
4c2ad1
	(struct lval_funcs): Expand parameters OFFSET and LENGTH to
4c2ad1
	LONGEST for CHECK_VALIDITY.  Likewise for CHECK_SYNTHETIC_POINTER.
4c2ad1
	(valprint_check_validity): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(value_bits_valid): Expand parameters OFFSET, LENGTH to LONGEST.
4c2ad1
	(value_bits_synthetic_pointer): Likewise.
4c2ad1
	(value_bytes_available): Likewise.
4c2ad1
	(mark_value_bytes_unavailable): Likewise.
4c2ad1
	(value_available_contents_eq): Fix comment.  Expand parameters
4c2ad1
	OFFSET1, OFFSET2, LENGTH to LONGEST.
4c2ad1
	(read_value_memory): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(unpack_value_bits_as_long): Expand parameter EMBEDDED_OFFSET to
4c2ad1
	LONGEST.
4c2ad1
	(unpack_value_field_as_long): Likewise.
4c2ad1
	(value_field_bitfield): Likewise.
4c2ad1
	(value_contents_copy_raw): Expand parameters SRC_OFFSET,
4c2ad1
	DST_OFFSET, LENGTH to LONGEST.
4c2ad1
	(value_contents_copy): Likewise.
4c2ad1
	(value_primitive_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_rtti_indirect_type): Expand parameter TOP to point to
4c2ad1
	LONGEST.
4c2ad1
	(value_full_object): Expand parameter XTOP to LONGEST.
4c2ad1
	(set_internalvar_component): Expand parameter OFFSET to LONGEST.
4c2ad1
	(value_fn_field): Expand parameter OFFSET to LONGEST.
4c2ad1
	(modify_field): Expand parameter BITPOS to LONGEST.
4c2ad1
	(val_print): Expand parameter EMBEDDED_OFFSET to LONGEST.
4c2ad1
	(value_allocate_space_in_inferior): Expand parameter LEN to
4c2ad1
	LONGEST.
4c2ad1
4c2ad1
gdb/testsuite/ChangeLog:
4c2ad1
4c2ad1
2012-08-05  Siddhesh Poyarekar  <siddhesh@redhat.com>
4c2ad1
4c2ad1
	* gdb.base/longest-types.exp: Add test case to get offset of
4c2ad1
	BUF2.
4c2ad1
4c2ad1
--MP_/yp5f+W_ED2JtUlSyBi8xujr
4c2ad1
Content-Type: text/x-patch
4c2ad1
Content-Transfer-Encoding: 7bit
4c2ad1
Content-Disposition: attachment; filename=bitpos-main.patch
4c2ad1
4c2ad1
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
4c2ad1
--- a/gdb/aarch64-linux-nat.c
4c2ad1
+++ b/gdb/aarch64-linux-nat.c
4c2ad1
@@ -808,7 +808,7 @@ aarch64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len,
4c2ad1
 /* Implement the "region_ok_for_hw_watchpoint" target_ops method.  */
4c2ad1
 
4c2ad1
 int
4c2ad1
-aarch64_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+aarch64_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   return aarch64_linux_region_ok_for_watchpoint (addr, len);
4c2ad1
 }
4c2ad1
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
4c2ad1
--- a/gdb/ada-lang.c
4c2ad1
+++ b/gdb/ada-lang.c
4c2ad1
@@ -78,7 +78,7 @@ static struct type *desc_bounds_type (struct type *);
4c2ad1
 
4c2ad1
 static struct value *desc_bounds (struct value *);
4c2ad1
 
4c2ad1
-static int fat_pntr_bounds_bitpos (struct type *);
4c2ad1
+static LONGEST fat_pntr_bounds_bitpos (struct type *);
4c2ad1
 
4c2ad1
 static int fat_pntr_bounds_bitsize (struct type *);
4c2ad1
 
4c2ad1
@@ -86,13 +86,13 @@ static struct type *desc_data_target_type (struct type *);
4c2ad1
 
4c2ad1
 static struct value *desc_data (struct value *);
4c2ad1
 
4c2ad1
-static int fat_pntr_data_bitpos (struct type *);
4c2ad1
+static LONGEST fat_pntr_data_bitpos (struct type *);
4c2ad1
 
4c2ad1
 static int fat_pntr_data_bitsize (struct type *);
4c2ad1
 
4c2ad1
 static struct value *desc_one_bound (struct value *, int, int);
4c2ad1
 
4c2ad1
-static int desc_bound_bitpos (struct type *, int, int);
4c2ad1
+static LONGEST desc_bound_bitpos (struct type *, int, int);
4c2ad1
 
4c2ad1
 static int desc_bound_bitsize (struct type *, int, int);
4c2ad1
 
4c2ad1
@@ -175,7 +175,7 @@ static struct type *static_unwrap_type (struct type *type);
4c2ad1
 
4c2ad1
 static struct value *unwrap_value (struct value *);
4c2ad1
 
4c2ad1
-static struct type *constrained_packed_array_type (struct type *, long *);
4c2ad1
+static struct type *constrained_packed_array_type (struct type *, LONGEST *);
4c2ad1
 
4c2ad1
 static struct type *decode_constrained_packed_array_type (struct type *);
4c2ad1
 
4c2ad1
@@ -190,7 +190,8 @@ static int ada_is_unconstrained_packed_array_type (struct type *);
4c2ad1
 static struct value *value_subscript_packed (struct value *, int,
4c2ad1
                                              struct value **);
4c2ad1
 
4c2ad1
-static void move_bits (gdb_byte *, int, const gdb_byte *, int, int, int);
4c2ad1
+static void move_bits (gdb_byte *, int, const gdb_byte *, LONGEST, LONGEST,
4c2ad1
+		       int);
4c2ad1
 
4c2ad1
 static struct value *coerce_unspec_val_to_type (struct value *,
4c2ad1
                                                 struct type *);
4c2ad1
@@ -216,14 +217,14 @@ static struct value *value_val_atr (struct type *, struct value *);
4c2ad1
 static struct symbol *standard_lookup (const char *, const struct block *,
4c2ad1
                                        domain_enum);
4c2ad1
 
4c2ad1
-static struct value *ada_search_struct_field (const char *, struct value *, int,
4c2ad1
+static struct value *ada_search_struct_field (const char *, struct value *, LONGEST,
4c2ad1
                                               struct type *);
4c2ad1
 
4c2ad1
-static struct value *ada_value_primitive_field (struct value *, int, int,
4c2ad1
+static struct value *ada_value_primitive_field (struct value *, LONGEST, int,
4c2ad1
                                                 struct type *);
4c2ad1
 
4c2ad1
-static int find_struct_field (const char *, struct type *, int,
4c2ad1
-                              struct type **, int *, int *, int *, int *);
4c2ad1
+static int find_struct_field (const char *, struct type *, LONGEST,
4c2ad1
+                              struct type **, LONGEST *, int *, int *, int *);
4c2ad1
 
4c2ad1
 static int ada_resolve_function (struct block_symbol *, int,
4c2ad1
                                  struct value **, int, const char *,
4c2ad1
@@ -234,7 +235,7 @@ static int ada_is_direct_array_type (struct type *);
4c2ad1
 static void ada_language_arch_info (struct gdbarch *,
4c2ad1
 				    struct language_arch_info *);
4c2ad1
 
4c2ad1
-static struct value *ada_index_struct_field (int, struct value *, int,
4c2ad1
+static struct value *ada_index_struct_field (LONGEST, struct value *, LONGEST,
4c2ad1
 					     struct type *);
4c2ad1
 
4c2ad1
 static struct value *assign_aggregate (struct value *, struct value *, 
4c2ad1
@@ -697,7 +698,7 @@ coerce_unspec_val_to_type (struct value *val, struct type *type)
4c2ad1
 }
4c2ad1
 
4c2ad1
 static const gdb_byte *
4c2ad1
-cond_offset_host (const gdb_byte *valaddr, long offset)
4c2ad1
+cond_offset_host (const gdb_byte *valaddr, LONGEST offset)
4c2ad1
 {
4c2ad1
   if (valaddr == NULL)
4c2ad1
     return NULL;
4c2ad1
@@ -706,7 +707,7 @@ cond_offset_host (const gdb_byte *valaddr, long offset)
4c2ad1
 }
4c2ad1
 
4c2ad1
 static CORE_ADDR
4c2ad1
-cond_offset_target (CORE_ADDR address, long offset)
4c2ad1
+cond_offset_target (CORE_ADDR address, LONGEST offset)
4c2ad1
 {
4c2ad1
   if (address == 0)
4c2ad1
     return 0;
4c2ad1
@@ -1743,7 +1744,7 @@ desc_bounds (struct value *arr)
4c2ad1
 /* If TYPE is the type of an array-descriptor (fat pointer),  the bit
4c2ad1
    position of the field containing the address of the bounds data.  */
4c2ad1
 
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 fat_pntr_bounds_bitpos (struct type *type)
4c2ad1
 {
4c2ad1
   return TYPE_FIELD_BITPOS (desc_base_type (type), 1);
4c2ad1
@@ -1809,7 +1810,7 @@ desc_data (struct value *arr)
4c2ad1
 /* If TYPE is the type of an array-descriptor (fat pointer), the bit
4c2ad1
    position of the field containing the address of the data.  */
4c2ad1
 
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 fat_pntr_data_bitpos (struct type *type)
4c2ad1
 {
4c2ad1
   return TYPE_FIELD_BITPOS (desc_base_type (type), 0);
4c2ad1
@@ -1844,7 +1845,7 @@ desc_one_bound (struct value *bounds, int i, int which)
4c2ad1
    of the Ith lower bound stored in it, if WHICH is 0, and the Ith upper
4c2ad1
    bound, if WHICH is 1.  The first bound is I=1.  */
4c2ad1
 
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 desc_bound_bitpos (struct type *type, int i, int which)
4c2ad1
 {
4c2ad1
   return TYPE_FIELD_BITPOS (desc_base_type (type), 2 * i + which - 2);
4c2ad1
@@ -2034,7 +2035,7 @@ ada_type_of_array (struct value *arr, int bounds)
4c2ad1
 	         zero, and does not need to be recomputed.  */
4c2ad1
 	      if (lo < hi)
4c2ad1
 		{
4c2ad1
-		  int array_bitsize =
4c2ad1
+		  LONGEST array_bitsize =
4c2ad1
 		        (hi - lo + 1) * TYPE_FIELD_BITSIZE (elt_type, 0);
4c2ad1
 
4c2ad1
 		  TYPE_LENGTH (array_type) = (array_bitsize + 7) / 8;
4c2ad1
@@ -2194,7 +2195,7 @@ decode_packed_array_bitsize (struct type *type)
4c2ad1
    the length is arbitrary.  */
4c2ad1
 
4c2ad1
 static struct type *
4c2ad1
-constrained_packed_array_type (struct type *type, long *elt_bits)
4c2ad1
+constrained_packed_array_type (struct type *type, LONGEST *elt_bits)
4c2ad1
 {
4c2ad1
   struct type *new_elt_type;
4c2ad1
   struct type *new_type;
4c2ad1
@@ -2248,7 +2249,7 @@ decode_constrained_packed_array_type (struct type *type)
4c2ad1
   char *name;
4c2ad1
   const char *tail;
4c2ad1
   struct type *shadow_type;
4c2ad1
-  long bits;
4c2ad1
+  LONGEST bits;
4c2ad1
 
4c2ad1
   if (!raw_name)
4c2ad1
     raw_name = ada_type_name (desc_base_type (type));
4c2ad1
@@ -2319,7 +2320,8 @@ decode_constrained_packed_array (struct value *arr)
4c2ad1
  	 array with no wrapper.  In order to interpret the value through
4c2ad1
  	 the (left-justified) packed array type we just built, we must
4c2ad1
  	 first left-justify it.  */
4c2ad1
-      int bit_size, bit_pos;
4c2ad1
+      int bit_size;
4c2ad1
+      LONGEST bit_pos;
4c2ad1
       ULONGEST mod;
4c2ad1
 
4c2ad1
       mod = ada_modulus (value_type (arr)) - 1;
4c2ad1
@@ -2547,7 +2549,7 @@ ada_unpack_from_contents (const gdb_byte *src, int bit_offset, int bit_size,
4c2ad1
 
4c2ad1
 struct value *
4c2ad1
 ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
4c2ad1
-				long offset, int bit_offset, int bit_size,
4c2ad1
+				LONGEST offset, int bit_offset, int bit_size,
4c2ad1
                                 struct type *type)
4c2ad1
 {
4c2ad1
   struct value *v;
4c2ad1
@@ -2617,7 +2619,7 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
4c2ad1
 
4c2ad1
   if (obj != NULL)
4c2ad1
     {
4c2ad1
-      long new_offset = offset;
4c2ad1
+      LONGEST new_offset = offset;
4c2ad1
 
4c2ad1
       set_value_component_location (v, obj);
4c2ad1
       set_value_bitpos (v, bit_offset + value_bitpos (obj));
4c2ad1
@@ -2663,7 +2665,7 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
4c2ad1
    not overlap.  */
4c2ad1
 static void
4c2ad1
 move_bits (gdb_byte *target, int targ_offset, const gdb_byte *source,
4c2ad1
-	   int src_offset, int n, int bits_big_endian_p)
4c2ad1
+	   LONGEST src_offset, LONGEST n, int bits_big_endian_p)
4c2ad1
 {
4c2ad1
   unsigned int accum, mask;
4c2ad1
   int accum_bits, chunk_size;
4c2ad1
@@ -2753,7 +2755,7 @@ ada_value_assign (struct value *toval, struct value *fromval)
4c2ad1
     {
4c2ad1
       int len = (value_bitpos (toval)
4c2ad1
 		 + bits + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT;
4c2ad1
-      int from_size;
4c2ad1
+      LONGEST from_size;
4c2ad1
       gdb_byte *buffer = (gdb_byte *) alloca (len);
4c2ad1
       struct value *val;
4c2ad1
       CORE_ADDR to_addr = value_address (toval);
4c2ad1
@@ -2804,7 +2806,7 @@ value_assign_to_component (struct value *container, struct value *component,
4c2ad1
     (LONGEST)  (value_address (component) - value_address (container));
4c2ad1
   int bit_offset_in_container =
4c2ad1
     value_bitpos (component) - value_bitpos (container);
4c2ad1
-  int bits;
4c2ad1
+  LONGEST bits;
4c2ad1
 
4c2ad1
   val = value_cast (value_type (component), val);
4c2ad1
 
4c2ad1
@@ -4462,7 +4464,7 @@ ensure_lval (struct value *val)
4c2ad1
   if (VALUE_LVAL (val) == not_lval
4c2ad1
       || VALUE_LVAL (val) == lval_internalvar)
4c2ad1
     {
4c2ad1
-      int len = TYPE_LENGTH (ada_check_typedef (value_type (val)));
4c2ad1
+      LONGEST len = TYPE_LENGTH (ada_check_typedef (value_type (val)));
4c2ad1
       const CORE_ADDR addr =
4c2ad1
         value_as_long (value_allocate_space_in_inferior (len));
4c2ad1
 
4c2ad1
@@ -4546,7 +4548,7 @@ static CORE_ADDR
4c2ad1
 value_pointer (struct value *value, struct type *type)
4c2ad1
 {
4c2ad1
   struct gdbarch *gdbarch = get_type_arch (type);
4c2ad1
-  unsigned len = TYPE_LENGTH (type);
4c2ad1
+  ULONGEST len = TYPE_LENGTH (type);
4c2ad1
   gdb_byte *buf = (gdb_byte *) alloca (len);
4c2ad1
   CORE_ADDR addr;
4c2ad1
 
4c2ad1
@@ -6657,7 +6659,7 @@ value_tag_from_contents_and_address (struct type *type,
4c2ad1
 				     const gdb_byte *valaddr,
4c2ad1
                                      CORE_ADDR address)
4c2ad1
 {
4c2ad1
-  int tag_byte_offset;
4c2ad1
+  LONGEST tag_byte_offset;
4c2ad1
   struct type *tag_type;
4c2ad1
 
4c2ad1
   if (find_struct_field ("_tag", type, 0, &tag_type, &tag_byte_offset,
4c2ad1
@@ -7150,7 +7152,7 @@ ada_in_variant (LONGEST val, struct type *type, int field_num)
4c2ad1
    only in that it can handle packed values of arbitrary type.  */
4c2ad1
 
4c2ad1
 static struct value *
4c2ad1
-ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
4c2ad1
+ada_value_primitive_field (struct value *arg1, LONGEST offset, int fieldno,
4c2ad1
                            struct type *arg_type)
4c2ad1
 {
4c2ad1
   struct type *type;
4c2ad1
@@ -7162,7 +7164,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
4c2ad1
 
4c2ad1
   if (TYPE_FIELD_BITSIZE (arg_type, fieldno) != 0)
4c2ad1
     {
4c2ad1
-      int bit_pos = TYPE_FIELD_BITPOS (arg_type, fieldno);
4c2ad1
+      LONGEST bit_pos = TYPE_FIELD_BITPOS (arg_type, fieldno);
4c2ad1
       int bit_size = TYPE_FIELD_BITSIZE (arg_type, fieldno);
4c2ad1
 
4c2ad1
       return ada_value_primitive_packed_val (arg1, value_contents (arg1),
4c2ad1
@@ -7239,9 +7241,9 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
4c2ad1
    Returns 1 if found, 0 otherwise.  */
4c2ad1
 
4c2ad1
 static int
4c2ad1
-find_struct_field (const char *name, struct type *type, int offset,
4c2ad1
+find_struct_field (const char *name, struct type *type, LONGEST offset,
4c2ad1
                    struct type **field_type_p,
4c2ad1
-                   int *byte_offset_p, int *bit_offset_p, int *bit_size_p,
4c2ad1
+		   LONGEST *byte_offset_p, int *bit_offset_p, int *bit_size_p,
4c2ad1
 		   int *index_p)
4c2ad1
 {
4c2ad1
   int i;
4c2ad1
@@ -7260,8 +7262,8 @@ find_struct_field (const char *name, struct type *type, int offset,
4c2ad1
 
4c2ad1
   for (i = 0; i < TYPE_NFIELDS (type); i += 1)
4c2ad1
     {
4c2ad1
-      int bit_pos = TYPE_FIELD_BITPOS (type, i);
4c2ad1
-      int fld_offset = offset + bit_pos / 8;
4c2ad1
+      LONGEST bit_pos = TYPE_FIELD_BITPOS (type, i);
4c2ad1
+      LONGEST fld_offset = offset + bit_pos / 8;
4c2ad1
       const char *t_field_name = TYPE_FIELD_NAME (type, i);
4c2ad1
 
4c2ad1
       if (t_field_name == NULL)
4c2ad1
@@ -7363,7 +7365,7 @@ num_visible_fields (struct type *type)
4c2ad1
    long explanation in find_struct_field's function documentation.  */
4c2ad1
 
4c2ad1
 static struct value *
4c2ad1
-ada_search_struct_field (const char *name, struct value *arg, int offset,
4c2ad1
+ada_search_struct_field (const char *name, struct value *arg, LONGEST offset,
4c2ad1
                          struct type *type)
4c2ad1
 {
4c2ad1
   int i;
4c2ad1
@@ -7411,7 +7413,7 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
4c2ad1
           int j;
4c2ad1
           struct type *field_type = ada_check_typedef (TYPE_FIELD_TYPE (type,
4c2ad1
 									i));
4c2ad1
-          int var_offset = offset + TYPE_FIELD_BITPOS (type, i) / 8;
4c2ad1
+	  LONGEST var_offset = offset + TYPE_FIELD_BITPOS (type, i) / 8;
4c2ad1
 
4c2ad1
           for (j = 0; j < TYPE_NFIELDS (field_type); j += 1)
4c2ad1
             {
4c2ad1
@@ -7443,8 +7445,8 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
4c2ad1
   return NULL;
4c2ad1
 }
4c2ad1
 
4c2ad1
-static struct value *ada_index_struct_field_1 (int *, struct value *,
4c2ad1
-					       int, struct type *);
4c2ad1
+static struct value *ada_index_struct_field_1 (LONGEST *, struct value *,
4c2ad1
+					       LONGEST, struct type *);
4c2ad1
 
4c2ad1
 
4c2ad1
 /* Return field #INDEX in ARG, where the index is that returned by
4c2ad1
@@ -7453,7 +7455,7 @@ static struct value *ada_index_struct_field_1 (int *, struct value *,
4c2ad1
  * If found, return value, else return NULL.  */
4c2ad1
 
4c2ad1
 static struct value *
4c2ad1
-ada_index_struct_field (int index, struct value *arg, int offset,
4c2ad1
+ada_index_struct_field (LONGEST index, struct value *arg, LONGEST offset,
4c2ad1
 			struct type *type)
4c2ad1
 {
4c2ad1
   return ada_index_struct_field_1 (&index, arg, offset, type);
4c2ad1
@@ -7465,7 +7467,7 @@ ada_index_struct_field (int index, struct value *arg, int offset,
4c2ad1
  * *INDEX_P.  */
4c2ad1
 
4c2ad1
 static struct value *
4c2ad1
-ada_index_struct_field_1 (int *index_p, struct value *arg, int offset,
4c2ad1
+ada_index_struct_field_1 (LONGEST *index_p, struct value *arg, LONGEST offset,
4c2ad1
 			  struct type *type)
4c2ad1
 {
4c2ad1
   int i;
4c2ad1
@@ -7555,7 +7557,8 @@ ada_value_struct_elt (struct value *arg, const char *name, int no_err)
4c2ad1
     v = ada_search_struct_field (name, arg, 0, t);
4c2ad1
   else
4c2ad1
     {
4c2ad1
-      int bit_offset, bit_size, byte_offset;
4c2ad1
+      int bit_offset, bit_size;
4c2ad1
+      LONGEST byte_offset;
4c2ad1
       struct type *field_type;
4c2ad1
       CORE_ADDR address;
4c2ad1
 
4c2ad1
@@ -7899,8 +7902,8 @@ ada_coerce_ref (struct value *val0)
4c2ad1
 /* Return OFF rounded upward if necessary to a multiple of
4c2ad1
    ALIGNMENT (a power of 2).  */
4c2ad1
 
4c2ad1
-static unsigned int
4c2ad1
-align_value (unsigned int off, unsigned int alignment)
4c2ad1
+static ULONGEST
4c2ad1
+align_value (ULONGEST off, ULONGEST alignment)
4c2ad1
 {
4c2ad1
   return (off + alignment - 1) & ~(alignment - 1);
4c2ad1
 }
4c2ad1
@@ -8290,10 +8293,9 @@ ada_template_to_fixed_record_type_1 (struct type *type,
4c2ad1
   struct value *mark = value_mark ();
4c2ad1
   struct value *dval;
4c2ad1
   struct type *rtype;
4c2ad1
-  int nfields, bit_len;
4c2ad1
+  int nfields;
4c2ad1
   int variant_field;
4c2ad1
-  long off;
4c2ad1
-  int fld_bit_len;
4c2ad1
+  LONGEST off, bit_len, fld_bit_len;
4c2ad1
   int f;
4c2ad1
 
4c2ad1
   /* Compute the number of fields in this record type that are going
4c2ad1
@@ -8370,7 +8372,7 @@ ada_template_to_fixed_record_type_1 (struct type *type,
4c2ad1
 	     that follow this one.  */
4c2ad1
 	  if (ada_is_aligner_type (field_type))
4c2ad1
 	    {
4c2ad1
-	      long field_offset = TYPE_FIELD_BITPOS (field_type, f);
4c2ad1
+	      LONGEST field_offset = TYPE_FIELD_BITPOS (field_type, f);
4c2ad1
 
4c2ad1
 	      field_valaddr = cond_offset_host (field_valaddr, field_offset);
4c2ad1
 	      field_address = cond_offset_target (field_address, field_offset);
4c2ad1
@@ -8506,11 +8508,11 @@ ada_template_to_fixed_record_type_1 (struct type *type,
4c2ad1
   if (TYPE_LENGTH (type) <= 0)
4c2ad1
     {
4c2ad1
       if (TYPE_NAME (rtype))
4c2ad1
-	warning (_("Invalid type size for `%s' detected: %d."),
4c2ad1
-		 TYPE_NAME (rtype), TYPE_LENGTH (type));
4c2ad1
+	warning (_("Invalid type size for `%s' detected: %s."),
4c2ad1
+		 TYPE_NAME (rtype), pulongest (TYPE_LENGTH (type)));
4c2ad1
       else
4c2ad1
-	warning (_("Invalid type size for <unnamed> detected: %d."),
4c2ad1
-		 TYPE_LENGTH (type));
4c2ad1
+	warning (_("Invalid type size for <unnamed> detected: %s."),
4c2ad1
+		 pulongest (TYPE_LENGTH (type)));
4c2ad1
     }
4c2ad1
   else
4c2ad1
     {
4c2ad1
@@ -8974,7 +8976,8 @@ to_fixed_array_type (struct type *type0, struct value *dval,
4c2ad1
 	 type was a regular (non-packed) array type.  As a result, the
4c2ad1
 	 bitsize of the array elements needs to be set again, and the array
4c2ad1
 	 length needs to be recomputed based on that bitsize.  */
4c2ad1
-      int len = TYPE_LENGTH (result) / TYPE_LENGTH (TYPE_TARGET_TYPE (result));
4c2ad1
+      LONGEST len = (TYPE_LENGTH (result)
4c2ad1
+		     / TYPE_LENGTH (TYPE_TARGET_TYPE (result)));
4c2ad1
       int elt_bitsize = TYPE_FIELD_BITSIZE (type0, 0);
4c2ad1
 
4c2ad1
       TYPE_FIELD_BITSIZE (result, 0) = TYPE_FIELD_BITSIZE (type0, 0);
4c2ad1
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
4c2ad1
--- a/gdb/ada-lang.h
4c2ad1
+++ b/gdb/ada-lang.h
4c2ad1
@@ -173,7 +173,7 @@ extern void ada_print_type (struct type *, const char *, struct ui_file *, int,
4c2ad1
 extern void ada_print_typedef (struct type *type, struct symbol *new_symbol,
4c2ad1
 			       struct ui_file *stream);
4c2ad1
 
4c2ad1
-extern void ada_val_print (struct type *, int, CORE_ADDR,
4c2ad1
+extern void ada_val_print (struct type *, LONGEST, CORE_ADDR,
4c2ad1
 			   struct ui_file *, int,
4c2ad1
 			   struct value *,
4c2ad1
 			   const struct value_print_options *);
4c2ad1
@@ -188,7 +188,7 @@ extern void ada_emit_char (int, struct type *, struct ui_file *, int, int);
4c2ad1
 extern void ada_printchar (int, struct type *, struct ui_file *);
4c2ad1
 
4c2ad1
 extern void ada_printstr (struct ui_file *, struct type *, const gdb_byte *,
4c2ad1
-			  unsigned int, const char *, int,
4c2ad1
+			  ULONGEST, const char *, int,
4c2ad1
 			  const struct value_print_options *);
4c2ad1
 
4c2ad1
 struct value *ada_convert_actual (struct value *actual,
4c2ad1
@@ -261,7 +261,7 @@ extern int ada_is_constrained_packed_array_type (struct type *);
4c2ad1
 
4c2ad1
 extern struct value *ada_value_primitive_packed_val (struct value *,
4c2ad1
 						     const gdb_byte *,
4c2ad1
-                                                     long, int, int,
4c2ad1
+						     LONGEST, int, int,
4c2ad1
                                                      struct type *);
4c2ad1
 
4c2ad1
 extern struct type *ada_coerce_to_simple_array_type (struct type *);
4c2ad1
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
4c2ad1
--- a/gdb/ada-typeprint.c
4c2ad1
+++ b/gdb/ada-typeprint.c
4c2ad1
@@ -896,8 +896,8 @@ ada_print_type (struct type *type0, const char *varstring,
4c2ad1
 	    const char *name = ada_type_name (type);
4c2ad1
 
4c2ad1
 	    if (!ada_is_range_type_name (name))
4c2ad1
-	      fprintf_filtered (stream, _("<%d-byte integer>"),
4c2ad1
-				TYPE_LENGTH (type));
4c2ad1
+	      fprintf_filtered (stream, _("<%s-byte integer>"),
4c2ad1
+				pulongest (TYPE_LENGTH (type)));
4c2ad1
 	    else
4c2ad1
 	      {
4c2ad1
 		fprintf_filtered (stream, "range ");
4c2ad1
@@ -918,7 +918,8 @@ ada_print_type (struct type *type0, const char *varstring,
4c2ad1
 	  }
4c2ad1
 	break;
4c2ad1
       case TYPE_CODE_FLT:
4c2ad1
-	fprintf_filtered (stream, _("<%d-byte float>"), TYPE_LENGTH (type));
4c2ad1
+	fprintf_filtered (stream, _("<%s-byte float>"),
4c2ad1
+			  pulongest (TYPE_LENGTH (type)));
4c2ad1
 	break;
4c2ad1
       case TYPE_CODE_ENUM:
4c2ad1
 	if (show < 0)
4c2ad1
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
4c2ad1
--- a/gdb/ada-valprint.c
4c2ad1
+++ b/gdb/ada-valprint.c
4c2ad1
@@ -34,11 +34,11 @@
4c2ad1
 #include "target-float.h"
4c2ad1
 
4c2ad1
 static int print_field_values (struct type *, const gdb_byte *,
4c2ad1
-			       int,
4c2ad1
+			       LONGEST,
4c2ad1
 			       struct ui_file *, int,
4c2ad1
 			       struct value *,
4c2ad1
 			       const struct value_print_options *,
4c2ad1
-			       int, struct type *, int,
4c2ad1
+			       int, struct type *, LONGEST,
4c2ad1
 			       const struct language_defn *);
4c2ad1
 
4c2ad1
 
4c2ad1
@@ -316,7 +316,7 @@ ada_emit_char (int c, struct type *type, struct ui_file *stream,
4c2ad1
    of a character.  */
4c2ad1
 
4c2ad1
 static int
4c2ad1
-char_at (const gdb_byte *string, int i, int type_len,
4c2ad1
+char_at (const gdb_byte *string, LONGEST i, int type_len,
4c2ad1
 	 enum bfd_endian byte_order)
4c2ad1
 {
4c2ad1
   if (type_len == 1)
4c2ad1
@@ -476,11 +476,11 @@ ada_print_scalar (struct type *type, LONGEST val, struct ui_file *stream)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 printstr (struct ui_file *stream, struct type *elttype, const gdb_byte *string,
4c2ad1
-	  unsigned int length, int force_ellipses, int type_len,
4c2ad1
+	  ULONGEST length, int force_ellipses, int type_len,
4c2ad1
 	  const struct value_print_options *options)
4c2ad1
 {
4c2ad1
   enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (elttype));
4c2ad1
-  unsigned int i;
4c2ad1
+  ULONGEST i;
4c2ad1
   unsigned int things_printed = 0;
4c2ad1
   int in_quotes = 0;
4c2ad1
   int need_comma = 0;
4c2ad1
@@ -495,9 +495,9 @@ printstr (struct ui_file *stream, struct type *elttype, const gdb_byte *string,
4c2ad1
     {
4c2ad1
       /* Position of the character we are examining
4c2ad1
          to see whether it is repeated.  */
4c2ad1
-      unsigned int rep1;
4c2ad1
+      ULONGEST rep1;
4c2ad1
       /* Number of repetitions we have detected so far.  */
4c2ad1
-      unsigned int reps;
4c2ad1
+      ULONGEST reps;
4c2ad1
 
4c2ad1
       QUIT;
4c2ad1
 
4c2ad1
@@ -528,7 +528,8 @@ printstr (struct ui_file *stream, struct type *elttype, const gdb_byte *string,
4c2ad1
 	  ada_emit_char (char_at (string, i, type_len, byte_order),
4c2ad1
 			 elttype, stream, '\'', type_len);
4c2ad1
 	  fputs_filtered ("'", stream);
4c2ad1
-	  fprintf_filtered (stream, _(" <repeats %u times>"), reps);
4c2ad1
+	  fprintf_filtered (stream, _(" <repeats %s times>"),
4c2ad1
+			    pulongest (reps));
4c2ad1
 	  i = rep1 - 1;
4c2ad1
 	  things_printed += options->repeat_count_threshold;
4c2ad1
 	  need_comma = 1;
4c2ad1
@@ -556,7 +557,7 @@ printstr (struct ui_file *stream, struct type *elttype, const gdb_byte *string,
4c2ad1
 
4c2ad1
 void
4c2ad1
 ada_printstr (struct ui_file *stream, struct type *type,
4c2ad1
-	      const gdb_byte *string, unsigned int length,
4c2ad1
+	      const gdb_byte *string, ULONGEST length,
4c2ad1
 	      const char *encoding, int force_ellipses,
4c2ad1
 	      const struct value_print_options *options)
4c2ad1
 {
4c2ad1
@@ -566,12 +567,12 @@ ada_printstr (struct ui_file *stream, struct type *type,
4c2ad1
 
4c2ad1
 static int
4c2ad1
 print_variant_part (struct type *type, int field_num,
4c2ad1
-		    const gdb_byte *valaddr, int offset,
4c2ad1
+		    const gdb_byte *valaddr, LONGEST offset,
4c2ad1
 		    struct ui_file *stream, int recurse,
4c2ad1
 		    struct value *val,
4c2ad1
 		    const struct value_print_options *options,
4c2ad1
 		    int comma_needed,
4c2ad1
-		    struct type *outer_type, int outer_offset,
4c2ad1
+		    struct type *outer_type, LONGEST outer_offset,
4c2ad1
 		    const struct language_defn *language)
4c2ad1
 {
4c2ad1
   struct type *var_type = TYPE_FIELD_TYPE (type, field_num);
4c2ad1
@@ -607,11 +608,11 @@ print_variant_part (struct type *type, int field_num,
4c2ad1
 
4c2ad1
 static int
4c2ad1
 print_field_values (struct type *type, const gdb_byte *valaddr,
4c2ad1
-		    int offset, struct ui_file *stream, int recurse,
4c2ad1
+		    LONGEST offset, struct ui_file *stream, int recurse,
4c2ad1
 		    struct value *val,
4c2ad1
 		    const struct value_print_options *options,
4c2ad1
 		    int comma_needed,
4c2ad1
-		    struct type *outer_type, int outer_offset,
4c2ad1
+		    struct type *outer_type, LONGEST outer_offset,
4c2ad1
 		    const struct language_defn *language)
4c2ad1
 {
4c2ad1
   int i, len;
4c2ad1
@@ -677,7 +678,7 @@ print_field_values (struct type *type, const gdb_byte *valaddr,
4c2ad1
 	  else
4c2ad1
 	    {
4c2ad1
 	      struct value *v;
4c2ad1
-	      int bit_pos = TYPE_FIELD_BITPOS (type, i);
4c2ad1
+	      LONGEST bit_pos = TYPE_FIELD_BITPOS (type, i);
4c2ad1
 	      int bit_size = TYPE_FIELD_BITSIZE (type, i);
4c2ad1
 	      struct value_print_options opts;
4c2ad1
 
4c2ad1
@@ -722,8 +723,8 @@ ada_val_print_string (struct type *type, const gdb_byte *valaddr,
4c2ad1
 {
4c2ad1
   enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
4c2ad1
   struct type *elttype = TYPE_TARGET_TYPE (type);
4c2ad1
-  unsigned int eltlen;
4c2ad1
-  unsigned int len;
4c2ad1
+  ULONGEST eltlen;
4c2ad1
+  ULONGEST len;
4c2ad1
 
4c2ad1
   /* We know that ELTTYPE cannot possibly be null, because we assume
4c2ad1
      that we're called only when TYPE is a string-like type.
4c2ad1
@@ -742,7 +743,7 @@ ada_val_print_string (struct type *type, const gdb_byte *valaddr,
4c2ad1
      elements up to it.  */
4c2ad1
   if (options->stop_print_at_null)
4c2ad1
     {
4c2ad1
-      int temp_len;
4c2ad1
+      LONGEST temp_len;
4c2ad1
 
4c2ad1
       /* Look for a NULL char.  */
4c2ad1
       for (temp_len = 0;
4c2ad1
@@ -1115,7 +1116,7 @@ ada_val_print_ref (struct type *type, const gdb_byte *valaddr,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 ada_val_print_1 (struct type *type,
4c2ad1
-		 int offset, CORE_ADDR address,
4c2ad1
+		 LONGEST offset, CORE_ADDR address,
4c2ad1
 		 struct ui_file *stream, int recurse,
4c2ad1
 		 struct value *original_value,
4c2ad1
 		 const struct value_print_options *options,
4c2ad1
@@ -1199,7 +1200,7 @@ ada_val_print_1 (struct type *type,
4c2ad1
 
4c2ad1
 void
4c2ad1
 ada_val_print (struct type *type,
4c2ad1
-	       int embedded_offset, CORE_ADDR address,
4c2ad1
+	       LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 	       struct ui_file *stream, int recurse,
4c2ad1
 	       struct value *val,
4c2ad1
 	       const struct value_print_options *options)
4c2ad1
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
4c2ad1
--- a/gdb/amd64-tdep.c
4c2ad1
+++ b/gdb/amd64-tdep.c
4c2ad1
@@ -727,7 +727,7 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function,
4c2ad1
 		    gdb_byte *readbuf, const gdb_byte *writebuf)
4c2ad1
 {
4c2ad1
   enum amd64_reg_class theclass[2];
4c2ad1
-  int len = TYPE_LENGTH (type);
4c2ad1
+  LONGEST len = TYPE_LENGTH (type);
4c2ad1
   static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
4c2ad1
   static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
4c2ad1
   int integer_reg = 0;
4c2ad1
@@ -844,10 +844,10 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function,
4c2ad1
       gdb_assert (regnum != -1);
4c2ad1
 
4c2ad1
       if (readbuf)
4c2ad1
-	regcache->raw_read_part (regnum, offset, std::min (len, 8),
4c2ad1
+	regcache->raw_read_part (regnum, offset, std::min (len, (LONGEST) 8),
4c2ad1
 				 readbuf + i * 8);
4c2ad1
       if (writebuf)
4c2ad1
-	regcache->raw_write_part (regnum, offset, std::min (len, 8),
4c2ad1
+	regcache->raw_write_part (regnum, offset, std::min (len, (LONGEST) 8),
4c2ad1
 				  writebuf + i * 8);
4c2ad1
     }
4c2ad1
 
4c2ad1
diff --git a/gdb/annotate.c b/gdb/annotate.c
4c2ad1
--- a/gdb/annotate.c
4c2ad1
+++ b/gdb/annotate.c
4c2ad1
@@ -531,21 +531,21 @@ annotate_frame_end (void)
4c2ad1
 }
4c2ad1
 
4c2ad1
 void
4c2ad1
-annotate_array_section_begin (int idx, struct type *elttype)
4c2ad1
+annotate_array_section_begin (LONGEST idx, struct type *elttype)
4c2ad1
 {
4c2ad1
   if (annotation_level == 2)
4c2ad1
     {
4c2ad1
-      printf_filtered (("\n\032\032array-section-begin %d "), idx);
4c2ad1
+      printf_filtered (("\n\032\032array-section-begin %s "), plongest (idx));
4c2ad1
       print_value_flags (elttype);
4c2ad1
       printf_filtered (("\n"));
4c2ad1
     }
4c2ad1
 }
4c2ad1
 
4c2ad1
 void
4c2ad1
-annotate_elt_rep (unsigned int repcount)
4c2ad1
+annotate_elt_rep (ULONGEST repcount)
4c2ad1
 {
4c2ad1
   if (annotation_level == 2)
4c2ad1
-    printf_filtered (("\n\032\032elt-rep %u\n"), repcount);
4c2ad1
+    printf_filtered (("\n\032\032elt-rep %s\n"), pulongest (repcount));
4c2ad1
 }
4c2ad1
 
4c2ad1
 void
4c2ad1
diff --git a/gdb/annotate.h b/gdb/annotate.h
4c2ad1
--- a/gdb/annotate.h
4c2ad1
+++ b/gdb/annotate.h
4c2ad1
@@ -102,8 +102,8 @@ extern void annotate_frame_source_end (void);
4c2ad1
 extern void annotate_frame_where (void);
4c2ad1
 extern void annotate_frame_end (void);
4c2ad1
 
4c2ad1
-extern void annotate_array_section_begin (int, struct type *);
4c2ad1
-extern void annotate_elt_rep (unsigned int);
4c2ad1
+extern void annotate_array_section_begin (LONGEST, struct type *);
4c2ad1
+extern void annotate_elt_rep (ULONGEST);
4c2ad1
 extern void annotate_elt_rep_end (void);
4c2ad1
 extern void annotate_elt (void);
4c2ad1
 extern void annotate_array_section_end (void);
4c2ad1
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
4c2ad1
--- a/gdb/arch-utils.c
4c2ad1
+++ b/gdb/arch-utils.c
4c2ad1
@@ -228,7 +228,7 @@ legacy_virtual_frame_pointer (struct gdbarch *gdbarch,
4c2ad1
 
4c2ad1
 const struct floatformat **
4c2ad1
 default_floatformat_for_type (struct gdbarch *gdbarch,
4c2ad1
-			      const char *name, int len)
4c2ad1
+			      const char *name, LONGEST len)
4c2ad1
 {
4c2ad1
   const struct floatformat **format = NULL;
4c2ad1
 
4c2ad1
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
4c2ad1
--- a/gdb/arch-utils.h
4c2ad1
+++ b/gdb/arch-utils.h
4c2ad1
@@ -131,7 +131,7 @@ extern gdbarch_virtual_frame_pointer_ftype legacy_virtual_frame_pointer;
4c2ad1
 /* Default implementation of gdbarch_floatformat_for_type.  */
4c2ad1
 extern const struct floatformat **
4c2ad1
   default_floatformat_for_type (struct gdbarch *gdbarch,
4c2ad1
-				const char *name, int len);
4c2ad1
+				const char *name, LONGEST len);
4c2ad1
 
4c2ad1
 extern CORE_ADDR generic_skip_trampoline_code (struct frame_info *frame,
4c2ad1
 					       CORE_ADDR pc);
4c2ad1
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
4c2ad1
--- a/gdb/arm-linux-nat.c
4c2ad1
+++ b/gdb/arm-linux-nat.c
4c2ad1
@@ -1098,7 +1098,7 @@ arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch,
4c2ad1
 /* Are we able to use a hardware watchpoint for the LEN bytes starting at 
4c2ad1
    ADDR?  */
4c2ad1
 int
4c2ad1
-arm_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+arm_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   const struct arm_linux_hwbp_cap *cap = arm_linux_get_hwbp_cap ();
4c2ad1
   CORE_ADDR max_wp_length, aligned_addr;
4c2ad1
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
4c2ad1
--- a/gdb/ax-gdb.c
4c2ad1
+++ b/gdb/ax-gdb.c
4c2ad1
@@ -82,12 +82,12 @@ static void gen_traced_pop (struct agent_expr *, struct axs_value *);
4c2ad1
 static void gen_sign_extend (struct agent_expr *, struct type *);
4c2ad1
 static void gen_extend (struct agent_expr *, struct type *);
4c2ad1
 static void gen_fetch (struct agent_expr *, struct type *);
4c2ad1
-static void gen_left_shift (struct agent_expr *, int);
4c2ad1
+static void gen_left_shift (struct agent_expr *, LONGEST);
4c2ad1
 
4c2ad1
 
4c2ad1
 static void gen_frame_args_address (struct agent_expr *);
4c2ad1
 static void gen_frame_locals_address (struct agent_expr *);
4c2ad1
-static void gen_offset (struct agent_expr *ax, int offset);
4c2ad1
+static void gen_offset (struct agent_expr *ax, LONGEST offset);
4c2ad1
 static void gen_sym_offset (struct agent_expr *, struct symbol *);
4c2ad1
 static void gen_var_ref (struct agent_expr *ax, struct axs_value *value,
4c2ad1
 			 struct symbol *var);
4c2ad1
@@ -132,13 +132,13 @@ static void gen_complement (struct agent_expr *ax, struct axs_value *value);
4c2ad1
 static void gen_deref (struct axs_value *);
4c2ad1
 static void gen_address_of (struct axs_value *);
4c2ad1
 static void gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
4c2ad1
-			      struct type *type, int start, int end);
4c2ad1
+			      struct type *type, LONGEST start, LONGEST end);
4c2ad1
 static void gen_primitive_field (struct agent_expr *ax,
4c2ad1
 				 struct axs_value *value,
4c2ad1
-				 int offset, int fieldno, struct type *type);
4c2ad1
+				 LONGEST offset, int fieldno, struct type *type);
4c2ad1
 static int gen_struct_ref_recursive (struct agent_expr *ax,
4c2ad1
 				     struct axs_value *value,
4c2ad1
-				     const char *field, int offset,
4c2ad1
+				     const char *field, LONGEST offset,
4c2ad1
 				     struct type *type);
4c2ad1
 static void gen_struct_ref (struct agent_expr *ax,
4c2ad1
 			    struct axs_value *value,
4c2ad1
@@ -529,7 +529,7 @@ gen_fetch (struct agent_expr *ax, struct type *type)
4c2ad1
    right shift it by -DISTANCE bits if DISTANCE < 0.  This generates
4c2ad1
    unsigned (logical) right shifts.  */
4c2ad1
 static void
4c2ad1
-gen_left_shift (struct agent_expr *ax, int distance)
4c2ad1
+gen_left_shift (struct agent_expr *ax, LONGEST distance)
4c2ad1
 {
4c2ad1
   if (distance > 0)
4c2ad1
     {
4c2ad1
@@ -583,7 +583,7 @@ gen_frame_locals_address (struct agent_expr *ax)
4c2ad1
    programming in ML, it would be clearer why these are the same
4c2ad1
    thing.  */
4c2ad1
 static void
4c2ad1
-gen_offset (struct agent_expr *ax, int offset)
4c2ad1
+gen_offset (struct agent_expr *ax, LONGEST offset)
4c2ad1
 {
4c2ad1
   /* It would suffice to simply push the offset and add it, but this
4c2ad1
      makes it easier to read positive and negative offsets in the
4c2ad1
@@ -1254,7 +1254,7 @@ gen_address_of (struct axs_value *value)
4c2ad1
    structure.  */
4c2ad1
 static void
4c2ad1
 gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
4c2ad1
-		  struct type *type, int start, int end)
4c2ad1
+		  struct type *type, LONGEST start, LONGEST  end)
4c2ad1
 {
4c2ad1
   /* Note that ops[i] fetches 8 << i bits.  */
4c2ad1
   static enum agent_op ops[]
4c2ad1
@@ -1289,13 +1289,13 @@ gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
4c2ad1
 
4c2ad1
   /* The first and one-after-last bits in the field, but rounded down
4c2ad1
      and up to byte boundaries.  */
4c2ad1
-  int bound_start = (start / TARGET_CHAR_BIT) * TARGET_CHAR_BIT;
4c2ad1
-  int bound_end = (((end + TARGET_CHAR_BIT - 1)
4c2ad1
-		    / TARGET_CHAR_BIT)
4c2ad1
-		   * TARGET_CHAR_BIT);
4c2ad1
+  LONGEST bound_start = (start / TARGET_CHAR_BIT) * TARGET_CHAR_BIT;
4c2ad1
+  LONGEST bound_end = (((end + TARGET_CHAR_BIT - 1)
4c2ad1
+			/ TARGET_CHAR_BIT)
4c2ad1
+		       * TARGET_CHAR_BIT);
4c2ad1
 
4c2ad1
   /* current bit offset within the structure */
4c2ad1
-  int offset;
4c2ad1
+  LONGEST offset;
4c2ad1
 
4c2ad1
   /* The index in ops of the opcode we're considering.  */
4c2ad1
   int op;
4c2ad1
@@ -1413,7 +1413,7 @@ gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 gen_primitive_field (struct agent_expr *ax, struct axs_value *value,
4c2ad1
-		     int offset, int fieldno, struct type *type)
4c2ad1
+		     LONGEST offset, int fieldno, struct type *type)
4c2ad1
 {
4c2ad1
   /* Is this a bitfield?  */
4c2ad1
   if (TYPE_FIELD_PACKED (type, fieldno))
4c2ad1
@@ -1437,7 +1437,7 @@ gen_primitive_field (struct agent_expr *ax, struct axs_value *value,
4c2ad1
 
4c2ad1
 static int
4c2ad1
 gen_struct_ref_recursive (struct agent_expr *ax, struct axs_value *value,
4c2ad1
-			  const char *field, int offset, struct type *type)
4c2ad1
+			  const char *field, LONGEST offset, struct type *type)
4c2ad1
 {
4c2ad1
   int i, rslt;
4c2ad1
   int nbases = TYPE_N_BASECLASSES (type);
4c2ad1
diff --git a/gdb/ax-general.c b/gdb/ax-general.c
4c2ad1
--- a/gdb/ax-general.c
4c2ad1
+++ b/gdb/ax-general.c
4c2ad1
@@ -177,7 +177,7 @@ ax_zero_ext (struct agent_expr *x, int n)
4c2ad1
 
4c2ad1
 /* Append a trace_quick instruction to EXPR, to record N bytes.  */
4c2ad1
 void
4c2ad1
-ax_trace_quick (struct agent_expr *x, int n)
4c2ad1
+ax_trace_quick (struct agent_expr *x, LONGEST n)
4c2ad1
 {
4c2ad1
   /* N must fit in a byte.  */
4c2ad1
   if (n < 0 || n > 255)
4c2ad1
diff --git a/gdb/ax.h b/gdb/ax.h
4c2ad1
--- a/gdb/ax.h
4c2ad1
+++ b/gdb/ax.h
4c2ad1
@@ -193,7 +193,7 @@ extern void ax_ext (struct agent_expr *EXPR, int N);
4c2ad1
 extern void ax_zero_ext (struct agent_expr *EXPR, int N);
4c2ad1
 
4c2ad1
 /* Append a trace_quick instruction to EXPR, to record N bytes.  */
4c2ad1
-extern void ax_trace_quick (struct agent_expr *EXPR, int N);
4c2ad1
+extern void ax_trace_quick (struct agent_expr *EXPR, LONGEST N);
4c2ad1
 
4c2ad1
 /* Append a goto op to EXPR.  OP is the actual op (must be aop_goto or
4c2ad1
    aop_if_goto).  We assume we don't know the target offset yet,
4c2ad1
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
4c2ad1
--- a/gdb/breakpoint.c
4c2ad1
+++ b/gdb/breakpoint.c
4c2ad1
@@ -2059,9 +2059,9 @@ should_be_inserted (struct bp_location *bl)
4c2ad1
 	{
4c2ad1
 	  fprintf_unfiltered (gdb_stdlog,
4c2ad1
 			      "infrun: stepping past non-steppable watchpoint. "
4c2ad1
-			      "skipping watchpoint at %s:%d\n",
4c2ad1
+			      "skipping watchpoint at %s:%s\n",
4c2ad1
 			      paddress (bl->gdbarch, bl->address),
4c2ad1
-			      bl->length);
4c2ad1
+			      plongest (bl->length));
4c2ad1
 	}
4c2ad1
       return 0;
4c2ad1
     }
4c2ad1
@@ -6822,7 +6822,7 @@ breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1,
4c2ad1
 static int
4c2ad1
 breakpoint_address_match_range (const address_space *aspace1,
4c2ad1
 				CORE_ADDR addr1,
4c2ad1
-				int len1, const address_space *aspace2,
4c2ad1
+				LONGEST len1, const address_space *aspace2,
4c2ad1
 				CORE_ADDR addr2)
4c2ad1
 {
4c2ad1
   return ((gdbarch_has_global_breakpoints (target_gdbarch ())
4c2ad1
@@ -10905,7 +10905,7 @@ can_use_hardware_watchpoint (const std::vector<value_ref_ptr> &vals)
4c2ad1
 		      && TYPE_CODE (vtype) != TYPE_CODE_ARRAY))
4c2ad1
 		{
4c2ad1
 		  CORE_ADDR vaddr = value_address (v);
4c2ad1
-		  int len;
4c2ad1
+		  LONGEST len;
4c2ad1
 		  int num_regs;
4c2ad1
 
4c2ad1
 		  len = (target_exact_watchpoints
4c2ad1
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
4c2ad1
--- a/gdb/breakpoint.h
4c2ad1
+++ b/gdb/breakpoint.h
4c2ad1
@@ -252,7 +252,7 @@ struct bp_target_info
4c2ad1
 
4c2ad1
   /* If this is a ranged breakpoint, then this field contains the
4c2ad1
      length of the range that will be watched for execution.  */
4c2ad1
-  int length;
4c2ad1
+  LONGEST length;
4c2ad1
 
4c2ad1
   /* If the breakpoint lives in memory and reading that memory would
4c2ad1
      give back the breakpoint, instead of the original contents, then
4c2ad1
@@ -429,7 +429,7 @@ public:
4c2ad1
   /* For hardware watchpoints, the size of the memory region being
4c2ad1
      watched.  For hardware ranged breakpoints, the size of the
4c2ad1
      breakpoint range.  */
4c2ad1
-  int length = 0;
4c2ad1
+  LONGEST length = 0;
4c2ad1
 
4c2ad1
   /* Type of hardware watchpoint.  */
4c2ad1
   target_hw_bp_type watchpoint_type {};
4c2ad1
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
4c2ad1
--- a/gdb/c-lang.c
4c2ad1
+++ b/gdb/c-lang.c
4c2ad1
@@ -185,7 +185,7 @@ c_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 void
4c2ad1
 c_printstr (struct ui_file *stream, struct type *type, 
4c2ad1
-	    const gdb_byte *string, unsigned int length, 
4c2ad1
+	    const gdb_byte *string, ULONGEST length,
4c2ad1
 	    const char *user_encoding, int force_ellipses,
4c2ad1
 	    const struct value_print_options *options)
4c2ad1
 {
4c2ad1
@@ -664,7 +664,7 @@ evaluate_subexp_c (struct type *expect_type, struct expression *exp,
4c2ad1
 	  }
4c2ad1
 	else
4c2ad1
 	  {
4c2ad1
-	    int i;
4c2ad1
+	    LONGEST i;
4c2ad1
 
4c2ad1
 	    /* Write the terminating character.  */
4c2ad1
 	    for (i = 0; i < TYPE_LENGTH (type); ++i)
4c2ad1
@@ -673,7 +673,7 @@ evaluate_subexp_c (struct type *expect_type, struct expression *exp,
4c2ad1
 	    if (satisfy_expected)
4c2ad1
 	      {
4c2ad1
 		LONGEST low_bound, high_bound;
4c2ad1
-		int element_size = TYPE_LENGTH (type);
4c2ad1
+		LONGEST element_size = TYPE_LENGTH (type);
4c2ad1
 
4c2ad1
 		if (get_discrete_bounds (TYPE_INDEX_TYPE (expect_type),
4c2ad1
 					 &low_bound, &high_bound) < 0)
4c2ad1
diff --git a/gdb/c-lang.h b/gdb/c-lang.h
4c2ad1
--- a/gdb/c-lang.h
4c2ad1
+++ b/gdb/c-lang.h
4c2ad1
@@ -82,7 +82,7 @@ extern void c_print_typedef (struct type *,
4c2ad1
 			     struct ui_file *);
4c2ad1
 
4c2ad1
 extern void c_val_print (struct type *,
4c2ad1
-			 int, CORE_ADDR,
4c2ad1
+			 LONGEST, CORE_ADDR,
4c2ad1
 			 struct ui_file *, int,
4c2ad1
 			 struct value *,
4c2ad1
 			 const struct value_print_options *);
4c2ad1
@@ -102,7 +102,7 @@ extern void c_printchar (int, struct type *, struct ui_file *);
4c2ad1
 extern void c_printstr (struct ui_file * stream,
4c2ad1
 			struct type *elttype,
4c2ad1
 			const gdb_byte *string,
4c2ad1
-			unsigned int length,
4c2ad1
+			ULONGEST length,
4c2ad1
 			const char *user_encoding,
4c2ad1
 			int force_ellipses,
4c2ad1
 			const struct value_print_options *options);
4c2ad1
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
4c2ad1
--- a/gdb/c-valprint.c
4c2ad1
+++ b/gdb/c-valprint.c
4c2ad1
@@ -247,7 +247,7 @@ c_val_print_array (struct type *type, const gdb_byte *valaddr,
4c2ad1
   if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (unresolved_elttype) > 0)
4c2ad1
     {
4c2ad1
       LONGEST low_bound, high_bound;
4c2ad1
-      int eltlen, len;
4c2ad1
+      LONGEST eltlen, len;
4c2ad1
       struct gdbarch *gdbarch = get_type_arch (type);
4c2ad1
       enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
4c2ad1
       unsigned int i = 0;	/* Number of characters printed.  */
4c2ad1
@@ -321,8 +321,8 @@ c_val_print_array (struct type *type, const gdb_byte *valaddr,
4c2ad1
 	  if (cp_is_vtbl_ptr_type (elttype))
4c2ad1
 	    {
4c2ad1
 	      i = 1;
4c2ad1
-	      fprintf_filtered (stream, _("%d vtable entries"),
4c2ad1
-				len - 1);
4c2ad1
+	      fprintf_filtered (stream, _("%s vtable entries"),
4c2ad1
+				plongest (len - 1));
4c2ad1
 	    }
4c2ad1
 	  else
4c2ad1
 	    {
4c2ad1
@@ -399,7 +399,7 @@ c_val_print_struct (struct type *type, const gdb_byte *valaddr,
4c2ad1
 	 -fvtable_thunks.  (Otherwise, look under
4c2ad1
 	 TYPE_CODE_PTR.)  */
4c2ad1
       struct gdbarch *gdbarch = get_type_arch (type);
4c2ad1
-      int offset = (embedded_offset
4c2ad1
+      LONGEST offset = (embedded_offset
4c2ad1
 		    + TYPE_FIELD_BITPOS (type,
4c2ad1
 					 VTBL_FNADDR_OFFSET) / 8);
4c2ad1
       struct type *field_type = TYPE_FIELD_TYPE (type, VTBL_FNADDR_OFFSET);
4c2ad1
@@ -498,7 +498,7 @@ c_val_print_memberptr (struct type *type, const gdb_byte *valaddr,
4c2ad1
 
4c2ad1
 void
4c2ad1
 c_val_print (struct type *type,
4c2ad1
-	     int embedded_offset, CORE_ADDR address,
4c2ad1
+	     LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 	     struct ui_file *stream, int recurse,
4c2ad1
 	     struct value *original_value,
4c2ad1
 	     const struct value_print_options *options)
4c2ad1
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
4c2ad1
--- a/gdb/compile/compile-c-support.c
4c2ad1
+++ b/gdb/compile/compile-c-support.c
4c2ad1
@@ -307,11 +307,11 @@ generate_register_struct (struct ui_file *stream, struct gdbarch *gdbarch,
4c2ad1
 
4c2ad1
 	      default:
4c2ad1
 		fprintf_unfiltered (stream,
4c2ad1
-				    "  unsigned char %s[%d]"
4c2ad1
+				    "  unsigned char %s[%s]"
4c2ad1
 				    " __attribute__((__aligned__("
4c2ad1
 				    "__BIGGEST_ALIGNMENT__)))",
4c2ad1
 				    regname.c_str (),
4c2ad1
-				    TYPE_LENGTH (regtype));
4c2ad1
+				    pulongest (TYPE_LENGTH (regtype)));
4c2ad1
 	      }
4c2ad1
 	    fputs_unfiltered (";\n", stream);
4c2ad1
 	  }
4c2ad1
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c
4c2ad1
--- a/gdb/cp-abi.c
4c2ad1
+++ b/gdb/cp-abi.c
4c2ad1
@@ -64,12 +64,12 @@ is_operator_name (const char *name)
4c2ad1
   return (*current_cp_abi.is_operator_name) (name);
4c2ad1
 }
4c2ad1
 
4c2ad1
-int
4c2ad1
+LONGEST
4c2ad1
 baseclass_offset (struct type *type, int index, const gdb_byte *valaddr,
4c2ad1
 		  LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		  const struct value *val)
4c2ad1
 {
4c2ad1
-  int res = 0;
4c2ad1
+  LONGEST res = 0;
4c2ad1
 
4c2ad1
   gdb_assert (current_cp_abi.baseclass_offset != NULL);
4c2ad1
 
4c2ad1
@@ -96,7 +96,7 @@ baseclass_offset (struct type *type, int index, const gdb_byte *valaddr,
4c2ad1
 struct value *
4c2ad1
 value_virtual_fn_field (struct value **arg1p,
4c2ad1
 			struct fn_field *f, int j,
4c2ad1
-			struct type *type, int offset)
4c2ad1
+			struct type *type, LONGEST offset)
4c2ad1
 {
4c2ad1
   if ((current_cp_abi.virtual_fn_field) == NULL)
4c2ad1
     return NULL;
4c2ad1
diff --git a/gdb/cp-abi.h b/gdb/cp-abi.h
4c2ad1
--- a/gdb/cp-abi.h
4c2ad1
+++ b/gdb/cp-abi.h
4c2ad1
@@ -108,7 +108,7 @@ extern struct value *value_virtual_fn_field (struct value **valuep,
4c2ad1
 					     struct fn_field *f,
4c2ad1
 					     int j,
4c2ad1
 					     struct type *type,
4c2ad1
-					     int offset);
4c2ad1
+					     LONGEST offset);
4c2ad1
 
4c2ad1
 
4c2ad1
 /* Try to find the run-time type of VALUE, using C++ run-time type
4c2ad1
@@ -144,11 +144,11 @@ extern struct type *value_rtti_type (struct value *value,
4c2ad1
    contents of VAL.  The result is the offset of the baseclass value
4c2ad1
    relative to (the address of)(ARG) + OFFSET.  */
4c2ad1
 
4c2ad1
-extern int baseclass_offset (struct type *type,
4c2ad1
-			     int index, const gdb_byte *valaddr,
4c2ad1
-			     LONGEST embedded_offset,
4c2ad1
-			     CORE_ADDR address,
4c2ad1
-			     const struct value *val);
4c2ad1
+extern LONGEST baseclass_offset (struct type *type,
4c2ad1
+				 int index, const gdb_byte *valaddr,
4c2ad1
+				 LONGEST embedded_offset,
4c2ad1
+				 CORE_ADDR address,
4c2ad1
+				 const struct value *val);
4c2ad1
 
4c2ad1
 /* Describe the target of a pointer to method.  CONTENTS is the byte
4c2ad1
    pattern representing the pointer to method.  TYPE is the pointer to
4c2ad1
@@ -226,12 +226,12 @@ struct cp_abi_ops
4c2ad1
   struct value *(*virtual_fn_field) (struct value **arg1p,
4c2ad1
 				     struct fn_field * f,
4c2ad1
 				     int j, struct type * type,
4c2ad1
-				     int offset);
4c2ad1
+				     LONGEST offset);
4c2ad1
   struct type *(*rtti_type) (struct value *v, int *full,
4c2ad1
 			     LONGEST *top, int *using_enc);
4c2ad1
-  int (*baseclass_offset) (struct type *type, int index,
4c2ad1
-			   const bfd_byte *valaddr, LONGEST embedded_offset,
4c2ad1
-			   CORE_ADDR address, const struct value *val);
4c2ad1
+  LONGEST (*baseclass_offset) (struct type *type, int index,
4c2ad1
+			       const bfd_byte *valaddr, LONGEST embedded_offset,
4c2ad1
+			       CORE_ADDR address, const struct value *val);
4c2ad1
   void (*print_method_ptr) (const gdb_byte *contents,
4c2ad1
 			    struct type *type,
4c2ad1
 			    struct ui_file *stream);
4c2ad1
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
4c2ad1
--- a/gdb/cp-valprint.c
4c2ad1
+++ b/gdb/cp-valprint.c
4c2ad1
@@ -335,7 +335,7 @@ cp_print_value_fields (struct type *type, struct type *real_type,
4c2ad1
 		}
4c2ad1
 	      else if (i == vptr_fieldno && type == vptr_basetype)
4c2ad1
 		{
4c2ad1
-		  int i_offset = offset + TYPE_FIELD_BITPOS (type, i) / 8;
4c2ad1
+		  LONGEST i_offset = offset + TYPE_FIELD_BITPOS (type, i) / 8;
4c2ad1
 		  struct type *i_type = TYPE_FIELD_TYPE (type, i);
4c2ad1
 
4c2ad1
 		  if (valprint_check_validity (stream, i_type, i_offset, val))
4c2ad1
diff --git a/gdb/d-lang.h b/gdb/d-lang.h
4c2ad1
--- a/gdb/d-lang.h
4c2ad1
+++ b/gdb/d-lang.h
4c2ad1
@@ -79,7 +79,7 @@ extern struct block_symbol d_lookup_nested_symbol (struct type *, const char *,
4c2ad1
 /* Defined in d-valprint.c  */
4c2ad1
 
4c2ad1
 extern void d_val_print (struct type *type,
4c2ad1
-			 int embedded_offset, CORE_ADDR address,
4c2ad1
+			 LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			 struct ui_file *stream, int recurse,
4c2ad1
 			 struct value *val,
4c2ad1
 			 const struct value_print_options *options);
4c2ad1
diff --git a/gdb/d-valprint.c b/gdb/d-valprint.c
4c2ad1
--- a/gdb/d-valprint.c
4c2ad1
+++ b/gdb/d-valprint.c
4c2ad1
@@ -73,7 +73,7 @@ dynamic_array_type (struct type *type,
4c2ad1
 
4c2ad1
 /* Implements the la_val_print routine for language D.  */
4c2ad1
 void
4c2ad1
-d_val_print (struct type *type, int embedded_offset,
4c2ad1
+d_val_print (struct type *type, LONGEST embedded_offset,
4c2ad1
              CORE_ADDR address, struct ui_file *stream, int recurse,
4c2ad1
 	     struct value *val,
4c2ad1
              const struct value_print_options *options)
4c2ad1
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
4c2ad1
--- a/gdb/dwarf2loc.c
4c2ad1
+++ b/gdb/dwarf2loc.c
4c2ad1
@@ -1817,7 +1817,7 @@ rw_pieced_value (struct value *v, struct value *from)
4c2ad1
   for (; i < c->pieces.size () && offset < max_offset; i++)
4c2ad1
     {
4c2ad1
       struct dwarf_expr_piece *p = &c->pieces[i];
4c2ad1
-      size_t this_size_bits, this_size;
4c2ad1
+      ULONGEST this_size_bits, this_size;
4c2ad1
 
4c2ad1
       this_size_bits = p->size - bits_to_skip;
4c2ad1
       if (this_size_bits > max_offset - offset)
4c2ad1
@@ -2064,7 +2064,7 @@ write_pieced_value (struct value *to, struct value *from)
4c2ad1
 
4c2ad1
 static int
4c2ad1
 check_pieced_synthetic_pointer (const struct value *value, LONGEST bit_offset,
4c2ad1
-				int bit_length)
4c2ad1
+				LONGEST bit_length)
4c2ad1
 {
4c2ad1
   struct piece_closure *c
4c2ad1
     = (struct piece_closure *) value_computed_closure (value);
4c2ad1
@@ -2077,7 +2077,7 @@ check_pieced_synthetic_pointer (const struct value *value, LONGEST bit_offset,
4c2ad1
   for (i = 0; i < c->pieces.size () && bit_length > 0; i++)
4c2ad1
     {
4c2ad1
       struct dwarf_expr_piece *p = &c->pieces[i];
4c2ad1
-      size_t this_size_bits = p->size;
4c2ad1
+      ULONGEST this_size_bits = p->size;
4c2ad1
 
4c2ad1
       if (bit_offset > 0)
4c2ad1
 	{
4c2ad1
@@ -2179,8 +2179,8 @@ indirect_pieced_value (struct value *value)
4c2ad1
     = (struct piece_closure *) value_computed_closure (value);
4c2ad1
   struct type *type;
4c2ad1
   struct frame_info *frame;
4c2ad1
-  int i, bit_length;
4c2ad1
-  LONGEST bit_offset;
4c2ad1
+  int i;
4c2ad1
+  LONGEST bit_length, bit_offset;
4c2ad1
   struct dwarf_expr_piece *piece = NULL;
4c2ad1
   LONGEST byte_offset;
4c2ad1
   enum bfd_endian byte_order;
4c2ad1
@@ -2197,7 +2197,7 @@ indirect_pieced_value (struct value *value)
4c2ad1
   for (i = 0; i < c->pieces.size () && bit_length > 0; i++)
4c2ad1
     {
4c2ad1
       struct dwarf_expr_piece *p = &c->pieces[i];
4c2ad1
-      size_t this_size_bits = p->size;
4c2ad1
+      ULONGEST this_size_bits = p->size;
4c2ad1
 
4c2ad1
       if (bit_offset > 0)
4c2ad1
 	{
4c2ad1
@@ -2486,9 +2486,9 @@ if (frame != NULL) select_frame (frame);
4c2ad1
 	case DWARF_VALUE_STACK:
4c2ad1
 	  {
4c2ad1
 	    struct value *value = ctx.fetch (0);
4c2ad1
-	    size_t n = TYPE_LENGTH (value_type (value));
4c2ad1
-	    size_t len = TYPE_LENGTH (subobj_type);
4c2ad1
-	    size_t max = TYPE_LENGTH (type);
4c2ad1
+	    ULONGEST n = TYPE_LENGTH (value_type (value));
4c2ad1
+	    ULONGEST len = TYPE_LENGTH (subobj_type);
4c2ad1
+	    ULONGEST max = TYPE_LENGTH (type);
4c2ad1
 	    struct gdbarch *objfile_gdbarch = get_objfile_arch (objfile);
4c2ad1
 
4c2ad1
 	    if (subobj_byte_offset + len > max)
4c2ad1
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
4c2ad1
--- a/gdb/dwarf2read.c
4c2ad1
+++ b/gdb/dwarf2read.c
4c2ad1
@@ -2021,11 +2021,11 @@ dwarf2_complex_location_expr_complaint (void)
4c2ad1
 }
4c2ad1
 
4c2ad1
 static void
4c2ad1
-dwarf2_const_value_length_mismatch_complaint (const char *arg1, int arg2,
4c2ad1
-					      int arg3)
4c2ad1
+dwarf2_const_value_length_mismatch_complaint (const char *arg1, LONGEST arg2,
4c2ad1
+					      LONGEST arg3)
4c2ad1
 {
4c2ad1
-  complaint (_("const value length mismatch for '%s', got %d, expected %d"),
4c2ad1
-	     arg1, arg2, arg3);
4c2ad1
+  complaint (_("const value length mismatch for '%s', got %s, expected %s"),
4c2ad1
+	     arg1, plongest (arg2), plongest (arg3));
4c2ad1
 }
4c2ad1
 
4c2ad1
 static void
4c2ad1
@@ -14953,8 +14953,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
4c2ad1
 	         object, and then subtract off the number of bits of
4c2ad1
 	         the field itself.  The result is the bit offset of
4c2ad1
 	         the LSB of the field.  */
4c2ad1
-	      int anonymous_size;
4c2ad1
-	      int bit_offset = DW_UNSND (attr);
4c2ad1
+	      LONGEST anonymous_size;
4c2ad1
+	      LONGEST bit_offset = DW_UNSND (attr);
4c2ad1
 
4c2ad1
 	      attr = dwarf2_attr (die, DW_AT_byte_size, cu);
4c2ad1
 	      if (attr)
4c2ad1
diff --git a/gdb/eval.c b/gdb/eval.c
4c2ad1
--- a/gdb/eval.c
4c2ad1
+++ b/gdb/eval.c
4c2ad1
@@ -295,7 +295,8 @@ evaluate_struct_tuple (struct value *struct_val,
4c2ad1
   while (--nargs >= 0)
4c2ad1
     {
4c2ad1
       struct value *val = NULL;
4c2ad1
-      int bitpos, bitsize;
4c2ad1
+      LONGEST bitpos;
4c2ad1
+      int bitsize;
4c2ad1
       bfd_byte *addr;
4c2ad1
 
4c2ad1
       fieldno++;
4c2ad1
@@ -356,7 +357,7 @@ init_array_element (struct value *array, struct value *element,
4c2ad1
 		    enum noside noside, LONGEST low_bound, LONGEST high_bound)
4c2ad1
 {
4c2ad1
   LONGEST index;
4c2ad1
-  int element_size = TYPE_LENGTH (value_type (element));
4c2ad1
+  LONGEST element_size = TYPE_LENGTH (value_type (element));
4c2ad1
 
4c2ad1
   if (exp->elts[*pos].opcode == BINOP_COMMA)
4c2ad1
     {
4c2ad1
@@ -800,11 +801,11 @@ binop_promote (const struct language_defn *language, struct gdbarch *gdbarch,
4c2ad1
     /* FIXME: Also mixed integral/booleans, with result an integer.  */
4c2ad1
     {
4c2ad1
       const struct builtin_type *builtin = builtin_type (gdbarch);
4c2ad1
-      unsigned int promoted_len1 = TYPE_LENGTH (type1);
4c2ad1
-      unsigned int promoted_len2 = TYPE_LENGTH (type2);
4c2ad1
+      ULONGEST promoted_len1 = TYPE_LENGTH (type1);
4c2ad1
+      ULONGEST promoted_len2 = TYPE_LENGTH (type2);
4c2ad1
       int is_unsigned1 = TYPE_UNSIGNED (type1);
4c2ad1
       int is_unsigned2 = TYPE_UNSIGNED (type2);
4c2ad1
-      unsigned int result_len;
4c2ad1
+      ULONGEST result_len;
4c2ad1
       int unsigned_operation;
4c2ad1
 
4c2ad1
       /* Determine type length and signedness after promotion for
4c2ad1
@@ -1546,7 +1547,7 @@ evaluate_subexp_standard (struct type *expect_type,
4c2ad1
   struct value **argvec;
4c2ad1
   int code;
4c2ad1
   int ix;
4c2ad1
-  long mem_offset;
4c2ad1
+  LONGEST mem_offset;
4c2ad1
   struct type **arg_types;
4c2ad1
 
4c2ad1
   pc = (*pos)++;
4c2ad1
@@ -1729,7 +1730,7 @@ evaluate_subexp_standard (struct type *expect_type,
4c2ad1
 	  struct type *range_type = TYPE_INDEX_TYPE (type);
4c2ad1
 	  struct type *element_type = TYPE_TARGET_TYPE (type);
4c2ad1
 	  struct value *array = allocate_value (expect_type);
4c2ad1
-	  int element_size = TYPE_LENGTH (check_typedef (element_type));
4c2ad1
+	  LONGEST element_size = TYPE_LENGTH (check_typedef (element_type));
4c2ad1
 	  LONGEST low_bound, high_bound, index;
4c2ad1
 
4c2ad1
 	  if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
4c2ad1
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
4c2ad1
--- a/gdb/f-lang.c
4c2ad1
+++ b/gdb/f-lang.c
4c2ad1
@@ -101,7 +101,7 @@ f_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 f_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string,
4c2ad1
-	    unsigned int length, const char *encoding, int force_ellipses,
4c2ad1
+	    ULONGEST length, const char *encoding, int force_ellipses,
4c2ad1
 	    const struct value_print_options *options)
4c2ad1
 {
4c2ad1
   const char *type_encoding = f_get_encoding (type);
4c2ad1
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
4c2ad1
--- a/gdb/f-lang.h
4c2ad1
+++ b/gdb/f-lang.h
4c2ad1
@@ -28,7 +28,7 @@ extern int f_parse (struct parser_state *);
4c2ad1
 extern void f_print_type (struct type *, const char *, struct ui_file *, int,
4c2ad1
 			  int, const struct type_print_options *);
4c2ad1
 
4c2ad1
-extern void f_val_print (struct type *, int, CORE_ADDR,
4c2ad1
+extern void f_val_print (struct type *, LONGEST, CORE_ADDR,
4c2ad1
 			 struct ui_file *, int,
4c2ad1
 			 struct value *,
4c2ad1
 			 const struct value_print_options *);
4c2ad1
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
4c2ad1
--- a/gdb/f-valprint.c
4c2ad1
+++ b/gdb/f-valprint.c
4c2ad1
@@ -36,7 +36,7 @@
4c2ad1
 
4c2ad1
 static void f77_get_dynamic_length_of_aggregate (struct type *);
4c2ad1
 
4c2ad1
-int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
4c2ad1
+LONGEST f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
4c2ad1
 
4c2ad1
 /* Array which holds offsets to be applied to get a row's elements
4c2ad1
    for a given array.  Array also holds the size of each subarray.  */
4c2ad1
@@ -71,8 +71,8 @@ f77_get_upperbound (struct type *type)
4c2ad1
 static void
4c2ad1
 f77_get_dynamic_length_of_aggregate (struct type *type)
4c2ad1
 {
4c2ad1
-  int upper_bound = -1;
4c2ad1
-  int lower_bound = 1;
4c2ad1
+  LONGEST upper_bound = -1;
4c2ad1
+  LONGEST lower_bound = 1;
4c2ad1
 
4c2ad1
   /* Recursively go all the way down into a possibly multi-dimensional
4c2ad1
      F77 array and get the bounds.  For simple arrays, this is pretty
4c2ad1
@@ -104,7 +104,7 @@ f77_get_dynamic_length_of_aggregate (struct type *type)
4c2ad1
 static void
4c2ad1
 f77_print_array_1 (int nss, int ndimensions, struct type *type,
4c2ad1
 		   const gdb_byte *valaddr,
4c2ad1
-		   int embedded_offset, CORE_ADDR address,
4c2ad1
+		   LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		   struct ui_file *stream, int recurse,
4c2ad1
 		   const struct value *val,
4c2ad1
 		   const struct value_print_options *options,
4c2ad1
@@ -113,7 +113,7 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
4c2ad1
   struct type *range_type = TYPE_INDEX_TYPE (check_typedef (type));
4c2ad1
   CORE_ADDR addr = address + embedded_offset;
4c2ad1
   LONGEST lowerbound, upperbound;
4c2ad1
-  int i;
4c2ad1
+  LONGEST i;
4c2ad1
 
4c2ad1
   get_discrete_bounds (range_type, &lowerbound, &upperbound);
4c2ad1
 
4c2ad1
@@ -175,7 +175,7 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 f77_print_array (struct type *type, const gdb_byte *valaddr,
4c2ad1
-		 int embedded_offset,
4c2ad1
+		 LONGEST embedded_offset,
4c2ad1
 		 CORE_ADDR address, struct ui_file *stream,
4c2ad1
 		 int recurse,
4c2ad1
 		 const struct value *val,
4c2ad1
@@ -214,7 +214,7 @@ static const struct generic_val_print_decorations f_decorations =
4c2ad1
    function; they are identical.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-f_val_print (struct type *type, int embedded_offset,
4c2ad1
+f_val_print (struct type *type, LONGEST embedded_offset,
4c2ad1
 	     CORE_ADDR address, struct ui_file *stream, int recurse,
4c2ad1
 	     struct value *original_value,
4c2ad1
 	     const struct value_print_options *options)
4c2ad1
diff --git a/gdb/findvar.c b/gdb/findvar.c
4c2ad1
--- a/gdb/findvar.c
4c2ad1
+++ b/gdb/findvar.c
4c2ad1
@@ -821,7 +821,7 @@ struct value *
4c2ad1
 default_value_from_register (struct gdbarch *gdbarch, struct type *type,
4c2ad1
                              int regnum, struct frame_id frame_id)
4c2ad1
 {
4c2ad1
-  int len = TYPE_LENGTH (type);
4c2ad1
+  LONGEST len = TYPE_LENGTH (type);
4c2ad1
   struct value *value = allocate_value (type);
4c2ad1
   struct frame_info *frame;
4c2ad1
 
4c2ad1
@@ -865,7 +865,7 @@ read_frame_register_value (struct value *value, struct frame_info *frame)
4c2ad1
   LONGEST offset = 0;
4c2ad1
   LONGEST reg_offset = value_offset (value);
4c2ad1
   int regnum = VALUE_REGNUM (value);
4c2ad1
-  int len = type_length_units (check_typedef (value_type (value)));
4c2ad1
+  LONGEST len = type_length_units (check_typedef (value_type (value)));
4c2ad1
 
4c2ad1
   gdb_assert (VALUE_LVAL (value) == lval_register);
4c2ad1
 
4c2ad1
@@ -880,7 +880,7 @@ read_frame_register_value (struct value *value, struct frame_info *frame)
4c2ad1
   while (len > 0)
4c2ad1
     {
4c2ad1
       struct value *regval = get_frame_register_value (frame, regnum);
4c2ad1
-      int reg_len = type_length_units (value_type (regval)) - reg_offset;
4c2ad1
+      LONGEST reg_len = type_length_units (value_type (regval)) - reg_offset;
4c2ad1
 
4c2ad1
       /* If the register length is larger than the number of bytes
4c2ad1
          remaining to copy, then only copy the appropriate bytes.  */
4c2ad1
diff --git a/gdb/frame.c b/gdb/frame.c
4c2ad1
--- a/gdb/frame.c
4c2ad1
+++ b/gdb/frame.c
4c2ad1
@@ -1396,7 +1396,7 @@ deprecated_frame_register_read (struct frame_info *frame, int regnum,
4c2ad1
 
4c2ad1
 int
4c2ad1
 get_frame_register_bytes (struct frame_info *frame, int regnum,
4c2ad1
-			  CORE_ADDR offset, int len, gdb_byte *myaddr,
4c2ad1
+			  CORE_ADDR offset, LONGEST len, gdb_byte *myaddr,
4c2ad1
 			  int *optimizedp, int *unavailablep)
4c2ad1
 {
4c2ad1
   struct gdbarch *gdbarch = get_frame_arch (frame);
4c2ad1
@@ -1425,7 +1425,7 @@ get_frame_register_bytes (struct frame_info *frame, int regnum,
4c2ad1
     }
4c2ad1
   if (len > maxsize)
4c2ad1
     error (_("Bad debug information detected: "
4c2ad1
-	     "Attempt to read %d bytes from registers."), len);
4c2ad1
+	     "Attempt to read %s bytes from registers."), plongest (len));
4c2ad1
 
4c2ad1
   /* Copy the data.  */
4c2ad1
   while (len > 0)
4c2ad1
diff --git a/gdb/frame.h b/gdb/frame.h
4c2ad1
--- a/gdb/frame.h
4c2ad1
+++ b/gdb/frame.h
4c2ad1
@@ -620,7 +620,7 @@ extern void put_frame_register (struct frame_info *frame, int regnum,
4c2ad1
    contents are optimized out or unavailable, set *OPTIMIZEDP,
4c2ad1
    *UNAVAILABLEP accordingly.  */
4c2ad1
 extern int get_frame_register_bytes (struct frame_info *frame, int regnum,
4c2ad1
-				     CORE_ADDR offset, int len,
4c2ad1
+				     CORE_ADDR offset, LONGEST len,
4c2ad1
 				     gdb_byte *myaddr,
4c2ad1
 				     int *optimizedp, int *unavailablep);
4c2ad1
 
4c2ad1
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
4c2ad1
--- a/gdb/gdbarch.c
4c2ad1
+++ b/gdb/gdbarch.c
4c2ad1
@@ -1799,7 +1799,7 @@ set_gdbarch_wchar_signed (struct gdbarch *gdbarch,
4c2ad1
 }
4c2ad1
 
4c2ad1
 const struct floatformat **
4c2ad1
-gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, int length)
4c2ad1
+gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, LONGEST length)
4c2ad1
 {
4c2ad1
   gdb_assert (gdbarch != NULL);
4c2ad1
   gdb_assert (gdbarch->floatformat_for_type != NULL);
4c2ad1
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
4c2ad1
--- a/gdb/gdbarch.h
4c2ad1
+++ b/gdb/gdbarch.h
4c2ad1
@@ -195,8 +195,8 @@ extern void set_gdbarch_wchar_signed (struct gdbarch *gdbarch, int wchar_signed)
4c2ad1
    NAME, if non-NULL, is the type name, which may be used to distinguish
4c2ad1
    different target formats of the same length. */
4c2ad1
 
4c2ad1
-typedef const struct floatformat ** (gdbarch_floatformat_for_type_ftype) (struct gdbarch *gdbarch, const char *name, int length);
4c2ad1
-extern const struct floatformat ** gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, int length);
4c2ad1
+typedef const struct floatformat ** (gdbarch_floatformat_for_type_ftype) (struct gdbarch *gdbarch, const char *name, LONGEST length);
4c2ad1
+extern const struct floatformat ** gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, LONGEST length);
4c2ad1
 extern void set_gdbarch_floatformat_for_type (struct gdbarch *gdbarch, gdbarch_floatformat_for_type_ftype *floatformat_for_type);
4c2ad1
 
4c2ad1
 /* For most targets, a pointer on the target and its representation as an
4c2ad1
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
4c2ad1
--- a/gdb/gdbarch.sh
4c2ad1
+++ b/gdb/gdbarch.sh
4c2ad1
@@ -385,7 +385,7 @@ v;int;wchar_signed;;;1;-1;1
4c2ad1
 # Returns the floating-point format to be used for values of length LENGTH.
4c2ad1
 # NAME, if non-NULL, is the type name, which may be used to distinguish
4c2ad1
 # different target formats of the same length.
4c2ad1
-m;const struct floatformat **;floatformat_for_type;const char *name, int length;name, length;0;default_floatformat_for_type;;0
4c2ad1
+m;const struct floatformat **;floatformat_for_type;const char *name, LONGEST length;name, length;0;default_floatformat_for_type;;0
4c2ad1
 
4c2ad1
 # For most targets, a pointer on the target and its representation as an
4c2ad1
 # address in GDB have the same size and "look the same".  For such a
4c2ad1
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
4c2ad1
--- a/gdb/gdbtypes.c
4c2ad1
+++ b/gdb/gdbtypes.c
4c2ad1
@@ -2906,7 +2906,7 @@ floatformat_from_type (const struct type *type)
4c2ad1
    least as long as OBJFILE.  */
4c2ad1
 
4c2ad1
 struct type *
4c2ad1
-init_type (struct objfile *objfile, enum type_code code, int bit,
4c2ad1
+init_type (struct objfile *objfile, enum type_code code, LONGEST bit,
4c2ad1
 	   const char *name)
4c2ad1
 {
4c2ad1
   struct type *type;
4c2ad1
@@ -3360,8 +3360,8 @@ is_public_ancestor (struct type *base, struct type *dclass)
4c2ad1
 
4c2ad1
 static int
4c2ad1
 is_unique_ancestor_worker (struct type *base, struct type *dclass,
4c2ad1
-			   int *offset,
4c2ad1
-			   const gdb_byte *valaddr, int embedded_offset,
4c2ad1
+			   LONGEST *offset,
4c2ad1
+			   const gdb_byte *valaddr, LONGEST embedded_offset,
4c2ad1
 			   CORE_ADDR address, struct value *val)
4c2ad1
 {
4c2ad1
   int i, count = 0;
4c2ad1
@@ -3372,7 +3372,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
4c2ad1
   for (i = 0; i < TYPE_N_BASECLASSES (dclass) && count < 2; ++i)
4c2ad1
     {
4c2ad1
       struct type *iter;
4c2ad1
-      int this_offset;
4c2ad1
+      LONGEST this_offset;
4c2ad1
 
4c2ad1
       iter = check_typedef (TYPE_BASECLASS (dclass, i));
4c2ad1
 
4c2ad1
@@ -3413,7 +3413,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
4c2ad1
 int
4c2ad1
 is_unique_ancestor (struct type *base, struct value *val)
4c2ad1
 {
4c2ad1
-  int offset = -1;
4c2ad1
+  LONGEST offset = -1;
4c2ad1
 
4c2ad1
   return is_unique_ancestor_worker (base, value_type (val), &offset,
4c2ad1
 				    value_contents_for_printing (val),
4c2ad1
@@ -4642,7 +4642,7 @@ recursive_dump_type (struct type *type, int spaces)
4c2ad1
       break;
4c2ad1
     }
4c2ad1
   puts_filtered ("\n");
4c2ad1
-  printfi_filtered (spaces, "length %d\n", TYPE_LENGTH (type));
4c2ad1
+  printfi_filtered (spaces, "length %s\n", pulongest (TYPE_LENGTH (type)));
4c2ad1
   if (TYPE_OBJFILE_OWNED (type))
4c2ad1
     {
4c2ad1
       printfi_filtered (spaces, "objfile ");
4c2ad1
@@ -5085,7 +5085,7 @@ copy_type (const struct type *type)
4c2ad1
 
4c2ad1
 struct type *
4c2ad1
 arch_type (struct gdbarch *gdbarch,
4c2ad1
-	   enum type_code code, int bit, const char *name)
4c2ad1
+	   enum type_code code, LONGEST bit, const char *name)
4c2ad1
 {
4c2ad1
   struct type *type;
4c2ad1
 
4c2ad1
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
4c2ad1
--- a/gdb/gdbtypes.h
4c2ad1
+++ b/gdb/gdbtypes.h
4c2ad1
@@ -862,7 +862,7 @@ struct type
4c2ad1
      type_length_units function should be used in order to get the length
4c2ad1
      expressed in target addressable memory units.  */
4c2ad1
 
4c2ad1
-  unsigned int length;
4c2ad1
+  ULONGEST length;
4c2ad1
 
4c2ad1
   /* * Core type, shared by a group of qualified types.  */
4c2ad1
 
4c2ad1
@@ -1783,7 +1783,7 @@ extern unsigned int type_length_units (struct type *type);
4c2ad1
 
4c2ad1
 /* * Helper function to construct objfile-owned types.  */
4c2ad1
 
4c2ad1
-extern struct type *init_type (struct objfile *, enum type_code, int,
4c2ad1
+extern struct type *init_type (struct objfile *, enum type_code, LONGEST,
4c2ad1
 			       const char *);
4c2ad1
 extern struct type *init_integer_type (struct objfile *, int, int,
4c2ad1
 				       const char *);
4c2ad1
@@ -1800,7 +1800,7 @@ extern struct type *init_pointer_type (struct objfile *, int, const char *,
4c2ad1
 				       struct type *);
4c2ad1
 
4c2ad1
 /* Helper functions to construct architecture-owned types.  */
4c2ad1
-extern struct type *arch_type (struct gdbarch *, enum type_code, int,
4c2ad1
+extern struct type *arch_type (struct gdbarch *, enum type_code, LONGEST,
4c2ad1
 			       const char *);
4c2ad1
 extern struct type *arch_integer_type (struct gdbarch *, int, int,
4c2ad1
 				       const char *);
4c2ad1
diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c
4c2ad1
--- a/gdb/gnu-v2-abi.c
4c2ad1
+++ b/gdb/gnu-v2-abi.c
4c2ad1
@@ -82,7 +82,7 @@ gnuv2_is_operator_name (const char *name)
4c2ad1
    TYPE is the type in which F is located.  */
4c2ad1
 static struct value *
4c2ad1
 gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
4c2ad1
-			struct type * type, int offset)
4c2ad1
+			struct type *type, LONGEST offset)
4c2ad1
 {
4c2ad1
   struct value *arg1 = *arg1p;
4c2ad1
   struct type *type1 = check_typedef (value_type (arg1));
4c2ad1
@@ -338,7 +338,7 @@ vb_match (struct type *type, int index, struct type *basetype)
4c2ad1
    target).  The result is the offset of the baseclass value relative
4c2ad1
    to (the address of)(ARG) + OFFSET.  */
4c2ad1
 
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 gnuv2_baseclass_offset (struct type *type, int index,
4c2ad1
 			const bfd_byte *valaddr, LONGEST embedded_offset,
4c2ad1
 			CORE_ADDR address, const struct value *val)
4c2ad1
@@ -358,8 +358,7 @@ gnuv2_baseclass_offset (struct type *type, int index,
4c2ad1
 	  if (vb_match (type, i, basetype))
4c2ad1
 	    {
4c2ad1
 	      struct type *field_type;
4c2ad1
-	      LONGEST field_offset;
4c2ad1
-	      int field_length;
4c2ad1
+	      LONGEST field_offset, field_length;
4c2ad1
 	      CORE_ADDR addr;
4c2ad1
 
4c2ad1
 	      field_type = check_typedef (TYPE_FIELD_TYPE (type, i));
4c2ad1
@@ -383,7 +382,7 @@ gnuv2_baseclass_offset (struct type *type, int index,
4c2ad1
 	  /* Don't go through baseclass_offset, as that wraps
4c2ad1
 	     exceptions, thus, inner exceptions would be wrapped more
4c2ad1
 	     than once.  */
4c2ad1
-	  int boffset =
4c2ad1
+	  LONGEST boffset =
4c2ad1
 	    gnuv2_baseclass_offset (type, i, valaddr,
4c2ad1
 				    embedded_offset, address, val);
4c2ad1
 
4c2ad1
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
4c2ad1
--- a/gdb/gnu-v3-abi.c
4c2ad1
+++ b/gdb/gnu-v3-abi.c
4c2ad1
@@ -109,7 +109,7 @@ build_gdb_vtable_type (struct gdbarch *arch)
4c2ad1
 {
4c2ad1
   struct type *t;
4c2ad1
   struct field *field_list, *field;
4c2ad1
-  int offset;
4c2ad1
+  LONGEST offset;
4c2ad1
 
4c2ad1
   struct type *void_ptr_type
4c2ad1
     = builtin_type (arch)->builtin_data_ptr;
4c2ad1
@@ -185,7 +185,7 @@ vtable_ptrdiff_type (struct gdbarch *gdbarch)
4c2ad1
 /* Return the offset from the start of the imaginary `struct
4c2ad1
    gdb_gnu_v3_abi_vtable' object to the vtable's "address point"
4c2ad1
    (i.e., where objects' virtual table pointers point).  */
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 vtable_address_point_offset (struct gdbarch *gdbarch)
4c2ad1
 {
4c2ad1
   struct type *vtable_type
4c2ad1
@@ -409,7 +409,7 @@ gnuv3_get_virtual_fn (struct gdbarch *gdbarch, struct value *container,
4c2ad1
 static struct value *
4c2ad1
 gnuv3_virtual_fn_field (struct value **value_p,
4c2ad1
                         struct fn_field *f, int j,
4c2ad1
-			struct type *vfn_base, int offset)
4c2ad1
+			struct type *vfn_base, LONGEST offset)
4c2ad1
 {
4c2ad1
   struct type *values_type = check_typedef (value_type (*value_p));
4c2ad1
   struct gdbarch *gdbarch;
4c2ad1
@@ -439,7 +439,7 @@ gnuv3_virtual_fn_field (struct value **value_p,
4c2ad1
 
4c2ad1
    -1 is returned on error.  */
4c2ad1
 
4c2ad1
-static int
4c2ad1
+static LONGEST
4c2ad1
 gnuv3_baseclass_offset (struct type *type, int index,
4c2ad1
 			const bfd_byte *valaddr, LONGEST embedded_offset,
4c2ad1
 			CORE_ADDR address, const struct value *val)
4c2ad1
@@ -448,7 +448,7 @@ gnuv3_baseclass_offset (struct type *type, int index,
4c2ad1
   struct type *ptr_type;
4c2ad1
   struct value *vtable;
4c2ad1
   struct value *vbase_array;
4c2ad1
-  long int cur_base_offset, base_offset;
4c2ad1
+  LONGEST cur_base_offset, base_offset;
4c2ad1
 
4c2ad1
   /* Determine architecture.  */
4c2ad1
   gdbarch = get_type_arch (type);
4c2ad1
@@ -471,7 +471,7 @@ gnuv3_baseclass_offset (struct type *type, int index,
4c2ad1
   cur_base_offset = cur_base_offset + vtable_address_point_offset (gdbarch);
4c2ad1
   if ((- cur_base_offset) % TYPE_LENGTH (ptr_type) != 0)
4c2ad1
     error (_("Misaligned vbase offset."));
4c2ad1
-  cur_base_offset = cur_base_offset / ((int) TYPE_LENGTH (ptr_type));
4c2ad1
+  cur_base_offset = cur_base_offset / ((LONGEST) TYPE_LENGTH (ptr_type));
4c2ad1
 
4c2ad1
   vtable = gnuv3_get_vtable (gdbarch, type, address + embedded_offset);
4c2ad1
   gdb_assert (vtable != NULL);
4c2ad1
@@ -515,7 +515,7 @@ gnuv3_find_method_in (struct type *domain, CORE_ADDR voffset,
4c2ad1
      we're out of luck.  */
4c2ad1
   for (i = 0; i < TYPE_N_BASECLASSES (domain); i++)
4c2ad1
     {
4c2ad1
-      int pos;
4c2ad1
+      LONGEST pos;
4c2ad1
       struct type *basetype;
4c2ad1
 
4c2ad1
       if (BASETYPE_VIA_VIRTUAL (domain, i))
4c2ad1
diff --git a/gdb/go-lang.h b/gdb/go-lang.h
4c2ad1
--- a/gdb/go-lang.h
4c2ad1
+++ b/gdb/go-lang.h
4c2ad1
@@ -83,7 +83,7 @@ extern void go_print_type (struct type *type, const char *varstring,
4c2ad1
 /* Defined in go-valprint.c.  */
4c2ad1
 
4c2ad1
 extern void go_val_print (struct type *type,
4c2ad1
-			  int embedded_offset, CORE_ADDR address,
4c2ad1
+			  LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			  struct ui_file *stream, int recurse,
4c2ad1
 			  struct value *val,
4c2ad1
 			  const struct value_print_options *options);
4c2ad1
diff --git a/gdb/go-valprint.c b/gdb/go-valprint.c
4c2ad1
--- a/gdb/go-valprint.c
4c2ad1
+++ b/gdb/go-valprint.c
4c2ad1
@@ -86,7 +86,7 @@ print_go_string (struct type *type,
4c2ad1
 /* Implements the la_val_print routine for language Go.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-go_val_print (struct type *type, int embedded_offset,
4c2ad1
+go_val_print (struct type *type, LONGEST embedded_offset,
4c2ad1
 	      CORE_ADDR address, struct ui_file *stream, int recurse,
4c2ad1
 	      struct value *val,
4c2ad1
 	      const struct value_print_options *options)
4c2ad1
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
4c2ad1
--- a/gdb/i386-tdep.c
4c2ad1
+++ b/gdb/i386-tdep.c
4c2ad1
@@ -8155,7 +8155,7 @@ i386_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr,
4c2ad1
 
4c2ad1
 const struct floatformat **
4c2ad1
 i386_floatformat_for_type (struct gdbarch *gdbarch,
4c2ad1
-			   const char *name, int len)
4c2ad1
+			   const char *name, LONGEST len)
4c2ad1
 {
4c2ad1
   if (len == 128 && name)
4c2ad1
     if (strcmp (name, "__float128") == 0
4c2ad1
diff --git a/gdb/language.c b/gdb/language.c
4c2ad1
--- a/gdb/language.c
4c2ad1
+++ b/gdb/language.c
4c2ad1
@@ -766,7 +766,7 @@ unk_lang_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 unk_lang_printstr (struct ui_file *stream, struct type *type,
4c2ad1
-		   const gdb_byte *string, unsigned int length,
4c2ad1
+		   const gdb_byte *string, ULONGEST length,
4c2ad1
 		   const char *encoding, int force_ellipses,
4c2ad1
 		   const struct value_print_options *options)
4c2ad1
 {
4c2ad1
@@ -785,7 +785,7 @@ unk_lang_print_type (struct type *type, const char *varstring,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 unk_lang_val_print (struct type *type,
4c2ad1
-		    int embedded_offset, CORE_ADDR address,
4c2ad1
+		    LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		    struct ui_file *stream, int recurse,
4c2ad1
 		    struct value *val,
4c2ad1
 		    const struct value_print_options *options)
4c2ad1
diff --git a/gdb/language.h b/gdb/language.h
4c2ad1
--- a/gdb/language.h
4c2ad1
+++ b/gdb/language.h
4c2ad1
@@ -184,7 +184,7 @@ struct language_defn
4c2ad1
 			  struct ui_file * stream);
4c2ad1
 
4c2ad1
     void (*la_printstr) (struct ui_file * stream, struct type *elttype,
4c2ad1
-			 const gdb_byte *string, unsigned int length,
4c2ad1
+			 const gdb_byte *string, ULONGEST length,
4c2ad1
 			 const char *encoding, int force_ellipses,
4c2ad1
 			 const struct value_print_options *);
4c2ad1
 
4c2ad1
@@ -222,7 +222,7 @@ struct language_defn
4c2ad1
        printing.  */
4c2ad1
 
4c2ad1
     void (*la_val_print) (struct type *type,
4c2ad1
-			  int embedded_offset, CORE_ADDR address,
4c2ad1
+			  LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			  struct ui_file *stream, int recurse,
4c2ad1
 			  struct value *val,
4c2ad1
 			  const struct value_print_options *options);
4c2ad1
diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c
4c2ad1
--- a/gdb/m2-lang.c
4c2ad1
+++ b/gdb/m2-lang.c
4c2ad1
@@ -103,10 +103,10 @@ m2_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 m2_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string,
4c2ad1
-	     unsigned int length, const char *encoding, int force_ellipses,
4c2ad1
+	     ULONGEST length, const char *encoding, int force_ellipses,
4c2ad1
 	     const struct value_print_options *options)
4c2ad1
 {
4c2ad1
-  unsigned int i;
4c2ad1
+  ULONGEST i;
4c2ad1
   unsigned int things_printed = 0;
4c2ad1
   int in_quotes = 0;
4c2ad1
   int need_comma = 0;
4c2ad1
@@ -121,9 +121,9 @@ m2_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string,
4c2ad1
     {
4c2ad1
       /* Position of the character we are examining
4c2ad1
          to see whether it is repeated.  */
4c2ad1
-      unsigned int rep1;
4c2ad1
+      ULONGEST rep1;
4c2ad1
       /* Number of repetitions we have detected so far.  */
4c2ad1
-      unsigned int reps;
4c2ad1
+      ULONGEST reps;
4c2ad1
 
4c2ad1
       QUIT;
4c2ad1
 
4c2ad1
@@ -149,7 +149,7 @@ m2_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string,
4c2ad1
 	      in_quotes = 0;
4c2ad1
 	    }
4c2ad1
 	  m2_printchar (string[i], type, stream);
4c2ad1
-	  fprintf_filtered (stream, " <repeats %u times>", reps);
4c2ad1
+	  fprintf_filtered (stream, " <repeats %s times>", pulongest (reps));
4c2ad1
 	  i = rep1 - 1;
4c2ad1
 	  things_printed += options->repeat_count_threshold;
4c2ad1
 	  need_comma = 1;
4c2ad1
diff --git a/gdb/m2-lang.h b/gdb/m2-lang.h
4c2ad1
--- a/gdb/m2-lang.h
4c2ad1
+++ b/gdb/m2-lang.h
4c2ad1
@@ -32,7 +32,7 @@ extern void m2_print_typedef (struct type *, struct symbol *,
4c2ad1
 extern int m2_is_long_set (struct type *type);
4c2ad1
 extern int m2_is_unbounded_array (struct type *type);
4c2ad1
 
4c2ad1
-extern void m2_val_print (struct type *, int, CORE_ADDR,
4c2ad1
+extern void m2_val_print (struct type *, LONGEST, CORE_ADDR,
4c2ad1
 			  struct ui_file *, int,
4c2ad1
 			  struct value *,
4c2ad1
 			  const struct value_print_options *);
4c2ad1
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c
4c2ad1
--- a/gdb/m2-typeprint.c
4c2ad1
+++ b/gdb/m2-typeprint.c
4c2ad1
@@ -234,9 +234,12 @@ static void m2_array (struct type *type, struct ui_file *stream,
4c2ad1
 	  m2_print_bounds (TYPE_INDEX_TYPE (type), stream, show, -1, 1);
4c2ad1
 	}
4c2ad1
       else
4c2ad1
-	fprintf_filtered (stream, "%d",
4c2ad1
-			  (TYPE_LENGTH (type)
4c2ad1
-			   / TYPE_LENGTH (TYPE_TARGET_TYPE (type))));
4c2ad1
+        {
4c2ad1
+	  ULONGEST val = (TYPE_LENGTH (type)
4c2ad1
+			  / TYPE_LENGTH (TYPE_TARGET_TYPE (type)));
4c2ad1
+
4c2ad1
+	  fprintf_filtered (stream, "%s", pulongest (val));
4c2ad1
+	}
4c2ad1
     }
4c2ad1
   fprintf_filtered (stream, "] OF ");
4c2ad1
   m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags);
4c2ad1
diff --git a/gdb/m2-valprint.c b/gdb/m2-valprint.c
4c2ad1
--- a/gdb/m2-valprint.c
4c2ad1
+++ b/gdb/m2-valprint.c
4c2ad1
@@ -35,7 +35,7 @@ static int print_unpacked_pointer (struct type *type,
4c2ad1
 				   struct ui_file *stream);
4c2ad1
 static void
4c2ad1
 m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
4c2ad1
-			 int embedded_offset, CORE_ADDR address,
4c2ad1
+			 LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			 struct ui_file *stream, int recurse,
4c2ad1
 			 struct value *val,
4c2ad1
 			 const struct value_print_options *options,
4c2ad1
@@ -67,7 +67,7 @@ get_long_set_bounds (struct type *type, LONGEST *low, LONGEST *high)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 m2_print_long_set (struct type *type, const gdb_byte *valaddr,
4c2ad1
-		   int embedded_offset, CORE_ADDR address,
4c2ad1
+		   LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		   struct ui_file *stream)
4c2ad1
 {
4c2ad1
   int empty_set        = 1;
4c2ad1
@@ -158,7 +158,7 @@ m2_print_long_set (struct type *type, const gdb_byte *valaddr,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 m2_print_unbounded_array (struct type *type, const gdb_byte *valaddr,
4c2ad1
-			  int embedded_offset, CORE_ADDR address,
4c2ad1
+			  LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			  struct ui_file *stream, int recurse,
4c2ad1
 			  const struct value_print_options *options)
4c2ad1
 {
4c2ad1
@@ -260,7 +260,7 @@ print_variable_at_address (struct type *type,
4c2ad1
 
4c2ad1
 static void
4c2ad1
 m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
4c2ad1
-			 int embedded_offset, CORE_ADDR address,
4c2ad1
+			 LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			 struct ui_file *stream, int recurse,
4c2ad1
 			 struct value *val,
4c2ad1
 			 const struct value_print_options *options,
4c2ad1
@@ -308,12 +308,12 @@ static const struct generic_val_print_decorations m2_decorations =
4c2ad1
    function; they are identical.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-m2_val_print (struct type *type, int embedded_offset,
4c2ad1
+m2_val_print (struct type *type, LONGEST embedded_offset,
4c2ad1
 	      CORE_ADDR address, struct ui_file *stream, int recurse,
4c2ad1
 	      struct value *original_value,
4c2ad1
 	      const struct value_print_options *options)
4c2ad1
 {
4c2ad1
-  unsigned len;
4c2ad1
+  ULONGEST len;
4c2ad1
   struct type *elttype;
4c2ad1
   CORE_ADDR addr;
4c2ad1
   const gdb_byte *valaddr = value_contents_for_printing (original_value);
4c2ad1
@@ -339,7 +339,7 @@ m2_val_print (struct type *type, int embedded_offset,
4c2ad1
 	         elements up to it.  */
4c2ad1
 	      if (options->stop_print_at_null)
4c2ad1
 		{
4c2ad1
-		  unsigned int temp_len;
4c2ad1
+		  ULONGEST temp_len;
4c2ad1
 
4c2ad1
 		  /* Look for a NULL char.  */
4c2ad1
 		  for (temp_len = 0;
4c2ad1
@@ -415,7 +415,7 @@ m2_val_print (struct type *type, int embedded_offset,
4c2ad1
 	{
4c2ad1
 	  struct type *range = elttype;
4c2ad1
 	  LONGEST low_bound, high_bound;
4c2ad1
-	  int i;
4c2ad1
+	  LONGEST i;
4c2ad1
 	  int need_comma = 0;
4c2ad1
 
4c2ad1
 	  fputs_filtered ("{", stream);
4c2ad1
diff --git a/gdb/memrange.c b/gdb/memrange.c
4c2ad1
--- a/gdb/memrange.c
4c2ad1
+++ b/gdb/memrange.c
4c2ad1
@@ -22,8 +22,8 @@
4c2ad1
 #include <algorithm>
4c2ad1
 
4c2ad1
 int
4c2ad1
-mem_ranges_overlap (CORE_ADDR start1, int len1,
4c2ad1
-		    CORE_ADDR start2, int len2)
4c2ad1
+mem_ranges_overlap (CORE_ADDR start1, LONGEST len1,
4c2ad1
+		    CORE_ADDR start2, LONGEST len2)
4c2ad1
 {
4c2ad1
   ULONGEST h, l;
4c2ad1
 
4c2ad1
diff --git a/gdb/memrange.h b/gdb/memrange.h
4c2ad1
--- a/gdb/memrange.h
4c2ad1
+++ b/gdb/memrange.h
4c2ad1
@@ -28,7 +28,7 @@ struct mem_range
4c2ad1
 {
4c2ad1
   mem_range () = default;
4c2ad1
 
4c2ad1
-  mem_range (CORE_ADDR start_, int length_)
4c2ad1
+  mem_range (CORE_ADDR start_, LONGEST length_)
4c2ad1
   : start (start_), length (length_)
4c2ad1
   {}
4c2ad1
 
4c2ad1
@@ -47,14 +47,14 @@ struct mem_range
4c2ad1
   CORE_ADDR start;
4c2ad1
 
4c2ad1
   /* Length of the range.  */
4c2ad1
-  int length;
4c2ad1
+  LONGEST length;
4c2ad1
 };
4c2ad1
 
4c2ad1
 /* Returns true if the ranges defined by [start1, start1+len1) and
4c2ad1
    [start2, start2+len2) overlap.  */
4c2ad1
 
4c2ad1
-extern int mem_ranges_overlap (CORE_ADDR start1, int len1,
4c2ad1
-			       CORE_ADDR start2, int len2);
4c2ad1
+extern int mem_ranges_overlap (CORE_ADDR start1, LONGEST len1,
4c2ad1
+			       CORE_ADDR start2, LONGEST len2);
4c2ad1
 
4c2ad1
 /* Returns true if ADDR is in RANGE.  */
4c2ad1
 
4c2ad1
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
4c2ad1
--- a/gdb/mips-linux-nat.c
4c2ad1
+++ b/gdb/mips-linux-nat.c
4c2ad1
@@ -614,7 +614,7 @@ mips_linux_nat_target::stopped_data_address (CORE_ADDR *paddr)
4c2ad1
    the specified region can be covered by the watch registers.  */
4c2ad1
 
4c2ad1
 int
4c2ad1
-mips_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+mips_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   struct pt_watch_regs dummy_regs;
4c2ad1
   int i;
4c2ad1
diff --git a/gdb/nat/x86-dregs.c b/gdb/nat/x86-dregs.c
4c2ad1
--- a/gdb/nat/x86-dregs.c
4c2ad1
+++ b/gdb/nat/x86-dregs.c
4c2ad1
@@ -380,7 +380,7 @@ x86_remove_aligned_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
 
4c2ad1
 static int
4c2ad1
 x86_handle_nonaligned_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
-				  x86_wp_op_t what, CORE_ADDR addr, int len,
4c2ad1
+				  x86_wp_op_t what, CORE_ADDR addr, LONGEST len,
4c2ad1
 				  enum target_hw_bp_type type)
4c2ad1
 {
4c2ad1
   int retval = 0;
4c2ad1
@@ -548,7 +548,7 @@ x86_dr_remove_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
 
4c2ad1
 int
4c2ad1
 x86_dr_region_ok_for_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
-				 CORE_ADDR addr, int len)
4c2ad1
+				 CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   int nregs;
4c2ad1
 
4c2ad1
diff --git a/gdb/nat/x86-dregs.h b/gdb/nat/x86-dregs.h
4c2ad1
--- a/gdb/nat/x86-dregs.h
4c2ad1
+++ b/gdb/nat/x86-dregs.h
4c2ad1
@@ -116,7 +116,7 @@ extern int x86_dr_remove_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
 /* Return non-zero if we can watch a memory region that starts at
4c2ad1
    address ADDR and whose length is LEN bytes.  */
4c2ad1
 extern int x86_dr_region_ok_for_watchpoint (struct x86_debug_reg_state *state,
4c2ad1
-					    CORE_ADDR addr, int len);
4c2ad1
+					    CORE_ADDR addr, LONGEST len);
4c2ad1
 
4c2ad1
 /* If the inferior has some break/watchpoint that triggered, set the
4c2ad1
    address associated with that break/watchpoint and return true.
4c2ad1
diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c
4c2ad1
--- a/gdb/opencl-lang.c
4c2ad1
+++ b/gdb/opencl-lang.c
4c2ad1
@@ -76,11 +76,11 @@ builtin_opencl_type (struct gdbarch *gdbarch)
4c2ad1
 
4c2ad1
 static struct type *
4c2ad1
 lookup_opencl_vector_type (struct gdbarch *gdbarch, enum type_code code,
4c2ad1
-			   unsigned int el_length, unsigned int flag_unsigned,
4c2ad1
+			   ULONGEST el_length, unsigned int flag_unsigned,
4c2ad1
 			   int n)
4c2ad1
 {
4c2ad1
   int i;
4c2ad1
-  unsigned int length;
4c2ad1
+  ULONGEST length;
4c2ad1
   struct type *type = NULL;
4c2ad1
   struct type **types = builtin_opencl_type (gdbarch);
4c2ad1
 
4c2ad1
@@ -172,7 +172,7 @@ lval_func_read (struct value *v)
4c2ad1
   struct type *eltype = TYPE_TARGET_TYPE (check_typedef (value_type (c->val)));
4c2ad1
   LONGEST offset = value_offset (v);
4c2ad1
   LONGEST elsize = TYPE_LENGTH (eltype);
4c2ad1
-  int n, i, j = 0;
4c2ad1
+  LONGEST n, i, j = 0;
4c2ad1
   LONGEST lowb = 0;
4c2ad1
   LONGEST highb = 0;
4c2ad1
 
4c2ad1
@@ -201,7 +201,7 @@ lval_func_write (struct value *v, struct value *fromval)
4c2ad1
   struct type *eltype = TYPE_TARGET_TYPE (check_typedef (value_type (c->val)));
4c2ad1
   LONGEST offset = value_offset (v);
4c2ad1
   LONGEST elsize = TYPE_LENGTH (eltype);
4c2ad1
-  int n, i, j = 0;
4c2ad1
+  LONGEST n, i, j = 0;
4c2ad1
   LONGEST lowb = 0;
4c2ad1
   LONGEST highb = 0;
4c2ad1
 
4c2ad1
@@ -241,17 +241,17 @@ lval_func_write (struct value *v, struct value *fromval)
4c2ad1
 
4c2ad1
 static int
4c2ad1
 lval_func_check_synthetic_pointer (const struct value *v,
4c2ad1
-				   LONGEST offset, int length)
4c2ad1
+				   LONGEST offset, LONGEST length)
4c2ad1
 {
4c2ad1
   struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
4c2ad1
   /* Size of the target type in bits.  */
4c2ad1
-  int elsize =
4c2ad1
+  LONGEST elsize =
4c2ad1
       TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
4c2ad1
-  int startrest = offset % elsize;
4c2ad1
-  int start = offset / elsize;
4c2ad1
-  int endrest = (offset + length) % elsize;
4c2ad1
-  int end = (offset + length) / elsize;
4c2ad1
-  int i;
4c2ad1
+  LONGEST startrest = offset % elsize;
4c2ad1
+  LONGEST start = offset / elsize;
4c2ad1
+  LONGEST endrest = (offset + length) % elsize;
4c2ad1
+  LONGEST end = (offset + length) / elsize;
4c2ad1
+  LONGEST i;
4c2ad1
 
4c2ad1
   if (endrest)
4c2ad1
     end++;
4c2ad1
@@ -261,8 +261,8 @@ lval_func_check_synthetic_pointer (const struct value *v,
4c2ad1
 
4c2ad1
   for (i = start; i < end; i++)
4c2ad1
     {
4c2ad1
-      int comp_offset = (i == start) ? startrest : 0;
4c2ad1
-      int comp_length = (i == end) ? endrest : elsize;
4c2ad1
+      LONGEST comp_offset = (i == start) ? startrest : 0;
4c2ad1
+      LONGEST comp_length = (i == end) ? endrest : elsize;
4c2ad1
 
4c2ad1
       if (!value_bits_synthetic_pointer (c->val,
4c2ad1
 					 c->indices[i] * elsize + comp_offset,
4c2ad1
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
4c2ad1
--- a/gdb/p-lang.c
4c2ad1
+++ b/gdb/p-lang.c
4c2ad1
@@ -93,8 +93,8 @@ pascal_main_name (void)
4c2ad1
    are not multiple of TARGET_CHAR_BIT then the results are wrong
4c2ad1
    but this does not happen for Free Pascal nor for GPC.  */
4c2ad1
 int
4c2ad1
-is_pascal_string_type (struct type *type,int *length_pos,
4c2ad1
-                       int *length_size, int *string_pos,
4c2ad1
+is_pascal_string_type (struct type *type, LONGEST *length_pos,
4c2ad1
+		       LONGEST *length_size, LONGEST *string_pos,
4c2ad1
 		       struct type **char_type,
4c2ad1
 		       const char **arrayname)
4c2ad1
 {
4c2ad1
@@ -214,12 +214,12 @@ pascal_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 void
4c2ad1
 pascal_printstr (struct ui_file *stream, struct type *type,
4c2ad1
-		 const gdb_byte *string, unsigned int length,
4c2ad1
+		 const gdb_byte *string, ULONGEST length,
4c2ad1
 		 const char *encoding, int force_ellipses,
4c2ad1
 		 const struct value_print_options *options)
4c2ad1
 {
4c2ad1
   enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
4c2ad1
-  unsigned int i;
4c2ad1
+  ULONGEST i;
4c2ad1
   unsigned int things_printed = 0;
4c2ad1
   int in_quotes = 0;
4c2ad1
   int need_comma = 0;
4c2ad1
@@ -247,9 +247,9 @@ pascal_printstr (struct ui_file *stream, struct type *type,
4c2ad1
     {
4c2ad1
       /* Position of the character we are examining
4c2ad1
          to see whether it is repeated.  */
4c2ad1
-      unsigned int rep1;
4c2ad1
+      ULONGEST rep1;
4c2ad1
       /* Number of repetitions we have detected so far.  */
4c2ad1
-      unsigned int reps;
4c2ad1
+      ULONGEST reps;
4c2ad1
       unsigned long int current_char;
4c2ad1
 
4c2ad1
       QUIT;
4c2ad1
@@ -281,7 +281,7 @@ pascal_printstr (struct ui_file *stream, struct type *type,
4c2ad1
 	      in_quotes = 0;
4c2ad1
 	    }
4c2ad1
 	  pascal_printchar (current_char, type, stream);
4c2ad1
-	  fprintf_filtered (stream, " <repeats %u times>", reps);
4c2ad1
+	  fprintf_filtered (stream, " <repeats %s times>", pulongest (reps));
4c2ad1
 	  i = rep1 - 1;
4c2ad1
 	  things_printed += options->repeat_count_threshold;
4c2ad1
 	  need_comma = 1;
4c2ad1
diff --git a/gdb/p-lang.h b/gdb/p-lang.h
4c2ad1
--- a/gdb/p-lang.h
4c2ad1
+++ b/gdb/p-lang.h
4c2ad1
@@ -34,7 +34,7 @@ extern void pascal_print_type (struct type *, const char *, struct ui_file *,
4c2ad1
 extern void pascal_print_typedef (struct type *, struct symbol *,
4c2ad1
 				  struct ui_file *);
4c2ad1
 
4c2ad1
-extern void pascal_val_print (struct type *, int,
4c2ad1
+extern void pascal_val_print (struct type *, LONGEST,
4c2ad1
 			      CORE_ADDR, struct ui_file *, int,
4c2ad1
 			      struct value *,
4c2ad1
 			      const struct value_print_options *);
4c2ad1
@@ -48,13 +48,13 @@ extern void pascal_type_print_method_args (const char *, const char *,
4c2ad1
 /* These are in p-lang.c: */
4c2ad1
 
4c2ad1
 extern int
4c2ad1
-  is_pascal_string_type (struct type *, int *, int *, int *,
4c2ad1
+  is_pascal_string_type (struct type *, LONGEST *, LONGEST *, LONGEST *,
4c2ad1
 			 struct type **, const char **);
4c2ad1
 
4c2ad1
 extern void pascal_printchar (int, struct type *, struct ui_file *);
4c2ad1
 
4c2ad1
 extern void pascal_printstr (struct ui_file *, struct type *, const gdb_byte *,
4c2ad1
-			     unsigned int, const char *, int,
4c2ad1
+			     ULONGEST, const char *, int,
4c2ad1
 			     const struct value_print_options *);
4c2ad1
 
4c2ad1
 extern struct type **const pascal_builtin_types[];
4c2ad1
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
4c2ad1
--- a/gdb/p-valprint.c
4c2ad1
+++ b/gdb/p-valprint.c
4c2ad1
@@ -60,7 +60,7 @@ static const struct generic_val_print_decorations p_decorations =
4c2ad1
 
4c2ad1
 void
4c2ad1
 pascal_val_print (struct type *type,
4c2ad1
-		  int embedded_offset, CORE_ADDR address,
4c2ad1
+		  LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		  struct ui_file *stream, int recurse,
4c2ad1
 		  struct value *original_value,
4c2ad1
 		  const struct value_print_options *options)
4c2ad1
@@ -71,8 +71,8 @@ pascal_val_print (struct type *type,
4c2ad1
   unsigned len;
4c2ad1
   LONGEST low_bound, high_bound;
4c2ad1
   struct type *elttype;
4c2ad1
-  unsigned eltlen;
4c2ad1
-  int length_pos, length_size, string_pos;
4c2ad1
+  ULONGEST eltlen;
4c2ad1
+  LONGEST length_pos, length_size, string_pos;
4c2ad1
   struct type *char_type;
4c2ad1
   CORE_ADDR addr;
4c2ad1
   int want_space = 0;
4c2ad1
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
4c2ad1
--- a/gdb/ppc-linux-nat.c
4c2ad1
+++ b/gdb/ppc-linux-nat.c
4c2ad1
@@ -1308,7 +1308,7 @@ ppc_linux_nat_target::can_use_hw_breakpoint (enum bptype type, int cnt, int ot)
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-ppc_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+ppc_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   /* Handle sub-8-byte quantities.  */
4c2ad1
   if (len <= 0)
4c2ad1
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
4c2ad1
--- a/gdb/ppc-linux-tdep.c
4c2ad1
+++ b/gdb/ppc-linux-tdep.c
4c2ad1
@@ -1706,7 +1706,7 @@ ppc_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
4c2ad1
 
4c2ad1
 const struct floatformat **
4c2ad1
 ppc_floatformat_for_type (struct gdbarch *gdbarch,
4c2ad1
-                          const char *name, int len)
4c2ad1
+                          const char *name, LONGEST len)
4c2ad1
 {
4c2ad1
   if (len == 128 && name)
4c2ad1
     {
4c2ad1
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
4c2ad1
--- a/gdb/printcmd.c
4c2ad1
+++ b/gdb/printcmd.c
4c2ad1
@@ -275,7 +275,7 @@ print_formatted (struct value *val, int size,
4c2ad1
 		 struct ui_file *stream)
4c2ad1
 {
4c2ad1
   struct type *type = check_typedef (value_type (val));
4c2ad1
-  int len = TYPE_LENGTH (type);
4c2ad1
+  LONGEST len = TYPE_LENGTH (type);
4c2ad1
 
4c2ad1
   if (VALUE_LVAL (val) == lval_memory)
4c2ad1
     next_address = value_address (val) + len;
4c2ad1
@@ -351,7 +351,7 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
4c2ad1
 			int size, struct ui_file *stream)
4c2ad1
 {
4c2ad1
   struct gdbarch *gdbarch = get_type_arch (type);
4c2ad1
-  unsigned int len = TYPE_LENGTH (type);
4c2ad1
+  ULONGEST len = TYPE_LENGTH (type);
4c2ad1
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
4c2ad1
 
4c2ad1
   /* String printing should go through val_print_scalar_formatted.  */
4c2ad1
diff --git a/gdb/procfs.c b/gdb/procfs.c
4c2ad1
--- a/gdb/procfs.c
4c2ad1
+++ b/gdb/procfs.c
4c2ad1
@@ -3358,7 +3358,7 @@ procfs_target::remove_watchpoint (CORE_ADDR addr, int len,
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-procfs_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+procfs_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   /* The man page for proc(4) on Solaris 2.6 and up says that the
4c2ad1
      system can support "thousands" of hardware watchpoints, but gives
4c2ad1
diff --git a/gdb/regcache.c b/gdb/regcache.c
4c2ad1
--- a/gdb/regcache.c
4c2ad1
+++ b/gdb/regcache.c
4c2ad1
@@ -795,7 +795,7 @@ regcache::cooked_write (int regnum, const gdb_byte *buf)
4c2ad1
 /* See regcache.h.  */
4c2ad1
 
4c2ad1
 enum register_status
4c2ad1
-readable_regcache::read_part (int regnum, int offset, int len,
4c2ad1
+readable_regcache::read_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 			      gdb_byte *out, bool is_raw)
4c2ad1
 {
4c2ad1
   int reg_size = register_size (arch (), regnum);
4c2ad1
@@ -862,7 +862,7 @@ reg_buffer::raw_collect_part (int regnum, int offset, int len,
4c2ad1
 /* See regcache.h.  */
4c2ad1
 
4c2ad1
 enum register_status
4c2ad1
-regcache::write_part (int regnum, int offset, int len,
4c2ad1
+regcache::write_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 		      const gdb_byte *in, bool is_raw)
4c2ad1
 {
4c2ad1
   int reg_size = register_size (arch (), regnum);
4c2ad1
@@ -933,7 +933,7 @@ reg_buffer::raw_supply_part (int regnum, int offset, int len,
4c2ad1
 }
4c2ad1
 
4c2ad1
 enum register_status
4c2ad1
-readable_regcache::raw_read_part (int regnum, int offset, int len,
4c2ad1
+readable_regcache::raw_read_part (int regnum, int offset, LONGEST len,
4c2ad1
 				  gdb_byte *buf)
4c2ad1
 {
4c2ad1
   assert_regnum (regnum);
4c2ad1
@@ -943,7 +943,7 @@ readable_regcache::raw_read_part (int regnum, int offset, int len,
4c2ad1
 /* See regcache.h.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-regcache::raw_write_part (int regnum, int offset, int len,
4c2ad1
+regcache::raw_write_part (int regnum, int offset, LONGEST len,
4c2ad1
 			  const gdb_byte *buf)
4c2ad1
 {
4c2ad1
   assert_regnum (regnum);
4c2ad1
@@ -953,7 +953,7 @@ regcache::raw_write_part (int regnum, int offset, int len,
4c2ad1
 /* See regcache.h.  */
4c2ad1
 
4c2ad1
 enum register_status
4c2ad1
-readable_regcache::cooked_read_part (int regnum, int offset, int len,
4c2ad1
+readable_regcache::cooked_read_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 				     gdb_byte *buf)
4c2ad1
 {
4c2ad1
   gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers);
4c2ad1
@@ -963,7 +963,7 @@ readable_regcache::cooked_read_part (int regnum, int offset, int len,
4c2ad1
 /* See regcache.h.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-regcache::cooked_write_part (int regnum, int offset, int len,
4c2ad1
+regcache::cooked_write_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 			     const gdb_byte *buf)
4c2ad1
 {
4c2ad1
   gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers);
4c2ad1
diff --git a/gdb/regcache.h b/gdb/regcache.h
4c2ad1
--- a/gdb/regcache.h
4c2ad1
+++ b/gdb/regcache.h
4c2ad1
@@ -256,8 +256,8 @@ public:
4c2ad1
   enum register_status raw_read (int regnum, T *val);
4c2ad1
 
4c2ad1
   /* Partial transfer of raw registers.  Return the status of the register.  */
4c2ad1
-  enum register_status raw_read_part (int regnum, int offset, int len,
4c2ad1
-				      gdb_byte *buf);
4c2ad1
+  enum register_status raw_read_part (int regnum, int offset,
4c2ad1
+				      LONGEST len, gdb_byte *buf);
4c2ad1
 
4c2ad1
   /* Make certain that the register REGNUM is up-to-date.  */
4c2ad1
   virtual void raw_update (int regnum) = 0;
4c2ad1
@@ -269,8 +269,8 @@ public:
4c2ad1
   enum register_status cooked_read (int regnum, T *val);
4c2ad1
 
4c2ad1
   /* Partial transfer of a cooked register.  */
4c2ad1
-  enum register_status cooked_read_part (int regnum, int offset, int len,
4c2ad1
-					 gdb_byte *buf);
4c2ad1
+  enum register_status cooked_read_part (int regnum, LONGEST offset,
4c2ad1
+					 LONGEST len, gdb_byte *buf);
4c2ad1
 
4c2ad1
   /* Read register REGNUM from the regcache and return a new value.  This
4c2ad1
      will call mark_value_bytes_unavailable as appropriate.  */
4c2ad1
@@ -280,7 +280,7 @@ protected:
4c2ad1
 
4c2ad1
   /* Perform a partial register transfer using a read, modify, write
4c2ad1
      operation.  Will fail if register is currently invalid.  */
4c2ad1
-  enum register_status read_part (int regnum, int offset, int len,
4c2ad1
+  enum register_status read_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 				  gdb_byte *out, bool is_raw);
4c2ad1
 };
4c2ad1
 
4c2ad1
@@ -338,11 +338,12 @@ public:
4c2ad1
 
4c2ad1
   /* Partial transfer of raw registers.  Perform read, modify, write style
4c2ad1
      operations.  */
4c2ad1
-  void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf);
4c2ad1
+  void raw_write_part (int regnum, int offset, LONGEST len,
4c2ad1
+		       const gdb_byte *buf);
4c2ad1
 
4c2ad1
   /* Partial transfer of a cooked register.  Perform read, modify, write style
4c2ad1
      operations.  */
4c2ad1
-  void cooked_write_part (int regnum, int offset, int len,
4c2ad1
+  void cooked_write_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 			  const gdb_byte *buf);
4c2ad1
 
4c2ad1
   void supply_regset (const struct regset *regset,
4c2ad1
@@ -393,7 +394,7 @@ private:
4c2ad1
 
4c2ad1
   /* Perform a partial register transfer using a read, modify, write
4c2ad1
      operation.  */
4c2ad1
-  enum register_status write_part (int regnum, int offset, int len,
4c2ad1
+  enum register_status write_part (int regnum, LONGEST offset, LONGEST len,
4c2ad1
 				   const gdb_byte *in, bool is_raw);
4c2ad1
 
4c2ad1
   /* The address space of this register cache (for registers where it
4c2ad1
diff --git a/gdb/remote.c b/gdb/remote.c
4c2ad1
--- a/gdb/remote.c
4c2ad1
+++ b/gdb/remote.c
4c2ad1
@@ -462,7 +462,7 @@ public:
4c2ad1
 
4c2ad1
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
4c2ad1
 
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
4c2ad1
 			 struct expression *) override;
4c2ad1
@@ -10413,7 +10413,7 @@ int remote_hw_watchpoint_length_limit = -1;
4c2ad1
 int remote_hw_breakpoint_limit = -1;
4c2ad1
 
4c2ad1
 int
4c2ad1
-remote_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+remote_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   if (remote_hw_watchpoint_length_limit == 0)
4c2ad1
     return 0;
4c2ad1
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
4c2ad1
--- a/gdb/rust-lang.c
4c2ad1
+++ b/gdb/rust-lang.c
4c2ad1
@@ -288,7 +288,7 @@ rust_printchar (int c, struct type *type, struct ui_file *stream)
4c2ad1
 
4c2ad1
 static void
4c2ad1
 rust_printstr (struct ui_file *stream, struct type *type,
4c2ad1
-	       const gdb_byte *string, unsigned int length,
4c2ad1
+	       const gdb_byte *string, ULONGEST length,
4c2ad1
 	       const char *user_encoding, int force_ellipses,
4c2ad1
 	       const struct value_print_options *options)
4c2ad1
 {
4c2ad1
@@ -497,7 +497,7 @@ static const struct generic_val_print_decorations rust_decorations =
4c2ad1
 /* la_val_print implementation for Rust.  */
4c2ad1
 
4c2ad1
 static void
4c2ad1
-rust_val_print (struct type *type, int embedded_offset,
4c2ad1
+rust_val_print (struct type *type, LONGEST embedded_offset,
4c2ad1
 		CORE_ADDR address, struct ui_file *stream, int recurse,
4c2ad1
 		struct value *val,
4c2ad1
 		const struct value_print_options *options)
4c2ad1
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
4c2ad1
--- a/gdb/s390-linux-nat.c
4c2ad1
+++ b/gdb/s390-linux-nat.c
4c2ad1
@@ -952,7 +952,8 @@ s390_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch,
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-s390_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int cnt)
4c2ad1
+s390_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr,
4c2ad1
+						    LONGEST cnt)
4c2ad1
 {
4c2ad1
   return 1;
4c2ad1
 }
4c2ad1
diff --git a/gdb/spu-multiarch.c b/gdb/spu-multiarch.c
4c2ad1
--- a/gdb/spu-multiarch.c
4c2ad1
+++ b/gdb/spu-multiarch.c
4c2ad1
@@ -66,7 +66,7 @@ struct spu_multiarch_target final : public target_ops
4c2ad1
 		     const gdb_byte *pattern, ULONGEST pattern_len,
4c2ad1
 		     CORE_ADDR *found_addrp) override;
4c2ad1
 
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
4c2ad1
 
4c2ad1
   struct gdbarch *thread_architecture (ptid_t) override;
4c2ad1
 };
4c2ad1
@@ -163,7 +163,7 @@ spu_multiarch_target::thread_architecture (ptid_t ptid)
4c2ad1
 /* Override the to_region_ok_for_hw_watchpoint routine.  */
4c2ad1
 
4c2ad1
 int
4c2ad1
-spu_multiarch_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+spu_multiarch_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   /* We cannot watch SPU local store.  */
4c2ad1
   if (SPUADDR_SPU (addr) != -1)
4c2ad1
diff --git a/gdb/stack.c b/gdb/stack.c
4c2ad1
--- a/gdb/stack.c
4c2ad1
+++ b/gdb/stack.c
4c2ad1
@@ -190,7 +190,7 @@ print_stack_frame (struct frame_info *frame, int print_level,
4c2ad1
    argument (not just the first nameless argument).  */
4c2ad1
 
4c2ad1
 static void
4c2ad1
-print_frame_nameless_args (struct frame_info *frame, long start, int num,
4c2ad1
+print_frame_nameless_args (struct frame_info *frame, LONGEST start, int num,
4c2ad1
 			   int first, struct ui_file *stream)
4c2ad1
 {
4c2ad1
   struct gdbarch *gdbarch = get_frame_arch (frame);
4c2ad1
@@ -540,7 +540,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
4c2ad1
   /* Offset of next stack argument beyond the one we have seen that is
4c2ad1
      at the highest offset, or -1 if we haven't come to a stack
4c2ad1
      argument yet.  */
4c2ad1
-  long highest_offset = -1;
4c2ad1
+  LONGEST highest_offset = -1;
4c2ad1
   /* Number of ints of arguments that we have printed so far.  */
4c2ad1
   int args_printed = 0;
4c2ad1
   /* True if we should print arguments, false otherwise.  */
4c2ad1
@@ -569,8 +569,8 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
4c2ad1
 	    case LOC_ARG:
4c2ad1
 	    case LOC_REF_ARG:
4c2ad1
 	      {
4c2ad1
-		long current_offset = SYMBOL_VALUE (sym);
4c2ad1
-		int arg_size = TYPE_LENGTH (SYMBOL_TYPE (sym));
4c2ad1
+		LONGEST current_offset = SYMBOL_VALUE (sym);
4c2ad1
+		LONGEST arg_size = TYPE_LENGTH (SYMBOL_TYPE (sym));
4c2ad1
 
4c2ad1
 		/* Compute address of next argument by adding the size of
4c2ad1
 		   this argument and rounding to an int boundary.  */
4c2ad1
@@ -705,7 +705,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
4c2ad1
      enough about the stack to find them.  */
4c2ad1
   if (num != -1)
4c2ad1
     {
4c2ad1
-      long start;
4c2ad1
+      LONGEST start;
4c2ad1
 
4c2ad1
       if (highest_offset == -1)
4c2ad1
 	start = gdbarch_frame_args_skip (get_frame_arch (frame));
4c2ad1
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
4c2ad1
--- a/gdb/symmisc.c
4c2ad1
+++ b/gdb/symmisc.c
4c2ad1
@@ -586,11 +586,11 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
4c2ad1
 
4c2ad1
 	case LOC_CONST_BYTES:
4c2ad1
 	  {
4c2ad1
-	    unsigned i;
4c2ad1
+	    ULONGEST i;
4c2ad1
 	    struct type *type = check_typedef (SYMBOL_TYPE (symbol));
4c2ad1
 
4c2ad1
-	    fprintf_filtered (outfile, "const %u hex bytes:",
4c2ad1
-			      TYPE_LENGTH (type));
4c2ad1
+	    fprintf_filtered (outfile, "const %s hex bytes:",
4c2ad1
+			      pulongest (TYPE_LENGTH (type)));
4c2ad1
 	    for (i = 0; i < TYPE_LENGTH (type); i++)
4c2ad1
 	      fprintf_filtered (outfile, " %02x",
4c2ad1
 				(unsigned) SYMBOL_VALUE_BYTES (symbol)[i]);
4c2ad1
diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
4c2ad1
--- a/gdb/target-delegates.c
4c2ad1
+++ b/gdb/target-delegates.c
4c2ad1
@@ -39,7 +39,7 @@ struct dummy_target : public target_ops
4c2ad1
   bool have_continuable_watchpoint () override;
4c2ad1
   bool stopped_data_address (CORE_ADDR *arg0) override;
4c2ad1
   bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
4c2ad1
   bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
4c2ad1
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
4c2ad1
   int can_do_single_step () override;
4c2ad1
@@ -207,7 +207,7 @@ struct debug_target : public target_ops
4c2ad1
   bool have_continuable_watchpoint () override;
4c2ad1
   bool stopped_data_address (CORE_ADDR *arg0) override;
4c2ad1
   bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1) override;
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
4c2ad1
   bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
4c2ad1
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
4c2ad1
   int can_do_single_step () override;
4c2ad1
@@ -1098,19 +1098,19 @@ debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-target_ops::region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1)
4c2ad1
+target_ops::region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1)
4c2ad1
 {
4c2ad1
   return this->beneath ()->region_ok_for_hw_watchpoint (arg0, arg1);
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-dummy_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1)
4c2ad1
+dummy_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1)
4c2ad1
 {
4c2ad1
   return default_region_ok_for_hw_watchpoint (this, arg0, arg1);
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-debug_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1)
4c2ad1
+debug_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1)
4c2ad1
 {
4c2ad1
   int result;
4c2ad1
   fprintf_unfiltered (gdb_stdlog, "-> %s->region_ok_for_hw_watchpoint (...)\n", this->beneath ()->shortname ());
4c2ad1
@@ -1118,7 +1118,7 @@ debug_target::region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1)
4c2ad1
   fprintf_unfiltered (gdb_stdlog, "<- %s->region_ok_for_hw_watchpoint (", this->beneath ()->shortname ());
4c2ad1
   target_debug_print_CORE_ADDR (arg0);
4c2ad1
   fputs_unfiltered (", ", gdb_stdlog);
4c2ad1
-  target_debug_print_int (arg1);
4c2ad1
+  target_debug_print_LONGEST (arg1);
4c2ad1
   fputs_unfiltered (") = ", gdb_stdlog);
4c2ad1
   target_debug_print_int (result);
4c2ad1
   fputs_unfiltered ("\n", gdb_stdlog);
4c2ad1
diff --git a/gdb/target.c b/gdb/target.c
4c2ad1
--- a/gdb/target.c
4c2ad1
+++ b/gdb/target.c
4c2ad1
@@ -59,7 +59,7 @@ static int default_watchpoint_addr_within_range (struct target_ops *,
4c2ad1
 						 CORE_ADDR, CORE_ADDR, int);
4c2ad1
 
4c2ad1
 static int default_region_ok_for_hw_watchpoint (struct target_ops *,
4c2ad1
-						CORE_ADDR, int);
4c2ad1
+						CORE_ADDR, LONGEST);
4c2ad1
 
4c2ad1
 static void default_rcmd (struct target_ops *, const char *, struct ui_file *);
4c2ad1
 
4c2ad1
@@ -3181,7 +3181,7 @@ target_fileio_read_stralloc (struct inferior *inf, const char *filename)
4c2ad1
 
4c2ad1
 static int
4c2ad1
 default_region_ok_for_hw_watchpoint (struct target_ops *self,
4c2ad1
-				     CORE_ADDR addr, int len)
4c2ad1
+				     CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   return (len <= gdbarch_ptr_bit (target_gdbarch ()) / TARGET_CHAR_BIT);
4c2ad1
 }
4c2ad1
diff --git a/gdb/target.h b/gdb/target.h
4c2ad1
--- a/gdb/target.h
4c2ad1
+++ b/gdb/target.h
4c2ad1
@@ -562,7 +562,7 @@ struct target_ops
4c2ad1
 
4c2ad1
     /* Documentation of this routine is provided with the corresponding
4c2ad1
        target_* macro.  */
4c2ad1
-    virtual int region_ok_for_hw_watchpoint (CORE_ADDR, int)
4c2ad1
+    virtual int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST)
4c2ad1
       TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
4c2ad1
 
4c2ad1
     virtual bool can_accel_watchpoint_condition (CORE_ADDR, int, int,
4c2ad1
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
4c2ad1
--- a/gdb/tracepoint.c
4c2ad1
+++ b/gdb/tracepoint.c
4c2ad1
@@ -829,10 +829,10 @@ collection_list::add_register (unsigned int regno)
4c2ad1
 void
4c2ad1
 collection_list::add_memrange (struct gdbarch *gdbarch,
4c2ad1
 			       int type, bfd_signed_vma base,
4c2ad1
-			       unsigned long len)
4c2ad1
+			       ULONGEST len)
4c2ad1
 {
4c2ad1
   if (info_verbose)
4c2ad1
-    printf_filtered ("(%d,%s,%ld)\n", type, paddress (gdbarch, base), len);
4c2ad1
+    printf_filtered ("(%d,%s,%s)\n", type, paddress (gdbarch, base), pulongest (len));
4c2ad1
 
4c2ad1
   /* type: memrange_absolute == memory, other n == basereg */
4c2ad1
   /* base: addr if memory, offset if reg relative.  */
4c2ad1
@@ -852,7 +852,7 @@ collection_list::collect_symbol (struct symbol *sym,
4c2ad1
 				 CORE_ADDR scope,
4c2ad1
 				 int trace_string)
4c2ad1
 {
4c2ad1
-  unsigned long len;
4c2ad1
+  ULONGEST len;
4c2ad1
   unsigned int reg;
4c2ad1
   bfd_signed_vma offset;
4c2ad1
   int treat_as_expr = 0;
4c2ad1
@@ -873,8 +873,8 @@ collection_list::collect_symbol (struct symbol *sym,
4c2ad1
       offset = SYMBOL_VALUE_ADDRESS (sym);
4c2ad1
       if (info_verbose)
4c2ad1
 	{
4c2ad1
-	  printf_filtered ("LOC_STATIC %s: collect %ld bytes at %s.\n",
4c2ad1
-			   SYMBOL_PRINT_NAME (sym), len,
4c2ad1
+	  printf_filtered ("LOC_STATIC %s: collect %s bytes at %s.\n",
4c2ad1
+			   SYMBOL_PRINT_NAME (sym), pulongest (len),
4c2ad1
 			   paddress (gdbarch, offset));
4c2ad1
 	}
4c2ad1
       /* A struct may be a C++ class with static fields, go to general
4c2ad1
@@ -906,9 +906,9 @@ collection_list::collect_symbol (struct symbol *sym,
4c2ad1
       offset = frame_offset + SYMBOL_VALUE (sym);
4c2ad1
       if (info_verbose)
4c2ad1
 	{
4c2ad1
-	  printf_filtered ("LOC_LOCAL %s: Collect %ld bytes at offset %s"
4c2ad1
+	  printf_filtered ("LOC_LOCAL %s: Collect %s bytes at offset %s"
4c2ad1
 			   " from frame ptr reg %d\n",
4c2ad1
-			   SYMBOL_PRINT_NAME (sym), len,
4c2ad1
+			   SYMBOL_PRINT_NAME (sym), pulongest (len),
4c2ad1
 			   paddress (gdbarch, offset), reg);
4c2ad1
 	}
4c2ad1
       add_memrange (gdbarch, reg, offset, len);
4c2ad1
@@ -918,9 +918,9 @@ collection_list::collect_symbol (struct symbol *sym,
4c2ad1
       offset = 0;
4c2ad1
       if (info_verbose)
4c2ad1
 	{
4c2ad1
-	  printf_filtered ("LOC_REGPARM_ADDR %s: Collect %ld bytes at offset %s"
4c2ad1
+	  printf_filtered ("LOC_REGPARM_ADDR %s: Collect %s bytes at offset %s"
4c2ad1
 			   " from reg %d\n",
4c2ad1
-			   SYMBOL_PRINT_NAME (sym), len,
4c2ad1
+			   SYMBOL_PRINT_NAME (sym), pulongest (len),
4c2ad1
 			   paddress (gdbarch, offset), reg);
4c2ad1
 	}
4c2ad1
       add_memrange (gdbarch, reg, offset, len);
4c2ad1
@@ -930,9 +930,9 @@ collection_list::collect_symbol (struct symbol *sym,
4c2ad1
       offset = frame_offset + SYMBOL_VALUE (sym);
4c2ad1
       if (info_verbose)
4c2ad1
 	{
4c2ad1
-	  printf_filtered ("LOC_LOCAL %s: Collect %ld bytes at offset %s"
4c2ad1
+	  printf_filtered ("LOC_LOCAL %s: Collect %s bytes at offset %s"
4c2ad1
 			   " from frame ptr reg %d\n",
4c2ad1
-			   SYMBOL_PRINT_NAME (sym), len,
4c2ad1
+			   SYMBOL_PRINT_NAME (sym), pulongest (len),
4c2ad1
 			   paddress (gdbarch, offset), reg);
4c2ad1
 	}
4c2ad1
       add_memrange (gdbarch, reg, offset, len);
4c2ad1
@@ -2447,7 +2447,8 @@ info_scope_command (const char *args_in, int from_tty)
4c2ad1
   const char *symname;
4c2ad1
   const char *save_args = args_in;
4c2ad1
   struct block_iterator iter;
4c2ad1
-  int j, count = 0;
4c2ad1
+  int count = 0;
4c2ad1
+  LONGEST j;
4c2ad1
   struct gdbarch *gdbarch;
4c2ad1
   int regno;
4c2ad1
   const char *args = args_in;
4c2ad1
@@ -2591,8 +2592,11 @@ info_scope_command (const char *args_in, int from_tty)
4c2ad1
 		}
4c2ad1
 	    }
4c2ad1
 	  if (SYMBOL_TYPE (sym))
4c2ad1
-	    printf_filtered (", length %d.\n",
4c2ad1
-			     TYPE_LENGTH (check_typedef (SYMBOL_TYPE (sym))));
4c2ad1
+	    {
4c2ad1
+	      ULONGEST len = TYPE_LENGTH (check_typedef (SYMBOL_TYPE (sym)));
4c2ad1
+
4c2ad1
+	      printf_filtered (", length %s.\n", pulongest (len));
4c2ad1
+	    }
4c2ad1
 	}
4c2ad1
       if (BLOCK_FUNCTION (block))
4c2ad1
 	break;
4c2ad1
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h
4c2ad1
--- a/gdb/tracepoint.h
4c2ad1
+++ b/gdb/tracepoint.h
4c2ad1
@@ -265,7 +265,7 @@ public:
4c2ad1
   void add_register (unsigned int regno);
4c2ad1
   void add_memrange (struct gdbarch *gdbarch,
4c2ad1
 		     int type, bfd_signed_vma base,
4c2ad1
-		     unsigned long len);
4c2ad1
+		     ULONGEST len);
4c2ad1
   void collect_symbol (struct symbol *sym,
4c2ad1
 		       struct gdbarch *gdbarch,
4c2ad1
 		       long frame_regno, long frame_offset,
4c2ad1
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
4c2ad1
--- a/gdb/typeprint.c
4c2ad1
+++ b/gdb/typeprint.c
4c2ad1
@@ -120,7 +120,8 @@ print_offset_data::update (struct type *type, unsigned int field_idx,
4c2ad1
     {
4c2ad1
       /* Since union fields don't have the concept of offsets, we just
4c2ad1
 	 print their sizes.  */
4c2ad1
-      fprintf_filtered (stream, "/*              %4u */", TYPE_LENGTH (ftype));
4c2ad1
+      fprintf_filtered (stream, "/*              %4s */",
4c2ad1
+			pulongest (TYPE_LENGTH (ftype)));
4c2ad1
       return;
4c2ad1
     }
4c2ad1
 
4c2ad1
@@ -183,8 +184,8 @@ print_offset_data::finish (struct type *type, int level,
4c2ad1
 
4c2ad1
   fputs_filtered ("\n", stream);
4c2ad1
   print_spaces_filtered (level + 4 + print_offset_data::indentation, stream);
4c2ad1
-  fprintf_filtered (stream, "/* total size (bytes): %4u */\n",
4c2ad1
-		    TYPE_LENGTH (type));
4c2ad1
+  fprintf_filtered (stream, "/* total size (bytes): %4s */\n",
4c2ad1
+		    pulongest (TYPE_LENGTH (type)));
4c2ad1
 }
4c2ad1
 
4c2ad1
 
4c2ad1
diff --git a/gdb/valarith.c b/gdb/valarith.c
4c2ad1
--- a/gdb/valarith.c
4c2ad1
+++ b/gdb/valarith.c
4c2ad1
@@ -182,7 +182,7 @@ value_subscript (struct value *array, LONGEST index)
4c2ad1
    to doubles, but no longer does.  */
4c2ad1
 
4c2ad1
 struct value *
4c2ad1
-value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound)
4c2ad1
+value_subscripted_rvalue (struct value *array, LONGEST index, LONGEST lowerbound)
4c2ad1
 {
4c2ad1
   struct type *array_type = check_typedef (value_type (array));
4c2ad1
   struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
4c2ad1
@@ -659,7 +659,7 @@ value_concat (struct value *arg1, struct value *arg2)
4c2ad1
   struct value *inval1;
4c2ad1
   struct value *inval2;
4c2ad1
   struct value *outval = NULL;
4c2ad1
-  int inval1len, inval2len;
4c2ad1
+  ssize_t inval1len, inval2len;
4c2ad1
   int count, idx;
4c2ad1
   char inchar;
4c2ad1
   struct type *type1 = check_typedef (value_type (arg1));
4c2ad1
@@ -1419,7 +1419,7 @@ value_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
4c2ad1
 int
4c2ad1
 value_logical_not (struct value *arg1)
4c2ad1
 {
4c2ad1
-  int len;
4c2ad1
+  LONGEST len;
4c2ad1
   const gdb_byte *p;
4c2ad1
   struct type *type1;
4c2ad1
 
4c2ad1
@@ -1447,11 +1447,11 @@ value_logical_not (struct value *arg1)
4c2ad1
 static int
4c2ad1
 value_strcmp (struct value *arg1, struct value *arg2)
4c2ad1
 {
4c2ad1
-  int len1 = TYPE_LENGTH (value_type (arg1));
4c2ad1
-  int len2 = TYPE_LENGTH (value_type (arg2));
4c2ad1
+  LONGEST len1 = TYPE_LENGTH (value_type (arg1));
4c2ad1
+  LONGEST len2 = TYPE_LENGTH (value_type (arg2));
4c2ad1
   const gdb_byte *s1 = value_contents (arg1);
4c2ad1
   const gdb_byte *s2 = value_contents (arg2);
4c2ad1
-  int i, len = len1 < len2 ? len1 : len2;
4c2ad1
+  LONGEST i, len = len1 < len2 ? len1 : len2;
4c2ad1
 
4c2ad1
   for (i = 0; i < len; i++)
4c2ad1
     {
4c2ad1
diff --git a/gdb/valops.c b/gdb/valops.c
4c2ad1
--- a/gdb/valops.c
4c2ad1
+++ b/gdb/valops.c
4c2ad1
@@ -81,7 +81,7 @@ oload_classification classify_oload_match (struct badness_vector *,
4c2ad1
 					   int, int);
4c2ad1
 
4c2ad1
 static struct value *value_struct_elt_for_reference (struct type *,
4c2ad1
-						     int, struct type *,
4c2ad1
+						     LONGEST, struct type *,
4c2ad1
 						     const char *,
4c2ad1
 						     struct type *,
4c2ad1
 						     int, enum noside);
4c2ad1
@@ -183,7 +183,7 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
4c2ad1
    space.  */
4c2ad1
 
4c2ad1
 struct value *
4c2ad1
-value_allocate_space_in_inferior (int len)
4c2ad1
+value_allocate_space_in_inferior (LONGEST len)
4c2ad1
 {
4c2ad1
   struct objfile *objf;
4c2ad1
   struct value *val = find_function_in_inferior ("malloc", &objf);
4c2ad1
@@ -398,12 +398,12 @@ value_cast (struct type *type, struct value *arg2)
4c2ad1
   if (code1 == TYPE_CODE_ARRAY)
4c2ad1
     {
4c2ad1
       struct type *element_type = TYPE_TARGET_TYPE (type);
4c2ad1
-      unsigned element_length = TYPE_LENGTH (check_typedef (element_type));
4c2ad1
+      ULONGEST element_length = TYPE_LENGTH (check_typedef (element_type));
4c2ad1
 
4c2ad1
       if (element_length > 0 && TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type))
4c2ad1
 	{
4c2ad1
 	  struct type *range_type = TYPE_INDEX_TYPE (type);
4c2ad1
-	  int val_length = TYPE_LENGTH (type2);
4c2ad1
+	  LONGEST val_length = TYPE_LENGTH (type2);
4c2ad1
 	  LONGEST low_bound, high_bound, new_length;
4c2ad1
 
4c2ad1
 	  if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
4c2ad1
@@ -1055,7 +1055,7 @@ value_assign (struct value *toval, struct value *fromval)
4c2ad1
       {
4c2ad1
 	const gdb_byte *dest_buffer;
4c2ad1
 	CORE_ADDR changed_addr;
4c2ad1
-	int changed_len;
4c2ad1
+	LONGEST changed_len;
4c2ad1
         gdb_byte buffer[sizeof (LONGEST)];
4c2ad1
 
4c2ad1
 	if (value_bitsize (toval))
4c2ad1
@@ -3357,7 +3357,7 @@ compare_parameters (struct type *t1, struct type *t2, int skip_artificial)
4c2ad1
    the form "DOMAIN::NAME".  */
4c2ad1
 
4c2ad1
 static struct value *
4c2ad1
-value_struct_elt_for_reference (struct type *domain, int offset,
4c2ad1
+value_struct_elt_for_reference (struct type *domain, LONGEST offset,
4c2ad1
 				struct type *curtype, const char *name,
4c2ad1
 				struct type *intype, 
4c2ad1
 				int want_address,
4c2ad1
@@ -3391,7 +3391,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
4c2ad1
 	  if (want_address)
4c2ad1
 	    return value_from_longest
4c2ad1
 	      (lookup_memberptr_type (TYPE_FIELD_TYPE (t, i), domain),
4c2ad1
-	       offset + (LONGEST) (TYPE_FIELD_BITPOS (t, i) >> 3));
4c2ad1
+	       offset + (TYPE_FIELD_BITPOS (t, i) >> 3));
4c2ad1
 	  else if (noside != EVAL_NORMAL)
4c2ad1
 	    return allocate_value (TYPE_FIELD_TYPE (t, i));
4c2ad1
 	  else
4c2ad1
@@ -3564,7 +3564,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
4c2ad1
   for (i = TYPE_N_BASECLASSES (t) - 1; i >= 0; i--)
4c2ad1
     {
4c2ad1
       struct value *v;
4c2ad1
-      int base_offset;
4c2ad1
+      LONGEST base_offset;
4c2ad1
 
4c2ad1
       if (BASETYPE_VIA_VIRTUAL (t, i))
4c2ad1
 	base_offset = 0;
4c2ad1
@@ -3713,7 +3713,7 @@ value_rtti_indirect_type (struct value *v, int *full,
4c2ad1
 struct value *
4c2ad1
 value_full_object (struct value *argp, 
4c2ad1
 		   struct type *rtype, 
4c2ad1
-		   int xfull, int xtop,
4c2ad1
+		   int xfull, LONGEST xtop,
4c2ad1
 		   int xusing_enc)
4c2ad1
 {
4c2ad1
   struct type *real_type;
4c2ad1
diff --git a/gdb/valprint.c b/gdb/valprint.c
4c2ad1
--- a/gdb/valprint.c
4c2ad1
+++ b/gdb/valprint.c
4c2ad1
@@ -879,7 +879,7 @@ generic_val_print_complex (struct type *type,
4c2ad1
 
4c2ad1
 void
4c2ad1
 generic_val_print (struct type *type,
4c2ad1
-		   int embedded_offset, CORE_ADDR address,
4c2ad1
+		   LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 		   struct ui_file *stream, int recurse,
4c2ad1
 		   struct value *original_value,
4c2ad1
 		   const struct value_print_options *options,
4c2ad1
@@ -1773,7 +1773,7 @@ print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
4c2ad1
 
4c2ad1
 void
4c2ad1
 print_hex_chars (struct ui_file *stream, const gdb_byte *valaddr,
4c2ad1
-		 unsigned len, enum bfd_endian byte_order,
4c2ad1
+		 ULONGEST len, enum bfd_endian byte_order,
4c2ad1
 		 bool zero_pad)
4c2ad1
 {
4c2ad1
   const gdb_byte *p;
4c2ad1
@@ -1926,17 +1926,17 @@ val_print_array_elements (struct type *type,
4c2ad1
 			  int recurse,
4c2ad1
 			  struct value *val,
4c2ad1
 			  const struct value_print_options *options,
4c2ad1
-			  unsigned int i)
4c2ad1
+			  ULONGEST i)
4c2ad1
 {
4c2ad1
   unsigned int things_printed = 0;
4c2ad1
-  unsigned len;
4c2ad1
+  ULONGEST len;
4c2ad1
   struct type *elttype, *index_type, *base_index_type;
4c2ad1
-  unsigned eltlen;
4c2ad1
+  ULONGEST eltlen;
4c2ad1
   /* Position of the array element we are examining to see
4c2ad1
      whether it is repeated.  */
4c2ad1
-  unsigned int rep1;
4c2ad1
+  ULONGEST rep1;
4c2ad1
   /* Number of repetitions we have detected so far.  */
4c2ad1
-  unsigned int reps;
4c2ad1
+  ULONGEST reps;
4c2ad1
   LONGEST low_bound, high_bound;
4c2ad1
   LONGEST low_pos, high_pos;
4c2ad1
 
4c2ad1
@@ -2026,7 +2026,7 @@ val_print_array_elements (struct type *type,
4c2ad1
 		     address, stream, recurse + 1, val, options,
4c2ad1
 		     current_language);
4c2ad1
 	  annotate_elt_rep (reps);
4c2ad1
-	  fprintf_filtered (stream, " <repeats %u times>", reps);
4c2ad1
+	  fprintf_filtered (stream, " <repeats %s times>", pulongest (reps));
4c2ad1
 	  annotate_elt_rep_end ();
4c2ad1
 
4c2ad1
 	  i = rep1 - 1;
4c2ad1
@@ -2669,7 +2669,7 @@ print_converted_chars_to_obstack (struct obstack *obstack,
4c2ad1
 
4c2ad1
 void
4c2ad1
 generic_printstr (struct ui_file *stream, struct type *type, 
4c2ad1
-		  const gdb_byte *string, unsigned int length, 
4c2ad1
+		  const gdb_byte *string, ULONGEST length,
4c2ad1
 		  const char *encoding, int force_ellipses,
4c2ad1
 		  int quote_char, int c_style_terminator,
4c2ad1
 		  const struct value_print_options *options)
4c2ad1
diff --git a/gdb/valprint.h b/gdb/valprint.h
4c2ad1
--- a/gdb/valprint.h
4c2ad1
+++ b/gdb/valprint.h
4c2ad1
@@ -119,7 +119,7 @@ extern void val_print_array_elements (struct type *, LONGEST,
4c2ad1
 				      CORE_ADDR, struct ui_file *, int,
4c2ad1
 				      struct value *,
4c2ad1
 				      const struct value_print_options *,
4c2ad1
-				      unsigned int);
4c2ad1
+				      ULONGEST);
4c2ad1
 
4c2ad1
 extern void val_print_scalar_formatted (struct type *,
4c2ad1
 					LONGEST,
4c2ad1
@@ -138,7 +138,7 @@ extern void print_decimal_chars (struct ui_file *, const gdb_byte *,
4c2ad1
 				 unsigned int, bool, enum bfd_endian);
4c2ad1
 
4c2ad1
 extern void print_hex_chars (struct ui_file *, const gdb_byte *,
4c2ad1
-			     unsigned int, enum bfd_endian, bool);
4c2ad1
+			     ULONGEST, enum bfd_endian, bool);
4c2ad1
 
4c2ad1
 extern void print_char_chars (struct ui_file *, struct type *,
4c2ad1
 			      const gdb_byte *, unsigned int, enum bfd_endian);
4c2ad1
@@ -192,7 +192,7 @@ struct generic_val_print_decorations
4c2ad1
 
4c2ad1
 
4c2ad1
 extern void generic_val_print (struct type *type,
4c2ad1
-			       int embedded_offset, CORE_ADDR address,
4c2ad1
+			       LONGEST embedded_offset, CORE_ADDR address,
4c2ad1
 			       struct ui_file *stream, int recurse,
4c2ad1
 			       struct value *original_value,
4c2ad1
 			       const struct value_print_options *options,
4c2ad1
@@ -202,7 +202,7 @@ extern void generic_emit_char (int c, struct type *type, struct ui_file *stream,
4c2ad1
 			       int quoter, const char *encoding);
4c2ad1
 
4c2ad1
 extern void generic_printstr (struct ui_file *stream, struct type *type, 
4c2ad1
-			      const gdb_byte *string, unsigned int length, 
4c2ad1
+			      const gdb_byte *string, ULONGEST length,
4c2ad1
 			      const char *encoding, int force_ellipses,
4c2ad1
 			      int quote_char, int c_style_terminator,
4c2ad1
 			      const struct value_print_options *options);
4c2ad1
diff --git a/gdb/value.c b/gdb/value.c
4c2ad1
--- a/gdb/value.c
4c2ad1
+++ b/gdb/value.c
4c2ad1
@@ -383,7 +383,8 @@ value_bytes_available (const struct value *value,
4c2ad1
 }
4c2ad1
 
4c2ad1
 int
4c2ad1
-value_bits_any_optimized_out (const struct value *value, int bit_offset, int bit_length)
4c2ad1
+value_bits_any_optimized_out (const struct value *value, LONGEST bit_offset,
4c2ad1
+			      LONGEST bit_length)
4c2ad1
 {
4c2ad1
   gdb_assert (!value->lazy);
4c2ad1
 
4c2ad1
@@ -831,8 +832,8 @@ find_first_range_overlap_and_match (struct ranges_and_idx *rp1,
4c2ad1
    Return true if the available bits match.  */
4c2ad1
 
4c2ad1
 static bool
4c2ad1
-value_contents_bits_eq (const struct value *val1, int offset1,
4c2ad1
-			const struct value *val2, int offset2,
4c2ad1
+value_contents_bits_eq (const struct value *val1, LONGEST offset1,
4c2ad1
+			const struct value *val2, LONGEST offset2,
4c2ad1
 			int length)
4c2ad1
 {
4c2ad1
   /* Each array element corresponds to a ranges source (unavailable,
4c2ad1
@@ -1423,7 +1424,8 @@ value_optimized_out (struct value *value)
4c2ad1
    the following LENGTH bytes.  */
4c2ad1
 
4c2ad1
 void
4c2ad1
-mark_value_bytes_optimized_out (struct value *value, int offset, int length)
4c2ad1
+mark_value_bytes_optimized_out (struct value *value, LONGEST offset,
4c2ad1
+				LONGEST length)
4c2ad1
 {
4c2ad1
   mark_value_bits_optimized_out (value,
4c2ad1
 				 offset * TARGET_CHAR_BIT,
4c2ad1
diff --git a/gdb/value.h b/gdb/value.h
4c2ad1
--- a/gdb/value.h
4c2ad1
+++ b/gdb/value.h
4c2ad1
@@ -274,7 +274,7 @@ struct lval_funcs
4c2ad1
   /* If non-NULL, this is used to determine whether the indicated bits
4c2ad1
      of VALUE are a synthetic pointer.  */
4c2ad1
   int (*check_synthetic_pointer) (const struct value *value,
4c2ad1
-				  LONGEST offset, int length);
4c2ad1
+				  LONGEST offset, LONGEST length);
4c2ad1
 
4c2ad1
   /* Return a duplicate of VALUE's closure, for use in a new value.
4c2ad1
      This may simply return the same closure, if VALUE's is
4c2ad1
@@ -405,7 +405,8 @@ extern int value_optimized_out (struct value *value);
4c2ad1
    otherwise.  */
4c2ad1
 
4c2ad1
 extern int value_bits_any_optimized_out (const struct value *value,
4c2ad1
-					 int bit_offset, int bit_length);
4c2ad1
+					 LONGEST bit_offset,
4c2ad1
+					 LONGEST bit_length);
4c2ad1
 
4c2ad1
 /* Like value_optimized_out, but return true iff the whole value is
4c2ad1
    optimized out.  */
4c2ad1
@@ -415,7 +416,7 @@ extern int value_entirely_optimized_out (struct value *value);
4c2ad1
    LENGTH bytes as optimized out.  */
4c2ad1
 
4c2ad1
 extern void mark_value_bytes_optimized_out (struct value *value,
4c2ad1
-					    int offset, int length);
4c2ad1
+					    LONGEST offset, LONGEST length);
4c2ad1
 
4c2ad1
 /* Mark VALUE's content bits starting at OFFSET and extending for
4c2ad1
    LENGTH bits as optimized out.  */
4c2ad1
@@ -849,12 +850,11 @@ extern struct value *value_primitive_field (struct value *arg1, LONGEST offset,
4c2ad1
 					    int fieldno,
4c2ad1
 					    struct type *arg_type);
4c2ad1
 
4c2ad1
-
4c2ad1
 extern struct type *value_rtti_indirect_type (struct value *, int *, LONGEST *,
4c2ad1
 					      int *);
4c2ad1
 
4c2ad1
 extern struct value *value_full_object (struct value *, struct type *, int,
4c2ad1
-					int, int);
4c2ad1
+					LONGEST, int);
4c2ad1
 
4c2ad1
 extern struct value *value_cast_pointers (struct type *, struct value *, int);
4c2ad1
 
4c2ad1
@@ -1147,10 +1147,11 @@ extern struct value *value_literal_complex (struct value *, struct value *,
4c2ad1
 extern struct value *find_function_in_inferior (const char *,
4c2ad1
 						struct objfile **);
4c2ad1
 
4c2ad1
-extern struct value *value_allocate_space_in_inferior (int);
4c2ad1
+extern struct value *value_allocate_space_in_inferior (LONGEST);
4c2ad1
 
4c2ad1
 extern struct value *value_subscripted_rvalue (struct value *array,
4c2ad1
-					       LONGEST index, int lowerbound);
4c2ad1
+					       LONGEST index,
4c2ad1
+					       LONGEST lowerbound);
4c2ad1
 
4c2ad1
 /* User function handler.  */
4c2ad1
 
4c2ad1
diff --git a/gdb/x86-nat.c b/gdb/x86-nat.c
4c2ad1
--- a/gdb/x86-nat.c
4c2ad1
+++ b/gdb/x86-nat.c
4c2ad1
@@ -173,7 +173,7 @@ x86_remove_watchpoint (CORE_ADDR addr, int len,
4c2ad1
    address ADDR and whose length is LEN bytes.  */
4c2ad1
 
4c2ad1
 int
4c2ad1
-x86_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
4c2ad1
+x86_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
4c2ad1
 {
4c2ad1
   struct x86_debug_reg_state *state
4c2ad1
     = x86_debug_reg_state (inferior_ptid.pid ());
4c2ad1
diff --git a/gdb/x86-nat.h b/gdb/x86-nat.h
4c2ad1
--- a/gdb/x86-nat.h
4c2ad1
+++ b/gdb/x86-nat.h
4c2ad1
@@ -49,7 +49,7 @@ extern void x86_forget_process (pid_t pid);
4c2ad1
    definitions.  */
4c2ad1
 
4c2ad1
 extern int x86_can_use_hw_breakpoint (enum bptype type, int cnt, int othertype);
4c2ad1
-extern int x86_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len);
4c2ad1
+extern int x86_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len);
4c2ad1
 extern int x86_stopped_by_watchpoint ();
4c2ad1
 extern int x86_stopped_data_address (CORE_ADDR *addr_p);
4c2ad1
 extern int x86_insert_watchpoint (CORE_ADDR addr, int len,
4c2ad1
@@ -82,7 +82,7 @@ struct x86_nat_target : public BaseTarget
4c2ad1
   int can_use_hw_breakpoint (enum bptype type, int cnt, int othertype) override
4c2ad1
   { return x86_can_use_hw_breakpoint (type, cnt, othertype); }
4c2ad1
 
4c2ad1
-  int region_ok_for_hw_watchpoint (CORE_ADDR addr, int len) override
4c2ad1
+  int region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len) override
4c2ad1
   { return x86_region_ok_for_hw_watchpoint (addr, len); }
4c2ad1
 
4c2ad1
   int insert_watchpoint (CORE_ADDR addr, int len,