Commit Graph

88908 Commits

Author SHA1 Message Date
GDB Administrator
aec6cd371d Automatic date update in version.in 2016-11-29 00:00:22 +00:00
Andrew Burgess
268ebe9520 arc/ld: Remove duplicate TEMPLATE_NAME from emulparam file
Remove duplicate definition of TEMPLATE_NAME, only the last of these
will have any effect, so this should result in no visible changes to the
user.

ld/ChangeLog:

	* emulparams/arclinux_prof.sh: Remove duplicate TEMPLATE_NAME.
2016-11-28 22:30:17 +00:00
Nick Clifton
157686a886 Update linker tests after partial reversion of PR 20815 patch.
PR 20815
	* testsuite/ld-elf/loadaddr1.d: Update.
	* testsuite/ld-powerpc/vle-multiseg-5.d: Update.
	* testsuite/ld-scripts/phdrs3a.d: Update.
2016-11-28 17:51:57 +00:00
Nick Clifton
cd58485720 Partially revert patch for PR 20815 - do not sort the PT_LOAD segments. Non-ordered segments are needed by the Linux kernel.
PR ld/20815
	* elf.c (phdr_sorter): Delete.
	(assign_file_positions_except_relocs): Do not sort program
	headers.
2016-11-28 17:50:04 +00:00
Amit Pawar
abfcb414b9 X86: Ignore REX_B bit for 32-bit XOP instructions
While decoding 32-bit XOP instructions, 64 bit registers names are printed.
This patch fixes this by ignoring REX_B bit in 32-bit mode.

opcodes/

	PR binutils/20637
	* i386-dis.c (get_valid_dis386): Ignore REX_B for 32-bit XOP
	instructions.

gas/

	PR binutils/20637
	* testsuite/gas/i386/xop32reg.d: New file.
	* testsuite/gas/i386/xop32reg.s: New file.
	* testsuite/gas/i386/i386.exp: Run new test.
2016-11-28 09:21:05 -08:00
Yao Qi
1a08844158 Restrict checking value.lval on using address
With the previous change, value.location.address is only valid for
lval_memory.  This patch restrict some checking on value.lval on
using address.  Since we have a check on VALUE_VAL in
set_value_address, we need to set VALUE_VAL properly before
set_value_address too.

gdb:

2016-11-25  Yao Qi  <yao.qi@linaro.org>

	* ada-lang.c (ensure_lval): Call set_value_address after setting
	VALUE_LVAL.
	* elfread.c (elf_gnu_ifunc_resolve_addr): Set VALUE_LVAL to
	lval_memory.
	(elf_gnu_ifunc_resolver_return_stop): Likewise.
	* value.c (value_fn_field): Likewise.
	(value_from_contents_and_address_unresolved): Likewise.
	(value_from_contents_and_address): Likewise.
	(value_address): Check value->lval isn't
	lval_memory.
	(value_raw_address): Likewise.
	(set_value_address): Assert value->lval is lval_memory.
2016-11-28 17:09:26 +00:00
Yao Qi
7dc54575d9 Adjust Value.location for lval_register
value.regnum and value.next_frame_id are only used for lval_register,
so this patch moves them to union value.location.  As a result, when
we copy value, only copy location, don't need to copy regnum and
next_frame_id.

This patch also changes regnum's type to int as there is no space
constraint, so update deprecated_value_regnum_hack return type too.

gdb:

2016-11-28  Yao Qi  <yao.qi@linaro.org>

	* valops.c (value_slice): Don't set frame id of slice.
	* value.c (struct value) <regnum, next_frame_id>: Move them to...
	(struct value) <location>: ... here.  Update comments.
	(allocate_value_lazy): Don't set frame id and regnum.
	(deprecated_value_next_frame_id_hack): Adjust.
	(deprecated_value_regnum_hack): Adjust.
	(value_copy): Don't copy frame id and regnu.
	(value_primitive_field): Likewise.
	(value_from_component): Likewise.
	(deprecated_value_regnum_hack): Return int *.
	* value.h (deprecated_value_regnum_hack): Update declaration.
2016-11-28 17:09:26 +00:00
Yao Qi
ee40d8d452 Move computed value's frame id to piece_closure
Nowadays, we set computed value's frame id, which is a misuse to me.
The computed value itself doesn't care about frame id, but function
value_computed_funcs (val)->read (or read_pieced_value) cares about
which frame the register is relative to, so 'struct piece_closure' is
a better place to fit frame id.

This patch adds a frame id in 'struct piece_closure', and use it
instead of using computed value's frame id.

gdb:

2016-11-28  Yao Qi  <yao.qi@linaro.org>

	* dwarf2loc.c (struct piece_closure) <frame_id>: New field.
	(allocate_piece_closure): Add new parameter 'frame' and set
	closure's frame_id field accordingly.
	(read_pieced_value): Get frame from closure instead of value.
	(dwarf2_evaluate_loc_desc_full): Remove code getting frame id.
	Don't set value's frame id.
2016-11-28 17:09:26 +00:00
H.J. Lu
4deb8f714d Properly hide hidden versioned symbol in executable
A hidden versioned symbol in executable should be forced local if it is
locally defined, not referenced by shared library and not exported.  We
must do it before _bfd_elf_link_renumber_dynsyms.

bfd/

	* elflink.c (_bfd_elf_fix_symbol_flags): Hide hidden versioned
	symbol in executable.
	(elf_link_output_extsym): Don't change bind from global to
	local when linking executable.

ld/

	* testsuite/ld-elf/indirect.exp: Add a test for PR 18720.
	* testsuite/ld-elf/pr18720.rd: New file.
2016-11-28 08:03:46 -08:00
GDB Administrator
9e27646a6d Automatic date update in version.in 2016-11-28 00:00:22 +00:00
Alan Modra
ae9a1986c8 Fix powerpc vle test for sorting of program headers
1a9ccd70f changed the order of headers.

	PR 20815
	* testsuite/ld-powerpc/vle-multiseg-5.d: Update.
2016-11-27 20:19:32 +10:30
Ambrogino Modigliani
cb55e96bf7 Fix spelling in comments in .y files (ld)
* deffilep.y: Fix spelling in comments.
2016-11-27 20:19:32 +10:30
Ambrogino Modigliani
a582903f51 Fix spelling in comments in .y files (binutils)
* arparse.y: Fix spelling in comments.
2016-11-27 20:19:31 +10:30
Ambrogino Modigliani
b81c93c854 Fix spelling in comments in .sc files (ld)
* scripttempl/ia64vms.sc: Fix spelling in comments.
	* scripttempl/ip2k.sc: Fix spelling in comments.
	* scripttempl/v850.sc: Fix spelling in comments.
	* scripttempl/v850_rh850.sc: Fix spelling in comments.
2016-11-27 20:19:31 +10:30
Ambrogino Modigliani
8f02b5ad62 Fix spelling in comments in .l files (gas)
* config/bfin-lex.l: Fix spelling in comments.
2016-11-27 20:19:12 +10:30
Ambrogino Modigliani
839b0b3f8d Fix spelling in comments in .em files (ld)
* emultempl/avrelf.em: Fix spelling in comments.
	* emultempl/elf32.em: Fix spelling in comments.
	* emultempl/pe.em: Fix spelling in comments.
	* emultempl/pep.em: Fix spelling in comments.
	* emultempl/spuelf.em: Fix spelling in comments.
2016-11-27 15:09:50 +10:30
Ambrogino Modigliani
6223ef9497 Fix spelling in comments in .def files (gold)
* aarch64-reloc.def: Fix spelling in comments.
2016-11-27 15:09:18 +10:30
Ambrogino Modigliani
d14a6a9e17 Fix spelling in comments in Expect scripts (ld)
* testsuite/ld-sh/arch/arch.exp: Fix spelling in comments.
	* testsuite/ld-sh/rd-sh.exp: Fix spelling in comments.
	* testsuite/ld-sh/sh64/rd-sh64.exp: Fix spelling in comments.
	* testsuite/ld-undefined/undefined.exp: Fix spelling in comments.
2016-11-27 15:08:43 +10:30
Ambrogino Modigliani
c29ae970e7 Fix spelling in comments in Expect scripts (gas)
* testsuite/gas/all/gas.exp: Fix spelling in comments.
	* testsuite/gas/cris/cris.exp: Fix spelling in comments.
	* testsuite/gas/hppa/basic/basic.exp: Fix spelling in comments.
	* testsuite/gas/hppa/parse/parse.exp: Fix spelling in comments.
	* testsuite/gas/hppa/reloc/reloc.exp: Fix spelling in comments.
	* testsuite/gas/sh/arch/arch.exp: Fix spelling in comments.
	* testsuite/gas/tic4x/tic4x.exp: Fix spelling in comments.
2016-11-27 15:08:06 +10:30
Ambrogino Modigliani
15a086bed7 Fix spelling in comments in Assembler files (ld)
* testsuite/ld-arm/stm32l4xx-fix-all.s: Fix spelling in comments.
	* testsuite/ld-arm/thumb2-b-interwork.s: Fix spelling in comments.
	* testsuite/ld-arm/thumb2-bl.s: Fix spelling in comments.
	* testsuite/ld-s390/tlspic1.s: Fix spelling in comments.
	* testsuite/ld-s390/tlspic1_64.s: Fix spelling in comments.
	* testsuite/ld-scripts/section-match-1.d: Fix spelling in comments.
2016-11-27 15:07:26 +10:30
Ambrogino Modigliani
a40d0312ad Fix spelling in comments in Assembler files (gas)
* testsuite/gas/arm/local_function.d: Fix spelling in comments.
	* testsuite/gas/arm/req.s: Fix spelling in comments.
	* testsuite/gas/arm/vfp1.s: Fix spelling in comments.
	* testsuite/gas/arm/vfp1_t2.s: Fix spelling in comments.
	* testsuite/gas/arm/vfp1xD.s: Fix spelling in comments.
	* testsuite/gas/arm/vfp1xD_t2.s: Fix spelling in comments.
	* testsuite/gas/mcore/allinsn.s: Fix spelling in comments.
	* testsuite/gas/mips/24k-triple-stores-5.s: Fix spelling in comments.
	* testsuite/gas/mips/delay.d: Fix spelling in comments.
	* testsuite/gas/mips/nodelay.d: Fix spelling in comments.
	* testsuite/gas/mips/r5900-full.s: Fix spelling in comments.
	* testsuite/gas/mips/r5900.s: Fix spelling in comments.
2016-11-27 15:06:43 +10:30
Ambrogino Modigliani
370dfff4c4 Fix spelling in comments in C source files (ld)
* deffile.h: Fix spelling in comments.
	* ld.h: Fix spelling in comments.
	* ldlang.c: Fix spelling in comments.
	* ldmisc.c: Fix spelling in comments.
	* pe-dll.c: Fix spelling in comments.
2016-11-27 15:04:38 +10:30
Ambrogino Modigliani
576a6e4d1d Fix spelling in comments in C source files (gprof)
* basic_blocks.c: Fix spelling in comments.
	* cg_arcs.c: Fix spelling in comments.
	* cg_print.c: Fix spelling in comments.
	* corefile.c: Fix spelling in comments.
2016-11-27 15:04:01 +10:30
Ambrogino Modigliani
5c3024d2c1 Fix spelling in comments in C source files (gold)
* aarch64.cc: Fix spelling in comments.
	* arm.cc: Fix spelling in comments.
	* icf.cc: Fix spelling in comments.
	* layout.cc: Fix spelling in comments.
	* layout.h: Fix spelling in comments.
	* mips.cc: Fix spelling in comments.
	* output.h: Fix spelling in comments.
	* plugin.h: Fix spelling in comments.
	* script-sections.h: Fix spelling in comments.
	* script.h: Fix spelling in comments.
	* stringpool.h: Fix spelling in comments.
	* tilegx.cc: Fix spelling in comments.
2016-11-27 15:03:06 +10:30
Ambrogino Modigliani
2b0f37619f Fix spelling in comments in C source files (gas)
* as.h: Fix spelling in comments.
	* config/obj-ecoff.c: Fix spelling in comments.
	* config/obj-macho.c: Fix spelling in comments.
	* config/tc-aarch64.c: Fix spelling in comments.
	* config/tc-arc.c: Fix spelling in comments.
	* config/tc-arm.c: Fix spelling in comments.
	* config/tc-avr.c: Fix spelling in comments.
	* config/tc-cr16.c: Fix spelling in comments.
	* config/tc-epiphany.c: Fix spelling in comments.
	* config/tc-frv.c: Fix spelling in comments.
	* config/tc-hppa.c: Fix spelling in comments.
	* config/tc-hppa.h: Fix spelling in comments.
	* config/tc-i370.c: Fix spelling in comments.
	* config/tc-m68hc11.c: Fix spelling in comments.
	* config/tc-m68k.c: Fix spelling in comments.
	* config/tc-mcore.c: Fix spelling in comments.
	* config/tc-mep.c: Fix spelling in comments.
	* config/tc-metag.c: Fix spelling in comments.
	* config/tc-mips.c: Fix spelling in comments.
	* config/tc-mn10200.c: Fix spelling in comments.
	* config/tc-mn10300.c: Fix spelling in comments.
	* config/tc-nds32.c: Fix spelling in comments.
	* config/tc-nios2.c: Fix spelling in comments.
	* config/tc-ns32k.c: Fix spelling in comments.
	* config/tc-pdp11.c: Fix spelling in comments.
	* config/tc-ppc.c: Fix spelling in comments.
	* config/tc-riscv.c: Fix spelling in comments.
	* config/tc-rx.c: Fix spelling in comments.
	* config/tc-score.c: Fix spelling in comments.
	* config/tc-score7.c: Fix spelling in comments.
	* config/tc-sparc.c: Fix spelling in comments.
	* config/tc-tic54x.c: Fix spelling in comments.
	* config/tc-vax.c: Fix spelling in comments.
	* config/tc-xgate.h: Fix spelling in comments.
	* config/tc-xtensa.c: Fix spelling in comments.
	* config/tc-z80.c: Fix spelling in comments.
	* dwarf2dbg.c: Fix spelling in comments.
	* input-file.h: Fix spelling in comments.
	* itbl-ops.c: Fix spelling in comments.
	* read.c: Fix spelling in comments.
	* stabs.c: Fix spelling in comments.
	* symbols.c: Fix spelling in comments.
	* write.c: Fix spelling in comments.
	* testsuite/gas/all/itbl-test.c: Fix spelling in comments.
	* testsuite/gas/tic4x/opclasses.h: Fix spelling in comments.
2016-11-27 15:02:09 +10:30
Ambrogino Modigliani
222c2bf0a2 Fix spelling in comments in C source files (binutils)
* dwarf.c: Fix spelling in comments.
	* dwarf.h: Fix spelling in comments.
	* objcopy.c: Fix spelling in comments.
	* od-macho.c: Fix spelling in comments.
	* rclex.c: Fix spelling in comments.
	* readelf.c: Fix spelling in comments.
	* stabs.c: Fix spelling in comments.
2016-11-27 15:00:23 +10:30
Simon Marchi
7fb048a2ee Remove verbosity from ui_out_message and friends
That concept is never actually used, so it's just a burden.  Removing it
facilitates the refactoring in upcoming patches.

gdb/ChangeLog:

	* mi/mi-out.c (mi_message): Remove verbosity argument.
	* ada-tasks.c (print_ada_task_info, info_task, task_command):
	Update call.
	* auto-load.c (auto_load_info_scripts): Likewise.
	* breakpoint.c (breakpoint_1, watchpoints_info, tracepoints_info):
	Likewise.
	* cli-out.c (cli_message): Remove verbosity argument.
	* inferior.c (print_inferior): Update call.
	* linux-thread-db.c (info_auto_load_libthread_db): Likewise.
	* probe.c (info_probes_for_ops): Likewise.
	* skip.c (skip_info): Likewise.
	* solib.c (info_sharedlibrary_command): Likewise.
	* symfile.c (load_progress): Likewise.
	* thread.c (print_thread_info_1): Likewise.
	* ui-out.c (uo_message, ui_out_message): Remove verbosity argument.
	(ui_out_get_verblvl): Remove.
	* ui-out.h (ui_out_message): Remove verbosity argument.
	(ui_out_get_verblvl): Remove.
	(message_ftype): Remove verbosity argument.
2016-11-26 22:06:21 -05:00
Simon Marchi
d2c0eef48a Constify wrap_here/wrap_hint code path
Constify the data path between ui_out_wrap_hint and the wrap_indent
global, because we can.  It's clearer that the argument passed to
wrap_hint is not intended to be modified by the ui_out implementation.

gdb/ChangeLog:

	* mi/mi-out.c (mi_wrap_hint): Constify argument.
	* cli-out.c (cli_wrap_hint): Likewise.
	* ui-out.c (ui_out_wrap_hint, uo_wrap_hint): Likewise.
	* ui-out.h (ui_out_wrap_hint, wrap_hint_ftype): Likewise.
	* utils.c (wrap_here): Likewise.
	(wrap_indent): Constify.
	* utils.h (wrap_here): Constify argument.
2016-11-26 22:05:42 -05:00
Simon Marchi
82bbe65a43 Fix return value of uo_redirect
The wrapper uo_redirect seems like it should return the return value
from of implementation function, since callers rely on it, but it
doesn't.

gdb/ChangeLog:

	* ui-out.c (uo_redirect): Return the return value from the
	implementation function.
2016-11-26 22:05:25 -05:00
Simon Marchi
e4975d6a9c Remove ui_out_destroy
It's not actually used, and removing it simplifies the upcoming patches
a bit.  After the whole series, destroying an ui_out object will be
simply "delete uiout", which will call the default destructor.

gdb/ChangeLog:

	* ui-out.c (ui_out_destroy, uo_data_destroy): Remove.
	* ui-out.h (ui_out_destroy): Remove.
2016-11-26 22:05:06 -05:00
Simon Marchi
0abe66b59f Rename ui_out_data to mi_ui_out_data
Just a little cleanup, so the name is more consistent with the naming of
the equivalent structures of cli and tui.  It goes away in subsequent
patches anyway, but it might help follow the changes in those patches...

gdb/ChangeLog:

	* mi/mi-out.c (ui_out_data): Rename to ...
	(mi_ui_out_data): ... this.
2016-11-26 22:04:50 -05:00
Simon Marchi
7f904c28f5 Remove unused functions and declarations
gdb/ChangeLog:

	* ui-out.c (_initialize_ui_out): Remove.
	(ui_out_set_flags): Remove.
	(ui_out_clear_flags): Remove.
	* ui-out.h (ui_out_begin_cleanup_end): Remove.
	(ui_out_begin_cleanup_end): Remove.
	(ui_out_set_flags): Remove.
	(ui_out_clear_flags): Remove.
	* mi/mi-out.c (_initialize_mi_out): Remove.
	(mi_out_buffered): Remove.
	* mi/mi-out.h (mi_out_buffered): Remove.
2016-11-26 22:03:18 -05:00
GDB Administrator
0584673719 Automatic date update in version.in 2016-11-27 00:00:30 +00:00
Simon Marchi
59b21252a8 Remove stale comments
The default ui_out is gone since commit
23ff98d2fe.

gdb/ChangeLog:

	* ui-out.h (struct ui_out_impl): Remove comment.
	* ui-out.c (struct ui_out): Remove comment.
2016-11-26 10:23:36 -05:00
GDB Administrator
cf6451802f Automatic date update in version.in 2016-11-26 00:00:09 +00:00
John Baldwin
8227ffad95 Remove check requiring void argument to functions with no parameters.
C++ treats an empty parameter list as no parameters unlike C.

gdb/ChangeLog:

	* contrib/ari/gdb_ari.sh (no parameter function): Remove check.
2016-11-25 10:29:50 -08:00
Simon Marchi
50cc587fe4 Fix typo in Makefile
Fix a typo I made in my previous Makefile cleanup series.

Thanks to Patrick Monnerat for reporting.

gdb/ChangeLog:

	* Makefile.in: Fix typo.
2016-11-25 09:58:02 -05:00
Simon Marchi
8ce9efb079 Fix typos in comment
gdb/ChangeLog:

	* record-full.c (record_full_resume): Fix typos in comment.
2016-11-25 09:41:58 -05:00
Simon Marchi
17e5269b99 Fix typo in comment
gdb/ChangeLog:

	* infcmd.c (interrupt_command): Fix typo in comment.
2016-11-25 09:07:35 -05:00
Jose E. Marchesi
65d1cff97c gas: fix CBCOND diagnostics for invalid immediate operands.
This patch fixes two problems in the SPARC assembler:

- The diagnostic message

  Error: Illegal operands: Immediate value in cbcond is out of range.

  is incorrectly issued for non-CBCOND instructions that feature a
  simm5 immediate field, such as MPMUL, MONTMUL, etc.

- When an invalid immediate operand is used in a CBCOND
  instruction, two redundant error messages are issued to the
  user, the second due to a stale fixup (this happens since
  commit 85024cd8bc).

Some diagnostic tests for the CBCOND instructions are also
included in the patch.

Tested in both sparc64-linux-gnu and sparcv9-linux-gnu targets.

gas/ChangeLog:

2016-11-25  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* config/tc-sparc.c (sparc_ip): Avoid emitting a cbcond error
	messages for non-cbcond instructions.
	* testsuite/gas/sparc/cbcond-diag.s: New file.
	* testsuite/gas/sparc/cbcond-diag.l: Likewise.
	* testsuite/gas/sparc/sparc.exp (gas_64_check): Run cbcond-diag tests.
2016-11-25 03:40:15 -08:00
Jon Turney
ec8f768821 Prevent problems with section alignment by not shrinking the .rsrc section.
PR ld/20193
	* peXXigen.c (rsrc_process_section): Do not shrink the merged
	.rsrc section.
2016-11-25 09:47:31 +00:00
GDB Administrator
0e722c9190 Automatic date update in version.in 2016-11-25 00:00:09 +00:00
John Baldwin
036e657b48 Do not use std::move when assigning an anonymous object to a unique_ptr.
Using std::move forces an extra copy of the object.  These changes fix
-Wpessimizing-move warnings from clang.

gdb/ChangeLog:

	* ada-lang.c (create_excep_cond_exprs): Do not use 'std::move'.
	* ax-gdb.c (agent_eval_command_one): Likewise.
	(agent_eval_command_one): Likewise.
	* breakpoint.c (parse_cond_to_aexpr): Likewise.
	(parse_cmd_to_aexpr): Likewise.
	* dtrace-probe.c (dtrace_process_dof_probe): Likewise.
	* parse.c (parse_expression_for_completion): Likewise.
2016-11-24 12:01:24 -08:00
John Baldwin
bbe910e6e1 Add noexcept to custom non-throwing new operators.
Both libc++ and libstdc++ declare non-throwing new operators as
noexcept and overloads must also be noexcept.  This fixes a
-Wmissing-exception-spec warning with clang.

gdb/ChangeLog:

	* common/new-op.c (operator new): Mark 'noexcept'.
	(operator new[]): Likewise.
2016-11-24 12:01:24 -08:00
Andreas Arnez
793c128d03 Optimize byte-aligned copies in copy_bitwise()
The function copy_bitwise used for copying DWARF pieces can potentially
be invoked for large chunks of data.  For instance, consider a large
struct one of whose members is currently located in a register.  In this
case copy_bitwise would still copy the data bitwise in a loop, which is
much slower than necessary.

This change uses memcpy for the large part instead, if possible.

gdb/ChangeLog:

	* dwarf2loc.c (copy_bitwise): Use memcpy for the middle part, if
	it is byte-aligned.
2016-11-24 17:48:04 +01:00
Andreas Arnez
ad06383f10 Add unit test for copy_bitwise
This adds a unit test for the copy_bitwise function in dwarf2loc.c.
With the old (broken) version of copy_bitwise this test would generate
the following failure message:

(gdb) maintenance selftest
Self test failed: copy_bitwise 11000000 != 10000000 (7+2 -> 0)

gdb/ChangeLog:
2016-11-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
	    Pedro Alves  <palves@redhat.com>

	* dwarf2loc.c (bits_to_str, check_copy_bitwise)
	(copy_bitwise_tests): New functions.
	(_initialize_dwarf2loc): Register the new function
	copy_bitwise_tests as a unit test.
	* selftest.c (run_self_tests): Improve the failure message's
	wording and formatting.
2016-11-24 17:48:04 +01:00
Andreas Arnez
22347e554c Fix copy_bitwise()
When the user writes or reads a variable whose location is described
with DWARF pieces (DW_OP_piece or DW_OP_bit_piece), GDB's helper
function copy_bitwise is invoked for each piece.  The implementation of
this function has a bug that may result in a corrupted copy, depending
on alignment and bit size.  (Full-byte copies are not affected.)

This rewrites copy_bitwise, replacing its algorithm by a fixed version,
and adding an appropriate test case.  Without the fix the new test case
fails, e.g.:

  print def_t
  $2 = {a = 0, b = 4177919}
  (gdb) FAIL: gdb.dwarf2/nonvar-access.exp: print def_t

Written in binary, the wrong result above looks like this:

  01111111011111111111111

Which means that two zero bits have sneaked into the copy of the
original all-one bit pattern.  The test uses this simple all-one value
in order to avoid another GDB bug that causes the DWARF piece of a
DW_OP_stack_value to be taken from the wrong end on big-endian
architectures.

gdb/ChangeLog:

	* dwarf2loc.c (extract_bits_primitive): Remove.
	(extract_bits): Remove.
	(copy_bitwise): Rewrite.  Fixes a possible corruption that may
	occur for non-byte-aligned copies.

gdb/testsuite/ChangeLog:

	* gdb.dwarf2/nonvar-access.exp: Add a test for accessing
	non-byte-aligned bit fields.
2016-11-24 17:48:03 +01:00
Andreas Arnez
da5b30da2d Fix PR12616 - gdb does not implement DW_AT_data_bit_offset
The DW_AT_data_bit_offset attribute was introduced by DWARF V4 and
allows specifying the offset of a data member within its containing
entity.  But although the new attribute was intended to replace
DW_AT_bit_offset for this purpose, GDB ignores it, and thus GCC still
emits DW_AT_bit_offset instead.  See also
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71669.

This change fixes GDB's lack of support for DW_AT_data_bit_offset and
adds an appropriate test case.

gdb/ChangeLog:

	PR gdb/12616
	* dwarf2read.c (dwarf2_add_field): Handle the DWARF V4 attribute
	DW_AT_data_bit_offset.

gdb/testsuite/ChangeLog:

	PR gdb/12616
	* gdb.dwarf2/nonvar-access.exp: New testcase.  Check that GDB
	respects the DW_AT_data_bit_offset attribute.
2016-11-24 17:48:03 +01:00
Jiong Wang
1dcb9720d6 [ARM] Bind defined symbol locally in PIE
bfd/
	PR target/20737
	* elf32-arm.c (elf32_arm_final_link_relocate): Bind defined symbol
	locally in PIE.

ld/
	* testsuite/ld-arm/pie-bind-locally-a.s: New test source.
	* testsuite/ld-arm/pie-bind-locally-b.s: Likewise.
	* testsuite/ld-arm/pie-bind-locally.d: New testcase.
	* testsuite/ld-arm/arm-elf.exp: Run new testcase.
2016-11-24 14:01:53 +00:00
Nick Clifton
51750acd08 Fix snafu parsing $ORIGIN.
PR ld/20858
	* emultempl/elf32.em (_search_needed): Allow for path separator
	and terminating NUL byte when allocating space for new $ORIGIN
	path.
2016-11-24 10:00:20 +00:00