Joel Brobecker [Wed, 29 Dec 2010 08:01:32 +0000 (08:01 +0000)]
[Ada] do not print arrays as array pointers
This patch enhances the debugger to distinguish between fat pointers
that represent either: array types, or array access types. In the latter
case, the object/type is encoded as a typedef type pointing to the fat
pointer.
The first part of the change is to adjust ada_check_typedef to avoid
stripping the typedef layer when it points to a fat pointer. The rest
of the patch is adjustments required in various places to deal with
the fact that the type is uses might now be a typedef.
gdb/ChangeLog:
* ada-lang.h (ada_coerce_to_simple_array): Add declaration.
* ada-lang.c (ada_typedef_target_type): New function.
(desc_base_type): Add handling of fat pointer typedefs.
(ada_coerce_to_simple_array): Make non-static.
(decode_packed_array_bitsize): Add handling of fat pointer typedefs.
Add assertion.
(ada_template_to_fixed_record_type_1, ada_to_fixed_type)
(ada_check_typedef): Add handling of fat pointer typedefs.
(ada_evaluate_subexp) [OP_FUNCALL]: Likewise.
* ada-typeprint.c (ada_print_type): Add handling of fat pointer
typedefs.
* ada-valprint.c (ada_val_print_1): Convert fat pointers that are not
array accesses to simple arrays rather than simple array pointers.
(ada_value_print): In the case of array descriptors, do not print
the value type description unless it is an array access.
Mike Frysinger [Wed, 29 Dec 2010 02:51:40 +0000 (02:51 +0000)]
sim: HW_NALLOC: new alloc helper
We have malloc (uninitialized buffer), zalloc (zeroed buffer), and
nzalloc (zeroed array). But we don't have a way to allocate an
uninitialized array. Add a HW_NALLOC to fill this gap.
Mike Frysinger [Wed, 29 Dec 2010 02:50:35 +0000 (02:50 +0000)]
sim: HW_NZALLOC: fix arg handling
The HW_NZALLOC macro has all caps args for some reason (unlike the other
alloc helpers), and ends up not using the "ME" argument since its copy
and paste source uses "me". Make all the args lowercase to match the
style of all the other args and make it use the correct "me".
Joel Brobecker [Tue, 28 Dec 2010 11:40:27 +0000 (11:40 +0000)]
remove target_acknowledge_created_inferior
This target_ops routine appears to be unused in practice, so this patch
removes it.
gdb/ChangeLog:
* inf-child.c (inf_child_acknowledge_created_inferior): Delete.
(inf_child_target): Do not set t->to_acknowledge_created_inferior.
* inf-ptrace.c (inf_ptrace_create_inferior): Remove call to
target_acknowledge_created_inferior.
* inf-ttrace.c (inf_ttrace_him): Likewise.
* target.h (struct target_ops): Delete to_acknowledge_created_inferior
field.
(target_acknowledge_created_inferior): Delete.
* target.c (update_current_target): Remove setting of
to_acknowledge_created_inferior field. Do default value for that
field either.
(debug_to_acknowledge_created_inferior): Delete.
(setup_target_debug): Remove setting of
current_target.to_acknowledge_created_inferior.
Pedro Alves [Mon, 27 Dec 2010 19:37:04 +0000 (19:37 +0000)]
gdb/
* breakpoint.c (breakpoint_restore_shadows): When looking for the
location with the lowest address that overlaps the memory range we
want to restore shadows for, account for multiple locations at the
same address.
Dave Anglin [Mon, 27 Dec 2010 02:05:14 +0000 (02:05 +0000)]
PR gas/11395
* config/tc-hppa.c (pa_ip): Set doubleword carry/borrow bit when a
doubleword completer or doubleword condition is found in an add/sub
instruction. Reject match for 'A'/'S' only if there is no condition
and d bit is not set.
* gas/hppa/basic/add2.s: Add test for a simple doubleword carry
instruction.
* gas/hppa/basic/sub2.s: Add tests for simple word and doubleword
borrow instructions.
* gas/hppa/basic/basic.exp: Update regexps for above.
* opcode/hppa.h: Clear "d" bit in "add" and "sub" patterns.
Alan Modra [Fri, 24 Dec 2010 10:40:19 +0000 (10:40 +0000)]
* compress.c (decompress_contents): Style.
(bfd_get_full_section_contents): Do not decompress directly into
caller buffer or directly return cached section contents.
Check malloc return for compressed_buffer.
Alan Modra [Mon, 20 Dec 2010 06:27:11 +0000 (06:27 +0000)]
PR ld/12001
Revert 2010-11-03 Nick Clifton
* ldlang.c (ldlang_def_chain_list): Delete.
(insert_defined, ldlang_add_def, lang_place_defineds): Delete.
(lang_process): Don't call lang_place_defineds.
(lang_add_assignment): Don't do anything special for --defsym.
* ldexp.h (struct ldexp_control): Add uses_defined.
(exp_fold_tree_no_dot): Declare.
* ldexp.c (exp_fold_tree): Clear uses_defined.
(exp_fold_tree_no_dot): Likewise. Make global.
(fold_name <DEFINED>): Set uses_defined.
(exp_fold_tree_1 <etree_assign>): Define symbol during first phase
even when the value being assigned isn't valid.
* ldlang.c (open_input_bfds): Process assignment statements.
(lang_process): Bump lang_statement_iteration.
(scan_for_self_assignment): Formatting.
(print_assignment): Style.
* config/tc-mips.c (insn_uses_reg): Handle the new flags
INSN2_READ_FPR_Z, INSN2_READ_GPR_D and INSN2_READ_GPR_Z.
(append_insn): Handle delay-slot filling for the new flags.
(validate_mips_insn): Handle the new arguments +a|b|c|z|Z.
(mips_ip): Handle the new arguments +a|b|c|z|Z.
Kevin Buettner [Fri, 17 Dec 2010 21:39:27 +0000 (21:39 +0000)]
* mips-tdep.c (make_mips16_addr): New function.
(mips_elf_make_msymbol_special): Don't set the low bit in the
symbol's address.
(mips_read_pc, mips_unwind_pc, mips_addr_bits_remove): Strip bit
indicating mips16 address, if present.
(mips_write_pc): Set bit indicating mips16 address when in a mips16
function.
(mips_eabi_push_dummy_call, mips_o64_push_dummy_call): Likewise,
but for each function pointer argument to inferior function call.
Kevin Buettner [Thu, 16 Dec 2010 22:50:48 +0000 (22:50 +0000)]
* mips-tdep.c (mips_convert_register_float_case_p)
(mips_convert_register_gpreg_case_p): New functions.
(mips_convert_register_p): Invoke new functions above.
(mips_register_to_value): Add case for fetching value shorter
than 64 bits from a 64-bit register.
(mips_value_to_register): Add case for storing value shorter
than 64 bits into a 64-bit register.
* symbols.c (symbol_clone_if_forward_ref): Call tc_new_dot_label
for new fake labels created off the dot special symbol.
* config/tc-mips.h (tc_new_dot_label): New macro.
(mips_record_label): New prototype.
* config/tc-mips.c (my_getExpression): Remove MIPS16 fake label
annotation.
(s_cons, s_float_cons, s_gpword, s_gpdword): Only clear labels
recorded once data expressions have been evaluated.
(mips_define_label): Move code to record labels over to...
(mips_record_label): ... this new function.
* doc/internals.texi: Document tc_new_dot_label.
Tom Tromey [Wed, 15 Dec 2010 21:19:50 +0000 (21:19 +0000)]
gdb
* infrun.c (save_infcall_control_state): Handle the
exception-resume breakpoint.
(restore_infcall_control_state): Likewise.
(discard_infcall_control_state): Likewise.
gdb/testsuite
2010-12-15 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.cp/nextoverthrow.cc (dummy): Return int 0.
(NextOverThrowDerivates) <resumebpt>: New.
(resumebpt_test): New.
(main): Call resumebpt_test.
* gdb.cp/nextoverthrow.exp: New block for test of "resumebpt".
Kevin Buettner [Wed, 15 Dec 2010 20:53:08 +0000 (20:53 +0000)]
* mips-tdep.c (mips_pseudo_register_write): Sign extend 32-bit
cooked values that are being transferred to 64-bit raw registers.
(mips_pseudo_register_read): Revise to preserve symmetry with
mips_pseudo_register_write().
Doug Evans [Wed, 15 Dec 2010 17:28:00 +0000 (17:28 +0000)]
Rename "maint set python auto-load" to "set auto-load-scripts".
* NEWS: Mention it.
* python/py-auto-load.c (auto_load_scripts): Renamed from
gdbpy_auto_load.
(load_auto_scripts_for_objfile): Update.
(gdbpy_initialize_auto_load): Rename "maint set python auto-load" to
"set auto-load-scripts".
doc/
* gdb.texinfo (Startup): Document auto-loading of scripts during
startup.
(Auto-loading): Delete "maint set python auto-load on|off".
Add "set auto-load-scripts on|off".
Ian Lance Taylor [Wed, 15 Dec 2010 15:35:27 +0000 (15:35 +0000)]
PR gold/12324
* x86_64.cc (Target_x86_64::Scan::check_non_pic): Give an error
for R_X86_64_32 and R_X86_64_PC32.
* testsuite/Makefile.am (ver_matching_def.so): Depend on and use
ver_matching_def_pic.o.
(ver_matching_def_pic.o): New target.
Mike Frysinger [Wed, 15 Dec 2010 11:50:46 +0000 (11:50 +0000)]
sim: add --map-info option
There are options for listing the current device/hw tree and memory
regions, but no way to find out at run time all the current mappings.
So add a new --map-info option akin to the --memory-info option which
displays all the current mappings.
Ralf Wildenhues [Tue, 14 Dec 2010 21:33:26 +0000 (21:33 +0000)]
gold: fix race in FileRead::~View.
gold/:
* fileread.cc (file_counts_lock, file_counts_initialize_lock)
(total_mapped_bytes, current_mapped_bytes, maximum_mapped_bytes):
Move definition before File_read::View member definitions.
(File_read::View::~View): Initialize and hold lock before
updating current_mapped_bytes.
Ken Werner [Tue, 14 Dec 2010 10:23:41 +0000 (10:23 +0000)]
gdb:
* valops.c (value_one): Use get_array_bounds to compute the number
of array elements instead of dividing the length of the array by the
length of the element types.
* valarith.c (value_complement, value_neg): Likewise.