Commit Graph

88770 Commits

Author SHA1 Message Date
Pedro Alves
b22e99fdaf gdb::{unique_ptr,move} -> std::{unique_ptr,move}
Now that we require C++11, use std::unique_ptr and std::move directly.

gdb/ChangeLog:
2016-11-15  Pedro Alves  <palves@redhat.com>

	* ada-lang.c (create_excep_cond_exprs): Use std::move instead of
	gdb::move.
	* break-catch-throw.c (handle_gnu_v3_exceptions): Use
	std::unique_ptr instead of gdb::unique_ptr.
	* breakpoint.c (watch_command_1): Use std::move instead of
	gdb::move.
	* cli/cli-dump.c (dump_memory_to_file, restore_binary_file): Use
	std::unique_ptr instead of gdb::unique_ptr.
	* dtrace-probe.c (dtrace_process_dof_probe): Use std::move instead
	of gdb::move.
	* elfread.c (elf_read_minimal_symbols): Use std::unique_ptr
	instead of gdb::unique_ptr.
	* mi/mi-main.c (mi_cmd_data_read_memory): Use std::unique_ptr
	instead of gdb::unique_ptr.
	* parse.c (parse_expression_for_completion): Use std::move instead
	of gdb::move.
	* printcmd.c (display_command): std::move instead of gdb::move.
2016-11-15 19:54:21 +00:00
Andreas Arnez
b7f38fdae7 bitfield-parent-optimized-out: Fix struct definition
The "struct S" type in bitfield-parent-optimized-out.exp is declared to
have a size of 4 bytes but to hold two 4-byte members: an int-based
bitfield and a 4-byte int.  Also, both members have the same
data_member_location 2, causing them to overlap and to reach 2 bytes
beyond the structure's boundary.

This is fixed by increasing the structure size to 8 and setting the
first and second member's data_member_location to 0 and 4, respectively.

gdb/testsuite/ChangeLog:

	* gdb.dwarf2/bitfield-parent-optimized-out.exp: Fix DWARF code for
	the definition of struct S.
2016-11-15 20:52:03 +01:00
Nick Clifton
93ca393659 Fix SPARC relocations generated for the .eh_frame section.
PR gas/20803
	* config/tc-sparc.c (cons_fix_new_sparc): Use unaligned relocs in
	the .eh_frame section.
2016-11-15 15:41:27 +00:00
GDB Administrator
32ce946fd8 Automatic date update in version.in 2016-11-15 00:00:20 +00:00
H.J. Lu
9d734efa10 Also check GOT PLT for R_X86_64_PLTOFF64
Since "-z now" replaces PLT with GOT PLT, we should also check GOT PLT
for R_X86_64_PLTOFF64 relocation.

bfd/

	PR ld/20800
	* elf64-x86-64.c (elf_x86_64_relocate_section): Also check
	plt_got.offset for R_X86_64_PLTOFF64.

ld/

	PR ld/20800
	* testsuite/ld-x86-64/pr20800a.S: New file.
	* testsuite/ld-x86-64/pr20800b.S: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Run PR ld/20800 test.
2016-11-14 10:13:03 -08:00
Rudy
35fd2ddeb1 Generate correct hint value for IDATA6.
PR binutils/20814
	* dlltool.c (struct export): Remove hint field.
	(make_one_lib_file): Store the ordinal value for IDATA6 not the
	hint.
	(gen_lib_file): Delete reference to hint field.
	(mangle_defs): Delete computation of hint field.
2016-11-14 16:30:45 +00:00
Markus Metzger
db58b3735f btrace: read entire aux buffer
The data_head of a perf event data buffer grows indefinitely.  Users are
expected to compute data_head % data_size to find the location inside the perf
event data buffer.

The aux_head of a perf event aux buffer wraps around and always stays within the
perf event aux buffer.

Well, at least that's the behaviour for BTS and PT - where BTS uses the data
buffer and PT the aux buffer.

GDB does not read beyond data_head or aux_head.  This is OK for BTS but wrong
for PT.  It causes only a portion of the trace to be considered by GDB.  In the
extreme case, the buffer may appear (almost) empty.

Thanks to Tim Wiederhake  <tim.wiederhake@intel.com> for reporting the anomaly.

Change it to read the entire aux buffer for PT.  The buffer is initially zero so
any extra zeroes we read before aux_head wraps around the first time will be
ignored when searching for the first PSB packet in order to synchronize onto the
trace stream.

gdb/
	* nat/linux-btrace.c (perf_event_read): Allow data_head < size.
	* nat/linux-btrace.c (perf_event_read_all): Do not adjust size.

Change-Id: If4f8049a2080a5f16f336309450b32a3eb1e3ec9
2016-11-14 10:15:42 +01:00
Nick Clifton
80bb3407f6 lexsup.c (parse_args): Add break at end of default case. 2016-11-14 08:59:23 +00:00
Nick Clifton
63f2433dbc Fix typo "Faal through" should be "Fall through". 2016-11-14 08:44:17 +00:00
GDB Administrator
29df152013 Automatic date update in version.in 2016-11-14 00:00:19 +00:00
Anthony Green
b612f4193c add missing ChangeLog entry 2016-11-13 08:11:44 -05:00
Anthony Green
3f47df7fb3 Assemble 'bad' moxie instruction 2016-11-13 07:37:02 -05:00
GDB Administrator
75d6c74e79 Automatic date update in version.in 2016-11-13 00:00:20 +00:00
Tom Tromey
8001f1183f Remove some cleanups from the rust code
This removes some cleanups from the rust code, in favor of C++ objects
with destructors.

2016-11-12  Tom Tromey  <tom@tromey.com>

	* rust-exp.y (super_name): Use std::vector.
	(lex_number): Use std::string.
	(convert_params_to_types): Return std::vector.
	(convert_ast_to_type, convert_name): Update.
	* rust-lang.c (rust_get_disr_info): Use unique_xmalloc_ptr.
2016-11-12 10:34:47 -07:00
Tom Tromey
d93f4d96bb Use std::string in rust_get_disr_info
This changes rust_get_disr_info to use std::string in one more spot,
avoiding a memory leak.

2016-11-12  Tom Tromey  <tom@tromey.com>

	* rust-lang.c (rust_get_disr_info): Use std::string in one more
	spot.
2016-11-12 10:34:46 -07:00
Mike Frysinger
6cb2202baa sim: mips: add PR info to ChangeLog 2016-11-12 01:02:23 -05:00
GDB Administrator
8a19d84c2b Automatic date update in version.in 2016-11-12 00:00:19 +00:00
Yao Qi
7d15592e06 Don't handle unavailable/optimized-out in spu_software_single_step
When we do software single step, frame is always the innermost one,
so it is impossible to get unavailable/optimized-out errors.

gdb:

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

	* spu-tdep.c (spu_software_single_step): Don't call
	get_frame_register_bytes, call get_frame_register_unsigned
	instead.
2016-11-11 16:50:42 +00:00
Catherine Moore
1f8db34304 Identify verilog dump tests as such.
A couple of the verilog dump tests were marked as ihex tests.  This
	patch identifies the tests as verilog format dump tests.
2016-11-11 07:42:37 -08:00
Nick Clifton
86b80085c8 Accept L and LL suffixes to integer constants.
PR gas/20732
	* expr.c (integer_constant): If tc_allow_L_suffix is defined and
	non-zero then accept a L or LL suffix.
	* testsuite/gas/sparc/pr20732.d: New test source file.
	* testsuite/gas/sparc/pr20732.d: New test output file.
	* testsuite/gas/sparc/sparc.exp: Run new test.
2016-11-11 15:13:07 +00:00
Nick Clifton
2f7d995359 Extend information displayed about objdump's output of dynamic symbols. 2016-11-11 14:13:02 +00:00
Nick Clifton
df2c87b580 Add the ability for nm to display symbol version information.
PR binutils/20751
	* nm.c (with_symbol_versions): New local variable.
	(long_options): Add --with-symbol-versions.
	(usage): Mention --with-symbol-versions.
	(print_symbol): If with_symbol_versions is set then display the
	version information associated with the symbol.
	* NEWS: Mention the new feature.
	* doc/binutils.texi (nm): Document the new option.
	(objdump): Describe how symbol version information is displayed
	for dynamic symbol dumps.
	(readelf): Describe how symbol version information is displayed.
	* testsuite/binutils-all/nm.exp: Add a test of the new feature.
2016-11-11 11:49:45 +00:00
Szabolcs Nagy
74f5402d08 [AArch64] Add ARMv8.3 combined pointer authentication branch instructions
Add support for ARMv8.3 pointer authentication instructions
that are encoded as unconditional branch instructions.

opcodes/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-tbl.h (arch64_opcode_table): Add braa, brab, blraa, blrab, braaz,
	brabz, blraaz, blrabz, retaa, retab, eretaa, eretab.
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Regenerate.
	* aarch64-opc-2.c: Regenerate.

gas/
2016-11-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* testsuite/gas/aarch64/pac.s: Add ARMv8.3 branch instruction tests.
	* testsuite/gas/aarch64/pac.d: Likewise.
2016-11-11 10:43:15 +00:00
Szabolcs Nagy
c84364ece4 [AArch64] Add ARMv8.3 PACGA instruction
Add support for the ARMv8.3 PACGA instruction.

include/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rm_SP.

opcodes/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-tbl.h (arch64_opcode_table): Add pacga.
	(AARCH64_OPERANDS): Add Rm_SP.
	* aarch64-opc.c (aarch64_print_operand): Handle AARCH64_OPND_Rm_SP.
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Regenerate.
	* aarch64-opc-2.c: Regenerate.

gas/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/tc-aarch64.c (process_omitted_operand): Handle AARCH64_OPND_Rm_SP.
	(parse_operands): Likewise.
	* testsuite/gas/aarch64/pac.s: Add pacga.
	* testsuite/gas/aarch64/pac.d: Add pacga.
2016-11-11 10:39:46 +00:00
Szabolcs Nagy
a2cfc830e7 [AArch64] Add ARMv8.3 single source PAC instructions
Add support for ARMv8.3 pointer authentication instructions
that are encoded as single source data processing instructions.

opcodes/
2016-11-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-tbl.h (arch64_opcode_table): Add pacia, pacib, pacda, pacdb, autia,
	autib, autda, autdb, paciza, pacizb, pacdza, pacdzb, autiza, autizb, autdza,
	autdzb, xpaci, xpacd.
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Regenerate.
	* aarch64-opc-2.c: Regenerate.

gas/testsuite/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* testsuite/gas/aarch64/pac.s: New.
	* testsuite/gas/aarch64/pac.d: New.
2016-11-11 10:36:32 +00:00
Szabolcs Nagy
b0bfa7b5b8 [AArch64] Add ARMv8.3 pointer authentication key registers
Add support for system registers introduced in ARMv8.3
for pointer authentication.

opcodes/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-opc.c (aarch64_sys_regs): Add apiakeylo_el1, apiakeyhi_el1,
	apibkeylo_el1, apibkeyhi_el1, apdakeylo_el1, apdakeyhi_el1,
	apdbkeylo_el1, apdbkeyhi_el1, apgakeylo_el1 and apgakeyhi_el1.
	(aarch64_sys_reg_supported_p): Add feature test for new registers.

gas/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* testsuite/gas/aarch64/sysreg-3.s: New.
	* testsuite/gas/aarch64/sysreg-3.d: New.
	* testsuite/gas/aarch64/illegal-sysreg-3.l: New.
	* testsuite/gas/aarch64/illegal-sysreg-3.d: New.
2016-11-11 10:33:30 +00:00
Szabolcs Nagy
8787d804e1 [AArch64] Add ARMv8.3 instructions which are in the NOP space
This patch adds support for a subset of the ARMv8.3 pointer authentication
instructions: XPACLRI, PACIA1716, PACIB1716, AUTIA1716, AUTIA1716, PACIAZ,
PACIASP, PACIBZ, PACISP, AUTIAZ, AUTIASP, AUTIBZ, AUTIBSP.

These are aliases to HINT #0x7, HINT #0x8, HINT #0xa, HINT #0xc, HINT #0xe,
HINT #0x18, HINT #0x19, ..., HINT #0x1f respectively.

For more details about pointer authentication in ARMv8.3 see
https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions

opcodes/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-tbl.h (aarch64_feature_v8_3, ARMV8_3, V8_3_INSN): New.
	(arch64_opcode_table): Add xpaclri, pacia1716, pacib1716, autia1716,
	autib1716, paciaz, paciasp, pacibz, pacibsp, autiaz, autiasp, autibz,
	autibsp.
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Regenerate.

gas/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* testsuite/gas/aarch64/system-3.s: New.
	* testsuite/gas/aarch64/system-3.d: New.
	* testsuite/gas/aarch64/system.d: Update expected output.
2016-11-11 10:29:07 +00:00
Szabolcs Nagy
3d731f6949 [AArch64] Increase max_num_aliases in aarch64-gen
Some ARMv8.3 pointer authentication instructions are encoded as HINT aliases,
so to allow more instruction aliases in the generator, max_num_aliases is
increased from 16 to 32.

opcodes/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* aarch64-gen.c (find_alias_opcode): Increase max_num_aliases to 32.
2016-11-11 10:22:56 +00:00
Szabolcs Nagy
1924ff7567 [AArch64] Add ARMv8.3 command line option and feature flag
ARMv8.3 can be selected with -march=armv8.3-a command line option.
An overview of the ARMv8.3 architecture extension is at
https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions

gas/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/tc-aarch64.c (aarch64_archs): Add "armv8.3-a".
	* doc/c-aarch64.texi (-march): Likewise.

include/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* opcode/aarch64.h (AARCH64_FEATURE_V8_3): Define.
	(AARCH64_ARCH_V8_3): Define.
	(AARCH64_ARCH_V8_1, AARCH64_ARCH_V8_2): Simplify.
2016-11-11 10:20:30 +00:00
Szabolcs Nagy
fa09f4ea58 [AArch64] Fix feature dependencies for +simd and +crypto
According to the gas manual, +simd implies +fp and +crypto implies +simd.
Make sure +nofp turns +simd, +crypto and +fp16 off.

gas/
2016-11-07  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/tc-aarch64.c (aarch64_features): Fix "simd" and "crypto".
	* testsuite/gas/aarch64/illegal-crypto-nofp.d: New.
	* testsuite/gas/aarch64/illegal-crypto-nofp.l: New.
	* testsuite/gas/aarch64/illegal-fp16-nofp.d: New.
	* testsuite/gas/aarch64/illegal-fp16-nofp.l: New.
	* testsuite/gas/aarch64/illegal-fp16-nofp.s: New.
2016-11-11 10:14:31 +00:00
Luke Allardyce
7103ad7639 Accept hidden COFF symbols, but treat them as if they were debugging symbols.
PR ld/20722
	* coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols,
	but treat them as debugging symbols.
2016-11-11 10:08:05 +00:00
Yao Qi
668e167446 Remove apply_val_pretty_printer parameter valaddr
This patch removes the parameter valaddr of
extension_language_ops::apply_val_pretty_printer and remove const from
"struct value *val".  valaddr can be got in each extension language's
implementation of apply_val_pretty_printer.

gdb:

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

	* cp-valprint.c (cp_print_value): Remove local base_valaddr.
	* extension-priv.h (struct extension_language_ops)
	<apply_val_pretty_printer>: Remove the second parameter.
	Remove const from "struct value *".  Callers updated.
	* extension.c (apply_ext_lang_val_pretty_printer): Update
	comments.  Remove parameter valaddr.  Remove const from
	"struct value *".
	* extension.h (apply_ext_lang_val_pretty_printer): Update
	declaration.
	* guile/guile-internal.h (gdbscm_apply_val_pretty_printer):
	Update declaration.
	* guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer):
	Remove parameter valaddr.  Remove const from "struct value *".
	* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer):
	Likewise.
	* python/python-internal.h (gdbpy_apply_val_pretty_printer):
	Update declaration.
2016-11-11 08:38:31 +00:00
Yao Qi
65408fa680 Remove parameter valaddr from c print functions
This patch removes parameter valaddr from some c print functions.

gdb:

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

	* c-lang.h (cp_print_value_fields): Update declaration.
	* cp-valprint.c (cp_print_value): Update declaration.
	(cp_print_value_fields): Remove parameter valaddr.  Callers
	updated.
	(cp_print_value): Likewise.
2016-11-11 08:38:31 +00:00
Mike Frysinger
91588b3af8 sim: mips: fix dv-tx3904cpu build error
When building for mipstx39-rtems4.12 targets, some funcs use SD and CPU
implicitly.  Restore the defines for these to the local sd and cpu vars.

This was broken by the clean up in commit d47f5b30d8.

Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
2016-11-11 01:29:21 -05:00
Mike Frysinger
e04659e860 sim: mips: fix builds for r3900 cpus due to missing check_u64 2016-11-11 01:28:36 -05:00
GDB Administrator
a6bbedbad3 Automatic date update in version.in 2016-11-11 00:00:08 +00:00
Nick Clifton
a18590c386 Provide a more helpful error message when the BFD library is unable to load an extremely large section.
PR target/20737
	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined
	symbol locally in PIE.
2016-11-10 12:26:53 +00:00
Jiong Wang
ac33b731d2 [AArch64] Bind defined symbol locally in PIE
bfd/
	PR target/20737
	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined
	symbol locally in PIE.

ld/
	* testsuite/ld-aarch64/pie-bind-locally-a.s: New test source.
	* testsuite/ld-aarch64/pie-bind-locally-b.s: Likewise.
	* testsuite/ld-aarch64/pie-bind-locally.d: New testcase.
	* testsuite/ld-aarch64/aarch64-elf.exp: Run new testcase.
2016-11-10 09:25:17 +00:00
Tom Tromey
9b9720149d Use unique_xmalloc_ptr in Python code
This changes some utility functions in the Python code to return
unique_xmalloc_ptr, and then fixes up the callers.

I chose unique_xmalloc_ptr rather than std::string because at a few
call points the xmalloc'd string is released and ownership transferred
elsewhere.

This patch found a few existing memory leaks.  For example,
py-unwind.c called gdbpy_obj_to_string but never freed the result.

Built and regression tested on the buildbot.

2016-11-09  Tom Tromey  <tom@tromey.com>

	* varobj.h (varobj_get_display_hint): Change return type.
	* varobj.c (varobj_get_display_hint): Return unique_xmalloc_ptr.
	(varobj_value_get_print_value): Update.
	* python/python.c (gdbpy_before_prompt_hook, gdbpy_print_stack)
	(gdbpy_apply_type_printers): Update.
	* python/python-internal.h (unicode_to_target_string)
	(python_string_to_target_string, python_string_to_host_string)
	(gdbpy_obj_to_string, gdbpy_exception_to_string)
	(gdbpy_get_display_hint): Change return types.
	* python/py-varobj.c (py_varobj_iter_next): Update.
	* python/py-value.c (valpy_getitem, convert_value_from_python):
	Update.
	* python/py-utils.c (unicode_to_encoded_string)
	(unicode_to_target_string, python_string_to_target_string)
	(python_string_to_host_string, gdbpy_obj_to_string)
	(gdbpy_exception_to_string): Return unique_xmalloc_ptr.
	* python/py-unwind.c (pyuw_parse_register_id): Update.
	* python/py-type.c (typy_getitem): Update.
	* python/py-prettyprint.c (gdbpy_get_display_hint)
	(print_stack_unless_memory_error, print_children)
	(gdbpy_apply_val_pretty_printer): Update.
	* python/py-param.c (set_parameter_value): Update.
	(get_doc_string, call_doc_function): Return unique_xmalloc_ptr.
	(get_set_value, get_show_value, compute_enum_values, parmpy_init):
	Update.
	* python/py-infthread.c (thpy_set_name): Update.
	* python/py-function.c (fnpy_call, fnpy_init): Update.
	* python/py-framefilter.c (extract_sym): Change "name" to
	unique_xmalloc_ptr.
	(enumerate_args, enumerate_locals): Update.
	(py_print_frame): Use unique_xmalloc_ptr.
	* python/py-frame.c (frapy_read_var): Update.  Remove cleanup.
	* python/py-cmd.c (cmdpy_function, cmdpy_completer, cmdpy_init):
	Update.
	* python/py-breakpoint.c (bppy_set_condition): Use
	unique_xmalloc_ptr.
	(bppy_init): Likewise.  Remove cleanup.
	(local_setattro): Update.
	* mi/mi-cmd-var.c (print_varobj, mi_cmd_var_list_children)
	(varobj_update_one): Update.
2016-11-09 19:40:12 -07:00
GDB Administrator
4e9d215322 Automatic date update in version.in 2016-11-10 00:00:17 +00:00
H.J. Lu
60227d64dd X86: Remove the .s suffix from EVEX vpextrw
The .s suffix indicates that the instruction is encoded by swapping
2 register operands.  Since vpextrw takes an XMM register and an
integer register, the .s suffix should be ignored for EVEX vpextrw.

gas/

	PR binutils/20799
	* testsuite/gas/i386/opcode.s: Add a test for EVEX vpextrw.
	* testsuite/gas/i386/opcode-intel.d: Updated.
	* testsuite/gas/i386/opcode-suffix.d: Likewise.
	* testsuite/gas/i386/opcode.d: Likewise.
	* testsuite/gas/i386/x86-64-avx512bw-opts.s: Remove vpextrw
	tests.
	* testsuite/gas/i386/x86-64-avx512bw-opts-intel.d: Updated.
	* testsuite/gas/i386/x86-64-avx512bw-opts.d: Likewise.

opcodes/

	PR binutils/20799
	* i386-dis-evex.h (evex_table): Replace EdqwS with Edqw.
	* i386-dis.c (EdqwS): Removed.
	(dqw_swap_mode): Likewise.
	(intel_operand_size): Don't check dqw_swap_mode.
	(OP_E_register): Likewise.
	(OP_E_memory): Likewise.
	(OP_G): Likewise.
	(OP_EX): Likewise.
	* i386-opc.tbl: Remove "S" from EVEX vpextrw.
	* i386-tbl.h: Regerated.
2016-11-09 14:00:18 -08:00
H.J. Lu
1032d6ebdc Update opcodes/ChangeLog 2016-11-09 13:44:42 -08:00
H.J. Lu
7766fd1002 X86: Update opcode-suffix.d
PR binutils/20754
	* testsuite/gas/i386/opcode-suffix.d: Updated.
2016-11-09 12:11:50 -08:00
Pedro Alves
fad0c9fb7d Further cleanup/modernization of gdb.base/commands.exp
- Use multi_line for matching multi-line GDB output.

 - Add a multi_line_input variant of multi_line to build GDB input and
   use it throughout.

   (The two changes above make the tests much more readable, IMO.)

 - Add a new valnum_re global to get rid of the multiple "\\\$\[0-9\]*".

 - Remove gdb_stop_suppressing_tests uses.

 - tighten a few regexps.

 - Replace send_gdb/gdb_expect with gdb_test_multiple and simplify,
   making pass/fail messages the same.

gdb/ChangeLog:
2016-11-09  Pedro Alves  <palves@redhat.com>

	* gdb.base/commands.exp (runto_or_return): New procedure.
	(gdbvar_simple_if_test, gdbvar_simple_while_test)
	(gdbvar_complex_if_while_test, progvar_simple_if_test)
	(progvar_simple_while_test, progvar_complex_if_while_test)
	(if_while_breakpoint_command_test)
	(infrun_breakpoint_command_test, breakpoint_command_test)
	(user_defined_command_test, watchpoint_command_test)
	(test_command_prompt_position, redefine_hook_test)
	(stray_arg0_test, error_clears_commands_left, redefine_hook_test)
	(redefine_backtrace_test): Use runto_or_return, $valnum_re,
	multi_line_input and multi_line.  Remove gdb_expect and
	gdb_stop_suppressing_tests uses.
	* lib/gdb.exp (valnum_re): New global.
	* lib/gdb.exp (valnum_re): New global.
	(multi_line_input): New procedure.
2016-11-09 18:48:25 +00:00
H.J. Lu
7efeed176a X86: Merge AVX512F vmovq
AVX512F vmovq doesn't support masking.  We can't swap register operand
in AVX512F vmovq with Reg64 since Reg64 != RegXMM.  This patch merges
AVX512F vmovq.

	* i386-opc.tbl: Merge AVX512F vmovq.
2016-11-09 10:20:13 -08:00
Simon Marchi
8354c62cd1 Make gdb.mi/user-selected-context-sync.exp use proc_with_prefix
Pedro's patch provides a cleaner way to prefix tests with the proc name,
so let's use that.

gdb/testsuite/ChangeLog:

	* gdb.mi/user-selected-context-sync.exp (with_test_prefix_procname):
	Remove.
	(test_setup): Define with proc_with_prefix.
	(test_cli_inferior): Likewise.
	(test_cli_thread): Likewise.
	(test_cli_frame): Likewise.
	(test_cli_select_frame): Likewise.
	(test_cli_up_down): Likewise.
	(test_mi_thread_select): Likewise.
	(test_mi_stack_select_frame): Likewise.
	(test_cli_in_mi_inferior): Likewise.
	(test_cli_in_mi_thread): Likewise.
	(test_cli_in_mi_frame): Likewise.
	(top level): Do not use with_test_prefix_procname.
2016-11-09 10:55:14 -05:00
Pedro Alves
64f367a201 gdb/testsuite: Introduce "proc_with_prefix"
While adding new tests to gdb.base/commands.exp, I noticed that the
file includes a bunch of individual testcases split into their own
procedures, and that none have ever been adjusted to use
with_test_prefix.  Instead, each gdb_test/gdb_test_multiple/etc
invocation takes care of including the procedure name in the test
message, in order to make sure test messages are unique.

Simon convinced me that using the procedure name as prefix is not that
bad of an idea:
  https://sourceware.org/ml/gdb-patches/2016-10/msg00020.html

This commit adds an IMO simpler alternative to
with_test_prefix_procname added by that patch -- a new
"proc_with_prefix" convenience proc that is meant to be used in place
of "proc", and then uses it in commands.exp.  Procedures defined with
this automatically run their bodies under with_test_prefix $proc_name.

Here's a sample of the resulting gdb.sum diff:

 [...]
 -PASS: gdb.base/commands.exp: break factorial #3
 -PASS: gdb.base/commands.exp: set value to 5 in test_command_prompt_position
 -PASS: gdb.base/commands.exp: if test in test_command_prompt_position
 -PASS: gdb.base/commands.exp: > OK in test_command_prompt_position
 +PASS: gdb.base/commands.exp: test_command_prompt_position: break factorial
 +PASS: gdb.base/commands.exp: test_command_prompt_position: set value to 5
 +PASS: gdb.base/commands.exp: test_command_prompt_position: if test
 +PASS: gdb.base/commands.exp: test_command_prompt_position: > OK
 [...]

gdb/testsuite/ChangeLog:
2016-11-09  Pedro Alves  <palves@redhat.com>

	* gdb.base/commands.exp (gdbvar_simple_if_test)
	(gdbvar_simple_while_test, gdbvar_complex_if_while_test)
	(progvar_simple_if_test, progvar_simple_while_test)
	(progvar_complex_if_while_test, if_while_breakpoint_command_test)
	(infrun_breakpoint_command_test, breakpoint_command_test)
	(user_defined_command_test, watchpoint_command_test)
	(test_command_prompt_position, deprecated_command_test)
	(bp_deleted_in_command, temporary_breakpoint_commands)
	(stray_arg0_test, source_file_with_indented_comment)
	(recursive_source_test, if_commands_test)
	(error_clears_commands_left, redefine_hook_test)
	(redefine_backtrace_test): Use proc_with_prefix.
	* lib/gdb.exp (proc_with_prefix): New proc.
2016-11-09 15:12:11 +00:00
Pedro Alves
2806dc7eec Fix formattting of gdb/ChangeLog and gdb/testsuite/ChangeLog enties
Leading tab/spaces.  Missing periods.  Duplicate date.
2016-11-09 15:09:31 +00:00
Pedro Alves
6c73cd95f9 agent_expr_up: gdb::unique_ptr -> std::unique_ptr
Now that we require C++11, use std::unique_ptr directly.  This allows
simplifying collection_list a bit by placing unique pointers in the
vector directly, making the vector own its elements.

gdb/ChangeLog:
2016-11-09  Pedro Alves  <palves@redhat.com>

	* ax-gdb.c (agent_eval_command_one): Use std::move instead of
	gdb::move.
	* ax.h (agent_expr_up): Use std::unique_ptr instead of
	gdb::unique_ptr.
	* breakpoint.c (parse_cond_to_aexpr): Use std::move instead of
	gdb::move.
	* tracepoint.c (collection_list::collect_symbol): Likewise.
	(collection_list::~collection_list): Delete.
	(encode_actions_1): Use std::move instead of gdb::move.
	(collection_list::add_aexpr): Use std::move instead of
	unique_ptr::release.
	* tracepoint.h (collection_list) <~collection_list>: Delete
	declaration.
	<m_aexprs>: Now a vector of agent_ptr_up.
2016-11-09 14:57:55 +00:00
Pedro Alves
7a63494a0d gdb: Use vector::emplace_back
Now that we require C++11, we can use vector::emplace_back to
construct elements in place instead of constructing and then copying.

gdb/ChangeLog:
2016-11-09  Pedro Alves  <palves@redhat.com>

	* main.c (struct cmdarg): Add constructor.
	(captured_main_1): Use vector::emplace_back.
	* tracepoint.c (collection_list::add_memrange): Likewise.
2016-11-09 14:53:58 +00:00