1. 10 Jan, 2019 33 commits
    • Pedro Alves's avatar
      Fix leak in mdebugread.c · 36cb7237
      Pedro Alves authored
      Coverity points out that all the "continue;" statements in the switch
      case in parse_partial_symbols leak STABSTRING.  This is because we
      only release STABSTRING at the end of the scope, with:
      
           	     	  if (stabstring
      		    && stabstring != debug_info->ss + fh->issBase + sh.iss)
      		  xfree (stabstring);
      
      but that bit of code is skipped if a case in the switch statement ends
      with "continue".
      
      Fix this by using gdb::unique_xmalloc_ptr to manage the heap-allocated
      version of 'stabsstring'.
      
      I don't know how to test this.
      
      gdb/ChangeLog:
      2019-01-10  Pedro Alves  <palves@redhat.com>
      
      	* mdebugread.c (parse_partial_symbols): Use
      	gdb::unique_xmalloc_ptr to manage heap-allocated 'stabsstring'.
      36cb7237
    • Andrew Burgess's avatar
      gdb: Fix incorrect variable name in scoped_switch_fork_info · da584958
      Andrew Burgess authored
      The previous commit:
      
        commit 1ef8573c
        Date:   Wed Jan 9 14:02:39 2019 +0000
      
            gdb: Improve scoped_switch_fork_info class
      
      contained a bug, an incorrect variable name was used. Fixed in this
      commit.
      
      gdb/ChangeLog:
      
      	* linux-fork.c (scoped_switch_fork_info)
      	<~scoped_switch_fork_info>: Fix incorrect variable name.
      da584958
    • Andrew Burgess's avatar
      gdb: Improve scoped_switch_fork_info class · 1ef8573c
      Andrew Burgess authored
      After committing this patch I got this feedback:
      
         https://sourceware.org/ml/gdb-patches/2019-01/msg00181.html
      
      This patch makes the constructor of scoped_switch_fork_info explicit,
      and wraps the core of the destructor in a TRY/CATCH block.
      
      I've run this through the testsuite on X86-64/GNU Linux, however, this
      code is not exercised, so this patch is untested.
      
      gdb/ChangeLog:
      
      	* linux-fork.c (scoped_switch_fork_info)
      	<scoped_switch_fork_info>: Make explicit.
      	<~scoped_switch_fork_info>: Wrap core in TRY/CATCH.
      1ef8573c
    • Nick Clifton's avatar
      Correct changelog entry. · 59aa9b0b
      Nick Clifton authored
      59aa9b0b
    • Nick Clifton's avatar
      Stop objdump from displaying control codes embedded in symbol names. · 12add40e
      Nick Clifton authored
      	PR 23963
      binutils* objdump.c (sanitize_string): New function.  Removes control
      	characters from symbol names.
      	(dump_section_header): Use new function.
      	(objdump_print_symname): Likewise.
      	(objdump_print_addr_with_sym): Likewise.
      	(show_line): Likewise.
      	(disassemble_bytes): Likewise.
      	(disassemble_section): Likewise.
      	(load_specific_debug_section): Likewise.
      	(read_section_stabs): Likewise.
      	(print_section_stabs): Likewise.
      	(dump_section): Likewise.
      	(dump_reloc_set): Likewise.
      	(dump_relocs_in_section): Likewise.
      	(dump_bfd): Likewise.
      	(display_any_bfd): Likewise.
      
      gas	* testsuite/gas/mips/mips16-branch-absolute-1.d: Adjust for the fact that
      	control characters are now displayed as escape sequences.
      	* testsuite/gas/mips/mips16-e.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-0.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-1.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-delay-0.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-delay-1.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-n32-0.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-n32-1.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: Likewise.
      	* testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-0.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-1.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d: Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d:
      	Likewise.
      	* testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d:
      	Likewise.
      	* testsuite/gas/mips/mipsel16-e.d: Likewise.
      	* testsuite/gas/mips/mipsr6@msa.d: Likewise.
      	* testsuite/gas/mips/mipsr6@relax-swap3.d: Likewise.
      	* testsuite/gas/mips/r6-64-n32.d: Likewise.
      	* testsuite/gas/mips/r6-64-n64.d: Likewise.
      	* testsuite/gas/mips/r6-n32.d: Likewise.
      	* testsuite/gas/mips/r6-n64.d: Likewise.
      	* testsuite/gas/mips/r6.d: Likewise.
      	* testsuite/gas/mips/tmips16-e.d: Likewise.
      	* testsuite/gas/mips/tmipsel16-e.d: Likewise.
      	* testsuite/gas/mn10300/relax.d: Likewise.
      12add40e
    • Tom Tromey's avatar
      Move psymtabs to their own obstack · 8d7bcccb
      Tom Tromey authored
      Previously, the psymtab obstack was just a pointer to the objfile
      obstack.  This patch changes psymtabs to use their own obstack,
      instead.  A gdb::optional is used to avoid unnecessary allocation when
      the obstack is not needed.
      
      After this patch, the psymtab code lifetime model is that, in the core
      psymtab code, objects allocated on the psymtab obstack may point to
      other such objects, or to objects on the per-BFD obstack -- but never
      to the objfile obstack.
      
      Note however that this invariant is only obeyed the core psymtab code,
      and even there not quite fully: there is still a link from the psymtab
      to the full symtab.
      
      Symbol readers are free to work however they like; and in particular,
      even after this patch, in practice all symbol readers violate this
      invariant via the read_symtab_private field.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* objfiles.h (objfile::reset_psymtabs): Update.
      	* objfiles.c (objfile::objfile): Update.
      	* psymtab.h (psymtab_storage::obstack): Update.
      	(psymtab_storage::m_obstack): Use gdb::optional.
      	(class psymtab_storage): Update comment.  Remove objfile
      	parameter.
      	* psymtab.c (psymtab_storage::psymtab_storage): Update.
      8d7bcccb
    • Tom Tromey's avatar
      Make psymtab_storage::free_psymtabs private · b596a3c7
      Tom Tromey authored
      This adds a new psymtab allocation method to psymtab_storage and
      changes the free_psymtabs member to be private.  While not strictly
      necessary, this seems like a decent cleanup, and also makes it simpler
      to move psymtabs off of obstacks entirely, should that prove
      desirable.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.h (psymtab_storage::allocate_psymtab): New method.
      	<free_psymtabs>: Now private.
      	* psymtab.c (psymtab_storage::allocate_psymtab): Implement.
      	(allocate_psymtab): Use new method.
      b596a3c7
    • Tom Tromey's avatar
      Add psymtab_storage::allocate_dependencies · a9342b62
      Tom Tromey authored
      This adds a new method to psymtab_storage to allocate storage for
      psymtab dependencies, then changes the symbol readers to use it.  This
      has the effect of moving the storage to the psymtab storage obstack.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_end_psymtab): Use allocate_dependencies.
      	* psymtab.h (psymtab_storage::allocate_dependencies): New method.
      	* mdebugread.c (parse_partial_symbols): Use
      	allocate_dependencies.
      	* dwarf2read.c (dwarf2_create_include_psymtab): Use
      	allocate_dependencies.
      	(process_psymtab_comp_unit_reader)
      	(build_type_psymtab_dependencies): Likewise.
      	* dbxread.c (dbx_end_psymtab): Use allocate_dependencies.
      a9342b62
    • Tom Tromey's avatar
      Move more allocations to psymtab obstack · 5af70966
      Tom Tromey authored
      This moves a couple more psymtab-related allocations to the psymtab
      obstack.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.c (add_psymbol_to_bcache): Pass psymtab obstack to
      	PSYMBOL_SET_LANGUAGE.
      	(allocate_psymtab): Allocate psymtab on the psymtab obstack.
      5af70966
    • Tom Tromey's avatar
      Allocate the address map on the psymtab obstack · 5923a04c
      Tom Tromey authored
      After this patch, the psymtab address map will now be allocated on the
      psymtab obstack rather than the objfile obstack.  This also changes
      the psymtab storage object to make the obstack private; this will be
      used later.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.h (psymtab_storage::obstack): New method.
      	<m_obstack>: Rename from obstack; now private.
      	* psymtab.c (psymtab_storage): Update.
      	* dwarf2read.c (create_addrmap_from_index)
      	(create_addrmap_from_aranges, dwarf2_build_psymtabs_hard):
      	Update.
      5923a04c
    • Tom Tromey's avatar
      Introduce objfile::reset_psymtabs · 6d6a12bf
      Tom Tromey authored
      This introduces a new method, objfile::reset_psymtabs, and changes
      reread_symbols to use it.  This method simply destroys the existing
      partial symbols and recreates the psymtab_storage object.
      
      This patch fixes a latent bug -- namely, that reread_symbols should
      clear objfile::psymbol_map, but does not.  I can submit that
      separately if you'd prefer.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symfile.c (reread_symbols): Call objfile->reset_psymtabs.
      	* objfiles.h (objfile::reset_psymtabs): New method.
      6d6a12bf
    • Tom Tromey's avatar
      Introduce class psymtab_storage · d320c2b5
      Tom Tromey authored
      This introduces a new psymtab_storage class, which holds all
      psymbol-related objects that are independent of the objfile.  (This
      latter contraint explains why psymbol_map was not moved; though this
      could still be done with some work.)
      
      This patch does not yet change where psymtab allocation is done --
      that comes later.  This just wraps everything in a single object to
      make further transformations simpler.
      
      Note that a shared_ptr is used to link from the objfile to the
      psymtab_storage object.  The end goal here is to allow a given symbol
      reader to simply attach to the psymtab_storage object to the BFD, then
      reuse it in later invocations; shared_ptr makes this simple to reason
      about.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symmisc.c (print_symbol_bcache_statistics): Update.
      	(print_objfile_statistics): Update.
      	* symfile.c (reread_symbols): Update.
      	* psymtab.h (class psymtab_storage): New.
      	* psymtab.c (psymtab_storage): New constructor.
      	(~psymtab_storage): New destructor.
      	(require_partial_symbols): Update.
      	(ALL_OBJFILE_PSYMTABS_REQUIRED): Rewrite.
      	(find_pc_sect_psymtab, find_pc_sect_psymbol)
      	(match_partial_symbol, lookup_partial_symbol, dump_psymtab)
      	(psym_dump, recursively_search_psymtabs, psym_has_symbols)
      	(psym_find_compunit_symtab_by_address, sort_pst_symbols)
      	(start_psymtab_common, end_psymtab_common)
      	(add_psymbol_to_bcache, add_psymbol_to_list, init_psymbol_list)
      	(allocate_psymtab): Update.
      	(psymtab_storage::discard_psymtab): Rename from discard_psymtab.
      	Update.
      	(dump_psymtab_addrmap, maintenance_print_psymbols)
      	(maintenance_check_psymtabs): Update.
      	(class objfile_psymtabs): Move to objfiles.h.
      	* psympriv.h (discard_psymtab): Now inline.
      	(psymtab_discarder::psymtab_discarder): Update.
      	(psymtab_discarder::~psymtab_discarder): Update.
      	(ALL_OBJFILE_PSYMTABS): Rewrite.
      	* objfiles.h (struct objfile) <psymtabs, psymtabs_addrmap,
      	free_psymtabs, psymbol_cache, global_psymbols, static_psymbols>:
      	Remove fields.
      	<partial_symtabs>: New field.
      	(class objfile_psymtabs): Move from psymtab.h.  Update.
      	* objfiles.c (objfile::objfile): Initialize partial_symtabs, not
      	psymbol_cache.
      	(objfile::~objfile): Don't destroy psymbol_cache.
      	* mdebugread.c (parse_partial_symbols): Update.
      	* dwarf2read.c (create_addrmap_from_index)
      	(create_addrmap_from_aranges, dw2_find_pc_sect_compunit_symtab)
      	(process_psymtab_comp_unit_reader, dwarf2_build_psymtabs_hard)
      	(add_partial_subprogram, dwarf2_ranges_read): Update.
      	* dwarf-index-write.c (write_address_map)
      	(write_one_signatured_type, recursively_write_psymbols)
      	(class debug_names, class debug_names, write_psymtabs_to_index):
      	Update.
      d320c2b5
    • Tom Tromey's avatar
      Change symbol_set_names to take an objfile_per_bfd_storage · 1d94a5a3
      Tom Tromey authored
      This changes symbol_set_names to take an objfile_per_bfd_storage
      argument, and updates the users.  It also changes PSYMBOL_SET_NAMES to
      take this argument directly; I feel this clarifies the storage
      location of objects created in psymtab.c.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symtab.h (SYMBOL_SET_NAMES): Update.
      	(symbol_set_names): Update.
      	(MSYMBOL_SET_NAMES): Update.
      	* symtab.c (symbol_set_names): Change argument to be an
      	objfile_per_bfd_storage.
      	* psymtab.c (add_psymbol_to_bcache): Update.
      	* psympriv.h (PSYMBOL_SET_NAMES): Take per_bfd argument.
      1d94a5a3
    • Tom Tromey's avatar
      Change create_demangled_names_hash to take an objfile_per_bfd_storage · 0f14768a
      Tom Tromey authored
      This changes create_demangled_names_hash to take an
      objfile_per_bfd_storage parameter.  This makes it clearer where it is
      storing the objects it allocates.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (create_demangled_names_hash): Change argument to be an
      	objfile_per_bfd_storage.
      	(symbol_set_names): Update.
      0f14768a
    • Tom Tromey's avatar
      Simplify calls to init_psymbol_list · 6eee24ce
      Tom Tromey authored
      Existing callers to init_psymbol_list were checking to see if psymbols
      had already been initialized.  It seemed better to me to do this check
      directly in init_psymbol_list, simplifying the callers.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_initial_scan): Unconditionally call
      	init_psymbol_list.
      	* psymtab.c (init_psymbol_list): Do nothing if already called.
      	* psympriv.h (init_psymbol_list): Add comment.
      	* dwarf2read.c (dwarf2_build_psymtabs): Unconditionally call
      	init_psymbol_list.
      	* dbxread.c (dbx_symfile_read): Unconditionally call
      	init_psymbol_list.
      6eee24ce
    • Tom Tromey's avatar
      Change add_psymbol_to_list to use an enum · 75aedd27
      Tom Tromey authored
      This changes add_psymbol_to_list to use an enum, rather than a pointer
      to a vector, to decide where to put the new symbol.  This reduces the
      number of direct references to the static_psymbols and global_psymbols
      members of the objfile, which is handy in a later patch.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (scan_xcoff_symtab): Update.
      	* psymtab.c (add_psymbol_to_list): Replace "list" parameter with
      	"where".
      	* mdebugread.c (parse_partial_symbols)
      	(handle_psymbol_enumerators): Update.
      	* dwarf2read.c (add_partial_symbol, load_partial_dies): Update.
      	* dbxread.c (read_dbx_symtab): Update.
      	* psympriv.h (psymbol_placement): New enum.
      	(add_psymbol_to_list): Update.
      75aedd27
    • Tom Tromey's avatar
      Remove parameters from start_psymtab_common · 939652a5
      Tom Tromey authored
      start_psymtab_common takes references to the global_psymbols and
      static_psymbols vectors, but it also has an objfile parameter.  This
      is redundant, so this patch simplifies the function by removing those
      reference parameters.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_start_psymtab): Remove global_psymbols and
      	static_psymbols parameters.
      	(scan_xcoff_symtab): Update.
      	* psymtab.c (start_psymtab_common): Remove global_psymbols and
      	static_psymbols parameters.
      	* psympriv.h (start_psymtab_common): Update.
      	* mdebugread.c (parse_partial_symbols): Update.
      	* dwarf2read.c (create_partial_symtab): Update.
      	* dbxread.c (read_dbx_symtab): Update.
      	(start_psymtab): Remove global_psymbols and static_psymbols
      	parameters.
      939652a5
    • Tom Tromey's avatar
      Remove some unneeded psymtab initializations · baa62830
      Tom Tromey authored
      allocate_psymtab has long cleared the new psymtab that is returned.
      This patch documents this behavior and then removes some redundant
      initializations.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_end_psymtab): Remove some initializations.
      	* psymtab.c (allocate_psymtab): Add comment.
      	* psympriv.h (allocate_psymtab): Add comment.
      	* dwarf2read.c (dwarf2_create_include_psymtab): Remove some
      	initializations.
      	* dbxread.c (dbx_end_psymtab): Remove some initializations.
      baa62830
    • Tom Tromey's avatar
      Move some declarations to mdebugread.h · 0e8f53ba
      Tom Tromey authored
      This moves a couple of mdebugread-related declarations from symfile.h
      to mdebugread.h, which seemed more appropriate.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symfile.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
      	Don't declare.
      	* mipsread.c: Include mdebugread.h.
      	* mdebugread.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
      	Declare.
      	* elfread.c: Include mdebugread.h.
      0e8f53ba
    • Nick Clifton's avatar
      Sync libiberty sources with gcc master versions. · 1910070b
      Nick Clifton authored
      .	* libiberty: Sync with gcc.  Bring in:
      	2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615
      
      	* cp-demangle.c: Mechanically replace "can not" with "cannot".
      	* floatformat.c: Likewise.
      	* strerror.c: Likewise.
      
      	2018-12-22  Jason Merrill  <jason@redhat.com>
      
      	Remove support for demangling GCC 2.x era mangling schemes.
      	* cplus-dem.c: Remove cplus_mangle_opname, cplus_demangle_opname,
      	internal_cplus_demangle, and all subroutines.
      	(libiberty_demanglers): Remove entries for ancient GNU (pre-3.0),
      	Lucid, ARM, HP, and EDG demangling styles.
      	(cplus_demangle): Remove 'work' variable.  Don't call
      	internal_cplus_demangle.
      
      include	* Merge from GCC:
      	2018-12-22  Jason Merrill  <jason@redhat.com>
      
      	* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
      	ARM, HP, and EDG demangling styles.
      1910070b
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_PSYMTABS · b22a7c6a
      Tom Tromey authored
      This removes the ALL_OBJFILE_PSYMTABS macro, replacing its uses with
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* dbxread.c (dbx_end_psymtab): Use objfile_psymtabs.
      	* mdebugread.c (parse_partial_symbols): Use objfile_psymtabs.
      	* psymtab.c (ALL_OBJFILE_PSYMTABS_REQUIRED): Remove.
      	(psym_map_symtabs_matching_filename, find_pc_sect_psymtab)
      	(psym_lookup_symbol, psym_find_last_source_symtab)
      	(psym_forget_cached_source_info, psym_print_stats)
      	(psym_expand_symtabs_for_function, psym_expand_all_symtabs)
      	(psym_expand_symtabs_with_fullname, psym_map_symbol_filenames)
      	(psym_map_matching_symbols, psym_expand_symtabs_matching)
      	(psym_find_compunit_symtab_by_address)
      	(maintenance_print_psymbols, maintenance_info_psymtabs)
      	(maintenance_check_psymtabs): Use ranged for.
      	* psymtab.h (class objfile_psymtabs): New.
      	(require_partial_symbols): Return objfile_psymtabs.
      	* psympriv.h (ALL_OBJFILE_PSYMTABS): Remove.
      b22a7c6a
    • Tom Tromey's avatar
      Remove ALL_OBJSECTIONS · 3b9d3ac2
      Tom Tromey authored
      This removes the ALL_OBJSECTIONS macro, replacing its uses with ranged
      for loops.
      
      The special code in this macro for noticing a "break" from the inner
      loop was only needed in a single place; so rather than try to
      replicate this, I've simply replaced that use with a "goto".
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symfile.c (overlay_invalidate_all, find_pc_overlay)
      	(find_pc_mapped_section, list_overlays_command)
      	(map_overlay_command, unmap_overlay_command)
      	(simple_overlay_update): Use all_objfiles.
      	* spu-tdep.c (spu_overlay_update): Use all_objfiles.
      	* printcmd.c (info_symbol_command): Use all_objfiles.
      	* objfiles.h (ALL_OBJSECTIONS): Remove.
      	* maint.c (maintenance_translate_address): Use all_objfiles.
      	* gcore.c (gcore_create_callback): Use all_objfiles.
      	(objfile_find_memory_regions): Likewise.
      3b9d3ac2
    • Tom Tromey's avatar
      Remove ALL_OBJFILES and ALL_FILETABS · 8b31193a
      Tom Tromey authored
      This removes the ALL_OBJFILES and ALL_FILETABS macros, replacing them
      with ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (find_line_symtab, info_sources_command)
      	(make_source_files_completion_list): Use objfile_compunits.
      	* source.c (select_source_symtab): Use objfile_compunits.
      	* objfiles.h (struct objfile): Update comment.
      	(ALL_OBJFILES): Remove.
      	(ALL_FILETABS): Remove.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Use
      	objfile_compunits.
      8b31193a
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_FILETABS · d5da8b3c
      Tom Tromey authored
      This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for
      loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symmisc.c (print_objfile_statistics, dump_objfile)
      	(maintenance_print_symbols): Use compunit_filetabs.
      	* source.c (forget_cached_source_info_for_objfile): Use
      	compunit_filetabs.
      	* objfiles.h (ALL_OBJFILE_FILETABS): Remove.
      	(ALL_FILETABS): Use compunit_filetabs.
      	* objfiles.c (objfile_relocate1): Use compunit_filetabs.
      	* coffread.c (coff_symtab_read): Use compunit_filetabs.
      d5da8b3c
    • Tom Tromey's avatar
      Remove ALL_COMPUNIT_FILETABS · 5accd1a0
      Tom Tromey authored
      This removes ALL_COMPUNIT_FILETABS, replacing its uses with ranged for
      loops.
      
      Because this is still used in the ALL_OBJFILE_FILETABS macro, in some
      places a declaration had to be removed or renamed to avoid shadowing.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.h (ALL_COMPUNIT_FILETABS): Remove.
      	(compunit_filetabs): New.
      	* symtab.c (iterate_over_some_symtabs, find_pc_sect_line): Use
      	compunit_filetabs.
      	(info_sources_command, make_source_files_completion_list): Remove
      	declaration.
      	* symmisc.c (print_objfile_statistics, dump_objfile)
      	(maintenance_print_symbols): Remove declaration.
      	(maintenance_info_symtabs): Use compunit_filetabs.
      	(maintenance_info_line_tables): Likewise.
      	* source.c (select_source_symtab): Change local variable name.
      	(forget_cached_source_info_for_objfile): Remove declaration.
      	* objfiles.h (ALL_OBJFILE_FILETABS): Use compunit_filetabs.
      	* objfiles.c (objfile_relocate1): Remove declaration.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
      	declaration.
      	* maint.c (count_symtabs_and_blocks): Use compunit_filetabs.
      	* coffread.c (coff_symtab_read): Remove declaration.
      	* buildsym.c (buildsym_compunit::end_symtab_with_blockvector): Use
      	compunit_filetabs.
      5accd1a0
    • Tom Tromey's avatar
      Remove ALL_COMPUNITS · d8aeb77f
      Tom Tromey authored
      This removes the ALL_COMPUNITS, replacing its uses with two nested
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (lookup_objfile_from_block)
      	(find_pc_sect_compunit_symtab, search_symbols)
      	(default_collect_symbol_completion_matches_break_on): Use
      	objfile_compunits.
      	* objfiles.h (ALL_COMPUNITS): Remove.
      	* maint.c (count_symtabs_and_blocks): Use objfile_compunits.
      	* cp-support.c (add_symbol_overload_list_qualified): Use
      	objfile_compunits.
      	* ada-lang.c (ada_collect_symbol_completion_matches)
      	(ada_add_global_exceptions): Use objfile_compunits.
      d8aeb77f
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_COMPUNITS · 592553c4
      Tom Tromey authored
      This removes ALL_OBJFILE_COMPUNITS, replacing its uses with ranged for
      loops.  Because ALL_COMPUNITS is also updated, in some places a
      declaration must be deleted to avoid shadowing.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* source.c (select_source_symtab)
      	(forget_cached_source_info_for_objfile): Remove declaration.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
      	declaration.
      	* maint.c (count_symtabs_and_blocks): Remove declaration.
      	* cp-support.c (add_symbol_overload_list_qualified): Remove
      	declaration.
      	* coffread.c (coff_symtab_read): Remove declaration.
      	* symtab.c (lookup_symbol_in_objfile_symtabs)
      	(basic_lookup_transparent_type_1): Use objfile_compunits.
      	(lookup_objfile_from_block, find_pc_sect_compunit_symtab)
      	(info_sources_command, search_symbols)
      	(default_collect_symbol_completion_matches_break_on)
      	(make_source_files_completion_list): Remove declaration.
      	* ada-lang.c (add_nonlocal_symbols): Use objfile_compunits.
      	(ada_collect_symbol_completion_matches)
      	(ada_add_global_exceptions): Remove declaration.
      	* linespec.c (iterate_over_all_matching_symtabs): Use
      	objfile_compunits.
      	* objfiles.h (ALL_OBJFILE_COMPUNITS): Remove.
      	(class objfile_compunits): New.
      	(ALL_COMPUNITS): Use objfile_compunits.
      	* symmisc.c (print_objfile_statistics, maintenance_info_symtabs)
      	(maintenance_check_symtabs, maintenance_info_line_tables): Use
      	objfile_compunits.
      	* objfiles.c (objfile_relocate1): Use objfile_compunits.
      592553c4
    • Tom Tromey's avatar
      Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS · 5325b9bf
      Tom Tromey authored
      This removes the ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS macros,
      replacing their uses with ranged for loops.
      
      In a couple of spots, a new declaration was needed in order to work
      around shadowing; these are just temporary and are removed in a
      subsequent patch.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (search_symbols)
      	(default_collect_symbol_completion_matches_break_on): Use
      	objfile_msymbols.
      	* ada-lang.c (ada_lookup_simple_minsym)
      	(ada_collect_symbol_completion_matches): Use objfile_msymbols.
      	* minsyms.c (find_solib_trampoline_target): Use objfile_msymbols.
      	* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Use
      	objfile_msymbols.
      	* coffread.c (coff_symfile_read): Use objfile_msymbols.
      	* symmisc.c (dump_msymbols): Use objfile_msymbols.
      	* objc-lang.c (find_methods): Use objfile_msymbols.
      	(info_selectors_command, info_classes_command): Likewise.
      	* stabsread.c (scan_file_globals): Use objfile_msymbols.
      	* objfiles.h (class objfile_msymbols): New.
      	(ALL_OBJFILE_MSYMBOLS): Remove.
      	(ALL_MSYMBOLS): Remove.
      5325b9bf
    • Tom Tromey's avatar
      Remove ALL_OBJFILES_SAFE · cac85af2
      Tom Tromey authored
      This removes the ALL_OBJFILES_SAFE macro, replacing the uses with
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* common/next-iterator.h (next_adapter): Add Iterator template
      	parameter.
      	* objfiles.h (ALL_OBJFILES_SAFE): Remove.
      	(class all_objfiles_safe): New.
      	* jit.c (jit_inferior_exit_hook): Use all_objfiles_safe.
      	* objfiles.c (put_objfile_before): Update comment.
      	(add_separate_debug_objfile): Likewise.
      	(free_all_objfiles): Use all_objfiles_safe.
      	(objfile_purge_solibs): Likewise.
      cac85af2
    • Tom Tromey's avatar
      Remove most uses of ALL_OBJFILES · aed57c53
      Tom Tromey authored
      This removes most uses of ALL_OBJFILES, replacing them with ranged for
      loops.  The remaining uses are all in macros, and will be removed in
      subsequent patches.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (iterate_over_symtabs, matching_obj_sections)
      	(expand_symtab_containing_pc, lookup_static_symbol)
      	(basic_lookup_transparent_type, find_pc_sect_compunit_symtab)
      	(find_symbol_at_address, find_line_symtab, find_main_name): Use
      	all_objfiles.
      	* probe.c (find_probe_by_pc, collect_probes): Use all_objfiles.
      	* breakpoint.c (create_overlay_event_breakpoint)
      	(create_longjmp_master_breakpoint)
      	(create_std_terminate_master_breakpoint)
      	(create_exception_master_breakpoint): Use all_objfiles.
      	* linux-thread-db.c (try_thread_db_load_from_pdir)
      	(has_libpthread): Use all_objfiles.
      	* ada-lang.c (add_nonlocal_symbols): Use all_objfiles.
      	* linespec.c (iterate_over_all_matching_symtabs)
      	(search_minsyms_for_name): Use all_objfiles.
      	* maint.c (maintenance_info_sections): Use all_objfiles.
      	* main.c (captured_main_1): Use all_objfiles.
      	* spu-tdep.c (spu_objfile_from_frame): Use all_objfiles.
      	* guile/scm-objfile.c (gdbscm_objfiles): Use all_objfiles.
      	* guile/scm-pretty-print.c
      	(ppscm_find_pretty_printer_from_objfiles): Use all_objfiles.
      	* solib-spu.c (append_ocl_sos): Use all_objfiles.
      	* symmisc.c (maintenance_print_symbols): Use all_objfiles.
      	(maintenance_print_msymbols): Use all_objfiles.
      	* source.c (select_source_symtab): Use all_objfiles.
      	* jit.c (jit_find_objf_with_entry_addr): Use all_objfiles.
      	* symfile.c (remove_symbol_file_command)
      	(expand_symtabs_matching, map_symbol_filenames): Use
      	all_objfiles.
      	* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created): Use
      	all_objfiles.
      	* dwarf2-frame.c (dwarf2_frame_find_fde): Use all_objfiles.
      	* objc-lang.c (find_methods): Use all_objfiles.
      	* objfiles.c (have_partial_symbols, have_full_symbols)
      	(have_minimal_symbols, qsort_cmp)
      	(default_iterate_over_objfiles_in_search_order): Use
      	all_objfiles.
      	* hppa-tdep.c (find_unwind_entry): Use all_objfiles.
      	* psymtab.c (maintenance_print_psymbols): Use all_objfiles.
      	(maintenance_check_psymtabs): Use all_objfiles.
      	(ALL_PSYMTABS): Remove.
      	* compile/compile-object-run.c (do_module_cleanup): Use
      	all_objfiles.
      	* blockframe.c (find_pc_partial_function): Use all_objfiles.
      	* cp-support.c (add_symbol_overload_list_qualified): Use
      	all_objfiles.
      	* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
      	Use all_objfiles.
      	* dwarf-index-write.c (save_gdb_index_command): Use all_objfiles.
      	* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): Use
      	all_objfiles.
      	* python/py-objfile.c (objfpy_lookup_objfile_by_name)
      	(objfpy_lookup_objfile_by_build_id): Use all_objfiles.
      	* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
      	Uses all_objfiles.
      	* solib.c (solib_read_symbols): Use all_objfiles
      aed57c53
    • Tom Tromey's avatar
      Remove ALL_PSPACE_OBJFILES · 99d89cde
      Tom Tromey authored
      This removes the ALL_PSPACE_OBJFILES macro in favor of ranged for
      loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* probe.c (parse_probes_in_pspace): Use all_objfiles.
      	* guile/scm-progspace.c (gdbscm_progspace_objfiles): Use
      	all_objfiles.
      	* objfiles.h (ALL_PSPACE_OBJFILES): Remove.
      	* symmisc.c (print_symbol_bcache_statistics)
      	(print_objfile_statistics, maintenance_print_objfiles)
      	(maintenance_info_symtabs, maintenance_check_symtabs)
      	(maintenance_expand_symtabs, maintenance_info_line_tables): Use
      	all_objfiles.
      	* source.c (forget_cached_source_info): Use all_objfiles.
      	* symfile-debug.c (set_debug_symfile): Use all_objfiles.
      	* elfread.c (elf_gnu_ifunc_resolve_by_cache)
      	(elf_gnu_ifunc_resolve_by_got): Use all_objfiles.
      	* objfiles.c (update_section_map): Use all_objfiles.
      	(shared_objfile_contains_address_p): Likewise.
      	* psymtab.c (maintenance_info_psymtabs): Use all_objfiles.
      	* python/py-progspace.c (pspy_get_objfiles): Use all_objfiles.
      99d89cde
    • Tom Tromey's avatar
      Introduce all_objfiles and next_iterator · 21708325
      Tom Tromey authored
      This introduces an iterable object which can be used to iterate over
      objfiles.  It also introduces a generic "next_iterator", which can be
      used to iterate over types that have a "next" field.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* common/next-iterator.h: New file.
      	* objfiles.h (class all_objfiles): New.
      	(struct objfile_iterator): New.
      21708325
    • GDB Administrator's avatar
      Automatic date update in version.in · d30e1903
      GDB Administrator authored
      d30e1903
  2. 09 Jan, 2019 7 commits
    • Sandra Loosemore's avatar
      Merge from gcc: use "cannot" instead of "can not" in libiberty and include. · a08da33e
      Sandra Loosemore authored
      2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	Merge from GCC:
      
      	2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615 [2/5]
      
      	include/
      	* libiberty.h: Mechanically replace "can not" with "cannot".
      	* plugin-api.h: Likewise.
      
      	libiberty/
      	* cp-demangle.c: Mechanically replace "can not" with "cannot".
      	* floatformat.c: Likewise.
      	* strerror.c: Likewise.
      a08da33e
    • Philippe Waroquiers's avatar
      NEWS: Move changed commands description to Changed commands section. · 669e09f6
      Philippe Waroquiers authored
      2019-01-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
      
      	* NEWS: Move the description of the changed "frame", "select-frame",
      	and "info frame" commands to the Changed commands section.
      669e09f6
    • John Darrington's avatar
      S12Z: Don't crash when disassembling invalid instructions. · 448b8ca8
      John Darrington authored
      Check for null before dereferencing an operand pointer.  Normally
      this situation should never arise, but could happen if a "partial"
      instruction is encountered at the end of a file or section.
      
      opcodes/
      	* s12z-dis.c (print_insn_s12z):  Do not dereference an
      	operand if it is null.
      448b8ca8
    • John Darrington's avatar
      S12Z: Fix disassembly of indexed OPR operands with zero index. · 39f286cd
      John Darrington authored
      gas/
      	* testsuite/gas/s12z/jsr.s: New case.
      	* testsuite/gas/s12z/jsr.d: New case.
      opcodes/
      	* s12z-dis.c (opr_emit_disassembly): Do not omit an index if it is
      	zero.
      39f286cd
    • Simon Marchi's avatar
      gdb: Remove support for old mangling schemes · 041be526
      Simon Marchi authored
      An upcoming sync with gcc's libiberty [1] will remove support for old
      mangling schemes (GNU v2, Lucid, ARM, HP and EDG).  It will remove the
      cplus_demangle_opname function, so we need to get rid of its usages in
      GDB (it's a GNU v2 specific function).
      
      I think the changes are mostly relatively obvious, some hacks that were
      necessary to support overloaded operators with GNU v2 mangling are not
      needed anymore.
      
      The change in stabsread.c is perhaps less obvious.  I think we could get
      rid of more code in that region that is specific to old mangling
      schemes, but I chose to do only the minimal changes required to remove
      the cplus_demangle_opname uses.  There is also a detailed comment just
      above that explaining how GNU v2 and v3 mangled symbols are handled, I
      decided to leave it as-is, since I wasn't sure which part to remove,
      change or leave there.
      
      [1] The commit "Remove support for demangling GCC 2.x era mangling
      schemes.", specifically.
      
      gdb/ChangeLog:
      
      	* gdbtypes.c (check_stub_method_group): Remove handling of old
      	mangling schemes.
      	* linespec.c (find_methods): Likewise.
      	* stabsread.c (read_member_functions): Likewise.
      	* valops.c (search_struct_method): Likewise.
      	(value_struct_elt_for_reference): Likewise.
      	* NEWS: Mention this change.
      
      gdb/testsuite/ChangeLog:
      
      	* gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
      	(test_gnuv3_style_demangling): ... this.
      	(test_lucid_style_demangling): Remove.
      	(test_arm_style_demangling): Remove.
      	(test_hp_style_demangling): Remove.
      	(do_tests): Remove calls to the above.
      
      gdb/doc/ChangeLog:
      
      	* gdb.texinfo (Print Settings): Remove mention of specific
      	demangle-style values, just refer to the in-process help.
      041be526
    • Andrew Burgess's avatar
      gdb: Avoid signed integer overflow when printing source lines · 0e2a2133
      Andrew Burgess authored
      When printing source lines with calls to print_source_lines we need to
      pass a start line number and an end line number.  The end line number
      is calculated by calling get_lines_to_list and adding this value to
      the start line number.  For example this code from list_command:
      
          print_source_lines (cursal.symtab, first,
                              first + get_lines_to_list (), 0);
      
      The problem is that get_lines_to_list returns a value based on the
      GDB setting `set listsize LISTSIZE`.  By default LISTSIZE is 10,
      however, its also possible to set LISTSIZE to unlimited, in which
      case get_lines_to_list will return INT_MAX.
      
      As the parameter signature for print_source_lines is:
      
        void print_source_lines (struct symtab *, int, int,
                                 print_source_lines_flags);
      
      and `first` in the above code is an `int`, then when LISTSIZE is
      `unlimited` the above code will result in signed integer overflow,
      which is undefined.
      
      The solution in this patch is a new class source_lines_range that can
      be constructed from a single line number and a direction (forward or
      backward).  The range is then constructed from the line number and the
      value of get_lines_to_list.
      
      gdb/ChangeLog:
      
      	* cli/cli-cmds.c (list_command): Pass a source_lines_range to
      	print_source_lines.
      	* source.c (print_source_lines_base): Update line number check.
      	(print_source_lines): New function.
      	(source_lines_range::source_lines_range): New function.
      	* source.h (class source_lines_range): New class.
      	(print_source_lines): New declaration.
      0e2a2133
    • Nick Clifton's avatar
      Updated Spanish translation for the ld sub-directory. · 8379fac6
      Nick Clifton authored
      	* po/es.po: Updated Spanish translation.
      8379fac6