+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * bsd-uthread.c (bsd_uthread_read_memory_address): New function.
+ (bsd_uthread_fetch_registers, bsd_uthread_store_registers,
+ bsd_uthread_wait, bsd_uthread_find_new_threads): Use it.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * procfs.c (procfs_address_to_host_pointer): Use target_gdbarch
+ and its associated types to perform pointer conversion.
+ (procfs_can_use_hw_breakpoint): Likewise.
+ (procfs_auxv_parse): Remove unused variable.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * auxv.c (default_auxv_parse): Use gdbarch_ptr_bit (target_gdbarch)
+ instead of builtin_type_void_data_ptr.
+ * target.c (default_region_ok_for_hw_watchpoint): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * expprint.c (print_subexp_standard): Compare against builtin type
+ associated with exp->gdbarch instead of builtin_type_char.
+
+ * f-valprint.c (f_val_print): Use extract_unsigned_integer to
+ extract values of arbitrary logical type. Handle arbitrary
+ complex types.
+
+ * printcmd.c (float_type_from_length): New function.
+ (print_scalar_formatted, printf_command): Use it.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * valops.c: Include "objfiles.h" and "symtab.h".
+ (find_function_in_inferior): New argument OBJF_P. Use it to return
+ objfile where function is defined. Use per-objfile arch types
+ instead of builtin_type_ to define default return type.
+
+ * linux-fork.c (checkpoint_command): Update calls. Use per-objfile
+ architecture to define inferior call argument types.
+ * gcore.c (derive_heap_segment): Likewise.
+ * objc-lang.c (value_nsstring): Likewise.
+ * scm-lang.c (scm_lookup_name): Likewise.
+ * scm-valprint.c (scm_inferior_print): Likewise.
+ * valops.c (value_allocate_space_in_inferior): Likewise.
+
+ * eval.c (evaluate_subexp_standard): Update calls.
+ * objc-lang.c (lookup_objc_class, print_object_command): Likewise.
+
+ * linux-fork.c: Include "objfiles.h".
+ * scm-lang.c: Include "objfiles.h".
+ * scm-valprint.c: Include "objfiles.h".
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdbarch.sh (name_of_malloc): Remove.
+ * gdbarch.c, gdbarch.h: Re-generate.
+ * valops.c (value_allocate_space_in_inferior): Do not call
+ gdbarch_name_of_malloc.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * valarith.c (value_x_unop): Use builtin_type_int8 as type for
+ UNOP_POSTINCREMENT/UNOP_POSTDECREMENT constant 0 argument.
+ (value_bit_index): Use extract_unsigned_integer
+ instead of unpack_long to read single byte.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * infcall.c (value_arg_coerce): Add GDBARCH parameter. Use its
+ associates types instead of builtin_type_ macros.
+ (find_function_addr): Leave output VALUE_TYPE NULL if unknown.
+ (call_function_by_hand): Use per-architecture "int" type as
+ fall-back if find_function_addr returns NULL VALUE_TYPE.
+ Update call to value_arg_coerce.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * cp-abi.h (cplus_method_ptr_size): Add TO_TYPE parameter.
+ (cplus_make_method_ptr): Add TYPE parameter.
+ * cp-abi.c (cplus_method_ptr_size): Add TO_TYPE parameter. Pass it
+ on to current_cp_abi.method_ptr_size callback.
+ (cplus_make_method_ptr): Add TYPE parameter. Pass it on to
+ current_cp_abi.make_method_ptr callback.
+
+ * gdbtypes.c (lookup_methodptr_type): Pass target type
+ argument to cplus_method_ptr_size.
+ * valops.c (value_cast): Pass type argument to cplus_make_method_ptr.
+ (value_struct_elt_for_reference): Likewise.
+
+ * gnu-v3-abi.c (get_class_arch): New function.
+ (vtable_address_point_offset): Add GDBARCH parameter. Use it
+ instead of current_gdbarch. Update all callers.
+ (gnuv3_get_vtable): Likewise.
+ (gnuv3_get_virtual_fn): Likewise.
+ (gnuv3_decode_method_ptr): Likewise.
+ (gnuv3_rtti_type): Call get_class_arch to determine architecture.
+ Use it instead of current_gdbarch.
+ (gnuv3_virtual_fn_field): Likewise.
+ (gnuv3_baseclass_offset): Likewise.
+ (gnuv3_print_method_ptr): Likewise.
+ (gnuv3_method_ptr_to_value): Likewise.
+ (gnuv3_method_ptr_size): Add TYPE parameter. Use it to determine
+ class architecture. Use architecture types instead of builtin types.
+ (gnuv3_make_method_ptr): Likewise.
+
+ * cp-valprint.c (cp_print_class_member): Expect pointer type
+ instead of class type. Use its length when extracting value.
+ * c-valprint.c (c_val_print): Update call to cp_print_class_member.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * stack.c (return_command): Use frame architecture to determine
+ default integer return type.
+
+ * f-valprint.c (f77_get_dynamic_lowerbound): Use frame architecture
+ to determine pointer types.
+ (f77_get_dynamic_upperbound): Likewise.
+
+ * objc-lang.c (OBJC_FETCH_POINTER_ARGUMENT): Remove.
+ (resolve_msgsend): Use architecture of current frame to determine
+ pointer types. Inline OBJC_FETCH_POINTER_ARGUMENT.
+ (resolve_msgsend_stret, resolve_msgsend_super,
+ resolve_msgsend_super_stret): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * alpha-tdep.c (alpha_register_type): Use builtin_type (gdbarch)
+ instead of builtin_type_ macros.
+ * amd64-tdep.c (amd64_register_type): Likewise.
+ (amd64_get_longjmp_target): Likewise.
+ * arm-tdep.c (arm_register_type): Likewise.
+ * avr-tdep.c (avr_register_type): Likewise.
+ * cris-tdep.c (cris_register_type, crisv32_register_type): Likewise.
+ * frv-tdep.c (frv_register_type): Likewise.
+ * h8300-tdep.c (h8300_register_type): Likewise.
+ * hppa-tdep.c (hppa32_convert_from_func_ptr_addr,
+ hppa_skip_trampoline_code): Likewise.
+ * i386-tdep.c (i386_register_type): Likewise.
+ (i386_unwind_pc, i386_sse_type): Likewise.
+ * ia64-tdep.c (ia64_register_type): Likewise.
+ * m32r-tdep.c (m32r_register_type): Likewise.
+ * m68k-tdep.c (m68k_register_type, m68k_unwind_pc): Likewise.
+ * m88k-tdep.c (m88k_register_type): Likewise.
+ * mep-tdep.c (mep_register_type): Likewise.
+ * mips-tdep.c (mips_pseudo_register_type): Likewise.
+ * mn10300-tdep.c (mn10300_register_type): Likewise.
+ * mt-tdep.c (mt_copro_register_type): Likewise.
+ * rs6000-tdep.c (rs6000_builtin_type_vec64): Likewise.
+ (rs6000_convert_register_p, rs6000_register_to_value,
+ rs6000_value_to_register): Likewise.
+ * s390-tdep.c (s390_register_type): Likewise.
+ * sh64-tdep.c (sh64_register_type): Likewise.
+ (sh64_build_float_register_type, sh64_do_fp_register): Likewise.
+ * sh-tdep.c (sh_sh2a_register_type, sh_sh3e_register_type,
+ sh_sh4_build_float_register_type, sh_sh4_register_type,
+ sh_default_register_type): Likewise.
+ * sparc64-tdep.c (sparc64_register_type): Likewise.
+ * sparc-tdep.c (sparc32_register_type): Likewise.
+ * spu-tdep.c (spu_builtin_type_vec128, spu_register_type): Likewise.
+ * v850-tdep.c (v850_register_type): Likewise.
+ * vax-tdep.c (vax_register_type): Likewise.
+ * xtensa-tdep.c (xtensa_register_type, xtensa_unwind_pc,
+ xtensa_push_dummy_call): Likewise.
+
+ * std-regs.c (value_of_builtin_frame_fp_reg,
+ value_of_builtin_frame_pc_reg): Likewise.
+ * target-descriptions.c (tdesc_register_type): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-lang.c (ada_coerce_to_simple_array_type): Use builtin_type_int32
+ instead of builtin_type_int as default unspecified integral type.
+ (ada_index_type, ada_array_bound_from_type, ada_variant_discrim_type,
+ assign_component, to_fixed_range_type): Likewise.
+ * ada-typeprint.c (print_range, print_range_bound,
+ print_range_type_named): Likewise.
+ * ada-valprint.c (print_optional_low_bound, ada_val_print_1): Likewise.
+ * eval.c (evaluate_subexp_standard): Likewise.
+ * gnu-v2-abi.c (gnuv2_virtual_fn_field): Likewise.
+ * gnu-v3-abi.c (gnuv3_get_virtual_fn, gnuv3_baseclass_offset,
+ build_gdb_vtable_type): Likewise.
+ * jv-lang.c (java_array_type): Likewise.
+ * m2-typeprint.c (m2_print_bounds, m2_is_long_set_of_type): Likewise.
+ * m2-valprint.c (m2_print_long_set): Likewise.
+ * parse.c (follow_types): Likewise.
+ * p-typeprint.c (pascal_type_print_base): Likewise.
+ * valops.c (value_one, value_array, value_string,
+ value_bitstring): Likewise.
+ * value.c (allocate_repeat_value, value_from_string): Likewise.
+ * varobj.c (c_describe_child): Likewise.
+ * mt-tdep.c (mt_register_type): Likewise.
+ * sh-tdep.c (sh_sh4_build_float_register_type): Likewise.
+ * sh64-tdep.c (sh64_build_float_register_type): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdbtypes.h (struct builtin_type): Remove builtin_true_char
+ and builtin_true_unsigned_char.
+ (builtin_type_true_char): Remove macro, add extern declaration.
+ (builtin_type_true_unsigned_char): Add extern declaration.
+ * gdbtypes.c (builtin_type_true_char): New global variable.
+ (builtin_type_true_unsigned_char): Likewise.
+ (_initialize_gdbtypes): Initialize them.
+ (gdbtypes_post_init): Do not initialize builtin_true_char
+ and builtin_true_unsigned_char members of struct builtin_type.
+
+ * printcmd.c (print_scalar_formatted): Do not use builtin_type;
+ use builtin_type_true_unsigned_char instead.
+
+ * ada-valprint.c (ada_val_print_1): Use builtin_type_true_char
+ instead of builtin_type_char for internal string.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdbtypes.h (builtin_type_void): Remove macro, add declaration.
+ (builtin_type_f_void): Remove macro.
+ * gdbtypes.c (builtin_type_void): New global variable.
+ (_initialize_gdbtypes): Initialize it.
+
+ * gnu-v3-abi.c (build_gdb_vtable_type): Do not call
+ lookup_pointer_type or lookup_function_type on builtin_type_void.
+ * printcmd.c (set_next_address): Likewise.
+ * objc-lang.c (value_nsstring): Likewise.
+ * mt-tdep.c (mt_copro_register_type): Likewise.
+ * xtensa-tdep.c (xtensa_register_type): Likewise.
+
+ * symfile.c (syms_from_objfile): Remove special handling
+ of builtin_type_void and builtin_type_char.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * eval.c (evaluate_subexp_standard): Use exp->gdbarch types instead
+ of builtin_type_ macros when handling OP_OBJC_ operations.
+ * objc-lang.c (print_object_command): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-valprint.c: Include "objfiles.h".
+ (ada_val_print_1): Use the gdbarch associated with the objfile whether
+ a System.Address type is defined to retrieve the proper pointer type
+ to use to print it.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-lang.c (value_pos_atr): Add TYPE argument. Use it as
+ result type instead of builtin_type_int.
+ (value_subscript_packed): Use pos_atr instead of value_pos_atr.
+ (ada_value_subscript): Update call to value_pos_atr.
+ (ada_value_ptr_subscript): Likewise.
+ (ada_evaluate_subexp): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-lang.c (cast_to_fixed): Do not cast to builtin_type_double.
+ (cast_from_fixed_to_double): Rename to ...
+ (cast_from_fixed): ... this. Add TYPE parameter. Use it instead
+ of builtin_type_double.
+ (ada_value_cast): Use cast_from_fixed instead of casting result
+ of cast_from_fixed_to_double.
+ (ada_evaluate_subexp): Update calls to cast_from_fixed_to_double.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * valops.c (value_ind): No longer allow dereferencing an
+ integer type.
+ * eval.c (evaluate_subexp_standard): Handle deferencing an
+ integer type here.
+ * ada-lang.c (ada_evaluate_subexp): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-valprint.c (ada_val_print_1): When implicitly dereferencing
+ a reference type, pass the reference type directly to unpack_pointer.
+ * c-valprint.c (c_val_print): Likewise.
+ * f-valprint.c (f_val_print): Likewise.
+ * m2-valprint.c (print_variable_at_address, m2_val_print): Likewise.
+ * p-valprint.c (pascal_val_print): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * eval.c (evaluate_subexp_standard): Use builtin_type_int8
+ to construct the EVAL_SKIP dummy return value.
+ * ada-lang.c (ada_evaluate_subexp): Likewise.
+ * jv-lang.c (evaluate_subexp_java): Likewise.
+ * m2-lang.c (evaluate_subexp_modula2): Likewise.
+ * scm-lang.c (evaluate_exp): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * value.h (coerce_enum, coerce_number): Remove prototypes.
+ * value.c (coerce_enum, coerce_number): Remove.
+ * valarith.c (value_x_binop): Do not call coerce_enum.
+ (value_x_unop): Likewise.
+ (value_logical_not): Call coerce_array instead of coerce_number.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ax-gdb.c: Include "language.h".
+ (gen_frame_args_address): Add GDBARCH parameter; use it
+ instead of current_gdbarch.
+ (gen_frame_locals_address): Likewise.
+ (gen_var_ref): Add GDBARCH parameter. Update calls to
+ gen_frame_args_address and gen_frame_locals_address. Use
+ pointer type from gdbarch.
+ (gen_usual_unary): Add EXP parameter. Use integer type
+ from exp->gdbarch.
+ (gen_usual_arithmetic): Likewise.
+ (gen_integral_promotions): Likewise.
+ (gen_add, gen_sub): Remove.
+ (gen_ptradd, gen_ptrsub, gen_ptrdiff): New functions.
+ (gen_logical_not): Use passed-in boolean result type
+ instead of builtin_type_int.
+ (gen_complement): Do not call gen_usual_unary or
+ gen_integral_promotions.
+ (gen_struct_ref): Call require_rvalue instead of gen_usual_unary.
+ (gen_repeat): Add EXP parameter. Update call to gen_expr.
+ Use builtin_type_int32 as internal range type.
+ (gen_sizeof): Add EXP and SIZE_TYPE parameters. Use SIZE_TYPE
+ as result type. Update call to gen_expr.
+ (gen_expr): Add EXP parameter. Update calls to gen_expr,
+ gen_repeat, gen_var_ref, gen_usual_unary, gen_usual_arithmetic,
+ and gen_integral_promotions. Call gen_ptradd, gen_ptrsub,
+ gen_ptrdiff, or gen_binop instead of gen_add or gen_sub.
+ Use exp->gdbarch instead of current_gdbarch.
+ Call language_bool_type to determine result type of UNOP_LOGICAL_NOT.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * eval.c (evaluate_subexp_standard): Add calls to binop_promote
+ and unop_promote before calling value_binop et. al.
+ * ada-lang.c (ada_evaluate_subexp): Add calls to binop_promote
+ and unop_promote before calling value_binop et. al.
+
+ * valarith.c (value_binop): Do not call binop_promote or unop_promote.
+ (value_pos): Do not call unop_promote.
+ (value_neg, value_complement): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * value.h (unop_promote, binop_promote): Add prototypes.
+ * eval.c (unop_promote, binop_promote): New functions.
+ * valarith.c (unop_result_type, binop_result_type): Remove.
+ (value_binop): Call binop_promote or unop_promote.
+ Inline remaining parts of binop_result_type. Remove special
+ code to truncate integer values for unsigned operations.
+ (value_pos): Call unop_promote. Inline remaining parts of
+ unop_result_type.
+ (value_neg, value_complement): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * value.h (value_add, value_sub): Remove.
+ (value_ptradd, value_ptrsub, value_ptrdiff): Add prototypes.
+ * valarith.c (value_add, value_sub): Remove.
+ (value_ptradd, value_ptrsub, value_ptrdiff): New functions.
+ (find_size_for_pointer_math): Add assertion. Update comment.
+ (value_binop): Update comment.
+
+ * eval.c (ptrmath_type_p): New function.
+ (evaluate_subexp_standard): Replace value_add and value_sub
+ by value_ptradd, value_ptrsub, value_ptrdiff or value_binop.
+ Use builtin_type_uint8 instead of builtin_type_char to hold
+ the increment for BINOP_{PRE,POST}{IN,DE}CREMENT operations.
+ * valarith.c (value_subscript): Replace value_add by
+ value_ptradd. Replace value_sub by value_binop.
+ * ada-lang.c (ada_value_ptr_subscript): Likewise.
+ (ada_tag_name_2): Replace value_add by value_ptradd.
+ (ada_evaluate_subexp): Replace value_add and value_sub by
+ value_binop.
+ * m2-lang.c (evaluate_subexp_modula2): Replace value_add
+ by value_ptradd.
+ * gnu-v2-abi.c (gnuv2_virtual_fn_field): Likewise.
+ * gnu-v3-abi.c (gnuv3_method_ptr_to_value): Likewise.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * eval.c (evaluate_subexp_for_sizeof): Use builtin_int type of
+ the expression architecture instead of builtin_type_int as the
+ sizeof return type.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * expression.h (enum exp_opcode): Document OP_COMPLEX to take
+ a type parameter as expression element.
+ * eval.c (evaluate_subexp_standard) [OP_COMPLEX]: Retrieve result
+ type as expression element.
+ * f-exp.y: Pass in type when buildin OP_COMPLEX expression.
+ * parse.c (operator_length_standard): Update length of OP_COMPLEX.
+
2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
* language.h (struct language_arch_info): New members