+2017-04-21 Simon Marchi <simon.marchi@ericsson.com>
+
+ * thread.c (print_thread_info_1): Remove dead code.
+
+2017-04-21 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if
+ GDB_SELF_TEST.
+ * arm-tdep.c (selftests::arm_record_test): Likewise.
+
+2017-04-21 Yao Qi <yao.qi@linaro.org>
+
+ * regcache.c (regcache_restore): Remove argument 2. Replace
+ argument 3 with regcache. Get register status from
+ src->register_status and get register contents from
+ register_buffer (src, regnum).
+ (regcache_cpy): Update.
+
+2017-04-19 Pedro Alves <palves@redhat.com>
+
+ * gdbthread.h (thread): Add missing closing parenthesis in
+ comment.
+
+2017-04-19 Pedro Alves <palves@redhat.com>
+
+ * common/refcounted-object.h: New file.
+ * gdbthread.h: Include "common/refcounted-object.h".
+ (thread_info): Inherit from refcounted_object and add comments.
+ (thread_info::incref, thread_info::decref)
+ (thread_info::m_refcount): Delete.
+ (thread_info::deletable): Use the refcounted_object::refcount()
+ method.
+ * inferior.c (current_inferior_): Add comment.
+ (set_current_inferior): Increment/decrement refcounts.
+ (prune_inferiors, remove_inferior_command): Skip inferiors marked
+ not-deletable instead of comparing with the current inferior.
+ (initialize_inferiors): Increment the initial inferior's refcount.
+ * inferior.h (struct inferior): Forward declare.
+ Include "common/refcounted-object.h".
+ (current_inferior, set_current_inferior): Move declaration to
+ before struct inferior's definition, and fix comment.
+ (inferior): Inherit from refcounted_object. Add comments.
+ * thread.c (switch_to_thread_no_regs): Reference the thread's
+ inferior pointer directly instead of doing a ptid lookup.
+ (switch_to_no_thread): New function.
+ (switch_to_thread(thread_info *)): New function, factored out
+ from ...
+ (switch_to_thread(ptid_t)): ... this.
+ (restore_current_thread): Delete.
+ (current_thread_cleanup): Remove 'inf_id' and 'was_removable'
+ fields, and add 'inf' field.
+ (do_restore_current_thread_cleanup): Check whether old->inf is
+ alive instead of looking up an inferior by ptid. Use
+ switch_to_thread and switch_to_no_thread.
+ (restore_current_thread_cleanup_dtor): Use old->inf directly
+ instead of lookup up an inferior by id. Decref the inferior.
+ Don't restore 'removable'.
+ (make_cleanup_restore_current_thread): Same the inferior pointer
+ in old, instead of the inferior number. Incref the inferior.
+ Don't save/clear 'removable'.
+
+2017-04-19 Pedro Alves <palves@redhat.com>
+
+ * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+ unittests/scoped_restore-selftests.c.
+ (SUBDIR_UNITTESTS_OBS): Add scoped_restore-selftests.o.
+ * common/scoped_restore.h (scoped_restore_base): Make "class".
+ (scoped_restore_base::release): New public method.
+ (scoped_restore_base::scoped_restore_base): New protected ctor.
+ (scoped_restore_base::m_saved_var): New protected field.
+ (scoped_restore_tmpl::scoped_restore_tmpl(T*)): Initialize the
+ scoped_restore_base base class instead of m_saved_var directly.
+ (scoped_restore_tmpl::scoped_restore_tmpl(T*, T2)): Likewise.
+ (scoped_restore_tmpl::scoped_restore_tmpl(const
+ scoped_restore_tmpl<T>&)): Likewise.
+ (scoped_restore_tmpl::~scoped_restore_tmpl): Use the saved_var
+ method.
+ (scoped_restore_tmpl::saved_var): New method.
+ (scoped_restore_tmpl::m_saved_var): Delete.
+ * inferior.h (inferior::detaching): Now a bool.
+ * infrun.c (prepare_for_detach): Use a scoped_restore instead of a
+ cleanup.
+ * unittests/scoped_restore-selftests.c: New file.
+
+2017-04-19 Pedro Alves <palves@redhat.com>
+
+ * Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS):
+ Re-sort in alphabetic order.
+
+2017-04-18 Pedro Alves <palves@redhat.com>
+
+ * xml-support.c (obstack_xml_printf): Delete.
+ * xml-support.h (obstack_xml_printf): Delete.
+
+2017-04-18 Pedro Alves <palves@redhat.com>
+
+ * xml-support.c (gdb_xml_parser) <use_dtd, dtd_name, parse,
+ vdebug, verror, body_text, start_element, end_element, name,
+ user_data, set_is_xinclude, set_error, expat_parser>: New methods.
+ <name, user_data, expat_parser, scopes, error, last_line, dtd_name,
+ is_xinclude>: Make private and add m_ prefix.
+ (gdb_xml_parser::body_text): New method, based on ...
+ (gdb_xml_body_text): ... this. Adjust.
+ (gdb_xml_parser::vdebug): New method, based on ...
+ (gdb_xml_debug): ... this. Adjust.
+ (gdb_xml_parser::verror): New method, based on ...
+ (gdb_xml_error): ... this. Adjust.
+ (gdb_xml_parser::start_element): New method, based on ...
+ (gdb_xml_start_element): ... this. Adjust.
+ (gdb_xml_start_element_wrapper): Defer to
+ gdb_xml_parser::start_element and gdb_xml_parser::set_error.
+ (gdb_xml_parser::end_element): New method, based on ...
+ (gdb_xml_end_element_wrapper): ... this. Adjust.
+ (gdb_xml_parser::~gdb_xml_parser): Adjust.
+ (gdb_xml_parser::gdb_xml_parser): Adjust to field renames.
+ (gdb_xml_parser::use_dtd): New method, based on ...
+ (gdb_xml_use_dtd): ... this. Adjust.
+ (gdb_xml_parser::parse): New method, based on ...
+ (gdb_xml_parse): ... this. Adjust.
+ (gdb_xml_parse_quick): Adjust to call the parser's parse method.
+ (xinclude_start_include): Adjust to call the parser's name method.
+ (xml_xinclude_default, xml_xinclude_start_doctype)
+ (xml_xinclude_end_doctype): Adjust to call the parser's user_data
+ method.
+ (xml_process_xincludes): Adjust to call parser methods.
+ * xml-support.h (gdb_xml_use_dtd, gdb_xml_parse): Delete
+ declarations.
+
+2017-04-18 Pedro Alves <palves@redhat.com>
+
+ * tracefile-tfile.c (tfile_write_tdesc): Adjust to use
+ gdb::optional<std::string>.
+ * xml-support.c: Include <string>.
+ (scope_level::scope_level(scope_level &&))
+ (scope_level::~scope_level): Delete.
+ (scope_level::body): Now a std::string.
+ (gdb_xml_body_text, gdb_xml_end_element): Adjust.
+ (xinclude_parsing_data::xinclude_parsing_data): Add 'output'
+ parameter.
+ (xinclude_parsing_data::~xinclude_parsing_data): Delete.
+ (xinclude_parsing_data::output): Now a std::string reference.
+ (xinclude_start_include): Adjust.
+ (xml_xinclude_default): Adjust.
+ (xml_process_xincludes): Add 'output' parameter, and return bool.
+ * xml-support.h (xml_process_xincludes): Add 'output' parameter,
+ and return bool.
+ * xml-tdesc.c: Include <unordered_map> and <string>.
+ (tdesc_xml_cache): Delete.
+ (tdesc_xml_cache_s): Delete.
+ (xml_cache): Now an std::unordered_map.
+ (tdesc_parse_xml): Adjust to use std::string and unordered_map.
+ (target_fetch_description_xml): Change return type to
+ gdb::optional<std::string>, and adjust.
+ * xml-tdesc.h: Include "common/gdb_optional.h" and <string>.
+ (target_fetch_description_xml): Change return type to
+ gdb::optional<std::string>.
+
+2017-04-18 Pedro Alves <palves@redhat.com>
+
+ * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+ unittests/optional-selftests.c.
+ (SUBDIR_UNITTESTS_OBS): Add optional-selftests.o.
+ * unittests/optional-selftests.c: New file.
+ * unittests/optional/assignment/1.cc: New file.
+ * unittests/optional/assignment/2.cc: New file.
+ * unittests/optional/assignment/3.cc: New file.
+ * unittests/optional/assignment/4.cc: New file.
+ * unittests/optional/assignment/5.cc: New file.
+ * unittests/optional/assignment/6.cc: New file.
+ * unittests/optional/assignment/7.cc: New file.
+ * unittests/optional/cons/copy.cc: New file.
+ * unittests/optional/cons/default.cc: New file.
+ * unittests/optional/cons/move.cc: New file.
+ * unittests/optional/cons/value.cc: New file.
+ * unittests/optional/in_place.cc: New file.
+ * unittests/optional/observers/1.cc: New file.
+ * unittests/optional/observers/2.cc: New file.
+
2017-04-18 Pedro Alves <palves@redhat.com>
* common/gdb_optional.h: Include common/traits.h.