Include "x86-xstate.h" for X86_XSTATE_* constants.
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index 2d128997467f74a08762a23e2657bf587a08b4c5..74b5d8f8da19217a732c59ae1e75c14252525bfe 100644 (file)
@@ -1,3 +1,436 @@
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+       * amd64-fbsd-nat.c: Add include of "x86-xstate.h".
+       * i386-fbsd-nat.c: Likewise.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+       * unittests/array-view-selftests.c: Add include of <array>.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+       * spu-tdep.c (flush_ea_cache): Add missing argument to
+       call_function_by_hand.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * NEWS (Safer support for debugging with no debug info): New.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * c-exp.y (function_method, function_method_void): Add current
+       instance flags to TYPE_INSTANCE.
+       * dwarf2read.c (check_modifier): New.
+       (compute_delayed_physnames): Assert that only C++ adds delayed
+       physnames.  Mark fn_fields as const/volatile depending on
+       physname.
+       * eval.c (make_params): New type_instance_flags parameter.  Use
+       it as the new type's instance flags.
+       (evaluate_subexp_standard) <TYPE_INSTANCE>: Extract the instance
+       flags element and pass it to make_params.
+       * expprint.c (print_subexp_standard) <TYPE_INSTANCE>: Handle
+       instance flags element.
+       (dump_subexp_body_standard) <TYPE_INSTANCE>: Likewise.
+       * gdbtypes.h: Include "enum-flags.h".
+       (type_instance_flags): New enum-flags type.
+       (TYPE_CONST, TYPE_VOLATILE, TYPE_RESTRICT, TYPE_ATOMIC)
+       (TYPE_CODE_SPACE, TYPE_DATA_SPACE): Return boolean.
+       * parse.c (operator_length_standard) <TYPE_INSTANCE>: Adjust.
+       (follow_type_instance_flags): New function.
+       (operator_check_standard) <TYPE_INSTANCE>: Adjust.
+       * parser-defs.h (follow_type_instance_flags): Declare.
+       * valops.c (value_struct_elt_for_reference): const/volatile must
+       match too.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * cp-namespace.c (cp_search_static_and_baseclasses): Handle
+       function/method scopes; lookup the nested name as a function local
+       static variable.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       (%type <voidval>): Add function_method.
+       * c-exp.y (exp): New production for calls with no arguments.
+       (function_method, function_method_void_or_typelist): New
+       productions.
+       (exp): New production for "method()::static_var".
+       * eval.c (evaluate_subexp_standard): Handle OP_FUNC_STATIC_VAR.
+       * expprint.c (print_subexp_standard, dump_subexp_body_standard):
+       Handle OP_FUNC_STATIC_VAR.
+       * parse.c (operator_length_standard):
+       Handle OP_FUNC_STATIC_VAR.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * eval.c (evaluate_subexp_standard): Remove UNOP_MEMVAL_TLS
+       handling.
+       * expprint.c (print_subexp_standard, dump_subexp_body_standard):
+       Ditto.
+       * parse.c (operator_length_standard, operator_check_standard):
+       Ditto.
+       * std-operator.def (UNOP_MEMVAL_TLS): Delete.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * ax-gdb.c: Include "typeprint.h".
+       (gen_expr_for_cast): New function.
+       (gen_expr) <OP_CAST, OP_CAST_TYPE>: Use it.
+       <OP_VAR_VALUE, OP_MSYM_VAR_VALUE>: Error out if the variable's
+       type is unknown.
+       * dwarf2read.c (new_symbol_full): Fallback to int instead of
+       nodebug_data_symbol.
+       * eval.c: Include "typeprint.h".
+       (evaluate_subexp_standard) <OP_VAR_VALUE, OP_VAR_MSYM_VALUE>:
+       Error out if symbol has unknown type.
+       <UNOP_CAST, UNOP_CAST_TYPE>: Common bits factored out to
+       evaluate_subexp_for_cast.
+       (evaluate_subexp_for_address, evaluate_subexp_for_sizeof): Handle
+       OP_VAR_MSYM_VALUE.
+       (evaluate_subexp_for_cast): New function.
+       * gdbtypes.c (init_nodebug_var_type): New function.
+       (objfile_type): Use it to initialize types of variables with no
+       debug info.
+       * typeprint.c (error_unknown_type): New.
+       * typeprint.h (error_unknown_type): New declaration.
+       * compile/compile-c-types.c (convert_type_basic): Handle
+       TYPE_CODE_ERROR; warn and fallback to int for variables with
+       unknown type.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * eval.c (evaluate_var_value): New function, factored out from ...
+       (evaluate_subexp_standard): ... here.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * eval.c (evaluate_subexp_standard) <UNOP_COMPLEMENT, UNOP_ADDR>:
+       Remove useless assignments to 'op'.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * eval.c (eval_skip_value): New function.
+       (evaluate_subexp_standard): Use it.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * eval.c (evaluate_subexp_standard): <OP_FUNCALL>: Extract
+       function name from symbol/minsym and pass it to
+       error_call_unknown_return_type.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * ada-lang.c (resolve_subexp): Handle OP_VAR_MSYM_VALUE.
+       * ax-gdb.c (gen_msym_var_ref): New function.
+       (gen_expr): Handle OP_VAR_MSYM_VALUE.
+       * eval.c (evaluate_var_msym_value): New function.
+       * eval.c (evaluate_subexp_standard): Handle OP_VAR_MSYM_VALUE.
+       <OP_FUNCALL>: Extract function name from symbol/minsym and pass it
+       to call_function_by_hand.
+       * expprint.c (print_subexp_standard, dump_subexp_body_standard):
+       Handle OP_VAR_MSYM_VALUE.
+       (union exp_element) <msymbol>: New field.
+       * minsyms.h (struct type): Forward declare.
+       (find_minsym_type_and_address): Declare.
+       * parse.c (write_exp_elt_msym): New function.
+       (write_exp_msymbol): Delete, refactored as ...
+       (find_minsym_type_and_address): ... this new function.
+       (write_exp_msymbol): Reimplement using OP_VAR_MSYM_VALUE.
+       (operator_length_standard, operator_check_standard): Handle
+       OP_VAR_MSYM_VALUE.
+       * std-operator.def (OP_VAR_MSYM_VALUE): New.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * ada-lang.c (ada_evaluate_subexp) <TYPE_CODE_FUNC>: Don't handle
+       TYPE_GNU_IFUNC specially here.  Throw error if return type is
+       unknown.
+       * ada-typeprint.c (print_func_type): Handle functions with unknown
+       return type.
+       * c-typeprint.c (c_type_print_base): Handle functions and methods
+       with unknown return type.
+       * compile/compile-c-symbols.c (convert_symbol_bmsym)
+       <mst_text_gnu_ifunc>: Use nodebug_text_gnu_ifunc_symbol.
+       * compile/compile-c-types.c: Include "objfiles.h".
+       (convert_func): For functions with unknown return type, warn and
+       default to int.
+       * compile/compile-object-run.c (compile_object_run): Adjust call
+       to call_function_by_hand_dummy.
+       * elfread.c (elf_gnu_ifunc_resolve_addr): Adjust call to
+       call_function_by_hand.
+       * eval.c (evaluate_subexp_standard): Adjust calls to
+       call_function_by_hand.  Handle functions and methods with unknown
+       return type.  Pass expect_type to call_function_by_hand.
+       * f-typeprint.c (f_type_print_base): Handle functions with unknown
+       return type.
+       * gcore.c (call_target_sbrk): Adjust call to
+       call_function_by_hand.
+       * gdbtypes.c (objfile_type): Leave nodebug text symbol with NULL
+       return type instead of int.  Make nodebug_text_gnu_ifunc_symbol be
+       an integer address type instead of nodebug.
+       * guile/scm-value.c (gdbscm_value_call): Adjust call to
+       call_function_by_hand.
+       * infcall.c (error_call_unknown_return_type): New function.
+       (call_function_by_hand): New "default_return_type" parameter.
+       Pass it down.
+       (call_function_by_hand_dummy): New "default_return_type"
+       parameter.  Use it instead of defaulting to int.  If there's no
+       default and the return type is unknown, throw an error.  If
+       there's a default return type, and the called function has no
+       debug info, then assume the function is prototyped.
+       * infcall.h (call_function_by_hand, call_function_by_hand_dummy):
+       New "default_return_type" parameter.
+       (error_call_unknown_return_type): New declaration.
+       * linux-fork.c (call_lseek): Cast return type of lseek.
+       (inferior_call_waitpid, checkpoint_command): Adjust calls to
+       call_function_by_hand.
+       * linux-tdep.c (linux_infcall_mmap, linux_infcall_munmap): Adjust
+       calls to call_function_by_hand.
+       * m2-typeprint.c (m2_procedure): Handle functions with unknown
+       return type.
+       * objc-lang.c (lookup_objc_class, lookup_child_selector)
+       (value_nsstring, print_object_command): Adjust calls to
+       call_function_by_hand.
+       * p-typeprint.c (pascal_type_print_varspec_prefix): Handle
+       functions with unknown return type.
+       (pascal_type_print_func_varspec_suffix): New function.
+       (pascal_type_print_varspec_suffix) <TYPE_CODE_FUNC,
+       TYPE_CODE_METHOD>: Use it.
+       * python/py-value.c (valpy_call): Adjust call to
+       call_function_by_hand.
+       * rust-lang.c (rust_evaluate_funcall): Adjust call to
+       call_function_by_hand.
+       * valarith.c (value_x_binop, value_x_unop): Adjust calls to
+       call_function_by_hand.
+       * valops.c (value_allocate_space_in_inferior): Adjust call to
+       call_function_by_hand.
+       * typeprint.c (type_print_unknown_return_type): New function.
+       * typeprint.h (type_print_unknown_return_type): New declaration.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * gdbtypes.c (lookup_function_type_with_arguments): Mark function
+       types with more than one parameter as prototyped.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * cli/cli-cmds.c (print_disassembly, disassemble_current_function)
+       (disassemble_command): Use gdb_disassembly_flags instead of bare
+       int.
+       * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn)
+       (dump_insns, do_mixed_source_and_assembly_deprecated)
+       (do_mixed_source_and_assembly, do_assembly_only, gdb_disassembly):
+       Use gdb_disassembly_flags instead of bare int.
+       * disasm.h (DISASSEMBLY_SOURCE_DEPRECATED, DISASSEMBLY_RAW_INSN)
+       (DISASSEMBLY_OMIT_FNAME, DISASSEMBLY_FILENAME)
+       (DISASSEMBLY_OMIT_PC, DISASSEMBLY_SOURCE)
+       (DISASSEMBLY_SPECULATIVE): No longer macros.  Instead they're...
+       (enum gdb_disassembly_flag): ... values of this new enumeration.
+       (gdb_disassembly_flags): Define.
+       (gdb_disassembly)
+       (gdb_pretty_print_disassembler::pretty_print_insn): Use it.
+       * mi/mi-cmd-disas.c (mi_cmd_disassemble): Use
+       gdb_disassembly_flags instead of bare int.
+       * record-btrace.c (btrace_insn_history)
+       (record_btrace_insn_history, record_btrace_insn_history_range)
+       (record_btrace_insn_history_from): Use gdb_disassembly_flags
+       instead of bare int.
+       * record.c (get_insn_history_modifiers, cmd_record_insn_history):
+       Use gdb_disassembly_flags instead of bare int.
+       * target-debug.h (target_debug_print_gdb_disassembly_flags):
+       Define.
+       * target-delegates.c: Regenerate.
+       * target.c (target_insn_history, target_insn_history_from)
+       (target_insn_history_range): Use gdb_disassembly_flags instead of
+       bare int.
+       * target.h: Include "disasm.h".
+       (struct target_ops) <to_insn_history, to_insn_history_from,
+       to_insn_history_range>: Use gdb_disassembly_flags instead of bare
+       int.
+       (target_insn_history, target_insn_history_from)
+       (target_insn_history_range): Use gdb_disassembly_flags instead of
+       bare int.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * cli/cli-script.c (build_command_line): For if/while commands,
+       check whether args is empty.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * cli/cli-script.h (enum misc_command_type): Move from defs.h.
+       (enum command_control_type): Likewise.
+       (struct command_line): Likewise.
+       (free_command_lines): Likewise.
+       (struct command_lines_deleter): Likewise.
+       (command_line_up): Likewise.
+       (read_command_lines): Likewise.
+       (read_command_lines_1): Likewise.
+       * defs.h (enum misc_command_type): Move to cli/cli-script.h.
+       (enum command_control_type): Likewise.
+       (struct command_line): Likewise.
+       (free_command_lines): Likewise.
+       (struct command_lines_deleter): Likewise.
+       (command_line_up): Likewise.
+       (read_command_lines): Likewise.
+       (read_command_lines_1): Likewise.
+       * breakpoint.h: Include cli/cli-script.h.
+       * extension-priv.h: Likewise.
+       * gdbcmd.h: Likewise.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * ada-lang.c (is_known_support_routine): Move sal declaration to
+       where it is initialized.
+       * breakpoint.c (create_internal_breakpoint, init_catchpoint)
+       (parse_breakpoint_sals, decode_static_tracepoint_spec)
+       (clear_command, update_static_tracepoint): Remove init_sal
+       references.  Move declarations closer to initializations.
+       * cli/cli-cmds.c (list_command): Move sal declarations closer to
+       initializations.
+       * elfread.c (elf_gnu_ifunc_resolver_stop): Remove init_sal
+       references.  Move sal declarations closer to initializations.
+       * frame.c (find_frame_sal): Return a symtab_and_line via function
+       return instead of output parameter.  Remove init_sal references.
+       * frame.h (find_frame_sal): Return a symtab_and_line via function
+       return instead of output parameter.
+       * guile/scm-frame.c (gdbscm_frame_sal): Adjust.
+       * guile/scm-symtab.c (stscm_make_sal_smob): Use in-place new
+       instead of memset.
+       (gdbscm_find_pc_line): Remove init_sal reference.
+       * infcall.c (call_function_by_hand_dummy): Remove init_sal
+       references.  Move declarations closer to initializations.
+       * infcmd.c (set_step_frame): Update.  Move declarations closer to
+       initializations.
+       (finish_backward): Remove init_sal references.  Move declarations
+       closer to initializations.
+       * infrun.c (process_event_stop_test, handle_step_into_function)
+       (insert_hp_step_resume_breakpoint_at_frame)
+       (insert_step_resume_breakpoint_at_caller): Likewise.
+       * linespec.c (create_sals_line_offset, decode_digits_ordinary)
+       (symbol_to_sal): Likewise.
+       * probe.c (parse_probes_in_pspace): Remove init_sal reference.
+       * python/py-frame.c (frapy_find_sal): Move sal declaration closer
+       to its initialization.
+       * reverse.c (save_bookmark_command): Use new/delete.  Remove
+       init_sal references.  Move declarations closer to initializations.
+       * source.c (get_current_source_symtab_and_line): Remove brace
+       initialization.
+       (set_current_source_symtab_and_line): Now takes the sal by const
+       reference.  Remove brace initialization.
+       (line_info): Remove init_sal reference.
+       * source.h (set_current_source_symtab_and_line): Now takes a
+       symtab_and_line via const reference.
+       * stack.c (set_current_sal_from_frame): Adjust.
+       (print_frame_info): Adjust.
+       (get_last_displayed_sal): Return the sal via function return
+       instead of via output parameter.  Simplify.
+       (frame_info): Adjust.
+       * stack.h (get_last_displayed_sal): Return the sal via function
+       return instead of via output parameter.
+       * symtab.c (init_sal): Delete.
+       (find_pc_sect_line): Remove init_sal references.  Move
+       declarations closer to initializations.
+       (find_function_start_sal): Remove init_sal references.  Move
+       declarations closer to initializations.
+       * symtab.h (struct symtab_and_line): In-class initialize all
+       fields.
+       * tracepoint.c (set_traceframe_context)
+       (print_one_static_tracepoint_marker): Remove init_sal references.
+       Move declarations closer to initializations.
+       * tui/tui-disasm.c (tui_show_disassem_and_update_source): Adjust.
+       * tui/tui-stack.c (tui_show_frame_info): Adjust.  Move
+       declarations closer to initializations.
+       * tui/tui-winsource.c (tui_update_source_window_as_is): Remove
+       init_sal references.  Adjust.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * ax-gdb.c (agent_command_1): Use range-for.
+       * break-catch-throw.c (re_set_exception_catchpoint): Update.
+       * breakpoint.c: Include "common/array-view.h".
+       (init_breakpoint_sal, create_breakpoint_sal): Change sals
+       parameter from struct symtabs_and_lines to
+       array_view<symtab_and_line>.  Adjust.  Use range-for.  Update.
+       (breakpoint_sals_to_pc): Change sals parameter from struct
+       symtabs_and_lines to std::vector reference.
+       (check_fast_tracepoint_sals): Change sals parameter from struct
+       symtabs_and_lines to std::array_view.  Use range-for.
+       (decode_static_tracepoint_spec): Return a std::vector instead of
+       symtabs_and_lines.  Update.
+       (create_breakpoint): Update.
+       (break_range_command, until_break_command, clear_command): Update.
+       (base_breakpoint_decode_location, bkpt_decode_location)
+       (bkpt_probe_create_sals_from_location)
+       (bkpt_probe_decode_location, tracepoint_decode_location)
+       (tracepoint_probe_decode_location)
+       (strace_marker_create_sals_from_location): Return a std::vector
+       instead of symtabs_and_lines.
+       (strace_marker_create_breakpoints_sal): Update.
+       (strace_marker_decode_location): Return a std::vector instead of
+       symtabs_and_lines.  Update.
+       (update_breakpoint_locations): Change struct symtabs_and_lines
+       parameters to gdb::array_view.  Adjust.
+       (location_to_sals): Return a std::vector instead of
+       symtabs_and_lines.  Update.
+       (breakpoint_re_set_default): Use std::vector instead of struct
+       symtabs_and_lines.
+       (decode_location_default): Return a std::vector instead of
+       symtabs_and_lines.  Update.
+       * breakpoint.h: Include "common/array-view.h".
+       (struct breakpoint_ops) <decode_location>: Now returns a
+       std::vector instead of returning a symtabs_and_lines via output
+       parameter.
+       (update_breakpoint_locations): Change sals parameters to use
+       gdb::array_view.
+       * cli/cli-cmds.c (edit_command, list_command): Update to use
+       std::vector and gdb::array_view.
+       (ambiguous_line_spec): Adjust to use gdb::array_view and
+       range-for.
+       (compare_symtabs): Rename to ...
+       (cmp_symtabs): ... this.  Change parameters to symtab_and_line
+       const reference and adjust.
+       (filter_sals): Rewrite using std::vector and standard algorithms.
+       * elfread.c (elf_gnu_ifunc_resolver_return_stop): Simplify.
+       (jump_command): Update to use std::vector.
+       * linespec.c (struct linespec_state) <canonical_names>: Update
+       comment.
+       (add_sal_to_sals_basic): Delete.
+       (add_sal_to_sals, filter_results, convert_results_to_lsals)
+       (decode_line_2, create_sals_line_offset)
+       (convert_address_location_to_sals, convert_linespec_to_sals)
+       (convert_explicit_location_to_sals, parse_linespec)
+       (event_location_to_sals, decode_line_full, decode_line_1)
+       (decode_line_with_current_source)
+       (decode_line_with_last_displayed, decode_objc)
+       (decode_digits_list_mode, decode_digits_ordinary, minsym_found)
+       (linespec_result::~linespec_result): Adjust to use std::vector
+       instead of symtabs_and_lines.
+       * linespec.h (linespec_sals::sals): Now a std::vector.
+       (struct linespec_result): Use std::vector, bool, and in-class
+       initialization.
+       (decode_line_1, decode_line_with_current_source)
+       (decode_line_with_last_displayed): Return std::vector.
+       * macrocmd.c (info_macros_command): Use std::vector.
+       * mi/mi-main.c (mi_cmd_trace_find): Use std::vector.
+       * probe.c (parse_probes_in_pspace, parse_probes): Adjust to use
+       std::vector.
+       * probe.h (parse_probes): Return a std::vector.
+       * python/python.c (gdbpy_decode_line): Use std::vector and
+       gdb::array_view.
+       * source.c (select_source_symtab, line_info): Use std::vector.
+       * stack.c (func_command): Use std::vector.
+       * symtab.h (struct symtabs_and_lines): Delete.
+       * tracepoint.c (tfind_line_command, scope_info): Use std::vector.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+       * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+       unittests/array-view-selftests.c.
+       (SUBDIR_UNITTESTS_OBS): Add array-view-selftests.o.
+       * common/array-view.h: New file.
+       * unittests/array-view-selftests.c: New file.
+
 2017-09-04  Pedro Alves  <palves@redhat.com>
 
        * cli/cli-cmds.c (edit_command): Pass message to
This page took 0.038603 seconds and 4 git commands to generate.