]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/ChangeLog
AArch64: Add target description/feature for MTE registers
[thirdparty/binutils-gdb.git] / gdb / ChangeLog
index 6262ade1435b8d3bdb35b9910bdd4bc2d38d00f0..33a58cb06d9e400805b66579afeddaa0bc2b39ea 100644 (file)
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * aarch64-linux-nat.c
+       (aarch64_linux_nat_target::read_description): Take MTE flag into
+       account.
+       Slight refactor to hwcap flag checking.
+       * aarch64-linux-tdep.c
+       (aarch64_linux_core_read_description): Likewise.
+       * aarch64-tdep.c (tdesc_aarch64_list): Add one more dimension for
+       MTE.
+       (aarch64_read_description): Add mte_p parameter and update to use it.
+       Update the documentation.
+       (aarch64_gdbarch_init): Update call to aarch64_read_description.
+       * aarch64-tdep.h (aarch64_read_description): Add mte_p parameter.
+       * arch/aarch64.c: Include ../features/aarch64-mte.c.
+       (aarch64_create_target_description): Add mte_p parameter and update
+       the code to use it.
+       * arch/aarch64.h (aarch64_create_target_description): Add mte_p
+       parameter.
+       * features/Makefile (FEATURE_XMLFILES): Add aarch64-mte.xml.
+       * features/aarch64-mte.c: New file, generated.
+       * features/aarch64-mte.xml: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * Makefile.in (HFILES_NO_SRCDIR): Add arch/aarch64-mte-linux.h.
+       * aarch64-linux-nat.c: Include arch/aarch64-mte-linux.h.
+       * aarch64-linux-tdep.c: Likewise
+       * arch/aarch64-mte-linux.h: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * remote: Include gdbsupport/selftest.h.
+       (test_memory_tagging_functions): New function.
+       (_initialize_remote): Register test_memory_tagging_functions.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * remote.c (PACKET_memory_tagging_feature): New enum.
+       (remote_memory_tagging_p): New function.
+       (remote_protocol_features): New "memory-tagging" entry.
+       (remote_target::remote_query_supported): Handle memory tagging
+       support.
+       (remote_target::supports_memory_tagging): Implement.
+       (create_fetch_memtags_request, parse_fetch_memtags_reply)
+       (create_store_memtags_request): New functions.
+       (remote_target::fetch_memtags): Implement.
+       (remote_target::store_memtags): Implement.
+       (_initialize_remote): Add new "memory-tagging-feature"
+       config command.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * arch-utils.c (default_memtag_to_string, default_tagged_address_p)
+       (default_memtag_matches_p, default_set_memtags)
+       (default_get_memtag): New functions.
+       * arch-utils.h (default_memtag_to_string, default_tagged_address_p)
+       (default_memtag_matches_p, default_set_memtags)
+       (default_get_memtag): New prototypes.
+       * gdbarch.c: Regenerate.
+       * gdbarch.h: Regenerate.
+       * gdbarch.sh (memtag_to_string, tagged_address_p, memtag_matches_p)
+       (set_memtags, get_memtag, memtag_granule_size): New gdbarch hooks.
+       (enum memtag_type): New enum.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * remote.c (remote_target) <supports_memory_tagging>: New method
+       override.
+       <fetch_memtags>: New method override.
+       <store_memtags>: New method override.
+       (remote_target::supports_memory_tagging): New method.
+       (remote_target::fetch_memtags): New method.
+       (remote_target::store_memtags): New method.
+       * target-delegates.c: Regenerate.
+       * target.h (struct target_ops) <supports_memory_tagging>: New virtual
+       method.
+       <fetch_memtags>: New virtual method.
+       <store_memtags>: New virtual method.
+       (target_supports_memory_tagging): Define.
+       (target_fetch_memtags): Define.
+       (target_store_memtags): Define.
+       * target-debug.h (target_debug_print_size_t)
+       (target_debug_print_const_gdb_byte_vector_r)
+       (target_debug_print_gdb_byte_vector_r): New functions.
+
+2021-03-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * target.h (target_longname): Remove.
+
+2021-03-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * target.h (target_is_pushed): Remove, update callers to use
+       inferior::target_is_pushed instead.
+       * target.c (target_is_pushed): Remove.
+
+2021-03-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * target.h (push_target): Remove, update callers to use
+       inferior::push_target.
+       * target.c (push_target): Remove.
+       * inferior.h (class inferior) <push_target>: New overload.
+
+2021-03-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * target.h (unpush_target): Remove, update all callers
+       to use `inferior::unpush_target` instead.
+       (struct target_unpusher) <operator()>: Just declare.
+       * target.c (unpush_target): Remove.
+       (target_unpusher::operator()): New.
+
+2021-03-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * dwarf2/read.c (process_psymtab_comp_unit): Replace abort with an
+       error.
+       (process_full_comp_unit): Validate the top-level tag before
+       processing the first DIE.
+       (read_func_scope): Ensure we have a valid builder.
+
+2021-03-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * objc-lang.c (objc_demangle): Renamed to
+       objc_language::demangle_symbol, and moved later in the file.
+       (objc_language::sniff_from_mangled_name): Call demangle_symbol
+       member function.
+       (objc_language::demangle_symbol): Defined outside of class
+       declaration.  The definition is the old objc_demangle with NULL
+       changed to nullptr, and if conditions relating to nullptr pointers
+       or null character checks made explicit.
+       * objc-lang.h (objc_demangle): Delete declaration.
+
+2021-03-22  Martin Liska  <mliska@suse.cz>
+
+       * arm-tdep.c (show_disassembly_style_sfunc): Replace usage of CONST_STRNEQ with startswith.
+       (_initialize_arm_tdep): Likewise.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * xcoffread.c (xcoff_initial_scan): Create partial symtabs.
+       * symfile.c (syms_from_objfile_1, reread_symbols): Update.
+       * psymtab.h (make_psymbol_functions): Don't declare.
+       * psymtab.c (make_psymbol_functions): Remove.
+       (maintenance_print_psymbols): Update.
+       * psympriv.h (struct psymbol_functions): Add no-argument
+       constructor.
+       * objfiles.h (struct objfile) <reset_psymtabs>: Remove.
+       <partial_symtabs>: Remove.
+       * mdebugread.c (mdebug_build_psymtabs): Create partial symtabs.
+       * elfread.c (read_partial_symbols): Update.
+       (elf_symfile_read): Remove check for existing partial symbols.
+       Don't clear "qf".
+       * dwarf2/read.c (dwarf2_has_info): Remove check for existing
+       partial symbols.
+       (dwarf2_build_psymtabs): Add psymbol_functions parameter.  Create
+       partial symtabs.
+       * dwarf2/public.h (dwarf2_build_psymtabs): Add psymbol_functions
+       parameter.
+       * dbxread.c (dbx_symfile_read): Create partial symtabs.
+       * ctfread.c (elfctf_build_psymtabs): Create partial symtabs.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_build_psymtabs): Update.
+       * symfile.c (syms_from_objfile_1, reread_symbols): Update.
+       * symfile-debug.c (objfile::has_partial_symbols)
+       (objfile::find_last_source_symtab)
+       (objfile::forget_cached_source_info)
+       (objfile::map_symtabs_matching_filename, objfile::lookup_symbol)
+       (objfile::print_stats, objfile::dump)
+       (objfile::expand_symtabs_for_function)
+       (objfile::expand_all_symtabs)
+       (objfile::expand_symtabs_with_fullname)
+       (objfile::map_matching_symbols)
+       (objfile::expand_symtabs_matching)
+       (objfile::find_pc_sect_compunit_symtab)
+       (objfile::map_symbol_filenames)
+       (objfile::find_compunit_symtab_by_address)
+       (objfile::lookup_global_symbol_language)
+       (objfile::require_partial_symbols): Update.
+       * psymtab.c (maintenance_print_psymbols)
+       (maintenance_info_psymtabs, maintenance_check_psymtabs): Update.
+       * objfiles.h (struct objfile) <qf>: Now a forward_list.
+       * objfiles.c (objfile_relocate1): Update.
+       * elfread.c (elf_symfile_read): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * objfiles.h (struct objfile) <psymtabs>: Remove method.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * psymtab.c (psymbol_functions::count_psyms): Rename.
+       (psymbol_functions::print_stats): Update.
+       * psympriv.h (struct psymbol_functions) <count_psyms>: Declare
+       method.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * psymtab.c (psymbol_functions::require_partial_symbols): Rename.
+       (psymbol_functions::find_pc_sect_psymtab): Rename.
+       (psymbol_functions::find_pc_sect_compunit_symtab)
+       (maintenance_print_psymbols, maintenance_check_psymtabs): Update.
+       * psympriv.h (struct psymbol_functions) <require_partial_symbols>:
+       Declare new method.
+       <get_partial_symtabs, find_pc_sect_psymtab>: Likewise.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * xcoffread.c (xcoff_start_psymtab): Add partial_symtabs parameter.
+       (xcoff_end_psymtab, scan_xcoff_symtab): Update.
+       * psymtab.c (partial_symtab::partial_symtab): Add partial_symtabs
+       parameter.
+       (add_psymbol_to_bcache): Remove.
+       (partial_symtab::add_psymbol): Add partial_symtabs parameter.
+       (partial_symtab::add_psymbol, partial_symtab::partial_symtab):
+       Likewise.
+       * psympriv.h (partial_symtab): Add partial_symtabs parameter.
+       <add_psymbol>: Likewise.
+       (standard_psymtab, legacy_psymtab): Likewise.
+       * mdebugread.c (parse_partial_symbols): Update.
+       (handle_psymbol_enumerators): Add partial_symtabs parameter.
+       (handle_psymbol_enumerators): Update.
+       (new_psymtab): Add partial_symtabs parameter.
+       * dwarf2/read.h (dwarf2_psymtab): Add partial_symtabs parameter.
+       * dwarf2/read.c (dwarf2_include_psymtab): Add partial_symtabs
+       parameter.
+       (dwarf2_create_include_psymtab): Add partial_symtabs parameter.
+       (create_partial_symtab, add_partial_symbol, dwarf_decode_lines):
+       Update.
+       * dbxread.c (read_dbx_symtab): Update.
+       (start_psymtab): Add partial_symtabs parameter.
+       (dbx_end_psymtab): Update.
+       * ctfread.c (struct ctf_context) <partial_symtabs>: New member.
+       (ctf_psymtab): Add partial_symtabs parameter.
+       (create_partial_symtab, ctf_psymtab_type_cb, ctf_psymtab_var_cb):
+       Update.
+       (scan_partial_symbols): Add partial_symtabs parameter.
+       (scan_partial_symbols, elfctf_build_psymtabs)
+       (ctf_psymtab_add_enums): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symfile.c (read_symbols): Use objfile method.
+       * symfile-debug.c (objfile::require_partial_symbols): New method.
+       * psymtab.h (require_partial_symbols): Don't declare.
+       * psymtab.c (require_partial_symbols): Use objfile method.  Now
+       static.
+       (psymbol_functions::map_symtabs_matching_filename, OBJFILE)
+       (psymbol_functions::lookup_symbol)
+       (psymbol_functions::lookup_global_symbol_language)
+       (psymbol_functions::find_last_source_symtab)
+       (psymbol_functions::forget_cached_source_info)
+       (psymbol_functions::print_stats)
+       (psymbol_functions::expand_symtabs_for_function)
+       (psymbol_functions::expand_all_symtabs)
+       (psymbol_functions::expand_symtabs_with_fullname)
+       (psymbol_functions::map_symbol_filenames)
+       (psymbol_functions::map_matching_symbols)
+       (psymbol_functions::expand_symtabs_matching)
+       (psymbol_functions::find_compunit_symtab_by_address)
+       (maintenance_print_psymbols, maintenance_info_psymtabs)
+       (maintenance_check_psymtabs): Update.
+       * objfiles.h (struct objfile) <require_partial_symbols>: Declare
+       new method.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * xcoffread.c (xcoff_sym_fns): Update.
+       * symfile.h (struct sym_fns) <sym_read_psymbols>: Remove.
+       * symfile-debug.c (objfile::has_partial_symbols): Use
+       can_lazily_read_symbols.
+       (debug_sym_read_psymbols): Remove.
+       (debug_sym_fns, install_symfile_debug_logging): Update.
+       * quick-symbol.h (struct quick_symbol_functions)
+       <can_lazily_read_symbols, read_partial_symbols>: New methods.
+       * psymtab.c (require_partial_symbols): Use new 'qf' methods.
+       * mipsread.c (ecoff_sym_fns): Update.
+       * machoread.c (macho_sym_fns): Update.
+       * elfread.c (struct lazy_dwarf_reader): New.
+       (elf_symfile_read): Update.
+       (read_psyms): Now a method of lazy_dwarf_reader.
+       (elf_sym_fns): Update.
+       (elf_sym_fns_lazy_psyms): Remove.
+       * dbxread.c (aout_sym_fns): Update.
+       * coffread.c (coff_sym_fns): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symfile.c (syms_from_objfile_1): Call reset_psymtabs.
+       (reread_symbols): Move reset_psymtabs call later.
+       * objfiles.c (objfile::objfile): Don't initialize
+       partial_symtabs.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_build_psymtabs): Call
+       set_partial_symtabs.
+       * symfile.c (syms_from_objfile_1, reread_symbols): Update.
+       * psymtab.h (make_psymbol_functions): Add partial_symtabs
+       parameter.
+       * psymtab.c (find_pc_sect_psymtab): Add partial_symtabs
+       parameter.
+       (psymbol_functions::find_pc_sect_compunit_symtab)
+       (psymbol_functions::print_stats, psymbol_functions::dump)
+       (psymbol_functions::has_symbols): Update.
+       (make_psymbol_functions, dump_psymtab_addrmap): Add
+       partial_symtabs parameter.
+       (maintenance_print_psymbols): Update.
+       (psymbol_functions::expand_symtabs_matching): Update.
+       * psympriv.h (struct psymbol_functions): Add constructor.
+       <m_partial_symtabs>: New member.
+       <set_partial_symtabs>: New method.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_create_include_psymtab): Add per_bfd
+       parameter.
+       (process_psymtab_comp_unit_reader)
+       (build_type_psymtab_dependencies, dwarf2_build_psymtabs_hard)
+       (add_partial_subprogram, dwarf2_ranges_read, dwarf_decode_lines):
+       Reference psymtabs via per_bfd.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/index-write.c (struct addrmap_index_data) <objfile>:
+       Remove.
+       (add_address_entry): Remove objfile parameter.
+       (add_address_entry_worker): Update.
+       (write_address_map): Replace objfile parameter with per_bfd.
+       (write_gdbindex, write_psymtabs_to_index): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_base_index_functions::print_stats): Add
+       print_bcache parameter.
+       * symfile-debug.c (objfile::print_stats): Add print_bcache
+       parameter.
+       * quick-symbol.h (struct quick_symbol_functions)
+       <print_stats>: Add print_bcache parameter.
+       * symmisc.c (print_symbol_bcache_statistics, count_psyms): Move
+       code to psymtab.c.
+       (print_objfile_statistics): Move psymtab code to psymtab.c.
+       * psymtab.c (count_psyms): Move from symmisc.c.
+       (psymbol_functions::print_stats): Print partial symbol and bcache
+       statistics.  Add print_bcache parameter.
+       * objfiles.h (print_symbol_bcache_statistics): Don't declare.
+       (struct objfile) <print_stats>: Add print_bcache parameter.
+       * maint.c (maintenance_print_statistics): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.h (struct dwarf2_per_bfd) <psymtabs_addrmap>: New
+       member.
+       * dwarf2/read.c (create_addrmap_from_index)
+       (create_addrmap_from_aranges): Set per_bfd addrmap.
+       (dwarf2_read_gdb_index): Don't set partial_symtabs.
+       (dwarf2_base_index_functions::find_pc_sect_compunit_symtab): Use
+       per_bfd addrmap.
+       (dwarf2_read_debug_names): Don't set partial_symtabs.
+       (dwarf2_initialize_objfile): Likewise.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_build_psymtabs): Set partial_symtabs
+       earlier.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * psympriv.h (psymtab_discarder): Take psymtab_storage parameter.
+       (~psymtab_discarder, keep): Update.
+       <m_objfile>: Remove.
+       <m_partial_symtabs>: New member.
+       * dwarf2/read.c (dwarf2_build_psymtabs): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * xcoffread.c (xcoff_end_psymtab): Add partial_symtabs parameter.
+       (xcoff_end_psymtab): Update.
+       (scan_xcoff_symtab): Add partial_symtabs parameter.
+       (xcoff_initial_scan): Update.
+       * stabsread.h (dbx_end_psymtab): Add partial_symtabs parameter.
+       * mdebugread.c (mdebug_build_psymtabs): Update.
+       (parse_partial_symbols): Add partial_symtabs parameter.
+       * dbxread.c (dbx_symfile_read): Update.
+       (read_dbx_symtab): Add partial_symtabs parameter.
+       (read_dbx_symtab): Update.
+       (dbx_end_psymtab): Add partial_symtabs parameter.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * quick-symbol.h (struct quick_symbol_functions)
+       <relocated>: New method.
+       * psymtab.h (struct psymbol_functions) <relocated>: New
+       method.
+       <fill_psymbol_map>: Declare method.
+       <m_psymbol_map>: New member.
+       * psymtab.c (psymbol_functions::fill_psymbol_map): Rename.
+       (psymbol_functions::find_compunit_symtab_by_address): Update.
+       * objfiles.h (reset_psymtabs): Don't clear psymbol_map.
+       (struct objfile) <psymbol_map>: Remove.
+       * objfiles.c (objfile_relocate1): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * psympriv.h (struct psymbol_functions): New.
+       * symfile.c (syms_from_objfile_1, reread_symbols): Update.
+       * symfile-debug.c (objfile::find_compunit_symtab_by_address)
+       (objfile::lookup_global_symbol_language): Update.
+       * quick-symbol.h (struct quick_symbol_functions): Convert function
+       pointers to methods.  Add virtual destructor.
+       (quick_symbol_functions_up): New typedef.
+       * psymtab.h (psym_functions, dwarf2_gdb_index_functions)
+       (dwarf2_debug_names_functions): Don't declare.
+       (make_psymbol_functions): Declare.
+       * psymtab.c (psymbol_functions::map_symtabs_matching_filename)
+       (psymbol_functions::find_pc_sect_compunit_symtab)
+       (psymbol_functions::lookup_symbol)
+       (psymbol_functions::lookup_global_symbol_language)
+       (psymbol_functions::find_last_source_symtab)
+       (psymbol_functions::forget_cached_source_info)
+       (psymbol_functions::print_stats, psymbol_functions::dump)
+       (psymbol_functions::expand_symtabs_for_function)
+       (psymbol_functions::expand_all_symtabs)
+       (psymbol_functions::expand_symtabs_with_fullname)
+       (psymbol_functions::map_symbol_filenames)
+       (psymbol_functions::map_matching_symbols)
+       (psymbol_functions::expand_symtabs_matching)
+       (psymbol_functions::has_symbols)
+       (psymbol_functions::find_compunit_symtab_by_address): Rename.
+       (psym_functions): Remove.
+       (make_psymbol_functions): New function.
+       * objfiles.h (struct objfile) <qf>: Change type.
+       * elfread.c (elf_symfile_read): Update.
+       * dwarf2/read.c (struct dwarf2_base_index_functions)
+       (struct dwarf2_gdb_index, struct dwarf2_debug_names_index): New.
+       (make_dwarf_gdb_index, make_dwarf_debug_names): New functions.
+       (dwarf2_base_index_functions::find_last_source_symtab)
+       (dwarf2_base_index_functions::forget_cached_source_info)
+       (dwarf2_base_index_functions::map_symtabs_matching_filename)
+       (dwarf2_gdb_index::lookup_symbol)
+       (dwarf2_base_index_functions::print_stats)
+       (dwarf2_gdb_index::dump)
+       (dwarf2_gdb_index::expand_symtabs_for_function)
+       (dwarf2_base_index_functions::expand_all_symtabs)
+       (dwarf2_base_index_functions::expand_symtabs_with_fullname):
+       Rename.
+       (dwarf2_gdb_index::map_matching_symbols): New method.
+       (dwarf2_gdb_index::expand_symtabs_matching): New method.
+       (dwarf2_base_index_functions::find_pc_sect_compunit_symtab)
+       (dwarf2_base_index_functions::map_symbol_filenames)
+       (dwarf2_base_index_functions::has_symbols): Rename.
+       (dwarf2_gdb_index_functions): Remove.
+       (dwarf2_debug_names_index::lookup_symbol)
+       (dwarf2_debug_names_index::dump)
+       (dwarf2_debug_names_index::expand_symtabs_for_function)
+       (dwarf2_debug_names_index::map_matching_symbols)
+       (dwarf2_debug_names_index::expand_symtabs_matching): Rename.
+       (dwarf2_debug_names_functions): Remove.
+       * dwarf2/public.h (make_dwarf_gdb_index, make_dwarf_debug_names):
+       Declare.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * psymtab.c (require_partial_symbols): Check that 'sf' is not
+       null.
+       * xcoffread.c (xcoff_sym_fns): Update.
+       * symfile.h (struct sym_fns) <qf>: Remove.
+       * symfile.c (syms_from_objfile_1, reread_symbols): Update.
+       * symfile-debug.c (objfile::has_partial_symbols)
+       (objfile::find_last_source_symtab)
+       (objfile::forget_cached_source_info)
+       (objfile::map_symtabs_matching_filename, objfile::lookup_symbol)
+       (objfile::print_stats, objfile::dump)
+       (objfile::expand_symtabs_for_function)
+       (objfile::expand_all_symtabs)
+       (objfile::expand_symtabs_with_fullname)
+       (objfile::map_matching_symbols)
+       (objfile::expand_symtabs_matching)
+       (objfile::find_pc_sect_compunit_symtab)
+       (objfile::map_symbol_filenames)
+       (objfile::find_compunit_symtab_by_address)
+       (objfile::lookup_global_symbol_language, debug_sym_fns)
+       (install_symfile_debug_logging): Update.
+       * objfiles.h (struct objfile) <qf>: New member.
+       * mipsread.c (ecoff_sym_fns): Update.
+       * machoread.c (macho_sym_fns): Update.
+       * elfread.c (elf_sym_fns_gdb_index, elf_sym_fns_debug_names):
+       Don't declare.
+       (elf_symfile_read, elf_sym_fns, elf_sym_fns_lazy_psyms): Update.
+       * dbxread.c (aout_sym_fns): Update.
+       * coffread.c (coff_sym_fns): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symfile.h (symbol_compare_ftype, symbol_filename_ftype)
+       (expand_symtabs_file_matcher_ftype)
+       (expand_symtabs_symbol_matcher_ftype)
+       (expand_symtabs_exp_notify_ftype, struct quick_symbol_functions):
+       Move to quick-symbol.h.
+       * quick-symbol.h: New file.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symtab.c (iterate_over_symtabs, expand_symtab_containing_pc)
+       (lookup_symbol_via_quick_fns, find_quick_global_symbol_language)
+       (basic_lookup_transparent_type_quick)
+       (find_pc_sect_compunit_symtab, find_symbol_at_address)
+       (find_line_symtab, global_symbol_searcher::expand_symtabs):
+       Update.
+       * symmisc.c (print_objfile_statistics, dump_objfile)
+       (maintenance_expand_symtabs): Update.
+       * symfile.c (symbol_file_add_with_addrs)
+       (expand_symtabs_matching, map_symbol_filenames): Update.
+       * symfile-debug.c (objfile::has_partial_symbols)
+       (objfile::find_last_source_symtab)
+       (objfile::forget_cached_source_info)
+       (objfile::map_symtabs_matching_filename, objfile::lookup_symbol)
+       (objfile::print_stats, objfile::dump)
+       (objfile::expand_symtabs_for_function)
+       (objfile::expand_all_symtabs)
+       (objfile::expand_symtabs_with_fullname)
+       (objfile::map_matching_symbols)
+       (objfile::expand_symtabs_matching)
+       (objfile::find_pc_sect_compunit_symtab)
+       (objfile::map_symbol_filenames)
+       (objfile::find_compunit_symtab_by_address)
+       (objfile::lookup_global_symbol_language): New methods.
+       (debug_sym_quick_functions): Remove.
+       (debug_sym_fns, install_symfile_debug_logging): Update.
+       * source.c (forget_cached_source_info_for_objfile)
+       (select_source_symtab): Update.
+       * objfiles.h (struct objfile): Add methods corresponding to
+       quick_symbol_functions.
+       * objfiles.c (objfile::has_partial_symbols): Move to
+       symfile-debug.c.
+       * linespec.c (iterate_over_all_matching_symtabs): Update.
+       * cp-support.c (add_symbol_overload_list_qualified): Update.
+       * ada-lang.c (add_nonlocal_symbols): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * objfiles.h (struct objfile) <has_partial_symbols>: Return bool.
+       * symfile.h (struct quick_symbol_functions) <has_symbols>: Return
+       bool.
+       * symfile-debug.c (debug_qf_has_symbols): Return bool.
+       * psymtab.c (psym_has_symbols): Return bool.
+       * objfiles.c (objfile::has_partial_symbols): Return bool.
+       * dwarf2/read.c (dw2_has_symbols): Return bool.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symfile.c (read_symbols): Update.
+       * objfiles.h (struct objfile) <has_partial_symbols>: New method.
+       (objfile_has_partial_symbols): Don't declare.
+       * objfiles.c (objfile::has_partial_symbols): Rename from
+       objfile_has_partial_symbols.
+       (objfile_has_symbols, have_partial_symbols): Update.
+       * elfread.c (elf_symfile_read): Update.
+       * dwarf2/read.c (dwarf2_has_info): Update.
+       * coffread.c (coff_symfile_read): Update.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * coffread.c: Include dwarf2/public.h.
+       * dwarf2/frame.c: Include dwarf2/public.h.
+       * dwarf2/index-write.h: Include dwarf2/public.h, not symfile.h.
+       * dwarf2/public.h: New file.
+       * dwarf2/read.c: Include dwarf2/public.h.
+       * elfread.c: Include dwarf2/public.h.
+       * machoread.c: Include dwarf2/public.h.
+       * symfile.h (dwarf2_has_info, enum dw_index_kind)
+       (dwarf2_initialize_objfile, dwarf2_build_psymtabs)
+       (dwarf2_build_frame_info): Move to dwarf2/public.h.
+       * xcoffread.c: Include dwarf2/public.h.
+
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * symfile.h (enum dwarf2_section_enum)
+       (dwarf2_get_section_info): Move to dwarf2/read.h.
+       * dwarf2/read.h (enum dwarf2_section_enum)
+       (dwarf2_get_section_info): Move from symfile.h.
+
+2021-03-19  Pedro Alves  <pedro@palves.net>
+
+       * thread.c (any_thread_of_inferior): Check if there's a selected
+       thread before calling inferior_thread().
+
+2021-03-18  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/stringify.c (dwarf_unit_type_name): New function.  Use
+       get_DW_UT_name.
+       * dwarf2/stringify.h (dwarf_unit_type_name): Declare.
+       * dwarf2/comp-unit.c (dwarf_unit_type_name): Remove.
+
+2021-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * python/py-param.c (get_set_value): Update header comment.
+
+2021-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * infrun.c (check_multi_target_resumption): Remove argument to
+       all_non_exited_inferiors.
+
+2021-03-16  Christian Biesinger  <cbiesinger@google.com>
+
+       * windows-nat.c (windows_init_thread_list): Add message to
+       debug log.
+
+2021-03-16  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * python/py-framefilter.c (py_print_frame): Use PyInt_Check as
+       well as PyLong_Check for Python 2.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       PR build/27579:
+       * rust-exp.y (maker_map): Use gdb::hash_enum.
+       * stap-probe.c (stap_maker_map): Use gdb::hash_enum.
+
+2021-03-15  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (create_debug_type_hash_table): Remove colon at
+       end of debug print.
+
+2021-03-15  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (dw2_get_file_names_reader): Remove info_ptr
+       parameter, adjust caller.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       * ada-exp.y (simple_exp): Always push a result for unary '+'.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (ada_unop_ind_operation::evaluate): Call
+       ada_ensure_varsize_limit.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (numeric_type_p, integer_type_p): Return true for
+       fixed-point.
+       * ada-exp.y (maybe_overload): New function.
+       (ada_wrap_overload): New function.
+       (ada_un_wrap2, ada_wrap2, ada_wrap_op): Use maybe_overload.
+       (exp1, simple_exp, relation, and_exp, and_then_exp, or_exp)
+       (or_else_exp, xor_exp, primary): Update.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       PR ada/27545:
+       * ada-lang.c (ada_var_value_operation::evaluate): Use recursive
+       call for tagged type.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       * ada-exp.y (exp1): Handle resolution of the right hand side of an
+       assignment.
+
+2021-03-15  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (ada_aggregate_operation::assign_aggregate): Return
+       container.
+       (ada_assign_operation::evaluate): Update.
+       * ada-exp.h (class ada_aggregate_operation) <assign_aggregate>:
+       Change return type.
+
+2021-03-15  Felix Willgerodt  <felix.willgerodt@intel.com>
+
+       * i386-tdep.c (i386_floatformat_for_type): Add COMPLEX*32 and REAL*16.
+
+2021-03-15  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * python/python.c (gdbpy_source_objfile_script): Use
+       make_scoped_restore to restore gdbpy_current_objfile.
+       (gdbpy_execute_objfile_script): Likewise.
+
+2021-03-14  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (read_attribute_value): Use cu_header
+       consistently.
+
+2021-03-14  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (struct die_reader_specs) <abfd>: Fix formatting.
+       (peek_die_abbrev): Use reader.abfd.
+
+2021-03-14  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_per_cu_data::get_header): Set
+       m_header_read_in.
+
+2021-03-13  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (struct partial_die_info): Update.
+       (peek_die_abbrev, skip_children, skip_one_die, read_full_die_1)
+       (load_partial_dies, partial_die_info::partial_die_info): Update.
+       * dwarf2/abbrev.h (lookup_abbrev): Constify.
+
+2021-03-13  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/abbrev.c (abbrev_table::read): Remove Irix 6 workaround.
+
+2021-03-12  Christian Biesinger  <cbiesinger@google.com>
+
+       PR threads/27239
+       * cp-support.c: Use scoped_segv_handler_restore.
+       * event-top.c (thread_local_segv_handler): Made static.
+       (scoped_segv_handler_restore::scoped_segv_handler_restore):
+       New function.
+       (scoped_segv_handler_restore::~scoped_segv_handler_restore): New
+       function.
+       * event-top.h (class scoped_segv_handler_restore): New class.
+       (thread_local_segv_handler): Removed.
+
+2021-03-10  Tom Tromey  <tromey@adacore.com>
+
+       * parser-defs.h (parser_state): Change completion to bool.
+       <parse_completion>: Likewise.
+       * ada-lang.h (ada_find_operator_symbol, ada_resolve_funcall)
+       (ada_resolve_variable, ada_resolve_function): Update.
+       * ada-lang.c (ada_find_operator_symbol): Change
+       parse_completion to bool.
+       (ada_resolve_funcall, ada_resolve_variable)
+       (ada_resolve_function): Likewise.
+
+2021-03-09  Tom Tromey  <tromey@adacore.com>
+
+       * eval.c (operation::evaluate_funcall): Use function formal
+       parameter types when evaluating.
+
+2021-03-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * gdb-gdb.py.in (StructMainTypePrettyPrinter) <owner_to_string>:
+       Updated fields names flag_objfile_owned to m_flag_objfile_owned,
+       and owner to m_owner.
+
+2021-03-09  Felix Willgerodt  <felix.willgerodt@intel.com>
+
+        * f-exp.h (eval_op_f_loc): Declare.
+        (expr::fortran_loc_operation): New typedef.
+        * f-exp.y (exp): Handle UNOP_FORTRAN_LOC after parsing an
+        UNOP_INTRINSIC.
+        (f77_keywords): Add LOC keyword.
+        * f-lang.c (eval_op_f_loc): New function.
+        * std-operator.def (UNOP_FORTRAN_LOC): New operator.
+
+2021-03-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * f-exp.h (eval_op_f_array_shape): Declare.
+       (fortran_array_shape_operation): New type.
+       * f-exp.y (exp): Handle UNOP_FORTRAN_SHAPE after parsing
+       UNOP_INTRINSIC.
+       (f77_keywords): Add "shape" keyword.
+       * f-lang.c (fortran_array_shape): New function.
+       (eval_op_f_array_shape): New function.
+       * std-operator.def (UNOP_FORTRAN_SHAPE): New operator.
+
+2021-03-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * f-exp.y (eval_op_f_array_size): Declare 1 and 2 argument forms
+       of this function.
+       (expr::fortran_array_size_1arg): New type.
+       (expr::fortran_array_size_2arg): Likewise.
+       * f-exp.y (exp): Handle FORTRAN_ARRAY_SIZE after parsing
+       UNOP_OR_BINOP_INTRINSIC.
+       (f77_keywords): Add "size" keyword.
+       * f-lang.c (fortran_array_size): New function.
+       (eval_op_f_array_size): New function, has a 1 arg and 2 arg form.
+       * std-operator.def (FORTRAN_ARRAY_SIZE): New operator.
+
+2021-03-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * f-exp.h (eval_op_f_rank): Declare.
+       (expr::fortran_rank_operation): New typedef.
+       * f-exp.y (exp): Handle UNOP_FORTRAN_RANK after parsing an
+       UNOP_INTRINSIC.
+       (f77_keywords): Add "rank" keyword.
+       * f-lang.c (eval_op_f_rank): New function.
+       * std-operator.def (UNOP_FORTRAN_RANK): New operator.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * printcmd.c (set_command): Remove null check.
+       * value.c (init_if_undefined_command): Remove null check.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * parse.c (parser_state::push_symbol, parser_state::push_dollar):
+       Update.
+       * p-exp.y (variable): Update.
+       * go-exp.y (variable): Update.
+       * expprint.c (dump_for_expression): Use bound_minimal_symbol.
+       Remove overload for objfile.
+       * expop.h (eval_op_var_msym_value): Use bound_minimal_symbol
+       parameter.
+       (check_objfile): Likewise.
+       (dump_for_expression): Likewise.  Remove overload for objfile.
+       (class var_msym_value_operation): Use bound_minimal_symbol.
+       * eval.c (eval_op_var_msym_value): Use bound_minimal_symbol
+       parameter.
+       (var_msym_value_operation::evaluate_for_address)
+       (var_msym_value_operation::evaluate_for_sizeof)
+       (var_msym_value_operation::evaluate_for_cast): Update.
+       * d-exp.y (PrimaryExpression): Update.
+       * c-exp.y (variable): Update.
+       * ax-gdb.c (var_msym_value_operation::do_generate_ax): Update.
+       * ada-lang.c (ada_var_msym_value_operation::evaluate_for_cast):
+       Update.
+       * ada-exp.y (write_var_or_type): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * parser-defs.h (exp_uses_objfile): Return bool.
+       * parse.c (exp_uses_objfile): Return bool.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * value.h (eval_skip_value): Don't declare.
+       * opencl-lang.c (eval_opencl_assign): Update.
+       * m2-lang.c (eval_op_m2_high, eval_op_m2_subscript): Update.
+       * f-lang.c (eval_op_f_abs, eval_op_f_mod, eval_op_f_ceil)
+       (eval_op_f_floor, eval_op_f_modulo, eval_op_f_cmplx): Remove.
+       * expression.h (enum noside) <EVAL_SKIP>: Remove.
+       * expop.h (typeof_operation::evaluate)
+       (decltype_operation::evaluate, unop_addr_operation::evaluate)
+       (unop_sizeof_operation::evaluate, assign_operation::evaluate)
+       (cxx_cast_operation::evaluate): Update.
+       * eval.c (eval_skip_value): Remove.
+       (eval_op_scope, eval_op_var_entry_value)
+       (eval_op_func_static_var, eval_op_string, eval_op_objc_selector)
+       (eval_op_concat, eval_op_ternop, eval_op_structop_struct)
+       (eval_op_structop_ptr, eval_op_member, eval_op_add, eval_op_sub)
+       (eval_op_binary, eval_op_subscript, eval_op_equal)
+       (eval_op_notequal, eval_op_less, eval_op_gtr, eval_op_geq)
+       (eval_op_leq, eval_op_repeat, eval_op_plus, eval_op_neg)
+       (eval_op_complement, eval_op_lognot, eval_op_ind)
+       (eval_op_memval, eval_op_preinc, eval_op_predec)
+       (eval_op_postinc, eval_op_postdec, eval_op_type)
+       (eval_binop_assign_modify, eval_op_objc_msgcall)
+       (eval_multi_subscript, logical_and_operation::evaluate)
+       (logical_or_operation::evaluate, array_operation::evaluate)
+       (operation::evaluate_for_cast)
+       (var_msym_value_operation::evaluate_for_cast)
+       (var_value_operation::evaluate_for_cast): Update.
+       * c-lang.c (c_string_operation::evaluate): Update.
+       * c-exp.h (objc_nsstring_operation::evaluate)
+       (objc_selector_operation::evaluate): Update.
+       * ada-lang.c (ada_assign_operation::evaluate)
+       (eval_ternop_in_range, ada_unop_neg, ada_unop_in_range)
+       (ada_atr_size): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * eval.c: Merge "namespace" scopes.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * parser-defs.h (struct expr_builder) <expr_builder>: Inline.
+       <release>: Inline.
+       * parse.c (expr_builder::expr_builder, expr_builder::release):
+       Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * parse.c (expression::expression, expression::~expression):
+       Remove.
+       * expression.h (struct expression): Inline constructor.  Remove
+       destructor.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * std-operator.def (BINOP_END): Remove.
+       * p-exp.y (tokentab3, tokentab2): Use OP_NULL, not BINOP_END.
+       * go-exp.y (tokentab2): Use OP_NULL, not BINOP_END.
+       * f-exp.y (dot_ops, f77_keywords): Use OP_NULL, not BINOP_END.
+       * d-exp.y (tokentab2, ident_tokens): Use OP_NULL, not BINOP_END.
+       * c-exp.y (tokentab3, tokentab2, ident_tokens): Use OP_NULL, not
+       BINOP_END.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expression.h (enum exp_opcode) <OP_UNUSED_LAST>: Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * std-operator.def (OP_EXTENDED0): Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * std-operator.def (OP_NAME, OP_ATR_IMAGE, OP_ATR_MODULUS)
+       (OP_OTHERS, OP_CHOICES, OP_POSITIONAL, OP_DISCRETE_RANGE):
+       Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * std-operator.def (UNOP_CAP, UNOP_CHR, UNOP_ORD, UNOP_FLOAT)
+       (UNOP_MAX, UNOP_MIN, UNOP_ODD, UNOP_TRUNC, OP_M2_STRING): Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * std-operator.def (OP_ATR_MIN, OP_ATR_MAX): Remove.
+       * ada-lang.c (ada_binop_minmax): Update.
+       * ada-exp.h (ada_binop_min_operation, ada_binop_max_operation):
+       Use BINOP_MIN and BINOP_MAX.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * value.h (evaluate_subexp_with_coercion): Don't declare.
+       * parse.c (exp_descriptor_standard): Remove.
+       (expr_builder::expr_builder, expr_builder::release): Update.
+       (expression::expression): Remove size_t parameter.
+       (expression::~expression): Simplify.
+       (expression::resize): Remove.
+       (write_exp_elt, write_exp_elt_opcode, write_exp_elt_sym)
+       (write_exp_elt_msym, write_exp_elt_block, write_exp_elt_objfile)
+       (write_exp_elt_longcst, write_exp_elt_floatcst)
+       (write_exp_elt_type, write_exp_elt_intern, write_exp_string)
+       (write_exp_string_vector, write_exp_bitstring): Remove.
+       * p-lang.h (class pascal_language) <opcode_print_table,
+       op_print_tab>: Remove.
+       * p-lang.c (pascal_language::op_print_tab): Remove.
+       * opencl-lang.c (class opencl_language) <opcode_print_table>:
+       Remove.
+       * objc-lang.c (objc_op_print_tab): Remove.
+       (class objc_language) <opcode_print_table>: Remove.
+       * m2-lang.h (class m2_language) <opcode_print_table,
+       op_print_tab>: Remove.
+       * m2-lang.c (m2_language::op_print_tab): Remove.
+       * language.h (struct language_defn) <post_parser, expression_ops,
+       opcode_print_table>: Remove.
+       * language.c (language_defn::expression_ops)
+       (auto_or_unknown_language::opcode_print_table): Remove.
+       * go-lang.h (class go_language) <opcode_print_table,
+       op_print_tab>: Remove.
+       * go-lang.c (go_language::op_print_tab): Remove.
+       * f-lang.h (class f_language) <opcode_print_table>: Remove
+       <op_print_tab>: Remove.
+       * f-lang.c (f_language::op_print_tab): Remove.
+       * expression.h (union exp_element): Remove.
+       (struct expression): Remove size_t parameter from constructor.
+       <resize>: Remove.
+       <first_opcode>: Update.
+       <nelts, elts>: Remove.
+       (EXP_ELEM_TO_BYTES, BYTES_TO_EXP_ELEM): Remove.
+       (evaluate_subexp_standard, print_expression, op_string)
+       (dump_raw_expression): Don't declare.
+       * expprint.c (print_expression, print_subexp)
+       (print_subexp_funcall, print_subexp_standard, op_string)
+       (dump_raw_expression, dump_subexp, dump_subexp_body)
+       (dump_subexp_body_funcall, dump_subexp_body_standard): Remove.
+       (dump_prefix_expression): Update.
+       * eval.c (evaluate_subexp): Remove.
+       (evaluate_expression, evaluate_type): Update.
+       (evaluate_subexpression_type): Remove.
+       (fetch_subexp_value): Remove "pc" parameter.  Update.
+       (extract_field_op, evaluate_struct_tuple, evaluate_funcall)
+       (evaluate_subexp_standard, evaluate_subexp_for_address)
+       (evaluate_subexp_with_coercion, evaluate_subexp_for_sizeof)
+       (evaluate_subexp_for_cast): Remove.
+       (parse_and_eval_type): Update.
+       * dtrace-probe.c (dtrace_probe::compile_to_ax): Update.
+       * d-lang.c (d_op_print_tab): Remove.
+       (class d_language) <opcode_print_table>: Remove.
+       * c-lang.h (c_op_print_tab): Don't declare.
+       * c-lang.c (c_op_print_tab): Remove.
+       (class c_language, class cplus_language, class asm_language, class
+       minimal_language) <opcode_print_table>: Remove.
+       * breakpoint.c (update_watchpoint, watchpoint_check)
+       (watchpoint_exp_is_const, watch_command_1): Update.
+       * ax-gdb.h (union exp_element): Don't declare.
+       * ax-gdb.c (const_var_ref, const_expr, maybe_const_expr)
+       (gen_repeat, gen_sizeof, gen_expr_for_cast, gen_expr)
+       (gen_expr_binop_rest): Remove.
+       (gen_trace_for_expr, gen_eval_for_expr, gen_printf): Update.
+       * ada-lang.c (ada_op_print_tab): Remove.
+       (class ada_language) <post_parser, opcode_print_table>: Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * go-lang.c (go_language::expression_ops): Don't declare.
+       * go-lang.h (class go_language) <expression_ops>: Remove.
+       * opencl-lang.c (evaluate_subexp_opencl, exp_descriptor_opencl):
+       Remove.
+       (class opencl_language) <expression_ops>: Remove.
+       * d-lang.c (class d_language) <expression_ops>: Remove.
+       * c-lang.h (evaluate_subexp_c, exp_descriptor_c): Don't declare.
+       * c-lang.c (evaluate_subexp_c, exp_descriptor_c): Remove.
+       (class c_language, class cplus_language, class asm_language)
+       (class minimal_language) <expression_ops>: Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * ada-lang.c (resolve_subexp, replace_operator_with_call)
+       (evaluate_subexp_type, assign_aggregate)
+       (aggregate_assign_positional, aggregate_assign_from_choices)
+       (aggregate_assign_others, ada_evaluate_subexp_for_cast)
+       (ada_evaluate_subexp, ADA_OPERATORS, ada_operator_length)
+       (ada_operator_check, ada_forward_operator_length)
+       (ada_dump_subexp_body, ada_print_subexp, ada_exp_descriptor):
+       Remove.
+       (post_parser): Update.
+       (class ada_language) <expresssion_ops>: Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * m2-lang.h (class m2_language) <expresssion_ops,
+       exp_descriptor_modula2>: Remove.
+       * m2-lang.c (evaluate_subexp_modula2)
+       (m2_language::exp_descriptor_modula2): Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * f-lang.h (class f_language) <expresssion_ops>: Remove.
+       <exp_descriptor_tab>: Remove.
+       * f-lang.c (fortran_value_subarray, evaluate_subexp_f)
+       (operator_length_f, print_unop_subexp_f, print_binop_subexp_f)
+       (print_subexp_f, dump_subexp_body_f, operator_check_f)
+       (f_language::exp_descriptor_tab, fortran_prepare_argument):
+       Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * rust-lang.h (class rust_language) <expression_ops,
+       exp_descriptor_tab>: Remove.
+       * rust-lang.c (rust_evaluate_funcall): Remove.
+       (rust_range, rust_subscript, eval_op_rust_complement): Don't use
+       EVAL_SKIP.
+       (rust_evaluate_subexp): Remove.
+       (rust_aggregate_operation::evaluate): Don't use EVAL_SKIP.
+       (rust_operator_length, rust_dump_subexp_body, rust_print_subexp)
+       (rust_operator_check, rust_language::exp_descriptor_tab): Remove.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * ada-exp.y: Create operations.
+       (empty_stoken): Remove.
+       (ada_pop, ada_wrap, ada_addrof, ada_un_wrap2, ada_wrap2)
+       (ada_wrap_op, ada_wrap3, ada_funcall): New functions.
+       (components): New global.
+       (push_component, choice_component, pop_component, pop_components):
+       New functions.
+       (associations): New global
+       (push_association, pop_association, pop_associations): New
+       functions.
+       (ada_parse): Update.
+       (write_var_from_sym, write_int): Create operations.
+       (write_exp_op_with_string): Remove.
+       (write_object_renaming, write_selectors, write_ambiguous_var)
+       (write_var_or_type, write_name_assoc): Create operations.
+       * ada-lang.h (ada_index_type): Declare.
+       * ada-lang.c (ada_index_type): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * f-exp.y: Create operations.
+       (f_language::parser): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * m2-exp.y: Create operations.
+       (m2_language::parser): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * p-exp.y: Create operations.
+       (pascal_language::parser): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * d-exp.y: Create operations.
+       (d_parse): Update.
+
 2021-03-08  Tom Tromey  <tom@tromey.com>
 
        * go-exp.y: Create operations.