+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * NEWS: Mention memory tagging changes.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * printcmd.c (decode_format): Handle the 'm' modifier.
+ (do_examine): Display allocation tags when required/supported.
+ (should_validate_memtags): New function.
+ (print_command_1): Display memory tag mismatches.
+ * valprint.c (show_memory_tag_violations): New function.
+ (value_print_option_defs): Add new option "memory-tag-violations".
+ (user_print_options) <memory_tag_violations>: Initialize to 1.
+ * valprint.h (struct format_data) <print_tags>: New field.
+ (value_print_options) <memory_tag_violations>: New field.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * printcmd.c: Include gdbsupport/rsp-low.h.
+ (memory_tag_list): New static global.
+ (process_print_command_args): Factored out of
+ print_command_1.
+ (print_command_1): Use process_print_command_args.
+ (show_addr_not_tagged, show_memory_tagging_unsupported)
+ (memory_tag_command, memory_tag_print_tag_command)
+ (memory_tag_print_logical_tag_command)
+ (memory_tag_print_allocation_tag_command, parse_with_logical_tag_input)
+ (memory_tag_with_logical_tag_command, parse_set_allocation_tag_input)
+ (memory_tag_set_allocation_tag_command, memory_tag_check_command): New
+ functions.
+ (_initialize_printcmd): Add "memory-tag" prefix and subcommands.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-tdep.c
+ (aarch64_linux_iterate_over_regset_sections): Handle MTE register set.
+ * aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_MTE_REGSET): Define.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-tdep.c
+ (aarch64_linux_report_signal_info): New function.
+ (aarch64_linux_init_abi): Register
+ aarch64_linux_report_signal_info as the report_signal_info hook.
+ * arch/aarch64-linux.h (SEGV_MTEAERR): Define.
+ (SEGV_MTESERR): Define.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-tdep.c: Include gdbsupport/selftest.h.
+ (aarch64_linux_ltag_tests): New function.
+ (_initialize_aarch64_linux_tdep): Register aarch64_linux_ltag_tests.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-tdep.c: Include target.h, arch-utils.h, value.h.
+ (aarch64_mte_get_atag, aarch64_linux_tagged_address_p)
+ (aarch64_linux_memtag_mismatch_p, aarch64_linux_set_memtags)
+ (aarch64_linux_get_memtag, aarch64_linux_memtag_to_string): New
+ functions.
+ (aarch64_linux_init_abi): Initialize MTE-related gdbarch hooks.
+ * arch/aarch64-mte-linux.c (aarch64_mte_make_ltag_bits)
+ (aarch64_mte_make_ltag, aarch64_linux_set_ltag)
+ (aarch64_linux_get_ltag): New functions.
+ * arch/aarch64-mte-linux.h (AARCH64_MTE_LOGICAL_TAG_START_BIT)
+ (AARCH64_MTE_LOGICAL_MAX_VALUE): Define.
+ (aarch64_mte_make_ltag_bits, aarch64_mte_make_ltag)
+ (aarch64_mte_set_ltag, aarch64_mte_get_ltag): New prototypes.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * linux-tdep.c (struct smaps_vmflags) <memory_tagging>: New flag
+ bit.
+ (struct smaps_data): New struct.
+ (decode_vmflags): Handle the 'mt' flag.
+ (parse_smaps_data): New function, refactored from
+ linux_find_memory_regions_full.
+ (linux_address_in_memtag_page): New function.
+ (linux_find_memory_regions_full): Refactor into parse_smaps_data.
+ * linux-tdep.h (linux_address_in_memtag_page): New prototype.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * linux-tdep.c (linux_find_memory_regions_full): Use std::string
+ instead of char arrays.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * Makefile.in (ALL_64_TARGET_OBS): Add arch/aarch64-mte-linux.o.
+ (HFILES_NO_SRCDIR): Add arch/aarch64-mte-linux.h and
+ nat/aarch64-mte-linux-ptrace.h.
+ * aarch64-linux-nat.c: Include nat/aarch64-mte-linux-ptrace.h.
+ (aarch64_linux_nat_target) <supports_memory_tagging>: New method
+ override.
+ <fetch_memtags>: New method override.
+ <store_memtags>: New method override.
+ (aarch64_linux_nat_target::supports_memory_tagging): New method.
+ (aarch64_linux_nat_target::fetch_memtags): New method.
+ (aarch64_linux_nat_target::store_memtags): New method.
+ * arch/aarch64-mte-linux.c: New file.
+ * arch/aarch64-mte-linux.h: Include gdbsupport/common-defs.h.
+ (AARCH64_MTE_GRANULE_SIZE): Define.
+ (aarch64_memtag_type): New enum.
+ (aarch64_mte_get_tag_granules): New prototype.
+ * configure.nat (NATDEPFILES): Add nat/aarch64-mte-linux-ptrace.o.
+ * configure.tgt (aarch64*-*-linux*): Add arch/aarch64-mte-linux.o.
+ * nat/aarch64-mte-linux-ptrace.c: New file.
+ * nat/aarch64-mte-linux-ptrace.h: New file.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * Makefile.in (HFILES_NO_SRCDIR): Add nat/aarch64-mte-linux-ptrace.h.
+ * nat/aarch64-mte-linux-ptrace.h: New file.
+
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-nat.c (fetch_mteregs_from_thread): New function.
+ (store_mteregs_to_thread): New function.
+ (aarch64_linux_nat_target::fetch_registers): Update to call
+ fetch_mteregs_from_thread.
+ (aarch64_linux_nat_target::store_registers): Update to call
+ store_mteregs_to_thread.
+ * aarch64-tdep.c (aarch64_mte_register_names): New struct.
+ (aarch64_cannot_store_register): Handle MTE registers.
+ (aarch64_gdbarch_init): Initialize and setup MTE registers.
+ * aarch64-tdep.h (gdbarch_tdep) <mte_reg_base>: New field.
+ <has_mte>: New method.
+ * arch/aarch64-linux.h (AARCH64_LINUX_SIZEOF_MTE): Define.
+
+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.