Consider the following code:
type Index is (Index1, Index2);
Size : constant Integer := 10;
for Index use (Index1 => 1, Index2 => Size);
type Array_Index_Enum is array (Index) of Integer;
my_table : Array_Index_Enum :=(others => 42);
When compiling the code above with a compiler where the GNAT encodings
are turned off (which can be temporarily emulated by using the compiler
switch -fgnat-encodings=minimal), printing this table in gdb leads to:
(gdb) p my_table
$1 = (42, 42, 4203344, 10, -8320, 32767, 4203465, 0, 0, 0)
The displayed content is wrong since the handling part believes
that the length of the array is max index value (10) minus the
first index value (1) i+ 1 = 10 which is wrong since index are not
contiguous in this case.
The right behavior is to detect that the array is using enumeration
index hence parse the enumeration values in order to get the number
of indexes in this array (2 indexes here).
This patch fixes this issue and changes the output as follow:
(gdb) p my_table
$1 = (42, 42)
gdb/ChangeLog:
* ada-valprint.c (val_print_packed_array_elements): Use
proper number of elements when printing an array indexed
by an enumeration type.
gdb/testsuite/ChangeLog (Joel Brobecker <brobecker@adacore.com>):
* gdb.ada/arr_enum_idx_w_gap.exp
* gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb
Tested on x86_64-linux.
761 lines
29 KiB
Plaintext
761 lines
29 KiB
Plaintext
2018-01-08 Xavier Roirand <roirand@adacore.com>
|
||
|
||
* ada-valprint.c (val_print_packed_array_elements): Use
|
||
proper number of elements when printing an array indexed
|
||
by an enumeration type.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* dwarf2read.c (struct dwarf2_cu) <dwarf2_per_objfile>: Remove.
|
||
(dw2_get_file_names_reader): Adjust.
|
||
(lookup_dwo_signatured_type): Adjust.
|
||
(lookup_dwp_signatured_type): Adjust.
|
||
(lookup_signatured_type): Adjust.
|
||
(create_type_unit_group): Adjust.
|
||
(get_type_unit_group): Adjust.
|
||
(process_psymtab_comp_unit_reader): Adjust.
|
||
(build_type_psymtabs_reader): Adjust.
|
||
(scan_partial_symbols): Adjust.
|
||
(add_partial_symbol): Adjust.
|
||
(add_partial_subprogram): Adjust.
|
||
(peek_die_abbrev): Adjust.
|
||
(fixup_go_packaging): Adjust.
|
||
(process_imported_unit_die): Adjust.
|
||
(dwarf2_compute_name): Adjust.
|
||
(dwarf2_physname): Adjust.
|
||
(read_import_statement): Adjust.
|
||
(handle_DW_AT_stmt_list): Adjust.
|
||
(read_file_scope): Adjust.
|
||
(read_func_scope): Adjust.
|
||
(read_lexical_block_scope): Adjust.
|
||
(read_call_site_scope): Adjust.
|
||
(read_variable): Adjust.
|
||
(dwarf2_rnglists_process): Adjust.
|
||
(dwarf2_ranges_process): Adjust.
|
||
(dwarf2_ranges_read): Adjust.
|
||
(dwarf2_get_pc_bounds): Adjust.
|
||
(dwarf2_record_block_ranges): Adjust.
|
||
(dwarf2_add_field): Adjust.
|
||
(dwarf2_add_member_fn): Adjust.
|
||
(read_structure_type): Adjust.
|
||
(process_structure_scope): Adjust.
|
||
(read_enumeration_type): Adjust.
|
||
(read_array_type): Adjust.
|
||
(mark_common_block_symbol_computed): Adjust.
|
||
(read_common_block): Adjust.
|
||
(read_namespace_type): Adjust.
|
||
(read_namespace): Adjust.
|
||
(read_module_type): Adjust.
|
||
(read_tag_pointer_type): Adjust.
|
||
(read_tag_ptr_to_member_type): Adjust.
|
||
(read_tag_string_type): Adjust.
|
||
(read_subroutine_type): Adjust.
|
||
(read_typedef): Adjust.
|
||
(read_base_type): Adjust.
|
||
(attr_to_dynamic_prop): Adjust.
|
||
(read_subrange_type): Adjust.
|
||
(read_unspecified_type): Adjust.
|
||
(dwarf2_read_abbrevs): Adjust.
|
||
(load_partial_dies): Adjust.
|
||
(read_partial_die): Adjust.
|
||
(find_partial_die): Adjust.
|
||
(guess_partial_die_structure_name): Adjust.
|
||
(fixup_partial_die): Adjust.
|
||
(read_attribute_value): Adjust.
|
||
(read_addr_index): Adjust.
|
||
(read_addr_index_from_leb128): Adjust.
|
||
(read_str_index): Adjust.
|
||
(dwarf2_string_attr): Adjust.
|
||
(get_debug_line_section): Adjust.
|
||
(dwarf_decode_line_header): Adjust.
|
||
(lnp_state_machine::check_line_address): Adjust.
|
||
(dwarf_decode_lines_1): Adjust.
|
||
(dwarf_decode_lines): Adjust.
|
||
(dwarf2_start_symtab): Adjust.
|
||
(var_decode_location): Adjust.
|
||
(new_symbol_full): Adjust.
|
||
(dwarf2_const_value_data): Adjust.
|
||
(dwarf2_const_value_attr): Adjust.
|
||
(dwarf2_const_value): Adjust.
|
||
(die_type): Adjust.
|
||
(die_containing_type): Adjust.
|
||
(build_error_marker_type): Adjust.
|
||
(lookup_die_type): Adjust.
|
||
(guess_full_die_structure_name): Adjust.
|
||
(anonymous_struct_prefix): Adjust.
|
||
(determine_prefix): Adjust.
|
||
(dwarf2_name): Adjust.
|
||
(follow_die_ref_or_sig): Adjust.
|
||
(follow_die_offset): Adjust.
|
||
(follow_die_ref): Adjust.
|
||
(follow_die_sig_1): Adjust.
|
||
(follow_die_sig): Adjust.
|
||
(get_signatured_type): Adjust.
|
||
(get_DW_AT_signature_type): Adjust.
|
||
(decode_locdesc): Adjust.
|
||
(dwarf_decode_macros): Adjust.
|
||
(cu_debug_loc_section): Adjust.
|
||
(fill_in_loclist_baton): Adjust.
|
||
(dwarf2_symbol_mark_computed): Adjust.
|
||
(init_one_comp_unit): Don't assign
|
||
dwarf2_cu::dwarf2_per_objfile.
|
||
(set_die_type): Adjust.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* dwarf2read.c (struct mapped_debug_names): Add constructor.
|
||
<dwarf2_per_objfile>: New field.
|
||
(dwarf2_per_objfile): Remove global.
|
||
(get_dwarf2_per_objfile): New function.
|
||
(set_dwarf2_per_objfile): New function.
|
||
(dwarf2_build_psymtabs_hard): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(abbrev_table_read_table): Add dwarf2_per_objfile parameter.
|
||
(read_abbrev_offset): Likewise.
|
||
(read_indirect_string): Likewise.
|
||
(read_indirect_line_string): Likewise.
|
||
(read_indirect_string_at_offset): Likewise.
|
||
(read_indirect_string_from_dwz): Likewise.
|
||
(dwarf2_find_containing_comp_unit): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(age_cached_comp_units): Add dwarf2_per_objfile parameter.
|
||
(create_all_comp_units): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(create_all_type_units): Likewise.
|
||
(process_queue): Add dwarf2_per_objfile parameter.
|
||
(read_and_check_comp_unit_head): Likewise.
|
||
(lookup_dwo_unit_in_dwp): Likewise.
|
||
(get_dwp_file): Likewise.
|
||
(process_cu_includes): Likewise.
|
||
(struct free_dwo_file_cleanup_data): New struct.
|
||
(dwarf2_has_info): Use get_dwarf2_per_objfile and
|
||
set_dwarf2_per_objfile.
|
||
(dwarf2_get_dwz_file): Add dwarf2_per_objfile parameter.
|
||
(dw2_do_instantiate_symtab): Get dwarf2_per_objfile from
|
||
context, adjust calls.
|
||
(dw2_instantiate_symtab): Likewise.
|
||
(dw2_get_cutu): Add dwarf2_per_objfile parameter.
|
||
(dw2_get_cu): Likewise.
|
||
(create_cu_from_index_list): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(create_cus_from_index_list): Get dwarf2_per_objfile from
|
||
context, adjust calls.
|
||
(create_cus_from_index): Likewise.
|
||
(create_signatured_type_table_from_index): Change objfile
|
||
parameter to dwarf2_per_objfile.
|
||
(create_signatured_type_table_from_debug_names): Change objfile
|
||
parameter to dwarf2_per_objfile.
|
||
(create_addrmap_from_index): Likewise.
|
||
(create_addrmap_from_aranges): Likewise.
|
||
(dwarf2_read_index): Use get_dwarf2_per_objfile, adjust calls.
|
||
(dw2_setup): Remove.
|
||
(dw2_get_file_names_reader): Get dwarf2_per_objfile from
|
||
context.
|
||
(dw2_find_last_source_symtab): Get dwarf2_per_objfile using
|
||
get_dwarf2_per_objfile.
|
||
(dw2_forget_cached_source_info): Likewise.
|
||
(dw2_map_symtabs_matching_filename): Likewise.
|
||
(struct dw2_symtab_iterator) <index>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(dw2_symtab_iter_init): Replace index parameter with
|
||
dwarf2_per_objfile.
|
||
(dw2_symtab_iter_next): Use dwarf2_per_objfile from iter.
|
||
(dw2_lookup_symbol): Use get_dwarf2_per_objfile and adjust.
|
||
(dw2_print_stats): Likewise.
|
||
(dw2_dump): Likewise.
|
||
(dw2_expand_symtabs_for_function): Likewise.
|
||
(dw2_expand_all_symtabs): Likewise.
|
||
(dw2_expand_symtabs_with_fullname): Likewise.
|
||
(dw2_expand_marked_cus): Replace index and objfile parameters
|
||
with dwarf2_per_objfile.
|
||
(dw_expand_symtabs_matching_file_matcher): Add
|
||
dwarf2_per_objfile parameter and adjust calls.
|
||
(dw2_expand_symtabs_matching): Use get_dwarf2_per_objfile and
|
||
adjust calls.
|
||
(dw2_find_pc_sect_compunit_symtab): Don't call dw2_setup.
|
||
(dw2_map_symbol_filenames): Use get_dwarf2_per_objfile and
|
||
adjust calls.
|
||
(create_cus_from_debug_names_list): Replace objfile parameter
|
||
with dwarf2_per_objfile and adjust calls.
|
||
(create_cus_from_debug_names): Likewise.
|
||
(dwarf2_read_debug_names): Likewise.
|
||
(mapped_debug_names::namei_to_name): Adjust call.
|
||
(dw2_debug_names_iterator::next): Likewise.
|
||
(dw2_debug_names_iterator::find_vec_in_debug_names): Likewise.
|
||
(dw2_debug_names_lookup_symbol): Use get_dwarf2_per_objfile.
|
||
(dw2_debug_names_dump): Likewise.
|
||
(dw2_debug_names_expand_symtabs_for_function): Likewise.
|
||
(dw2_debug_names_expand_symtabs_matching): Likewise.
|
||
(dwarf2_initialize_objfile): Likewise.
|
||
(dwarf2_build_psymtabs): Likewise.
|
||
(get_abbrev_section_for_cu): Get dwarf2_per_objfile from
|
||
this_cu.
|
||
(error_check_comp_unit_head): Add dwarf2_per_objfile parameter.
|
||
(read_and_check_comp_unit_head): Likewise.
|
||
(read_abbrev_offset): Likewise.
|
||
(create_debug_type_hash_table): Likewise.
|
||
(create_debug_types_hash_table): Likewise.
|
||
(create_all_type_units): Replace objfile parameter with
|
||
dwarf2_per_objfile.
|
||
(add_type_unit): Add dwarf2_per_objfile parameter.
|
||
(fill_in_sig_entry_from_dwo_entry): Replace objfile parameter
|
||
with dwarf2_per_objfile.
|
||
(lookup_dwo_signatured_type): Get dwarf2_per_objfile from cu.
|
||
(lookup_dwp_signatured_type): Likewise.
|
||
(lookup_signatured_type): Likewise.
|
||
(read_cutu_die_from_dwo): Likewise.
|
||
(init_tu_and_read_dwo_dies): Likewise.
|
||
(init_cutu_and_read_dies): Likewise.
|
||
(init_cutu_and_read_dies_no_follow): Likewise.
|
||
(allocate_type_unit_groups_table): Add objfile parameter.
|
||
(create_type_unit_group): Use dwarf2_per_objfile from cu.
|
||
(get_type_unit_group): Likewise.
|
||
(process_psymtab_comp_unit): Update call.
|
||
(build_type_psymtabs_reader): Use dwarf2_per_objfile from cu.
|
||
(build_type_psymtabs_1): Add dwarf2_per_objfile parameter.
|
||
(print_tu_stats): Likewise.
|
||
(build_type_psymtab_dependencies): Use dwarf2_per_objfile passed
|
||
in void* parameter.
|
||
(build_type_psymtabs): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(process_skeletonless_type_unit): Use dwarf2_per_objfile
|
||
passed in void* parameter.
|
||
(process_skeletonless_type_units): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(set_partial_user): Likewise.
|
||
(dwarf2_build_psymtabs_hard): Likewise.
|
||
(read_comp_units_from_section): Likewise.
|
||
(create_all_comp_units): Likewise.
|
||
(scan_partial_symbols): Update calls.
|
||
(add_partial_symbol): Likewise.
|
||
(dwarf2_read_symtab): Use get_dwarf2_per_objfile.
|
||
(maybe_queue_comp_unit): Use dwarf2_read_symtab from cu.
|
||
(process_queue): Add dwarf2_per_objfile parameter.
|
||
(get_compunit_symtab): Use dwarf2_per_objfile from cu.
|
||
(compute_compunit_symtab_includes): Likewise.
|
||
(process_cu_includes): Add dwarf2_per_objfile parameter.
|
||
(process_full_comp_unit): Use dwarf2_per_objfile from cu.
|
||
(process_full_type_unit): Likewise.
|
||
(process_imported_unit_die): Update call.
|
||
(handle_DW_AT_stmt_list): Use dwarf2_per_objfile from cu.
|
||
(read_file_scope): Likewise.
|
||
(allocate_dwo_file_hash_table): Add objfile parameter.
|
||
(lookup_dwo_file_slot): Add dwarf2_per_objfile parameter.
|
||
(create_cus_hash_table): Likewise.
|
||
(create_dwp_hash_table): Likewise.
|
||
(create_dwo_unit_in_dwp_v1): Likewise.
|
||
(create_dwp_v2_section): Likewise.
|
||
(create_dwo_unit_in_dwp_v2): Likewise.
|
||
(lookup_dwo_unit_in_dwp): Likewise.
|
||
(try_open_dwop_file): Likewise.
|
||
(open_dwo_file): Likewise. Use dwarf2_per_objfile from cu.
|
||
(open_and_init_dwo_file): Use dwarf2_per_objfile from cu, update
|
||
cleanup to include a reference to dwarf2_per_objfile.
|
||
(open_dwp_file): Add dwarf2_per_objfile parameter.
|
||
(open_and_init_dwp_file): Likewise.
|
||
(get_dwp_file): Likewise.
|
||
(lookup_dwo_cutu): Use dwarf2_per_objfile from cu.
|
||
(queue_and_load_all_dwo_tus): Update call.
|
||
(free_dwo_file_cleanup): Use dwarf2_per_objfile from cleanup
|
||
data.
|
||
(dwarf2_rnglists_process): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_ranges_process): Likewise.
|
||
(dwarf2_get_pc_bounds): Likewise.
|
||
(mark_common_block_symbol_computed): Likewise.
|
||
(abbrev_table_read_table): Add dwarf2_per_objfile parameter.
|
||
(dwarf2_read_abbrevs): Update call.
|
||
(read_partial_die): Use dwarf2_per_objfile from cu.
|
||
(find_partial_die): Likewise.
|
||
(fixup_partial_die): Likewise.
|
||
(read_attribute_value): Likewise.
|
||
(read_indirect_string_at_offset_from): Add objfile parameter.
|
||
(read_indirect_string_at_offset): Add dwarf2_per_objfile
|
||
parameter.
|
||
(read_indirect_string_from_dwz): Add objfile parameter.
|
||
(read_indirect_string): Add objfile parameter.
|
||
(read_addr_index_1): Add dwarf2_per_objfile parameter.
|
||
(read_addr_index): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_read_addr_index): Use dwarf2_per_objfile from cu, don't
|
||
call dw2_setup.
|
||
(read_str_index): Use dwarf2_per_objfile from cu.
|
||
(get_debug_line_section): Likewise.
|
||
(read_formatted_entries): Add dwarf2_per_objfile parameter.
|
||
(dwarf_decode_line_header): Use dwarf2_per_objfile from cu.
|
||
(new_symbol_full): Use dwarf2_per_objfile from cu.
|
||
(build_error_marker_type): Likewise.
|
||
(lookup_die_type): Likewise.
|
||
(determine_prefix): Likewise.
|
||
(follow_die_offset): Likewise.
|
||
(dwarf2_fetch_die_loc_sect_off): Use get_dwarf2_per_objfile.
|
||
(dwarf2_fetch_constant_bytes): Don't call dw2_setup.
|
||
(dwarf2_fetch_die_type_sect_off): Likewise.
|
||
(dwarf2_get_die_type): Likewise.
|
||
(follow_die_sig_1): Use dwarf2_per_objfile from cu.
|
||
(get_signatured_type): Likewise.
|
||
(get_DW_AT_signature_type): Likewise.
|
||
(dwarf_decode_macro_bytes): Add dwarf2_per_objfile parameter.
|
||
(dwarf_decode_macros): Use dwarf2_per_objfile from cu.
|
||
(cu_debug_loc_section): Likewise.
|
||
(fill_in_loclist_baton): Likewise.
|
||
(dwarf2_symbol_mark_computed): Likewise.
|
||
(dwarf2_find_containing_comp_unit): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(free_cached_comp_units): Use dwarf2_per_objfile passed in void*
|
||
parameter.
|
||
(age_cached_comp_units): Add dwarf2_per_objfile parameter.
|
||
(free_one_cached_comp_unit): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_free_objfile): Use get_dwarf2_per_objfile.
|
||
(set_die_type): Use dwarf2_free_objfile from cu.
|
||
(get_die_type_at_offset): Likewise.
|
||
(dwarf2_per_objfile_free): Don't assign global variable.
|
||
(debug_names) <constructor>: Add dwarf2_per_objfile
|
||
parameter, update m_debugstrlookup construction.
|
||
(debug_names::debug_str_lookup): Add dwarf2_per_objfile
|
||
parameter.
|
||
<m_dwarf2_per_objfile>: New field.
|
||
<lookup>: Use m_dwarf2_per_objfile.
|
||
(check_dwarf64_offsets): Add dwarf2_per_objfile parameter.
|
||
(psyms_seen_size): Likewise.
|
||
(write_gdbindex): Replace objfile parameter with
|
||
dwarf2_per_objfile.
|
||
(write_debug_names): Likewise.
|
||
(write_psymtabs_to_index): Likewise.
|
||
(save_gdb_index_command): Use get_dwarf2_per_objfile, update
|
||
calls.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* dwarf2read.c (struct dwarf2_cu) <objfile>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(struct dwarf2_per_cu_data) <objfile>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(create_cu_from_index_list): Assign dwarf2_per_objfile instead
|
||
of objfile.
|
||
(create_signatured_type_table_from_index): Likewise.
|
||
(create_debug_type_hash_table): Likewise.
|
||
(fill_in_sig_entry_from_dwo_entry): Likewise.
|
||
(lookup_dwo_unit): Access objfile through dwarf2_per_objfile.
|
||
(create_type_unit_group): Assign dwarf2_per_objfile instead of
|
||
objfile.
|
||
(create_partial_symtab): Access objfile through
|
||
dwarf2_per_objfile.
|
||
(process_psymtab_comp_unit_reader): Likewise.
|
||
(read_comp_units_from_section): Likewise.
|
||
(scan_partial_symbols): Likewise.
|
||
(add_partial_symbol): Likewise.
|
||
(add_partial_subprogram): Likewise.
|
||
(peek_die_abbrev): Likewise.
|
||
(fixup_go_packaging): Likewise.
|
||
(process_full_comp_unit): Likewise.
|
||
(process_full_type_unit): Likewise.
|
||
(process_imported_unit_die): Likewise.
|
||
(dwarf2_compute_name): Likewise.
|
||
(dwarf2_physname): Likewise.
|
||
(read_import_statement): Likewise.
|
||
(create_cus_hash_table): Assign dwarf2_physname instead of
|
||
objfile.
|
||
(read_func_scope): Access objfile through dwarf2_per_objfile.
|
||
(read_lexical_block_scope): Likewise.
|
||
(read_call_site_scope): Likewise.
|
||
(read_variable): Likewise.
|
||
(dwarf2_rnglists_process): Likewise.
|
||
(dwarf2_ranges_process): Likewise.
|
||
(dwarf2_ranges_read): Likewise.
|
||
(dwarf2_record_block_ranges): Likewise.
|
||
(dwarf2_add_field): Likewise.
|
||
(dwarf2_add_member_fn): Likewise.
|
||
(read_structure_type): Likewise.
|
||
(process_structure_scope): Likewise.
|
||
(read_enumeration_type): Likewise.
|
||
(read_array_type): Likewise.
|
||
(read_common_block): Likewise.
|
||
(read_namespace_type): Likewise.
|
||
(read_namespace): Likewise.
|
||
(read_module_type): Likewise.
|
||
(read_tag_pointer_type): Likewise.
|
||
(read_tag_ptr_to_member_type): Likewise.
|
||
(read_tag_string_type): Likewise.
|
||
(read_subroutine_type): Likewise.
|
||
(read_typedef): Likewise.
|
||
(read_base_type): Likewise.
|
||
(attr_to_dynamic_prop): Likewise.
|
||
(read_subrange_type): Likewise.
|
||
(read_unspecified_type): Likewise.
|
||
(load_partial_dies): Likewise.
|
||
(read_partial_die): Likewise.
|
||
(find_partial_die): Likewise.
|
||
(guess_partial_die_structure_name): Likewise.
|
||
(fixup_partial_die): Likewise.
|
||
(read_attribute_value): Likewise.
|
||
(read_addr_index_from_leb128): Likewise.
|
||
(dwarf2_read_addr_index): Likewise.
|
||
(dwarf2_string_attr): Likewise.
|
||
(lnp_state_machine::check_line_address): Likewise.
|
||
(dwarf_decode_lines_1): Likewise.
|
||
(dwarf_decode_lines): Likewise.
|
||
(dwarf2_start_symtab): Likewise.
|
||
(var_decode_location): Likewise.
|
||
(new_symbol_full): Likewise.
|
||
(dwarf2_const_value_data): Likewise.
|
||
(dwarf2_const_value_attr): Likewise.
|
||
(dwarf2_const_value): Likewise.
|
||
(die_type): Likewise.
|
||
(die_containing_type): Likewise.
|
||
(lookup_die_type): Likewise.
|
||
(guess_full_die_structure_name): Likewise.
|
||
(anonymous_struct_prefix): Likewise.
|
||
(dwarf2_name): Likewise.
|
||
(follow_die_ref_or_sig): Likewise.
|
||
(follow_die_offset): Likewise.
|
||
(follow_die_ref): Likewise.
|
||
(dwarf2_fetch_die_loc_sect_off): Likewise.
|
||
(dwarf2_fetch_constant_bytes): Likewise.
|
||
(dwarf2_fetch_die_type_sect_off): Likewise.
|
||
(dwarf2_get_die_type): Likewise.
|
||
(follow_die_sig): Likewise.
|
||
(decode_locdesc): Likewise.
|
||
(dwarf2_per_cu_objfile): Likewise.
|
||
(dwarf2_per_cu_text_offset): Likewise.
|
||
(init_one_comp_unit): Assign dwarf2_per_objfile instead of
|
||
objfile.
|
||
(set_die_type): Access objfile through
|
||
dwarf2_per_objfile.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* valprint.c (converted_character_d): Remove typedef.
|
||
(DEF_VEC_O (converted_character_d)): Remove.
|
||
(count_next_character): Use std::vector.
|
||
(print_converted_chars_to_obstack): Likewise.
|
||
(generic_printstr): Likewise.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* xml-support.h (struct gdb_xml_value): Add constructor.
|
||
<value>: Change type to unique_xmalloc_ptr.
|
||
(gdb_xml_value_s): Remove typedef.
|
||
(DEF_VEC_O (gdb_xml_value_s)): Remove.
|
||
(gdb_xml_element_start_handler): Change parameter type to
|
||
std::vector.
|
||
(xml_find_attribute): Likewise.
|
||
* xml-support.c (xml_find_attribute): Change parameter type to
|
||
std::vector and adjust.
|
||
(gdb_xml_values_cleanup): Remove.
|
||
(gdb_xml_parser::start_element): Adjust to std::vector.
|
||
(xinclude_start_include): Change paraeter type to std::vector
|
||
and adjust.
|
||
* btrace.c (check_xml_btrace_version): Likewise.
|
||
(parse_xml_btrace_block): Likewise.
|
||
(parse_xml_btrace_pt_config_cpu): Likewise.
|
||
(parse_xml_btrace_pt): Likewise.
|
||
(parse_xml_btrace_conf_bts): Likewise.
|
||
(parse_xml_btrace_conf_pt): Likewise.
|
||
* memory-map.c (memory_map_start_memory): Likewise.
|
||
(memory_map_start_property): Likewise.
|
||
* osdata.c (osdata_start_osdata): Likewise.
|
||
(osdata_start_item): Likewise.
|
||
(osdata_start_column): Likewise.
|
||
* remote.c (start_thread): Likewise.
|
||
* solib-aix.c (library_list_start_library): Likewise.
|
||
(library_list_start_list): Likewise.
|
||
* solib-svr4.c (library_list_start_library): Likewise.
|
||
(svr4_library_list_start_list): Likewise.
|
||
* solib-target.c (library_list_start_segment): Likewise.
|
||
(library_list_start_section): Likewise.
|
||
(library_list_start_library): Likewise.
|
||
(library_list_start_list): Likewise.
|
||
* tracepoint.c (traceframe_info_start_memory): Likewise.
|
||
(traceframe_info_start_tvar): Likewise.
|
||
* xml-syscall.c (syscall_start_syscall): Likewise.
|
||
* xml-tdesc.c (tdesc_start_target): Likewise.
|
||
(tdesc_start_feature): Likewise.
|
||
(tdesc_start_reg): Likewise.
|
||
(tdesc_start_union): Likewise.
|
||
(tdesc_start_struct): Likewise.
|
||
(tdesc_start_flags): Likewise.
|
||
(tdesc_start_enum): Likewise.
|
||
(tdesc_start_field): Likewise.
|
||
(tdesc_start_enum_value): Likewise.
|
||
(tdesc_start_vector): Likewise.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* extension.h (struct xmethod_worker) <clone>: Remove.
|
||
* python/py-xmethods.c (struct python_xmethod_worker) <clone>:
|
||
Remove.
|
||
(python_xmethod_worker::clone): Remove.
|
||
* valops.c (find_overload_match): Use std::move instead of
|
||
clone.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* extension-priv.h (enum ext_lang_rc): Remove, move to extension.h.
|
||
(struct extension_language_ops) <clone_xmethod_worker_data>: Remove.
|
||
<free_xmethod_worker_data>: Remove.
|
||
<get_matching_xmethod_workers>: Chance VEC to std::vector.
|
||
<get_xmethod_arg_types>: Remove.
|
||
<get_xmethod_result_type>: Remove.
|
||
<invoke_xmethod>: Remove.
|
||
* extension.c (new_xmethod_worker): Remove.
|
||
(clone_xmethod_worker): Remove.
|
||
(get_matching_xmethod_workers): Return void, pass std::vector by
|
||
pointer.
|
||
(get_xmethod_arg_types): Rename to...
|
||
(xmethod_worker::get_arg_types): ... this, and adjust.
|
||
(get_xmethod_result_type): Rename to...
|
||
(xmethod_worker::get_result_type): ... this, and adjust.
|
||
(invoke_xmethod): Remove.
|
||
(free_xmethod_worker): Remove.
|
||
(free_xmethod_worker_vec): Remove.
|
||
* extension.h (enum ext_lang_rc): Move here from
|
||
extension-priv.h.
|
||
(struct xmethod_worker): Add constructor and destructor.
|
||
<data>: Remove.
|
||
<value>: Remove.
|
||
<invoke, clone, do_get_result_type, do_get_arg_types>: New
|
||
virtual pure methods.
|
||
<get_arg_types, get_result_type>: New methods.
|
||
(xmethod_worker_ptr): Remove typedef.
|
||
(DEF_VEC_P (xmethod_worker_ptr)): Remove.
|
||
(xmethod_worker_vec): Remove typedef.
|
||
(xmethod_worker_up): New typedef.
|
||
(invoke_xmethod): Remove.
|
||
(clone_xmethod_worker): Remove.
|
||
(free_xmethod_worker): Remove.
|
||
(free_xmethod_worker_vec): Remove.
|
||
(get_xmethod_arg_types): Remove.
|
||
(get_xmethod_result_type): Remove.
|
||
* valops.c (find_method_list): Use std::vector, don't use
|
||
intermediate vector.
|
||
(value_find_oload_method_list): Use std::vector.
|
||
(find_overload_match): Use std::vector.
|
||
(find_oload_champ): Use std::vector.
|
||
* value.c (value_free): Use operator delete.
|
||
(value_of_xmethod): Rename to...
|
||
(value_from_xmethod): ... this. Don't assign
|
||
xmethod_worker::value, take rvalue-reference.
|
||
(result_type_of_xmethod): Adjust.
|
||
(call_xmethod): Adjust.
|
||
* value.h: Include extension.h.
|
||
(struct xmethod_worker): Don't forward-declare.
|
||
(value_of_xmethod): Rename to...
|
||
(value_from_xmethod): ... this, take rvalue-reference.
|
||
* python/py-xmethods.c (struct gdbpy_worker_data): Rename to...
|
||
(struct python_xmethod_worker): ... this, add constructor and
|
||
destructor.
|
||
<invoke, clone, do_get_arg_types, do_get_result_type>: Implement.
|
||
(gdbpy_free_xmethod_worker_data): Rename to...
|
||
(python_xmethod_worker::~python_xmethod_worker): ... this and
|
||
adjust.
|
||
(gdbpy_clone_xmethod_worker_data): Rename to...
|
||
(python_xmethod_worker::clone): ... this and adjust.
|
||
(gdbpy_get_matching_xmethod_workers): Use std::vector, don't use
|
||
temporary vector.
|
||
(gdbpy_get_xmethod_arg_types): Rename to...
|
||
(python_xmethod_worker::do_get_arg_types): ... this and adjust.
|
||
(gdbpy_get_xmethod_result_type): Rename to...
|
||
(python_xmethod_worker::do_get_result_type): ... this and
|
||
adjust.
|
||
(gdbpy_invoke_xmethod): Rename to...
|
||
(python_xmethod_worker::invoke): ... this and adjust.
|
||
(new_python_xmethod_worker): Rename to...
|
||
(python_xmethod_worker::python_xmethod_worker): ... this and
|
||
adjust.
|
||
* python/python-internal.h (gdbpy_clone_xmethod_worker_data):
|
||
Remove.
|
||
(gdbpy_free_xmethod_worker_data): Remove.
|
||
(gdbpy_get_matching_xmethod_workers): Use std::vector.
|
||
(gdbpy_get_xmethod_arg_types): Remove.
|
||
(gdbpy_get_xmethod_result_type): Remove.
|
||
(gdbpy_invoke_xmethod): Remove.
|
||
* python/python.c (python_extension_ops): Remove obsolete
|
||
callbacks.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/18653
|
||
* common/signals-state-save-restore.c
|
||
(save_original_signals_state): New parameter 'quiet'. Warn if we
|
||
find a custom handler preinstalled, instead of internal erroring.
|
||
But only warn if !quiet.
|
||
* common/signals-state-save-restore.h
|
||
(save_original_signals_state): New parameter 'quiet'.
|
||
* main.c (captured_main_1): Move save_original_signals_state call
|
||
after option handling, and pass QUIET.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
* spu-tdep.c (spu_catch_start): Pass
|
||
symbol_name_match_type::SEARCH_NAME to block_lookup_symbol.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/22670
|
||
* ada-lang.c (literal_symbol_name_matcher): New function.
|
||
(ada_get_symbol_name_matcher): Use it for
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* block.c (block_lookup_symbol): New parameter 'match_type'. Pass
|
||
it down instead of assuming symbol_name_match_type::FULL.
|
||
* block.h (block_lookup_symbol): New parameter 'match_type'.
|
||
* c-valprint.c (print_unpacked_pointer): Use
|
||
lookup_symbol_search_name instead of lookup_symbol.
|
||
* compile/compile-object-load.c (get_out_value_type): Pass down
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* cp-namespace.c (cp_basic_lookup_symbol): Pass down
|
||
symbol_name_match_type::FULL.
|
||
* cp-support.c (cp_get_symbol_name_matcher): Handle
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* infrun.c (insert_exception_resume_breakpoint): Use
|
||
lookup_symbol_search_name.
|
||
* p-valprint.c (pascal_val_print): Use lookup_symbol_search_name.
|
||
* psymtab.c (maintenance_check_psymtabs): Use
|
||
symbol_name_match_type::SEARCH_NAME and SYMBOL_SEARCH_NAME.
|
||
* stack.c (print_frame_args): Use lookup_symbol_search_name and
|
||
SYMBOL_SEARCH_NAME.
|
||
* symtab.c (lookup_local_symbol): Don't demangle the lookup name
|
||
if symbol_name_match_type::SEARCH_NAME.
|
||
(lookup_symbol_in_language): Pass down
|
||
symbol_name_match_type::FULL.
|
||
(lookup_symbol_search_name): New.
|
||
(lookup_language_this): Pass down
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
(lookup_symbol_aux, lookup_local_symbol): New parameter
|
||
'match_type'. Pass it down.
|
||
* symtab.h (symbol_name_match_type::SEARCH_NAME): New enumerator.
|
||
(lookup_symbol_search_name): New declaration.
|
||
(lookup_symbol_in_block): New 'match_type' parameter.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/22670
|
||
* ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of
|
||
ada_lookup_symbol.
|
||
(ada_lookup_symbol): Reimplement in terms of
|
||
ada_lookup_symbol_list, bits factored out from
|
||
ada_lookup_encoded_symbol.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-exp.y (write_object_renaming): When subscripting an array
|
||
using a symbol as the index, pass the block in call to
|
||
ada_lookup_encoded_symbol when looking that symbol up.
|
||
|
||
2018-01-05 Jerome Guitton <guitton@adacore.com>
|
||
|
||
* ada-lang.c (ada_array_length): Use ada_index_type instead of
|
||
TYPE_INDEX_TYPE.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-lang.c (ada_to_fixed_value_create): Add handling of
|
||
the case where VALUE_LVAL (val0) is not lval_memory.
|
||
|
||
2018-01-05 Xavier Roirand <roirand@adacore.com>
|
||
|
||
* ada-valprint.c (print_optional_low_bound): Handle
|
||
character-indexed array printing like boolean-indexed array
|
||
printing.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* NEWS: Create a new section for the next release branch.
|
||
Rename the section of the current branch, now that it has
|
||
been cut.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7):
|
||
* version.in: Bump version to 8.1.50.DATE-git.
|
||
|
||
2018-01-03 Xavier Roirand <roirand@adacore.com>
|
||
|
||
* ada-lang.h (ada_exception_catchpoint_kind) <ada_catch_handlers>:
|
||
Add field.
|
||
* ada-lang.c (struct exception_support_info) <catch_handlers_sym>:
|
||
Add field.
|
||
(default_exception_support_info) <catch_handlers_sym>: Add field.
|
||
(exception_support_info_fallback) <catch_handlers_sym>: Add field.
|
||
(ada_exception_name_addr_1): Add "catch handlers" handling.
|
||
(ada_exception_catchpoint_cond_string) <ex>: New parameter.
|
||
Update all callers.
|
||
(create_excep_cond_exprs) <ex>: Add parameter.
|
||
(re_set_exception): Update create_excep_cond_exprs call.
|
||
(print_it_exception, print_one_exception, print_mention_exception)
|
||
(print_recreate_exception): Add "catch handler" handling.
|
||
(allocate_location_catch_handlers, re_set_catch_handlers)
|
||
(check_status_catch_handlers, print_it_catch_handlers)
|
||
(print_one_catch_handlers, print_mention_catch_handlers)
|
||
(print_recreate_catch_handlers): New function.
|
||
(catch_handlers_breakpoint_ops): New variable.
|
||
(catch_ada_exception_command_split) <is_catch_handlers_cmd>:
|
||
Add parameter. Add "catch handler" handling.
|
||
(ada_exception_sym_name, ada_exception_breakpoint_ops):
|
||
Add "catch handler" handling.
|
||
(ada_exception_catchpoint_cond_string): Add "catch handler"
|
||
handling.
|
||
(create_ada_exception_catchpoint): Update create_excep_cond_exprs
|
||
call.
|
||
(catch_ada_handlers_command): New function.
|
||
(initialize_ada_catchpoint_ops): Initialize "catch handlers"
|
||
operations structure.
|
||
(_initialize_ada_language): Add "catch handlers" command entry.
|
||
* NEWS: Document "catch handlers" feature.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-lang.c (ada_value_slice_from_ptr): Take array stride into
|
||
account when creating the array type of the slice.
|
||
(ada_value_slice): Likewise.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* gdbtypes.h (enum dynamic_prop_node_kind) <DYN_PROP_BYTE_STRIDE>:
|
||
New enum value.
|
||
(create_array_type_with_stride): Add byte_stride_prop parameter.
|
||
* gdbtypes.c (create_array_type_with_stride) <byte_stride_prop>:
|
||
New parameter. Update all callers in this file.
|
||
(array_type_has_dynamic_stride): New function.
|
||
(is_dynamic_type_internal, resolve_dynamic_array): Add handling
|
||
of arrays with dynamic byte strides.
|
||
* dwarf2read.c (read_array_type): Add support for dynamic
|
||
DW_AT_byte_stride attributes.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* dwarf2read.c (read_unspecified_type): Treat
|
||
DW_TAG_enumeration_type DIEs from Ada units as stubs.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
Update copyright year range in all GDB files.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* copyright.py (BY_HAND): Remove gdb/testsuite/gdb.base/step-line.inp
|
||
and gdb/testsuite/gdb.base/step-line.c.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* copyright.py (main): Dump the contents of
|
||
MULTIPLE_COPYRIGHT_HEADERS (separately) from BY_HAND,
|
||
even if BY_HAND is empty.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* top.c (print_gdb_version): Update Copyright year in version
|
||
message.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2017.
|
||
|
||
For older changes see ChangeLog-2017.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
coding: utf-8
|
||
End:
|