Joel Brobecker [Mon, 4 Jul 2011 16:30:09 +0000 (16:30 +0000)]
Do not load .eh_frame section from separete object files
We don't need to read the .eh_frame section from the separate
object files, because this data is already present in the
main executable (it needs to, or the program wouldn't work).
We discovered this investigating a problem with the 'next' command,
which was due to unwind failures, which came from the fact that
the .eh_frame was incorrectly relocated.
gdb/ChangeLog (Tristan Gingold):
* dwarf2-frame.c (dwarf2_build_frame_info): Do not load .eh_frame
section in separate object files.
Jan Kratochvil [Mon, 4 Jul 2011 14:16:14 +0000 (14:16 +0000)]
gdb/
Fix false GCC warning.
* linespec.c (decode_line_1): Initialize values.
Alan Modra [Mon, 4 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Mon, 4 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Thomas Schwinge [Sun, 3 Jul 2011 13:45:32 +0000 (13:45 +0000)]
ELFOSABI_GNU
bfd/
* elf.c (_bfd_elf_set_osabi): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf64-hppa.c: Likewise.
binutils/
* elfedit.c (osabis): Use ELFOSABI_GNU name instead of ELFOSABI_LINUX
alias and ELFOSABI_HURD. Add GNU alias.
* readelf.c (get_osabi_name, get_symbol_binding, get_symbol_type):
Likewise.
* doc/binutils.texi <elfedit>: Update accordingly.
elfcpp/
* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
keep ELFOSABI_LINUX as an alias. Remove ELFOSABI_HURD.
gas/
* config/obj-elf.c (obj_elf_type): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* config/tc-ia64.c: Likewise.
include/elf/
* common.h (ELFOSABI_GNU): Define, replaces...
(ELFOSABI_LINUX): ... this, kept as an alias.
(ELFOSABI_HURD): Remove.
ld/testsuite/
* ld-ifunc/ifunc.exp: Update for changed output.
* ld-unique/unique.exp: Likewise.
Thomas Schwinge [Sun, 3 Jul 2011 13:37:09 +0000 (13:37 +0000)]
ELFOSABI_GNU
bfd/
* elf.c (_bfd_elf_set_osabi): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf64-hppa.c: Likewise.
binutils/
* elfedit.c (osabis): Use ELFOSABI_GNU name instead of ELFOSABI_LINUX
alias and ELFOSABI_HURD. Add GNU alias.
* readelf.c (get_osabi_name, get_symbol_binding, get_symbol_type):
Likewise.
* doc/binutils.texi <elfedit>: Update accordingly.
elfcpp/
* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
keep ELFOSABI_LINUX as an alias. Remove ELFOSABI_HURD.
gas/
* config/obj-elf.c (obj_elf_type): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* config/tc-ia64.c: Likewise.
include/elf/
* common.h (ELFOSABI_GNU): Define, replaces...
(ELFOSABI_LINUX): ... this, kept as an alias.
(ELFOSABI_HURD): Remove.
ld/testsuite/
* ld-ifunc/ifunc.exp: Update for changed output.
* ld-unique/unique.exp: Likewise.
Ian Lance Taylor [Sun, 3 Jul 2011 04:46:56 +0000 (04:46 +0000)]
PR gold/12957
* options.h (class General_options): Add -f and -F.
* options.cc (General_options::finalize): Fatal error if -f/-F
are used without -shared.
* layout.cc (Layout::finish_dynamic_section): Implement -f/-F.
Ian Lance Taylor [Sun, 3 Jul 2011 04:16:13 +0000 (04:16 +0000)]
* dirsearch.cc (Dir_cache::read_files): Ignore ENOTDIR errors.
Alan Modra [Sun, 3 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Sun, 3 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Jan Kratochvil [Sat, 2 Jul 2011 15:13:13 +0000 (15:13 +0000)]
gdb/testsuite/
* gdb.cp/m-static.exp: Call get_compiler_info.
(static const int initialized nowhere): Call setup_xfail for gcc <= 4.4.
* gdb.cp/pr9167.exp (p b): Likewise.
* gdb.cp/temargs.exp: Do not set have_pr_45024_fixed for gcc 4.6.
(test value of P in inner_m, test type of Z in inner_m): Call
setup_xfail for gcc <= 4.5.
Jan Kratochvil [Sat, 2 Jul 2011 12:08:44 +0000 (12:08 +0000)]
gdb/testsuite/
* gdb.cp/m-static.exp: Call get_compiler_info.
(static const int initialized nowhere): Call setup_xfail for gcc<=4.4.
Ian Lance Taylor [Sat, 2 Jul 2011 05:30:00 +0000 (05:30 +0000)]
PR gold/12525
PR gold/12952
* resolve.cc (Symbol::override_base_with_special): Don't override
the version if the overriding symbol has a different name.
* dynobj.cc (Versions::add_def): Add dynpool parameter. Change
all callers. If we give an error about an undefined version,
define the base version if necessary.
* dynobj.h (class Versions): Update declaration.
* testsuite/weak_alias_test_5.cc: New file.
* testsuite/weak_alias_test.script: New file.
* testsuite/weak_alias_test_main.cc: Check that versioned_symbol
and versioned_alias have the right value, and call t2.
* testsuite/Makefile.am (weak_alias_test_DEPENDENCIES): Add
weak_alias_test_5.so.
(weak_alias_test_LDADD): Likewise.
(weak_alias_test_5_pic.o, weak_alias_test_5.so): New targets.
* testsuite/Makefile.in: Rebuild.
Ian Lance Taylor [Sat, 2 Jul 2011 04:50:13 +0000 (04:50 +0000)]
* dwarf.h (enum DW_CFA): Define.
Ian Lance Taylor [Sat, 2 Jul 2011 00:39:13 +0000 (00:39 +0000)]
PR gold/12525
* options.h (class General_options): Support -z notext.
* testsuite/Makefile.am (two_file_shared_1_nonpic.so): Use
-Wl,-z,notext.
(two_file_shared_nonpic.so): Likewise.
(two_file_shared_mixed.so): Likewise.
(two_file_shared_mixed_1.so): Likewise.
(weak_undef_lib_nonpic.so): Likewise.
(alt/weak_undef_lib_nonpic.so): Likewise.
(tls_test_shared_nonpic.so): Likewise.
* testsuite/Makefile.in: Rebuild.
Ian Lance Taylor [Sat, 2 Jul 2011 00:31:35 +0000 (00:31 +0000)]
Correct last commit.
Ian Lance Taylor [Sat, 2 Jul 2011 00:19:04 +0000 (00:19 +0000)]
PR gold/12525
* configure.ac: Test whether static linking works, setting
the automake conditional HAVE_STATIC.
* testsuite/Makefile.am: Disable tests using -static if
HAVE_STATIC is not true.
* configure, testsuite/Makefile.in: Rebuild.
Ian Lance Taylor [Sat, 2 Jul 2011 00:03:25 +0000 (00:03 +0000)]
PR gold/12525
* ehframe.cc (Eh_frame_hdr::get_fde_pc): Handle DW_EH_PE_datarel.
Assert if we see DW_EH_PE_indirect.
* target.h (Target::ehframe_datarel_base): New function.
(Target::do_ehframe_datarel_base): New target function.
* i386.cc (Target_i386::do_ehframe_datarel_base): New function.
* x86_64.cc (Target_x86_64::do_ehframe_datarel_base): New
function.
Alan Modra [Sat, 2 Jul 2011 00:00:06 +0000 (00:00 +0000)]
daily update
gdbadmin [Sat, 2 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Ian Lance Taylor [Fri, 1 Jul 2011 22:54:04 +0000 (22:54 +0000)]
Correct comment in last commit.
Ian Lance Taylor [Fri, 1 Jul 2011 22:14:56 +0000 (22:14 +0000)]
* elf32-i386.c (elf_i386_eh_frame_plt): Correct expression: change
DW_OP_lit3 to DW_OP_lit2.
Ian Lance Taylor [Fri, 1 Jul 2011 22:05:01 +0000 (22:05 +0000)]
PR gold/12571
* options.h (class General_options): Add
--ld-generated-unwind-info.
* ehframe.cc (Fde::write): Add address parameter. Change all
callers. If associated with PLT, fill in address and size.
(Cie::set_output_offset): Only add merge mapping if there is an
object.
(Cie::write): Add address parameter. Change all callers.
(Eh_frame::add_ehframe_for_plt): New function.
* ehframe.h (class Fde): Update declarations. Move shndx_ and
input_offset_ fields into union u_, with new plt field.
(Fde::Fde): Adjust for new union field.
(Fde::Fde) [Output_data version]: New constructor.
(Fde::add_mapping): Only add merge mapping if there is an object.
(class Cie): Update declarations.
(class Eh_frame): Declare add_ehframe_for_plt.
* layout.cc (Layout::layout_eh_frame): Break out code into
make_eh_frame_section, and call it.
(Layout::make_eh_frame_section): New function.
(Layout::add_eh_frame_for_plt): New function.
* layout.h (class Layout): Update declarations.
* merge.cc (Merge_map::add_mapping): Add assertion.
* i386.cc: Include "dwarf.h".
(class Output_data_plt_i386): Make first_plt_entry,
dyn_first_plt_entry, exec_plt_entry, and dyn_plt_entry const. Add
plt_eh_frame_cie_size, plt_eh_frame_fde_size, plt_eh_frame_cie,
and plt_eh_frame_fde.
(Output_data_plt_i386::Output_data_plt_i386): Align to 16-byte
boundary. Call add_eh_frame_for_plt if appropriate.
* x86_64.cc: Include "dwarf.h".
(class Output_data_plt_x86_64): Align to 16-byte boundary. Make
first_plt_entry, plt_entry and tlsdesc_plt_entry const. Add
plt_eh_frame_cie_size, plt_eh_frame_fde_size, plt_eh_frame_cie,
and plt_eh_frame_fde.
(Output_data_plt_x86_64::init): Call add_eh_frame_for_plt if
appropriate.
Mike Frysinger [Fri, 1 Jul 2011 21:53:03 +0000 (21:53 +0000)]
sim: bfin: implement stat_map for virtual environments (libgloss)
The stat syscalls cannot work without a stat map, so declare one that
matches libgloss for virtual environments.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Jan Kratochvil [Fri, 1 Jul 2011 20:27:59 +0000 (20:27 +0000)]
gdb/
* linespec.c (find_method): Accept the function type automatically only
if it was specified with parameter types.
gdb/testsuite/
* gdb.cp/paren-type.cc: New files.
* gdb.cp/paren-type.exp: New files.
Jan Kratochvil [Fri, 1 Jul 2011 20:19:04 +0000 (20:19 +0000)]
gdb/
Stop on first linespec terminator instead of eating what we can.
* linespec.c (is_linespec_boundary): New function.
(name_end): Remove function.
(keep_name_info): New parameter on_boundary, replace the body.
(decode_line_1): Provide the parameter to keep_name_info.
(decode_compound): Likewise. Drop the trailing java return type
handling. Twice.
gdb/testsuite/
Stop on first linespec terminator instead of eating what we can.
* gdb.cp/minsym-fallback-main.cc (main): Call also C::operator ().
* gdb.cp/minsym-fallback.cc (C::operator ()): Define.
* gdb.cp/minsym-fallback.exp (break 'C::f()'): Change to ...
(break C::f()): ... this one.
(break C::operator()()): New test.
* gdb.cp/minsym-fallback.h (C::operator ()): Declare.
* gdb.java/jmisc.exp (break jmisc.main(java.lang.String[])int): New
test.
Jan Kratochvil [Fri, 1 Jul 2011 20:16:39 +0000 (20:16 +0000)]
gdb/
Fall back linespec to minimal symbols.
* linespec.c (decode_line_1): New variable ex, saved_argptr. Protect
decode_compound by TRY_CATCH, fall back on minsyms if it failed.
(find_method, symbol_found): Change error to cplusplus_error.
gdb/testsuite/
Fall back linespec to minimal symbols.
* gdb.base/psymtab.exp (Don't search past end of psymtab.): Update the
error message.
* gdb.cp/cplusfuncs.exp (list foo::operator int*): Likewise.
* gdb.cp/minsym-fallback-main.cc: New file.
* gdb.cp/minsym-fallback.cc: New file.
* gdb.cp/minsym-fallback.exp: New file.
* gdb.cp/minsym-fallback.h: New file.
Jan Kratochvil [Fri, 1 Jul 2011 19:19:13 +0000 (19:19 +0000)]
gdb/Changelog fix:
* symtab.c (symbol_find_demangled_name): Remove DMGL_VERBOSE.
Jan Kratochvil [Fri, 1 Jul 2011 19:18:36 +0000 (19:18 +0000)]
gdb/
* symtab.c (symbol_find_demangled_name): Likewise.
gdb/testsuite/
* gdb.cp/no-dmgl-verbose.cc: New file.
* gdb.cp/no-dmgl-verbose.exp: New file.
Jan Kratochvil [Fri, 1 Jul 2011 19:12:12 +0000 (19:12 +0000)]
gdb/
* dwarf2read.c (check_physname): New variable.
(dwarf2_physname): Prefer DW_AT_linkage_name over dwarf2_compute_name.
(show_check_physname): New function.
(_initialize_dwarf2_read): Add `check-physname' for check_physname.
gdb/doc/
* gdb.texinfo (Debugging Output): Document set debug
check-physname.
gdb/testsuite/
* gdb.base/break-interp.exp (reach_1, test_ld): Allow also the prefix
__GI_.
* gdb.cp/psymtab-parameter.cc (func): Make it a template function.
(f): New function.
* gdb.cp/psymtab-parameter.exp (complete break 'func(): Rename to ...
(complete p 'func<short>(): ... here.
* gdb.dwarf2/dw2-linkage-name-trust-main.cc: New file.
* gdb.dwarf2/dw2-linkage-name-trust.S: New file.
* gdb.dwarf2/dw2-linkage-name-trust.exp: New file.
* gdb.cp/temargs.exp (test type of F in k3_m, test value of F in k3_m):
Make them KFAIL gcc/49546.
Joel Brobecker [Fri, 1 Jul 2011 18:36:45 +0000 (18:36 +0000)]
remove comment in machoread.c (macho_symfile_read)
Does not seem to be applicable to the current code anymore.
gdb/ChangeLog:
* machoread.c (macho_symfile_read): Delete OBE comment.
Joel Brobecker [Fri, 1 Jul 2011 18:36:36 +0000 (18:36 +0000)]
[mach-o] get rid of current_oso global
This current_oso global was used to store the OSO's symbol table
in order to relocate common symbols. But it is also making the
assumption that all sections are going to be immediately relocated
as macho_add_oso_symfile does:
- Initialize the current_oso
- Use it through symbol_file_add_from_bfd
- Reset the current_oso (to all fields NULL)
What actually happens is that the .debug_frame section gets read
lazily, and thus relocated at a later time. This relocation causes
current_oso.symbol_table to be initialized (see macho_symfile_relocate)
again. And this eventually causes to trip the...
gdb_assert (current_oso.symbol_table == NULL);
...assertion to fail because the symbol_table was never free'ed.
To be complete, this happens because macho_symfile_relocate was
called outside of macho_add_oso_symfile's control, where the
set-global/use/unset-global dance happens.
But it looks like keeping this global around is not necessary, as
this symbol table is only used to relocate the common symbols.
We can do that prior to relocating the rest of the symbols.
gdb/ChangeLog:
* machoread.c (struct macho_oso_data): Delete.
(current_oso): Delete.
(macho_relocate_common_syms): New function, mostly extracted
out of
(macho_add_oso_symfile): Call macho_relocate_common_syms.
Remove code that sets and unset current_oso.
(macho_symfile_relocate): Delete handling of common symbols,
now moved to macho_relocate_common_syms.
Joel Brobecker [Fri, 1 Jul 2011 18:36:28 +0000 (18:36 +0000)]
[Darwin] Do not crash (failed assertion) after PT_KILL ptrace error
It might not be a debugger bug that caused the PT_KILL ptrace operation
to fail. So emit a warning instead, and try to continue.
This patch also tries to handle the case where ptrace return -1,
but left errno set to zero. According to the ptrace man page,
it is possible for some ptrace operations to return -1 in non-error
situations, and to detect those situations, it explains that errno
should be set prior to calling ptrace, and then checked again after.
gdb/ChangeLog:
* darwin-nat.c (darwin_ptrace): Add documentation.
Set errno to zero before calling ptrace. If ptrace returns
-1 and errno is zero, then change then return zero.
(darwin_kill_inferior): Issue a warning instead of triggering
a failed assertion when the PT_KILL ptrace operations returned
nonzero.
Joel Brobecker [Fri, 1 Jul 2011 18:36:12 +0000 (18:36 +0000)]
Darwin/detach: Do not resume inferior after ptrace detach
When trying to detach from an inferior that we start from the debugger,
GDB prints the following warning:
(gdb) detach
Detaching from program: /[...]/foo, process 74593
warning: Mach error at "/[...]/darwin-nat.c:445" in function "darwin_resume_inferior": (os/kern) failure (0x5)
The warning comes from the following code in darwin_detach:
darwin_resume_inferior (inf);
This is because the process has already been resumed by the
PT_DETACH ptrace operation that has just been performed.
On the other hand, when trying to detach from an inferior that
was started outside of debugger control (thus after having attached
the debugger to that inferior), things go smoothly. That's because
we don't use ptrace to control the process in that case, and so
the resume is perfectly justified.
This patch makes sure that we resume the inferior during the detach
only when we're NOT using ptrace.
gdb/ChangeLog:
* darwin-nat.c (darwin_detach): Call darwin_resume_inferior
only when inf->private->no_ptrace.
Joel Brobecker [Fri, 1 Jul 2011 18:35:36 +0000 (18:35 +0000)]
bettter display for temporary Ada exception catchpoints
Temporary catchpoints on Ada exceptions are now displayed as "Temporary
catchpoint" as opposed to just "Catchpoint". This is cosmetic only, but
in line with what's done for other catchpoints as well as breakpoints.
gdb/ChangeLog:
* ada-lang.c (print_it_exception): Print temporary catchpoints
as "Temporary catchpoint".
(print_mention_exception): Likewise.
gdb/testsuite/ChangeLog:
* gdb.ada/catch_ex.exp: Add temporary catchpoint tests.
Jan Kratochvil [Fri, 1 Jul 2011 18:32:06 +0000 (18:32 +0000)]
gdb/testsuite/
Test GCC PR debug/49546.
* gdb.cp/temargs.exp (set sixth breakpoint for temargs)
(test type of F in k3_m, test value of F in k3_m): New.
* gdb.cp/temargs.cc (struct S3, struct K3): New.
(main): New variable k3. Call k3.k3_m.
Tom Tromey [Fri, 1 Jul 2011 18:28:52 +0000 (18:28 +0000)]
* jv-lang.c (java_language_defn): Use java_printchar,
java_printstr.
(java_get_encoding): New function.
(java_emit_char): Use generic_emit_char.
(java_printchar): New function.
(java_printstr): Likewise.
Joel Brobecker [Fri, 1 Jul 2011 18:27:35 +0000 (18:27 +0000)]
crash when printing type of tagged type
If the debugging info is incorrect or incomplete, printing the
type description of a variable that's a variant tagged type can
trigger a crash. The crash comes from us trying print a NULL
string which was supposed to be the parent type name.
We observed this behavior on bareboard targets where a-tags is
not always linked in, as is the case for native platforms, for
instance. Coupled with -feliminate-unused-debug-types, this leads
to GDB being unable to find type ada__tags__type_specific_data,
without which printing the type description above cannot be done
acurately. There is an easy workaround for this limitation,
which is to compile at least 1 unit with
-fno-eliminate-unused-debug-types, but GDB should also be made
resilient to this situation.
gdb/ChangeLog:
* ada-typeprint.c (print_record_type): If unable to decode
the name of the parent type, use the encoded name.
Joel Brobecker [Fri, 1 Jul 2011 18:27:25 +0000 (18:27 +0000)]
Fix printing address of packed array
When trying to print the address of a non-packed array, GDB
correctly prints the type name and address:
(gdb) print &var
$2 = (access pa.var) 0xbffff1d8
However, it is behaving differently when dealing with a packed
array:
(gdb) p &var
(access array (4 .. 8) of boolean <packed: 1-bit elements>) (4 =>
false, false, false, true, false)
The type description isn't all that bad, but GDB shouldn't be
printing the array value!
This patch fixes the `print` and `ptype` command on packed and
non-packed array. It also fixes a gdb.ada test to match with
the new ouput.
gdb/ChangeLog (Jean-Charles Delay):
* ada-typeprint.c (ada_print_type): Fix both PAD type and
pointer to constrained packed array type output.
* ada-valprint.c (ada_val_print_1): Fix pointer to constrained
packed array output.
gdb/testsuite/ChangeLog (Jean-Charles Delay):
* gdb.ada/packed_array.exp: Fix expected outout.
Joel Brobecker [Fri, 1 Jul 2011 18:27:12 +0000 (18:27 +0000)]
Fix ada array bounds display
Array bounds were not correctly displayed when the SHOW parameter of
print_type functions is set to -1. This shows up in the following
type of situation, where we have a declaration as follow:
Anon_Array_Int_Obj : array (1..10) of Integer := (others => 8);
In GDB/MI mode, trying to print the type info for our array object
yields:
(gdb) -var-create ai 0 Anon_Array_Int_Obj
(gdb) -var-info-type ai
^done,type="array (...) of integer"
The actual bounds are missing. Contrast this with what happens
when in GDB/CLI mode:
(gdb) ptype Anon_Array_Int_Obj
type = array (1 .. 10) of integer
This patch fixes array type printing accordingly. And as it turns
out, it also improves the output for one of the tests already present,
so it shows that it's not just the GDB/MI mode that's affected.
gdb/ChangeLog (Jean-Charles Delay):
* ada-typeprint.c (print_array_type): removed if condition on show
being negative for bounds printing.
gdb/testsuite/ChangeLog (Jean-Charles Delay):
* gdb.ada/packed_array.exp: fixed expected output.
Joel Brobecker [Fri, 1 Jul 2011 18:26:50 +0000 (18:26 +0000)]
treat identical enum types as the same type
This is to avoid an unnecessary multiple-choice menu for an
expression involving an enumeral declared in two types, when
the second type is an identical copy of the first type. This
happens in the following situation:
type Color is (Black, Red, Green, Blue, White);
type RGB_Color is new Color range Red .. Blue;
In that case, an implict type is created, and is used as the base
type for type RGB_Color. This base type is a copy of type Color.
We've added some extensive comments explaining the situation and
our approach further.
gdb/ChangeLog:
* ada-lang.c (ada_identical_enum_types_p): New function.
(symbols_are_identical_enums): New function.
(remove_extra_symbols): Do nothing if NSYMS < 2.
Use symbols_are_identical_enums.
gdb/testsuite/ChangeLog:
* gdb.ada/same_enum: New testcase.
Joel Brobecker [Fri, 1 Jul 2011 18:26:22 +0000 (18:26 +0000)]
missing type description for typedef to pointer value
If we evaluate an expression that results in a value that is a typedef
to pointer, then the debugger fails to print the type description
before printing the actual value:
(gdb) print e.plan(1)
$1 = 0x0
The expected output is:
(gdb) print e.plan(1)
$1 = (access integer) 0x0
gdb/ChangeLog:
* ada-valprint.c (ada_value_print): Handle typedefs.
gdb/testsuite/ChangeLog:
* gdb.ada/ptr_typedef: New testcase.
Joel Brobecker [Fri, 1 Jul 2011 18:25:59 +0000 (18:25 +0000)]
Add missing word in comment (ada-lang.c)
gdb/ChangeLog:
* ada-lang.c (ada_evaluate_subexp): Add missing word in comment.
Joel Brobecker [Fri, 1 Jul 2011 18:25:49 +0000 (18:25 +0000)]
variables whose type is a typedef to an array pointer
If we declare a type as being an access to array type, and then
declare a variable of that type, for instance:
type Some_Array is array [...];
type Array_Access is access all Some_Array;
Table : Array_Access := [...];
The variable "Table" may be defined in the debugging information
as being a typedef to the array pointer type. In the past, it was
defined directly as the array pointer type, but this has been changed
to make sure that the typedef type gets used.
If the typedef type wasn't used, it would allow the compiler to stop
emitting that typedef type when compiling with
-feliminate-unused-debug-types. The removal of this typedef would
be a problem, because GDB relies on the typedef to create symbols
for pointer types, and without it, we would no longer be able to
do "ptype array_access".
This patch helps prevent incorrect output or even crashes when that
extra typedef layer is used.
The testing is already mostly covered by arrayptr.exp, but I still
added a 'ptype' test, just for good measure.
gdb/ChangeLog: (Eric Botcazou)
* ada-lang.c (thin_descriptor_type): Deal with typedefs.
(decode_constrained_packed_array): Likewise.
(ada_evaluate_subexp) <TERNOP_SLICE>: Likewise.
gdb/testsuite/ChangeLog (Joel Brobecker):
* gdb.ada/arrayptr.exp: Add ptype test.
Joel Brobecker [Fri, 1 Jul 2011 18:25:33 +0000 (18:25 +0000)]
Fix date in testsuite/ChangeLog entry.
Joel Brobecker [Fri, 1 Jul 2011 18:25:17 +0000 (18:25 +0000)]
handle character-based enumeration typedefs
Consider the following type:
type Char_Enum_Type is ('A', 'B', 'C', 'D');
If the compiler generates a Char_Enum_Type typedef in the debugging
information, the debugger fails in the following case:
(gdb) p Char_Enum_Type'('B')
$1 = 66
For our type, the underlying value of 'B' is actually 1, not 66
(ASCII 'B'). We are failing this case because we were not handling
typedef to enum types before. This patch fixes this.
gdb/ChangeLog:
* ada-exp.y (convert_char_literal): Handle typedef types.
gdb/testsuite/ChangeLog:
* gdb.ada/char_enum: New testcase.
Joel Brobecker [Fri, 1 Jul 2011 18:24:52 +0000 (18:24 +0000)]
Document ada_remove_trailing_digits more
gdb/ChangeLog:
* ada-lang.c (ada_remove_trailing_digits): Expand documentation.
Joel Brobecker [Fri, 1 Jul 2011 18:24:39 +0000 (18:24 +0000)]
[libiberty/filename_cmp] Darwin has case-insensitive filesystems
include/ChangeLog:
* filenames.h (HAVE_CASE_INSENSITIVE_FILE_SYSTEM): Define
on Darwin, as well as on the systems that use a DOS-like
filesystem.
libiberty/ChangeLog:
* filename_cmp.c (filename_cmp, filename_ncmp): Add handling of
HAVE_CASE_INSENSITIVE_FILE_SYSTEM.
Jan Kratochvil [Fri, 1 Jul 2011 17:30:48 +0000 (17:30 +0000)]
merge from gcc
libiberty/
PR debug/49408
* cp-demangle.c (d_print_comp): Suppress argument list for function
references by the '&' unary operator. Keep also already processed
variant without the argument list. Suppress argument list types for
function call used in an expression.
* testsuite/demangle-expected: Fix excessive argument list types in
`test for typed function in decltype'. New testcase for no argument
list types printed. 3 new testcases for function references by the
'&' unary operator..
Eric B. Weddington [Fri, 1 Jul 2011 17:14:03 +0000 (17:14 +0000)]
2011-07-01 Eric B. Weddington <eric.weddington@atmel.com>
* avr.h (AVR_ISA_AVR6): Remove AVR_ISA_SPMX as it was actually
a duplicate of AVR_ISA_SPM.
Yao Qi [Fri, 1 Jul 2011 16:42:42 +0000 (16:42 +0000)]
2011-07-02 Yao Qi <yao@codesourcery.com>
* gdb.base/dump.exp (capture_pointer_with_type): New.
Get value from address instead of name.
Start GDB once, and do `dump' and `restore'
tests together.
Nick Clifton [Fri, 1 Jul 2011 16:11:27 +0000 (16:11 +0000)]
PR binutils/12329
* avr-dis.c (avr_operand): Fix disassembly of ELPM, LPM and SPM
insns using post-increment addressing.
* avr.h (AVR_ISA_AVR6): Fix typo, adding AVR_ISA_SPMX.
Nick Clifton [Fri, 1 Jul 2011 15:02:21 +0000 (15:02 +0000)]
PR binutils/12325
* doc/binutils.texi (ar cmdline): Document --target, --version and
--help command line options.
Nick Clifton [Fri, 1 Jul 2011 12:15:17 +0000 (12:15 +0000)]
PR sim/12737
* sim/arm/iwmmxt/wcmpgt.cgs: Remove expectation of failure.
* sim/arm/iwmmxt/wmac.cgs: Remove expectation of failure.
* sim/arm/iwmmxt/wsra.cgs: Remove expectation of failure.
* sim/arm/xscale/blx.cgs: Remove expectation of failure.
Nick Clifton [Fri, 1 Jul 2011 12:12:16 +0000 (12:12 +0000)]
PR sim/12737
* iwmmxt.c (WCMPGT): Sign extend 32-bit values before performing a
signed compare.
(WMAC): Extend computed result before adding to result register.
(WRSA): Sign extend 32-bit values before shifting.
Alan Modra [Fri, 1 Jul 2011 07:49:08 +0000 (07:49 +0000)]
* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Don't look at
dyn relocs when called to copy flags for a weak sym.
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
(ppc64_elf_merge_private_bfd_data): Delete.
(bfd_elf64_bfd_merge_private_bfd_data): Define as
_bfd_generic_verify_endian_match.
H.J. Lu [Fri, 1 Jul 2011 01:34:35 +0000 (01:34 +0000)]
Update rorxS.
2011-06-30 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (vex_len_table): Update rorxS.
Mike Frysinger [Fri, 1 Jul 2011 00:19:25 +0000 (00:19 +0000)]
gdb: tests: set remotetimeout to gdb_load_timeout for remote targets
Rather than relying on the default remotetimeout value (which might be
too small for some slower devices), use the existing gdb_load_timeout
config option to set it.
This adds two new helpers for getting/setting the remotetimout to keep
the new logic simple.
Signed-off-by: Jie Zhang <jie.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
gdbadmin [Fri, 1 Jul 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 1 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update
Bernd Schmidt [Thu, 30 Jun 2011 21:41:05 +0000 (21:41 +0000)]
* binutils-all/objcopy.exp (strip_test, strip_executable):
On ELF targets, test that OS/ABI is preserved.
(copy_setup): Do test on tic6x-*-uclinux.
Bernd Schmidt [Thu, 30 Jun 2011 21:36:09 +0000 (21:36 +0000)]
* bfd/elf32-tic6x.c (elf32_tic6x_set_osabi): Also set it if
link_info is NULL.
Tom Tromey [Thu, 30 Jun 2011 19:29:55 +0000 (19:29 +0000)]
* varobj.c (varobj_create): Call do_cleanups on early exit path.
* valops.c (find_overload_match): Call do_cleanups on early exit
path.
* solib.c (solib_find): Call do_cleanups on early exit path.
Tom Tromey [Thu, 30 Jun 2011 18:48:19 +0000 (18:48 +0000)]
* symfile-mem.c (symbol_file_add_from_memory): Call do_cleanups.
* solib-svr4.c (open_symbol_file_object): Call do_cleanups on all
return paths. Defer final do_cleanups until last return.
* arm-tdep.c (arm_exidx_new_objfile): Make null cleanup after
early return.
Tom Tromey [Thu, 30 Jun 2011 17:01:29 +0000 (17:01 +0000)]
* Makefile.in (SUBDIR_MI_CFLAGS): Don't add -DMI_OUT=1.
H.J. Lu [Thu, 30 Jun 2011 15:44:55 +0000 (15:44 +0000)]
Fix rorx in BMI2.
gas/testsuite/
2011-06-30 H.J. Lu <hongjiu.lu@intel.com>
AVX Programming Reference (June, 2011)
* gas/i386/bmi2.s: Correct rorx tests.
* gas/i386/x86-64-bmi2.s: Likewise.
* gas/i386/bmi2-intel.d: Updated.
* gas/i386/bmi2.d: Likewise.
* gas/i386/x86-64-bmi2-intel.d: Likewise.
* gas/i386/x86-64-bmi2.d: Likewise.
opcodes/
2011-06-30 H.J. Lu <hongjiu.lu@intel.com>
AVX Programming Reference (June, 2011)
* i386-dis.c (vex_len_table): Correct rorxS.
* i386-opc.tbl: Correct rorx.
* i386-tbl.h: Regenerated.
Nick Clifton [Thu, 30 Jun 2011 15:08:17 +0000 (15:08 +0000)]
PR binutils/12558
* ar.c (main): When asked to move members in an archive that is
being created, ignore the move request.
Nick Clifton [Thu, 30 Jun 2011 13:42:46 +0000 (13:42 +0000)]
* gas/arm/addthumb2err.s: New test file.
* gas/arm/addthumb2err.d: Test control file.
* gas/arm/addthumb2err.l: Expected error messages.
* config/tc-arm.c (do_t_add_sub): Only allow LSL shifts of less
than 4 in Thumb mode.
Nick Clifton [Thu, 30 Jun 2011 13:07:21 +0000 (13:07 +0000)]
PR gas/12931
* gas/arm/blx-bad.d: Add exrta nop at end of disassembly.
* gas/arm/inst-po-be.d: Add exrta nop at end of disassembly.
* gas/arm/inst-po.d: Add exrta nop at end of disassembly.
Nick Clifton [Thu, 30 Jun 2011 13:05:04 +0000 (13:05 +0000)]
PR 12848
* gas/arm/thumb-b-bad.s: New test.
* gas/arm/thumb-b-bad.d: Test control file.
* gas/arm/thumb-b-bad.l: Expected error output.
Nick Clifton [Thu, 30 Jun 2011 12:52:58 +0000 (12:52 +0000)]
PR gas/12848
* config/tc-arm.c (BAD_RANGE): New error message define.
(md_apply_fix): Use it.
Fix range check for thumb branch instructions.
Andrew Burgess [Thu, 30 Jun 2011 09:00:54 +0000 (09:00 +0000)]
sourceware.org/ml/gdb-patches/2011-06/msg00444.html
Add myself to the write after approval list.
Andrew Burgess [Thu, 30 Jun 2011 08:53:38 +0000 (08:53 +0000)]
sourceware.org/ml/gdb-patches/2011-06/msg00442.html
Don't compile c++ tests for platforms that don't support c++.
Ian Lance Taylor [Thu, 30 Jun 2011 00:50:13 +0000 (00:50 +0000)]
PR gold/12629
* object.cc (Sized_relobj_file::layout_section): Change shdr
parameter to be const.
(Sized_relobj_file::layout_eh_frame_section): New function, broken
out of do_layout.
(Sized_relobj_file::do_layout): Defer .eh_frame sections if
appropriate. Call layout_eh_frame_section.
(Sized_relobj_file::do_layout_deferred_sections): Handle .eh_frame
sections.
* object.h (class Sized_relobj_file): Update declarations.
gdbadmin [Thu, 30 Jun 2011 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 30 Jun 2011 00:00:05 +0000 (00:00 +0000)]
daily update
Jan Kratochvil [Wed, 29 Jun 2011 22:19:24 +0000 (22:19 +0000)]
gdb/
Disable epilogue unwinders on recent GCCs.
* amd64-tdep.c (amd64_in_function_epilogue_p): New variable symtab,
initialize it, return 0 on EPILOGUE_UNWIND_VALID.
* dwarf2read.c (process_full_comp_unit): Initialize
EPILOGUE_UNWIND_VALID.
* i386-tdep.c (i386_in_function_epilogue_p): New variable symtab,
initialize it, return 0 on EPILOGUE_UNWIND_VALID.
* symtab.h (struct symtab): New field epilogue_unwind_valid.
Jan Kratochvil [Wed, 29 Jun 2011 22:17:57 +0000 (22:17 +0000)]
gdb/
Code cleanup - reformatting.
* dwarf2read.c (producer_is_gcc_ge_4_0): Rename to ...
(producer_is_gcc_ge_4): ... here, change the return value.
(process_full_comp_unit): New variable gcc_4_minor, adjust the value
interpretation.
Jan Kratochvil [Wed, 29 Jun 2011 22:05:16 +0000 (22:05 +0000)]
gdb/
Fix non-only rename list for Fortran modules import.
* cp-namespace.c (cp_scan_for_anonymous_namespaces): Adjust the
cp_add_using_directive caller.
(cp_add_using_directive): New parameter excludes, describe it. New
variables ix and param. Compare if also excludes match. Allocate NEW
with variable size, initialize EXCLUDES there.
(cp_lookup_symbol_imports): New variable excludep, test
current->EXCLUDES with it.
* cp-support.h: Include vec.h.
(struct using_direct): New field excludes, describe it.
(DEF_VEC_P (const_char_ptr)): New.
(cp_add_using_directive): New parameter excludes.
* defs.h (const_char_ptr): New typedef.
* dwarf2read.c (read_import_statement): New variables child_die,
excludes and cleanups, read in excludes.
(read_namespace): Adjust the cp_add_using_directive caller.
gdb/testsuite/
Fix non-only rename list for Fortran modules import.
* gdb.fortran/module.exp (print var_x, print var_y, print var_z): New
tests.
* gdb.fortran/module.f90 (module moduse): New.
(program module): use moduse, test var_x, var_y and var_z.
Jan Kratochvil [Wed, 29 Jun 2011 22:02:58 +0000 (22:02 +0000)]
gdb/
Code cleanup.
* cp-namespace.c (cp_add_using_directive): Turn positive comparison to
negative comparisons.
Ian Lance Taylor [Wed, 29 Jun 2011 21:57:51 +0000 (21:57 +0000)]
* script.cc (Token::integer_value): Accept trailing M/m/K/k
modifier.
(Lex::gather_token): Accept trailing M/m/K/k for integers.
Ian Lance Taylor [Wed, 29 Jun 2011 21:57:13 +0000 (21:57 +0000)]
* script.cc (Token::integer_value): Accept trailing M/m/K/k
modifier.
(Lex::gather_token): Accept trailing M/m/K/k for integers.
Ian Lance Taylor [Wed, 29 Jun 2011 21:39:19 +0000 (21:39 +0000)]
PR gold/12675
* object.cc (Sized_relobj_file::check_eh_frame_flags): Check for
SHT_X86_64_UNWIND.
* layout.cc (Layout::layout_eh_frame): Likewise.
Ian Lance Taylor [Wed, 29 Jun 2011 21:26:40 +0000 (21:26 +0000)]
PR gold/12695
* layout.cc (Layout::symtab_section_shndx): New function.
* layout.h (class Layout): Declare symtab_section_shndx.
* output.cc (Output_section::write_header): Call it.
Richard Sandiford [Wed, 29 Jun 2011 21:05:29 +0000 (21:05 +0000)]
gas/
* config/tc-mips.c (append_method): New enum.
(can_swap_branch_p, get_append_method): New functions.
(append_insn): Use get_append_method to decide how the instruction
should be added.
Jan Kratochvil [Wed, 29 Jun 2011 20:51:10 +0000 (20:51 +0000)]
readline/
Avoid free from a signal handler.
* Makefile.in (xfree.o): Add readline.h.
* xfree.c: Include stdio.h and readline.h.
(xfree): Return on RL_STATE_SIGHANDLER.
* xmalloc.h (xfree): New definition.
Richard Sandiford [Wed, 29 Jun 2011 20:48:10 +0000 (20:48 +0000)]
gas/
* config/tc-mips.c (append_insn): Remove bogus goto.
H.J. Lu [Wed, 29 Jun 2011 20:46:11 +0000 (20:46 +0000)]
Replace "index" with "i".
2011-06-29 H.J. Lu <hongjiu.lu@intel.com>
* tilegx-opc.c (find_opcode): Replace "index" with "i".
* tilepro-opc.c (find_opcode): Likewise.
Richard Sandiford [Wed, 29 Jun 2011 20:46:10 +0000 (20:46 +0000)]
gas/
* config/tc-mips.c (append_insn): Always clear the history after an
unconditional branch.
Richard Sandiford [Wed, 29 Jun 2011 20:42:48 +0000 (20:42 +0000)]
gas/
* config/tc-mips.c (find_altered_mips16_opcode): New function.
(append_insn): Use it.
opcodes/
* mips16-opc.c (jalrc, jrc): Move earlier in file.
Richard Sandiford [Wed, 29 Jun 2011 20:39:00 +0000 (20:39 +0000)]
gas/
* config/tc-mips.c (insn_uses_reg): Delete.
(gpr_read_mask, gpr_write_mask): New functions.
(fpr_read_mask, fpr_write_mask): Likewise.
(insns_between, nops_for_vr4130, append_insn): Use them.
gas/testsuite/
* gas/mips/mips16-e.d, gas/mips/mips16-f.d,
gas/mips/mipsel16-e.d, gas/mips/mipsel16-f.d,
gas/mips/tmips16-e.d, gas/mips/tmips16-f.d,
gas/mips/tmipsel16-e.d, gas/mips/tmipsel16-f.d: Fix GPR mask.
* gas/mips/reginfo-1.s, gas/mips/reginfo-1a.d,
gas/mips/reginfo-1b.d: New tests.
* gas/mips/mips.exp: Run them.
Richard Sandiford [Wed, 29 Jun 2011 20:35:05 +0000 (20:35 +0000)]
gas/
* config/tc-mips.c (md_mips_end): Call mips_emit_delays.
gas/testsuite/
* gas/mips/24k-triple-stores-9.d: Add -z to dump options and
explicitly match one nop.
* gas/mips/24k-triple-stores-10.d: Likewise.
* gas/mips/24k-triple-stores-11.d: Likewise.
* gas/mips/lifloat.d: Likewise.
* gas/mips/trunc.d: Likewise 1 extra nop.
* gas/mips/vr4111.d: Likewise 2 nops.
Tom Tromey [Wed, 29 Jun 2011 17:50:47 +0000 (17:50 +0000)]
PR testsuite/12040:
* gdb.fortran/array-element.exp: Use f90, not f77.
* gdb.fortran/complex.exp: Use f90, not f77.
* gdb.fortran/derived-type.exp: Use f90, not f77.
* gdb.fortran/library-module.exp: Use f90, not f77.
* gdb.fortran/logical.exp: Use f90, not f77.
* gdb.fortran/module.exp: Use f90, not f77.
* gdb.fortran/multi-dim.exp: Use f90, not f77.
* gdb.fortran/subarray.exp: Use f90, not f77.
Tom Tromey [Wed, 29 Jun 2011 17:30:01 +0000 (17:30 +0000)]
gdb
2011-06-29 André Pönitz <andre.poenitz@nokia.com>
* mi/mi-main.c (mi_cmd_list_features): Emit
breakpoint-notifications.
gdb/doc
* gdb.texinfo (GDB/MI Miscellaneous Commands): Document
breakpoint-notifications feature.
Nick Clifton [Wed, 29 Jun 2011 16:51:37 +0000 (16:51 +0000)]
* readelf.c (get_section_type_name): When displaying an unknown
section type display the hex value first on the assumption that
the full message will probably be truncated into a 15 character
field.
Nick Clifton [Wed, 29 Jun 2011 16:29:38 +0000 (16:29 +0000)]
PR gas/12931
* config/tc-arm.c (mapping_state): When changing to ARM or THUMB
state set the minimum required alignment of the section.
Ulrich Weigand [Wed, 29 Jun 2011 16:28:22 +0000 (16:28 +0000)]
* gdb.texinfo (Target Description): Remove warning about
possibly unstable format.
Tom Tromey [Wed, 29 Jun 2011 15:32:40 +0000 (15:32 +0000)]
gdb
PR fortran/10036:
* valprint.h (generic_emit_char, generic_printstr): Declare.
* valprint.c (wchar_printable, append_string_as_wide)
(print_wchar): Move from c-lang.c.
(generic_emit_char): New function; mostly taken from c_emit_char.
(generic_printstr): New function; mostly taken from c_printstr.
* f-valprint.c (f_val_print) <TYPE_CODE_ARRAY>: Handle strings
represented as arrays.
<TYPE_CODE_CHAR>: Treat as TYPE_CODE_INT; recognize as character
type.
* f-typeprint.c (f_type_print_base) <TYPE_CODE_CHAR>: Treat
identically to TYPE_CODE_INT.
* f-lang.c (f_get_encoding): New function.
(f_emit_char): Use generic_emit_char.
(f_printchar): Replace comment.
(f_printstr): Use generic_printstr.
* dwarf2read.c (read_base_type) <DW_ATE_unsigned>: Handle Fortran
"character" types specially.
<DW_ATE_signed_char, DW_ATE_unsigned_char>: Make TYPE_CODE_CHAR
for Fortran.
* c-lang.c (wchar_printable, append_string_as_wide, print_wchar):
Move to valprint.c
(c_emit_char): Call generic_emit_char.
(c_printstr): Call generic_printstr.
gdb/testsuite
* gdb.fortran/charset.exp: New file.
* gdb.fortran/charset.f90: New file.
Gary Benson [Wed, 29 Jun 2011 15:20:34 +0000 (15:20 +0000)]
gdb/
* breakpoint.c (bpstat_what): Removed duplicated case.
Tom Tromey [Wed, 29 Jun 2011 14:44:45 +0000 (14:44 +0000)]
PR testsuite/12040:
* lib/future.exp: New file, mostly extracted from ada.exp.
Rewrote compatibility code to use rename.
(gdb_find_gfortran): New proc.
(gdb_default_target_compile): Refresh from dejagnu; plus a pending
gfortran patch.
* lib/ada.exp (gdb_find_gnatmake, gdb_default_target_compile):
Move to future.exp.
* lib/gdb.exp: Always load future.exp.