aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-01-25Don't use -I for common subdirectoryTom Tromey4-2/+10
This changes the Makefiles to remove the -I for the common/ subdirectory. This will enforce the rule that includes must use the 'common/filename.h' form. gdb/ChangeLog 2019-01-25 Tom Tromey <tom@tromey.com> * Makefile.in (GDB_CFLAGS): Don't add -I for common. gdb/gdbserver/ChangeLog 2019-01-25 Tom Tromey <tom@tromey.com> * Makefile.in (INCLUDE_CFLAGS): Don't add -I for common.
2019-01-25Normalize includes to use common/Tom Tromey242-363/+612
This changes all includes to use the form "common/filename.h" rather than just "filename.h". This was written by a script. gdb/ChangeLog 2019-01-25 Tom Tromey <tom@tromey.com> * xtensa-linux-nat.c: Fix common/ includes. * xml-support.h: Fix common/ includes. * xml-support.c: Fix common/ includes. * x86-linux-nat.c: Fix common/ includes. * windows-nat.c: Fix common/ includes. * varobj.h: Fix common/ includes. * varobj.c: Fix common/ includes. * value.c: Fix common/ includes. * valops.c: Fix common/ includes. * utils.c: Fix common/ includes. * unittests/xml-utils-selftests.c: Fix common/ includes. * unittests/utils-selftests.c: Fix common/ includes. * unittests/unpack-selftests.c: Fix common/ includes. * unittests/tracepoint-selftests.c: Fix common/ includes. * unittests/style-selftests.c: Fix common/ includes. * unittests/string_view-selftests.c: Fix common/ includes. * unittests/scoped_restore-selftests.c: Fix common/ includes. * unittests/scoped_mmap-selftests.c: Fix common/ includes. * unittests/scoped_fd-selftests.c: Fix common/ includes. * unittests/rsp-low-selftests.c: Fix common/ includes. * unittests/parse-connection-spec-selftests.c: Fix common/ includes. * unittests/optional-selftests.c: Fix common/ includes. * unittests/offset-type-selftests.c: Fix common/ includes. * unittests/observable-selftests.c: Fix common/ includes. * unittests/mkdir-recursive-selftests.c: Fix common/ includes. * unittests/memrange-selftests.c: Fix common/ includes. * unittests/memory-map-selftests.c: Fix common/ includes. * unittests/lookup_name_info-selftests.c: Fix common/ includes. * unittests/function-view-selftests.c: Fix common/ includes. * unittests/environ-selftests.c: Fix common/ includes. * unittests/copy_bitwise-selftests.c: Fix common/ includes. * unittests/common-utils-selftests.c: Fix common/ includes. * unittests/cli-utils-selftests.c: Fix common/ includes. * unittests/array-view-selftests.c: Fix common/ includes. * ui-file.c: Fix common/ includes. * tui/tui-io.c: Fix common/ includes. * tracepoint.h: Fix common/ includes. * tracepoint.c: Fix common/ includes. * tracefile-tfile.c: Fix common/ includes. * top.h: Fix common/ includes. * top.c: Fix common/ includes. * thread.c: Fix common/ includes. * target/waitstatus.h: Fix common/ includes. * target/waitstatus.c: Fix common/ includes. * target.h: Fix common/ includes. * target.c: Fix common/ includes. * target-memory.c: Fix common/ includes. * target-descriptions.c: Fix common/ includes. * symtab.h: Fix common/ includes. * symfile.c: Fix common/ includes. * stap-probe.c: Fix common/ includes. * spu-linux-nat.c: Fix common/ includes. * sparc-nat.c: Fix common/ includes. * source.c: Fix common/ includes. * solib.c: Fix common/ includes. * solib-target.c: Fix common/ includes. * ser-unix.c: Fix common/ includes. * ser-tcp.c: Fix common/ includes. * ser-pipe.c: Fix common/ includes. * ser-base.c: Fix common/ includes. * selftest-arch.c: Fix common/ includes. * s12z-tdep.c: Fix common/ includes. * rust-exp.y: Fix common/ includes. * rs6000-aix-tdep.c: Fix common/ includes. * riscv-tdep.c: Fix common/ includes. * remote.c: Fix common/ includes. * remote-notif.h: Fix common/ includes. * remote-fileio.h: Fix common/ includes. * remote-fileio.c: Fix common/ includes. * regcache.h: Fix common/ includes. * regcache.c: Fix common/ includes. * record-btrace.c: Fix common/ includes. * python/python.c: Fix common/ includes. * python/py-type.c: Fix common/ includes. * python/py-inferior.c: Fix common/ includes. * progspace.h: Fix common/ includes. * producer.c: Fix common/ includes. * procfs.c: Fix common/ includes. * proc-api.c: Fix common/ includes. * printcmd.c: Fix common/ includes. * ppc-linux-nat.c: Fix common/ includes. * parser-defs.h: Fix common/ includes. * osdata.c: Fix common/ includes. * obsd-nat.c: Fix common/ includes. * nat/x86-linux.c: Fix common/ includes. * nat/x86-linux-dregs.c: Fix common/ includes. * nat/x86-dregs.h: Fix common/ includes. * nat/x86-dregs.c: Fix common/ includes. * nat/ppc-linux.c: Fix common/ includes. * nat/mips-linux-watch.h: Fix common/ includes. * nat/mips-linux-watch.c: Fix common/ includes. * nat/linux-waitpid.c: Fix common/ includes. * nat/linux-ptrace.h: Fix common/ includes. * nat/linux-ptrace.c: Fix common/ includes. * nat/linux-procfs.c: Fix common/ includes. * nat/linux-personality.c: Fix common/ includes. * nat/linux-osdata.c: Fix common/ includes. * nat/linux-namespaces.c: Fix common/ includes. * nat/linux-btrace.h: Fix common/ includes. * nat/linux-btrace.c: Fix common/ includes. * nat/fork-inferior.c: Fix common/ includes. * nat/amd64-linux-siginfo.c: Fix common/ includes. * nat/aarch64-sve-linux-ptrace.c: Fix common/ includes. * nat/aarch64-linux.c: Fix common/ includes. * nat/aarch64-linux-hw-point.h: Fix common/ includes. * nat/aarch64-linux-hw-point.c: Fix common/ includes. * namespace.h: Fix common/ includes. * mips-linux-tdep.c: Fix common/ includes. * minsyms.c: Fix common/ includes. * mi/mi-parse.h: Fix common/ includes. * mi/mi-main.c: Fix common/ includes. * mi/mi-cmd-env.c: Fix common/ includes. * memrange.h: Fix common/ includes. * memattr.c: Fix common/ includes. * maint.h: Fix common/ includes. * maint.c: Fix common/ includes. * main.c: Fix common/ includes. * machoread.c: Fix common/ includes. * location.c: Fix common/ includes. * linux-thread-db.c: Fix common/ includes. * linux-nat.c: Fix common/ includes. * linux-fork.c: Fix common/ includes. * inline-frame.c: Fix common/ includes. * infrun.c: Fix common/ includes. * inflow.c: Fix common/ includes. * inferior.h: Fix common/ includes. * inferior.c: Fix common/ includes. * infcmd.c: Fix common/ includes. * inf-ptrace.c: Fix common/ includes. * inf-child.c: Fix common/ includes. * ia64-linux-nat.c: Fix common/ includes. * i387-tdep.c: Fix common/ includes. * i386-tdep.c: Fix common/ includes. * i386-linux-tdep.c: Fix common/ includes. * i386-linux-nat.c: Fix common/ includes. * i386-go32-tdep.c: Fix common/ includes. * i386-fbsd-tdep.c: Fix common/ includes. * i386-fbsd-nat.c: Fix common/ includes. * guile/scm-type.c: Fix common/ includes. * guile/guile.c: Fix common/ includes. * go32-nat.c: Fix common/ includes. * gnu-nat.c: Fix common/ includes. * gdbthread.h: Fix common/ includes. * gdbarch-selftests.c: Fix common/ includes. * gdb_usleep.c: Fix common/ includes. * gdb_select.h: Fix common/ includes. * gdb_bfd.c: Fix common/ includes. * gcore.c: Fix common/ includes. * fork-child.c: Fix common/ includes. * findvar.c: Fix common/ includes. * fbsd-nat.c: Fix common/ includes. * event-top.c: Fix common/ includes. * event-loop.c: Fix common/ includes. * dwarf2read.c: Fix common/ includes. * dwarf2loc.c: Fix common/ includes. * dwarf2-frame.c: Fix common/ includes. * dwarf-index-cache.c: Fix common/ includes. * dtrace-probe.c: Fix common/ includes. * disasm-selftests.c: Fix common/ includes. * defs.h: Fix common/ includes. * csky-tdep.c: Fix common/ includes. * cp-valprint.c: Fix common/ includes. * cp-support.h: Fix common/ includes. * cp-support.c: Fix common/ includes. * corelow.c: Fix common/ includes. * completer.h: Fix common/ includes. * completer.c: Fix common/ includes. * compile/compile.c: Fix common/ includes. * compile/compile-loc2c.c: Fix common/ includes. * compile/compile-cplus-types.c: Fix common/ includes. * compile/compile-cplus-symbols.c: Fix common/ includes. * command.h: Fix common/ includes. * cli/cli-dump.c: Fix common/ includes. * cli/cli-cmds.c: Fix common/ includes. * charset.c: Fix common/ includes. * build-id.c: Fix common/ includes. * btrace.h: Fix common/ includes. * btrace.c: Fix common/ includes. * breakpoint.h: Fix common/ includes. * breakpoint.c: Fix common/ includes. * ax.h: (enum agent_op): Fix common/ includes. * ax-general.c (struct aop_map): Fix common/ includes. * ax-gdb.c: Fix common/ includes. * auxv.c: Fix common/ includes. * auto-load.c: Fix common/ includes. * arm-tdep.c: Fix common/ includes. * arch/riscv.c: Fix common/ includes. * arch/ppc-linux-common.c: Fix common/ includes. * arch/i386.c: Fix common/ includes. * arch/arm.c: Fix common/ includes. * arch/arm-linux.c: Fix common/ includes. * arch/arm-get-next-pcs.c: Fix common/ includes. * arch/amd64.c: Fix common/ includes. * arch/aarch64.c: Fix common/ includes. * arch/aarch64-insn.c: Fix common/ includes. * arch-utils.c: Fix common/ includes. * amd64-windows-tdep.c: Fix common/ includes. * amd64-tdep.c: Fix common/ includes. * amd64-sol2-tdep.c: Fix common/ includes. * amd64-obsd-tdep.c: Fix common/ includes. * amd64-nbsd-tdep.c: Fix common/ includes. * amd64-linux-tdep.c: Fix common/ includes. * amd64-linux-nat.c: Fix common/ includes. * amd64-fbsd-tdep.c: Fix common/ includes. * amd64-fbsd-nat.c: Fix common/ includes. * amd64-dicos-tdep.c: Fix common/ includes. * amd64-darwin-tdep.c: Fix common/ includes. * agent.c: Fix common/ includes. * ada-lang.h: Fix common/ includes. * ada-lang.c: Fix common/ includes. * aarch64-tdep.c: Fix common/ includes. gdb/gdbserver/ChangeLog 2019-01-25 Tom Tromey <tom@tromey.com> * win32-low.c: Fix common/ includes. * win32-i386-low.c: Fix common/ includes. * tracepoint.c: Fix common/ includes. * thread-db.c: Fix common/ includes. * target.h: Fix common/ includes. * symbol.c: Fix common/ includes. * spu-low.c: Fix common/ includes. * server.h: Fix common/ includes. * server.c: Fix common/ includes. * remote-utils.c: Fix common/ includes. * regcache.h: Fix common/ includes. * regcache.c: Fix common/ includes. * nto-x86-low.c: Fix common/ includes. * notif.h: Fix common/ includes. * mem-break.h: Fix common/ includes. * lynx-low.c: Fix common/ includes. * lynx-i386-low.c: Fix common/ includes. * linux-x86-tdesc-selftest.c: Fix common/ includes. * linux-x86-low.c: Fix common/ includes. * linux-low.c: Fix common/ includes. * inferiors.h: Fix common/ includes. * i387-fp.c: Fix common/ includes. * hostio.c: Fix common/ includes. * hostio-errno.c: Fix common/ includes. * gdbthread.h: Fix common/ includes. * gdbreplay.c: Fix common/ includes. * fork-child.c: Fix common/ includes. * event-loop.c: Fix common/ includes. * ax.c: (enum gdb_agent_op): Fix common/ includes.
2019-01-25Update create-version.sh to use common/version.hTom Tromey2-1/+5
This changes create-version.sh to have the generated file use common/version.h as the file name. gdb/ChangeLog 2019-01-25 Tom Tromey <tom@tromey.com> * common/create-version.sh: Use common/version.h.
2019-01-25AArch64: Add missing changelog for Update encodings for stg, st2g, stzg and ↵Tamar Christina2-0/+19
st2zg
2019-01-25AArch64: Update encodings for stg, st2g, stzg and st2zg.Sudi Das6-79/+112
This patch is part of a series of patches to introduce a few changes to the Armv8.5-A Memory Tagging Extension. This patch updates the st*g instructions to use a previously reserved field for a new register operand. Thus the new versions of the instructions are as follows: - STG Xt, [<Xn|SP>, #<simm>] - STG Xt, [<Xn|SP>, #<simm>]! - STG Xt, [<Xn|SP>], #<simm> - STZG Xt, [<Xn|SP>, #<simm>] - STZG Xt, [<Xn|SP>, #<simm>]! - STZG Xt, [<Xn|SP>], #<simm> - ST2G Xt, [<Xn|SP>, #<simm>] - ST2G Xt, [<Xn|SP>, #<simm>]! - ST2G Xt, [<Xn|SP>], #<simm> - STZ2G Xt, [<Xn|SP>, #<simm>] - STZ2G Xt, [<Xn|SP>, #<simm>]! - STZ2G Xt, [<Xn|SP>], #<simm> Committed on behalf of Sudakshina Das. *** gas/ChangeLog *** * config/tc-aarch64.c (warn_unpredictable_ldst): Exempt stg, st2g, stzg and stz2g from Xt == Xn with writeback warning. * testsuite/gas/aarch64/armv8_5-a-memtag.d: Change tests for stg, stzg, st2g and stz2g. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** opcodes/ChangeLog *** * aarch64-tbl.h (QL_LDST_AT): Update macro. (aarch64_opcode): Change encoding for stg, stzg st2g and st2zg. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated.
2019-01-25AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension.Sudi Das10-1580/+1633
This patch is part of a series of patches to introduce a few changes to the Armv8.5-A Memory Tagging Extension. This patch adds the new STZGM instruction. STGZM Xt, [<Xn|SP>] Committed on behalf of Sudakshina Das. *** gas/ChangeLog *** * testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for stzgm. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** opcodes/ChangeLog *** * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Likewise. * aarch64-opc-2.c: Likewise. * aarch64-tbl.h (aarch64_opcode): Add new stzgm.
2019-01-25AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging ↵Sudi Das18-1770/+1681
Extension. This patch is part of a series of patches to introduce a few changes to the Armv8.5-A Memory Tagging Extension. This patch removes the LDGV and STGV instructions. These instructions needed special infrastructure to support [base]! style for addressing mode. That is also removed now. Committed on behalf of Sudakshina Das. *** gas/ChangeLog *** * config/tc-aarch64.c (parse_address_main): Remove support for [base]! address expression. (parse_operands): Remove support for AARCH64_OPND_ADDR_SIMPLE_2. (warn_unpredictable_ldst): Remove support for ldstgv_indexed. * testsuite/gas/aarch64/armv8_5-a-memtag.d: Remove tests for ldgv and stgv. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** include/ChangeLog *** * opcode/aarch64.h (enum aarch64_opnd): Remove AARCH64_OPND_ADDR_SIMPLE_2. (enum aarch64_insn_class): Remove ldstgv_indexed. *** opcodes/ChangeLog *** * aarch64-asm.c (aarch64_ins_addr_simple_2): Remove. * aarch64-asm.h (ins_addr_simple_2): Likeiwse. * aarch64-dis.c (aarch64_ext_addr_simple_2): Likewise. * aarch64-dis.h (ext_addr_simple_2): Likewise. * aarch64-opc.c (operand_general_constraint_met_p): Remove case for ldstgv_indexed. (aarch64_print_operand): Remove case for AARCH64_OPND_ADDR_SIMPLE_2. * aarch64-tbl.h (struct aarch64_opcode): Remove ldgv and stgv. (AARCH64_OPERANDS): Remove ADDR_SIMPLE_2. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated.
2019-01-25Prevent a potential illegal memory access in readelf when parsing a note ↵Nick Clifton2-13/+28
with a zero name size. PR 24131 * readelf.c (process_notes_at): Prevent an illegal memory access when the note's namesize is zero. (decode_tic6x_unwind_bytecode): Add code to handle the case where no registers are specified in a frame pop instruction.
2019-01-25Updated Bulgarian and Russian translations for some of the binutils ↵Nick Clifton6-5268/+5602
sub-directories
2019-01-25PR23940, check bounds before usingWu Heng2-2/+7
PR gas/23940 * macro.c (getstring): Check array bound before accessing.
2019-01-25Automatic date update in version.inGDB Administrator1-1/+1
2019-01-25PR24125, Assertion failure with embedded NULs in stringAlan Modra2-2/+6
An assertion that can be triggered by user input is wrong, so remove it. I believe the NUL would have been accepted before the PR20902 patch. PR 20902 PR 24125 * read.c (stringer): Delete assertion.
2019-01-24target_pass_signals/target_program_signals: Use gdb::array_viewPedro Alves12-98/+100
This replaces the pointer and length parameters of target_pass_signals and target_program_signals with a gdb::array_view parameter, and fixes the fallout. In infrun.c, the signal_stop, signal_print, signal_program, signal_catch, signal_pass globals are currently pointers to heap-allocated memory. I see no point in that, so I converted them to arrays. This allows simplifying the calls to target_pass_signals/target_program_signals, since we can pass the array directly, which can implicitly convert to gdb::array_view. gdb/ChangeLog: 2019-01-24 Pedro Alves <palves@redhat.com> * infrun.c (signal_stop, signal_print, signal_program) (signal_catch, signal_pass): Now arrays instead of pointers. (update_signals_program_target, do_target_resume) (signal_catch_update, handle_command, _initialize_infrun): Adjust. * linux-nat.c (linux_nat_target::pass_signals) (linux_nat_target::create_inferior, linux_nat_target::attach): Adjust. * linux-nat.h (linux_nat_target::pass_signals): Adjust. * nto-procfs.c (nto_procfs_target::pass_signals): Adjust. * procfs.c (procfs_target::pass_signals): Adjust. * record-full.c (record_full_target::resume): Adjust. * remote.c (remote_target::pass_signals) (remote_target::program_signals): Adjust. * target-debug.h (target_debug_print_signals): Now takes a gdb::array_view as parameter. Adjust. * target.h (target_ops) <pass_signals, program_signals>: Replace pointer and length parameters with gdb::array_view. (target_pass_signals, target_program_signals): Likewise. * target-delegates.c: Regenerate.
2019-01-24Fix clang/libc++ buildPedro Alves2-1/+8
This fixes the following build error with clang/libc++, reported at <https://sourceware.org/ml/gdb-patches/2019-01/msg00537.html>: (...) In file included from breakpoint.c:34: In file included from ./inferior.h:54: ./common/forward-scope-exit.h:98:7: error: no matching constructor for initialization of 'decltype(std::bind(&delete_longjmp_breakpoint, std::declval<int>()))' (aka '__bind<void (*)(int), int>') : m_bind_function (std::bind (function, args...)) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./common/gdb_optional.h:155:19: note: in instantiation of member function 'detail::forward_scope_exit<void (int), &delete_longjmp_breakpoint, void (int)>::forward_scope_exit' requested here new (&m_item) T (std::forward<Args>(args)...); ^ breakpoint.c:11127:18: note: in instantiation of function template specialization 'gdb::optional<detail::forward_scope_exit<void (int), &delete_longjmp_breakpoint, void (int)> >::emplace<int &>' requested here lj_deleter.emplace (thread); ^ /Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2220:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from '__bind<[...], int &>' to 'const __bind<[...], int>' for 1st argument class __bind ^ (...) I don't really know why I ended up with a copy here. We can just pass the arguments directly to the being-constructed bind. gdb/ChangeLog: 2019-01-24 Pedro Alves <palves@redhat.com> * common/forward-scope-exit.h (forward_scope_exit::forward_scope_exit): Pass arguments to m_bind_function directly, instead of creating a std::bind and copying that.
2019-01-24AArch64 AAPCS: Ignore static membersAlan Hayward5-6/+235
Static members in C++ structs are global data and therefore not part of the list of struct members considered for passing in registers. Note the corresponding code in GCC (from which the GDB AAPCS code is based) does not have any static member checks due to the static members not being part of the struct type at that point. Extend gdb.base/infcall-nested-structs.exp to test structs with static members when compiled for C++. XFAIL more cases for x86_64 (see gdb/24104). For completeness, ensure some test cases have both empty structures and static members. Also fixes gdb.dwarf2/dw2-cp-infcall-ref-static.exp. gdb/ChangeLog: * aarch64-tdep.c (aapcs_is_vfp_call_or_return_candidate_1): Check for static members. (pass_in_v_vfp_candidate): Likewise. gdb/testsuite/ChangeLog: * gdb.base/infcall-nested-structs.c (struct struct_static_02_01): New structure. (struct struct_static_02_02): Likewise. (struct struct_static_02_03): Likewise. (struct struct_static_02_04): Likewise. (struct struct_static_04_01): Likewise. (struct struct_static_04_02): Likewise. (struct struct_static_04_03): Likewise. (struct struct_static_04_04): Likewise. (struct struct_static_06_01): Likewise. (struct struct_static_06_02): Likewise. (struct struct_static_06_03): Likewise. (struct struct_static_06_04): Likewise. (cmp_struct_static_02_01): Likewise. (cmp_struct_static_02_02): Likewise. (cmp_struct_static_02_03): Likewise. (cmp_struct_static_02_04): Likewise. (cmp_struct_static_04_01): Likewise. (cmp_struct_static_04_02): Likewise. (cmp_struct_static_04_03): Likewise. (cmp_struct_static_04_04): Likewise. (cmp_struct_static_06_01): Likewise. (cmp_struct_static_06_02): Likewise. (cmp_struct_static_06_03): Likewise. (cmp_struct_static_06_04): Likewise. (call_all): Test new structs. * gdb.base/infcall-nested-structs.exp: Likewise.
2019-01-24Automatic date update in version.inGDB Administrator1-1/+1
2019-01-23Use scope_exit in regcache.cTom Tromey2-32/+8
This removes the regcache_invalidator class in favor of a scope_exit. This seems like an improvement (albeit a minor one) because regcache_invalidator is only used in a single spot. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * regcache.c (class regcache_invalidator): Remove. (regcache::raw_write): Use make_scope_exit.
2019-01-23Update cleanup comment in ui-out.hTom Tromey2-5/+7
ui-out.h refers to some cleanup functions that no longer exist. This updates the reference. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> * ui-out.h (class ui_out_emit_type): Update comment.
2019-01-23Update an obsolete cleanup commentTom Tromey2-1/+5
This updates a comment in fetch_inferior_event. The comment refers to a cleanup that is now a scoped_restore_current_thread. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> * infrun.c (fetch_inferior_event): Update comment.
2019-01-23Remove remaining cleanup from fetch_inferior_eventTom Tromey2-100/+110
This removes the remaining cleanup from fetch_inferior_event, replacing it with a SCOPE_EXIT. This required introducing a new scope and reindenting. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * infrun.c (reinstall_readline_callback_handler_cleanup): Remove parameter. (fetch_inferior_event): Use SCOPE_EXIT.
2019-01-23Remove cleanup from stop_all_threadsTom Tromey2-12/+7
This removes the cleanup from stop_all_threads, replacing it with a scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * infrun.c (disable_thread_events): Delete. (stop_all_threads): Use SCOPE_EXIT.
2019-01-23Remove clear_symtab_users_cleanupTom Tromey2-14/+22
This removes clear_symtab_users_cleanup, replacing it with uses of forward_scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * symfile.c: Include forward-scope-exit.h. (clear_symtab_users_cleanup): Replace forward declaration with a FORWARD_SCOPE_EXIT. (syms_from_objfile_1): Use the forward_scope_exit and gdb::optional instead of cleanup_function. (reread_symbols): Use the forward_scope_exit instead of cleanup_function. (clear_symtab_users_cleanup): Remove function.
2019-01-23Remove cleanup from linux-nat.cTom Tromey2-15/+11
This removes a cleanup from linux-nat.c, replacing it with a scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * linux-nat.c: Include scope-exit.h. (cleanup_target_stop): Remove. (linux_nat_target::static_tracepoint_markers_by_strid): Use SCOPE_EXIT.
2019-01-23Remove cleanup_delete_std_terminate_breakpointTom Tromey2-11/+8
This removes cleanup_delete_std_terminate_breakpoint, replacing it with a use of SCOPE_EXIT. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * infcall.c (cleanup_delete_std_terminate_breakpoint): Remove. (call_function_by_hand_dummy): Use SCOPE_EXIT.
2019-01-23Remove make_bpstat_clear_actions_cleanupTom Tromey6-27/+20
This removes make_bpstat_clear_actions_cleanup, replacing it with uses of scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Andrew Burgess <andrew.burgess@embecosm.com> Pedro Alves <palves@redhat.com> * infrun.c (fetch_inferior_event): Use scope_exit. * utils.h (make_bpstat_clear_actions_cleanup): Don't declare. * top.c (execute_command): Use scope_exit. * breakpoint.c (bpstat_do_actions): Use scope_exit. * utils.c (do_bpstat_clear_actions_cleanup) (make_bpstat_clear_actions_cleanup): Remove.
2019-01-23Remove delete_just_stopped_threads_infrun_breakpoints_cleanupTom Tromey2-16/+13
v3: sorted earlier in the series, and replaces the cleanup in fetch_inferior_event here too instead of in some other patch. This removes delete_just_stopped_threads_infrun_breakpoints_cleanup, replacing it with uses of scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * infrun.c: Include "common/scope-exit.h" (delete_just_stopped_threads_infrun_breakpoints_cleanup): Remove. (wait_for_inferior): Use SCOPE_EXIT. (fetch_inferior_event): Use scope_exit.
2019-01-23Remove remaining cleanup from gdb/breakpoint.cTom Tromey2-12/+5
In v3: remove the "have BKPT_CHAIN already discarded" comment too. The remaining null cleanup in breakpoint.c does not seem to protect anything, so remove it. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * breakpoint.c (create_breakpoint): Remove cleanup.
2019-01-23Replace delete_longjmp_breakpoint_cleanup with a forward_scope_exit typeTom Tromey4-16/+15
This removes delete_longjmp_breakpoint_cleanup in favor of forward_scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Andrew Burgess <andrew.burgess@embecosm.com> Pedro Alves <palves@redhat.com> * breakpoint.c (until_break_command): Use delete_longjmp_breakpoint_cleanup class. * infcmd.c (delete_longjmp_breakpoint_cleanup): Remove function. (until_next_command): Use delete_longjmp_breakpoint_cleanup class. * inferior.h: Include forward-scope-exit.h. (delete_longjmp_breakpoint_cleanup): Replace function declaration with FORWARD_SCOPE_EXIT type.
2019-01-23Use SCOPE_EXIT in gdbarch-selftest.cPedro Alves2-7/+5
Replace the custom local class with a SCOPE_EXIT. gdb/ChangeLog: 2019-01-23 Pedro Alves <palves@redhat.com> * gdbarch-selftests.c (struct on_exit): Use SCOPE_EXIT.
2019-01-23Use forward_scope_exit for scoped_finish_thread_statePedro Alves2-25/+10
This reimplements the manually-written scoped_finish_thread_state class as a forward_scope_exit instantiation. forward_scope_exit has the same interface as scoped_finish_thread_state, so nothing else has to change. A forward_scope_exit is preferred over make_scope_exit here because infrun.c:normal_stop needs to wrap scoped_finish_thread_state in a gdb::optional. Since we need the type there, might as well use it everywhere. gdb/ChangeLog: 2019-01-23 Pedro Alves <palves@redhat.com> Andrew Burgess <andrew.burgess@embecosm.com> * gdbthread.h: Include "common/forward-scope-exit.h". (scoped_finish_thread_state): Redefine custom class in terms of forward_scope_exit.
2019-01-23Introduce forward_scope_exitPedro Alves2-0/+128
This adds a template that can be used to automatically instantiate scope_exit-like types that wrap some cleanup function. The instantiated type has a ctor that has the same interface as the wrapped function. While the "magic" is just straight C++11, the intended use is via the FORWARD_SCOPE_EXIT macro, which is a minimal macro that avoids spelling out the wrapped function name more than once: void some_function (int foo, object *bar); using some_function_fce = FORWARD_SCOPE_EXIT (some_function); some_function_fce cleanup (some_int, some_obj_ptr); The above runs: some_function (some_int, some_obj_ptr); at scope exit. This is mainly useful as opposed to a simpler SCOPE_EXIT when you need to: - cancel the scope_exit, in which case you need the object's name - wrap the scope_exit in a gdb::optional, in which case you need the scope_exit's type in advance. More details in the code comments. gdb/ChangeLog: 2019-01-23 Pedro Alves <palves@redhat.com> Andrew Burgess <andrew.burgess@embecosm.com> * common/forward-scope-exit.h: New file.
2019-01-23Introduce scope_exitPedro Alves2-0/+192
This add a new template class scope_exit. scope_exit is a general-purpose scope guard that calls its exit function at the end of the current scope. A scope_exit may be canceled by calling the "release" method. The API is modeled on P0052R5 - Generic Scope Guard and RAII Wrapper for the Standard Library, which is itself based on Andrej Alexandrescu's ScopeGuard/SCOPE_EXIT. The main advantage of scope_exit is avoiding writing single-use RAII classes and its boilerplate. Following patches will remove a few of such classes. There are two forms available: - The "make_scope_exit" form allows canceling the scope guard. Use it like this: auto cleanup = make_scope_exit ( <function, function object, lambda> ); ... cleanup.release (); // cancel - If you don't need to cancel the guard, you can use the SCOPE_EXIT macro, like this: SCOPE_EXIT { /* any code you like here. */ } Note: scope_exit instances do not allocate anything on the heap. gdb/ChangeLog: 2019-01-23 Pedro Alves <palves@redhat.com> Andrew Burgess <andrew.burgess@embecosm.com> Tom Tromey <tom@tromey.com> * common/scope-exit.h: New file.
2019-01-23Rename ESC -> ESC_PARENSPedro Alves3-10/+17
A following patch will include common/preprocessor.h in some .c file that also includes readline.h, and that revealed a conflict -- ESC is defined by readline.h as well (actually readline's chardefs.h) with a completely unrelated meaning: #define ESC CTRL('[') Rename our version to avoid the conflict. gdb/ChangeLog: 2019-01-23 Pedro Alves <palves@redhat.com> * common/preprocessor.h (ESC): Rename to ... (ESC_PARENS): ... this. * common/valid-expr.h (CHECK_VALID_EXPR_1, CHECK_VALID_EXPR_2) (CHECK_VALID_EXPR_3, CHECK_VALID_EXPR_4): Adjust.
2019-01-23Remove a warning from symtab.cTom Tromey2-1/+11
When building symtab.c, I get: ../../binutils-gdb/gdb/language.h: In function ‘void print_symbol_info(search_domain, symbol*, int, const char*)’: ../../binutils-gdb/gdb/language.h:738:20: warning: ‘*((void*)& l +4)’ may be used uninitialized in this function [-Wmaybe-uninitialized] set_language (m_lang); ~~~~~~~~~~~~~^~~~~~~~ ../../binutils-gdb/gdb/symtab.c:4613:41: note: ‘*((void*)& l +4)’ was declared here scoped_switch_to_sym_language_if_auto l (sym); ^ This is another instance of the std::optional problem, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635. However, it seemed straightforward and inexpensive to me to silence this one, which is what this patch does. gdb/ChangeLog 2019-01-23 Tom Tromey <tom@tromey.com> * language.h (class scoped_switch_to_sym_language_if_auto): Initialize m_lang in both cases.
2019-01-23AArch64: Ensure lwp info is created zeroedAlan Hayward2-1/+6
The code to not set empty hardware BPs/WPs on new threads will only work if the newly allocated struct is empty. Ensure the structure is created zeroed. This patch removes the remaining racy behaviour on gdb.threads tests when run on AArch64 Ubuntu. gdb/ChangeLog: * nat/aarch64-linux.c (aarch64_linux_new_thread): Replace XNEW with XCNEW.
2019-01-23Updated translations for some of the binutils subdirectory.Nick Clifton7-5086/+5672
2019-01-23ld: Add LTO warning to --wrap documentationSebastian Huber2-0/+8
ld/ * ld.texi (--wrap): Add warning that LTO may make this feature ineffective.
2019-01-22corelow.c does not need sys/file.hTom Tromey2-3/+4
I did not see any reason that corelow.c should include <sys/file.h>. The provided explanatory comment seems to be wrong. This patch removes the include. 2019-01-22 Tom Tromey <tom@tromey.com> * corelow.c: Do not include sys/file.h.
2019-01-22Include coff/sym.h from coff/ecoff.hTom Tromey2-0/+6
coff/ecoff.h refers to some names defined in coff/sym.h. Include the latter from the former, so that users of the header don't need to know this detail. 2019-01-22 Tom Tromey <tom@tromey.com> * coff/ecoff.h: Include coff/sym.h.
2019-01-22Include gdb_curses.h in tui-wingeneral.hTom Tromey2-0/+6
tui-wingeneral.h uses WINDOW, which is defined by curses. So, include gdb_curses.h from tui-wingeneral.h. 2019-01-22 Tom Tromey <tom@tromey.com> * tui/tui-wingeneral.h: Include gdb_curses.h.
2019-01-22Rename "lines" parameter in source-cache.hTom Tromey2-5/+10
A compile in the TUI somehow had "lines" defined as a macro. This caused a compile error when including source-cache.h after whatever header did that. I tracked this down to a #define in /usr/include/term.h, so I just changed source-cache.h to avoid the clash. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * source-cache.h (class source_cache) <get_source_lines, get_plain_source_lines, extract_lines>: Rename "lines" parameter.
2019-01-22Declare remote_target in remote-fileio.hTom Tromey2-0/+5
remote-fileio.h refers to remote_target, so forward-declare it. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * remote-fileio.h (struct remote_target): Declare.
2019-01-22Do not include py-ref.h in most filesTom Tromey27-26/+29
py-ref.h can really only be included from a specific spot in python-internal.h. The other includes are not useful, and cause compilation errors if the includes are ever sorted. So, remove these includes. Arguably, py-ref.h should simply not be a separate header. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * python/py-arch.c: Do not include py-ref.h. * python/py-bpevent.c: Do not include py-ref.h. * python/py-cmd.c: Do not include py-ref.h. * python/py-continueevent.c: Do not include py-ref.h. * python/py-event.h: Do not include py-ref.h. * python/py-evtregistry.c: Do not include py-ref.h. * python/py-finishbreakpoint.c: Do not include py-ref.h. * python/py-frame.c: Do not include py-ref.h. * python/py-framefilter.c: Do not include py-ref.h. * python/py-function.c: Do not include py-ref.h. * python/py-infevents.c: Do not include py-ref.h. * python/py-linetable.c: Do not include py-ref.h. * python/py-objfile.c: Do not include py-ref.h. * python/py-param.c: Do not include py-ref.h. * python/py-prettyprint.c: Do not include py-ref.h. * python/py-progspace.c: Do not include py-ref.h. * python/py-symbol.c: Do not include py-ref.h. * python/py-symtab.c: Do not include py-ref.h. * python/py-type.c: Do not include py-ref.h. * python/py-unwind.c: Do not include py-ref.h. * python/py-utils.c: Do not include py-ref.h. * python/py-value.c: Do not include py-ref.h. * python/py-varobj.c: Do not include py-ref.h. * python/py-xmethods.c: Do not include py-ref.h. * python/python.c: Do not include py-ref.h. * varobj.c: Do not include py-ref.h.
2019-01-22Use "struct bcache" in objfiles.hTom Tromey2-2/+7
If objfiles.h is included after bcache.h, then the "bcache" function will cause a compiler error because "bcache" will be seen as a function, not a type. Fix this error by using the "struct" keyword. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * objfiles.h (struct objfile_per_bfd_storage): Use "struct" keyword for bcache.
2019-01-22Remove a comment in compile/compile-cplus-types.cTom Tromey2-2/+5
The include sorter can't handle multi-line comments on the same line as a #include. This patch removes the only such comment. In general I think these sorts of comments do not provide much value: more often than not, I find that the comment is obsolete in one way or another, and so the include sorter removes them in most cases. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * compile/compile-cplus-types.c: Remove a comment by #include.
2019-01-22Include compile-internal.h in gcc-c-plugin.hTom Tromey2-0/+6
gcc-c-plugin.h refers to some types defined in compile-internal.h. This patch changes the former to include the latter. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * compile/gcc-c-plugin.h: Include compile-internal.h.
2019-01-23Automatic date update in version.inGDB Administrator1-1/+1
2019-01-22Remove the EXTERN define from stabsread.hTom Tromey3-27/+34
This removes the EXTERN define from stabsread.h. This is the only spot that still uses this approach, and it interfered with sorting the includes in stabsread.c. Tested by rebuilding. gdb/ChangeLog 2019-01-22 Tom Tromey <tom@tromey.com> * stabsread.c (EXTERN): Do not define. (symnum, next_symbol_text_func, processing_gcc_compilation) (within_function, global_sym_chain, global_stabs) (previous_stab_code, this_object_header_files) (n_this_object_header_files) (n_allocated_this_object_header_files): Define. * stabsread.h (EXTERN): Never define. Use "extern".
2019-01-22Automatic date update in version.inGDB Administrator1-1/+1
2019-01-21Fix leak in event-top.c history expansionPhilippe Waroquiers2-10/+13
E.g. in gdb.base/default.exp, valgrind detects leaks such as ==17663== 1,438 bytes in 101 blocks are definitely lost in loss record 2,804 of 2,884 ==17663== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309) ==17663== by 0x418A17: xmalloc (common-utils.c:44) ==17663== by 0x4E6F19C: history_expand (histexpand.c:1061) ==17663== by 0x4B4490: handle_line_of_input(buffer*, char const*, int, char const*) (event-top.c:685) ==17663== by 0x4B4562: command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) (event-top.c:753) ... Fix the leak by using an unique_xmalloc_ptr for history_value. gdb/ChangeLog 2019-01-22 Philippe Waroquiers <philippe.waroquiers@skynet.be> * event-top.c (handle_line_of_input): use unique_xmalloc_ptr for history_value.