+2017-11-22 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * varobj.h (DEF_VEC_P (varobj_p)): Remove.
+
+2017-11-22 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * varobj.h (struct varobj_update_result): Add constructor, add
+ move constructor, disable copy and assign, initialize fields.
+ <newobj>: Change type to std::vector.
+ (varobj_update): Return std::vector.
+ * varobj.c (install_dynamic_child): Change VEC parameters to
+ std::vector and adjust.
+ (update_dynamic_varobj_children): Likewise.
+ (varobj_update): Return std::vector and adjust.
+ * mi/mi-cmd-var.c (varobj_update_one): Adjust to vector changes.
+
+2017-11-22 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * varobj.h (struct varobj) <parent>: Remove const.
+ <children>: Change type to std::vector.
+ (varobj_list_children): Return std::vector const reference.
+ (varobj_restrict_range): Change parameter type to std::vector
+ const reference.
+ * varobj.c (varobj_has_more): Adjust.
+ (varobj_restrict_range): Change parameter type to std::vector
+ const reference and adjust.
+ (install_dynamic_child): Adjust.
+ (update_dynamic_varobj_children): Adjust.
+ (varobj_list_children): Return std::vector const reference and
+ adjust.
+ (varobj_add_child): Adjust.
+ (update_type_if_necessary): Adjust.
+ (varobj_update): Adjust.
+ (delete_variable_1): Adjust.
+ * ada-varobj.c (ada_value_has_mutated): Adjust.
+ * mi/mi-cmd-var.c (mi_cmd_var_list_children): Adjust.
+
+2017-11-22 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * varobj.h (struct varobj): Add constructor and destructor,
+ initialize fields.
+ * varobj.c (struct varobj_root): Initialize fields.
+ (struct varobj_dynamic): Initialize fields.
+ (varobj_create): Use unique_ptr instead of cleanup. Create
+ varobj with new instead of new_root_variable.
+ (delete_variable_1): Free variable with delete instead of
+ free_variable.
+ (create_child_with_value): Create variable with new instead of
+ new_variable.
+ (varobj::varobj): New.
+ (varobj::~varobj): New (body mostly coming from free_variable).
+ (new_variable): Remove.
+ (free_variable): Remove.
+ (do_free_variable_cleanup): Remove.
+ (make_cleanup_free_variable): Remove.
+
+2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * core-regset.c: Remove file.
+ * Makefile.in (ALLDEPFILES): Remove core-regset.c.
+
+2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * NEWS: Document use of GNU MPFR.
+ * README: Likewise.
+
+ * Makefile.in (LIBMPFR): Add define.
+ (CLIBS): Add $(LIBMPFR).
+ * configure.ac: Add --with-mpfr configure option.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+ * target-float.c [HAVE_LIBMPFR]: Include <mpfr.h>.
+ (class mpfr_float_ops): New type.
+ (mpfr_float_ops::from_target): Two new overloaded functions.
+ (mpfr_float_ops::to_target): Likewise.
+ (mpfr_float_ops::to_string): New function.
+ (mpfr_float_ops::from_string): Likewise.
+ (mpfr_float_ops::to_longest): Likewise.
+ (mpfr_float_ops::from_longest): Likewise.
+ (mpfr_float_ops::from_ulongest): Likewise.
+ (mpfr_float_ops::to_host_double): Likewise.
+ (mpfr_float_ops::from_host_double): Likewise.
+ (mpfr_float_ops::convert): Likewise.
+ (mpfr_float_ops::binop): Likewise.
+ (mpfr_float_ops::compare): Likewise.
+ (get_target_float_ops): Use mpfr_float_ops if available.
+
+2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * target-float.c: Do not include <math.h>.
+ Include <cmath> and <limits>.
+ (DOUBLEST): Do not define.
+ (class target_float_ops): New type.
+ (class host_float_ops): New templated type.
+ (class decimal_float_ops): New type.
+
+ (floatformat_to_doublest): Rename to ...
+ (host_float_ops<T>::from_target): ... this. Use template type T
+ instead of DOUBLEST. Use C++ math routines. Update recursive calls.
+ (host_float_ops<T>::from_target): New overload using a type argument.
+ (floatformat_from_doublest): Rename to ...
+ (host_float_ops<T>::to_target): ... this. Use template type T
+ instead of DOUBLEST. Use C++ math routines. Update recursive calls.
+ (host_float_ops<T>::to_target): New overload using a type argument.
+ (floatformat_printf_format): New function.
+ (struct printf_length_modifier): New templated type.
+ (floatformat_to_string): Rename to ...
+ (host_float_ops<T>::to_string): ... this. Use type instead of
+ floatformat argument. Use floatformat_printf_format and
+ printf_length_modifier. Remove special handling of invalid numbers,
+ infinities and NaN (moved to target_float_to_string).
+ (struct scanf_length_modifier): New templated type.
+ (floatformat_from_string): Rename to ...
+ (host_float_ops<T>::from_string): ... this. Use type instead of
+ floatformat argument. Use scanf_length_modifier.
+ (floatformat_to_longest): Rename to ...
+ (host_float_ops<T>::to_longest): ... this. Use type instead of
+ floatformat argument. Handle out-of-range values deterministically.
+ (floatformat_from_longest): Rename to ...
+ (host_float_ops<T>::from_longest): ... this. Use type instead of
+ floatformat argument.
+ (floatformat_from_ulongest): Rename to ...
+ (host_float_ops<T>::from_ulongest): ... this. Use type instead of
+ floatformat argument.
+ (floatformat_to_host_double): Rename to ...
+ (host_float_ops<T>::to_host_double): ... this. Use type instead of
+ floatformat argument.
+ (floatformat_from_host_double): Rename to ...
+ (host_float_ops<T>::from_host_double): ... this. Use type instead of
+ floatformat argument.
+ (floatformat_convert): Rename to ...
+ (host_float_ops<T>::convert): ... this. Use type instead of
+ floatformat arguments. Remove handling of no-op conversions.
+ (floatformat_binop): Rename to ...
+ (host_float_ops<T>::binop): ... this. Use type instead of
+ floatformat arguments.
+ (floatformat_compare): Rename to ...
+ (host_float_ops<T>::compare): ... this. Use type instead of
+ floatformat arguments.
+
+ (match_endianness): Use type instead of length/byte_order arguments.
+ (set_decnumber_context): Likewise.
+ (decimal_from_number): Likewise. Update calls.
+ (decimal_to_number): Likewise.
+ (decimal_is_zero): Likewise. Update calls. Move to earlier in file.
+ (decimal_float_ops::to_host_double): New dummy function.
+ (decimal_float_ops::from_host_double): Likewise.
+ (decimal_to_string): Rename to ...
+ (decimal_float_ops::to_string): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_from_string): Rename to ...
+ (decimal_float_ops::from_string): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_from_longest): Rename to ...
+ (decimal_float_ops::from_longest): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_from_ulongest): Rename to ...
+ (decimal_float_ops::from_ulongest): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_to_longest): Rename to ...
+ (decimal_float_ops::to_longest): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_binop): Rename to ...
+ (decimal_float_ops::binop): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_compare): Rename to ...
+ (decimal_float_ops::compare): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+ (decimal_convert): Rename to ...
+ (decimal_float_ops::convert): ... this. Use type instead of
+ length/byte_order arguments. Update calls.
+
+ (target_float_same_category_p): New function.
+ (target_float_same_format_p): Likewise.
+ (target_float_format_length): Likewise.
+ (enum target_float_ops_kind): New type.
+ (get_target_float_ops_kind): New function.
+ (get_target_float_ops): Three new overloaded functions.
+
+ (target_float_is_zero): Update call.
+ (target_float_to_string): Add special handling of invalid numbers,
+ infinities and NaN (moved from floatformat_to_string). Use
+ target_float_ops callback.
+ (target_float_from_string): Use target_float_ops callback.
+ (target_float_to_longest): Likewise.
+ (target_float_from_longest): Likewise.
+ (target_float_from_ulongest): Likewise.
+ (target_float_to_host_double): Likewise.
+ (target_float_from_host_double): Likewise.
+ (target_float_convert): Add special case for no-op conversions.
+ Use target_float_ops callback.
+ (target_float_binop): Use target_float_ops callback.
+ (target_float_compare): Likewise.
+
+2017-11-22 Yao Qi <yao.qi@linaro.org>
+
+ * python/py-gdb-readline.c (gdbpy_readline_wrapper): Use strcpy.
+
+2017-11-22 Yao Qi <yao.qi@linaro.org>
+
+ * cli/cli-decode.c (help_list): Use memcpy instead of strncpy.
+ * cp-namespace.c (cp_lookup_transparent_type_loop): Likewise.
+
+2017-11-21 Jerome Guitton <guitton@adacore.com>
+
+ * ravenscar-thread.c (ravenscar_wait): Update inferior ptid
+ with event ptid from the lower layer before doing the
+ ravenscar-specific update.
+
+2017-11-21 Joel Brobecker <brobecker@adacore.com>
+
+ * ravenscar-thread.c (is_ravenscar_task): Also verify that
+ the ptid's TID is nonzero.
+
+2017-11-21 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.h (ada_get_tcb_types_info): Add declaration.
+ * ada-tasks.c (ada_get_tcb_types_info): Renames get_tcb_types_info.
+ Make non-static. Change return type to char *. Adjust code
+ accordingly. Rewrite the function's documentation.
+ (read_atcb): Adjust call to get_tcb_types_info accordingly.
+ * ravenscar-thread.c (ravenscar_inferior_created): Check that
+ we have enough debugging information in the runtime to support
+ Ada task debugging before we enable the ravenscar-thread layer.
+
+2017-11-21 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.h (ada_get_task_info_from_ptid): Add declaration.
+ * ada-tasks.c (ada_get_task_info_from_ptid): New function.
+ * ravenscar-thread.c: Add into comment.
+ (base_magic_null_ptid): Delete.
+ (base_ptid): Change documentation.
+ (ravenscar_active_task): Renames ravenscar_running_thread.
+ All callers updated throughout.
+ (is_ravenscar_task, ravenscar_get_thread_base_cpu): New function.
+ (ravenscar_task_is_currently_active): Likewise.
+ (get_base_thread_from_ravenscar_task): Ditto.
+ (ravenscar_update_inferior_ptid): Adjust to handle multiple CPUs.
+ (ravenscar_runtime_initialized): Likewise.
+ (get_running_thread_id): Add new parameter "cpu". Adjust
+ implementation to handle this new parameter.
+ (ravenscar_fetch_registers): Small adjustment to use
+ is_ravenscar_task and ravenscar_task_is_currently_active in
+ order to decide whether to use the target beneath or this
+ module's arch_ops.
+ (ravenscar_store_registers, ravenscar_prepare_to_store): Likewise.
+ (ravenscar_stopped_by_sw_breakpoint): Use
+ get_base_thread_from_ravenscar_task to get the underlying
+ thread, rather than using base_ptid.
+ (ravenscar_stopped_by_hw_breakpoint, ravenscar_stopped_by_watchpoint)
+ (ravenscar_stopped_data_address, ravenscar_core_of_thread):
+ Likewise.
+ (ravenscar_inferior_created): Do not set base_magic_null_ptid.
+
2017-11-21 Joel Brobecker <brobecker@adacore.com>
* ada-lang.h (struct ada_task_info) <base_cpu>: New field.