Re: [RFA 4/6] Change dwarf2_cu::method_info to be a std::vector

Tom Tromey
2018-01-17T17:15:37Z

>>>>> "Simon" == Simon Marchi <simon.marchi@ericsson.com> writes:

Simon> On 2018-01-05 07:26 PM, Tom Tromey wrote:
>> This changes the type of dwarf2_cu::method_info and fixes up the uses.
>> In order to remove cleanups from process_full_comp_unit and
>> process_full_type_unit, psymtab_include_file_name also had to be
>> changed to avoid leaving dangling cleanups.

Simon> That seems ok, but I don't completely understand what's happening.

Simon> Can you clarify how process_full_comp_unit/process_full_type_unit are
Simon> related to psymtab_include_file_name? I don't see how the later gets
Simon> called by the formers.

The call chain looks like this:

process_full_comp_unit
-> process_die
-> read_file_scope
-> handle_DW_AT_stmt_list
-> dwarf_decode_lines
-> psymtab_include_file_name

What happened formerly is that process_full_comp_unit installed an outer
cleanup, and then psymtab_include_file_name took advantage of that by
leaving some dangling cleanups.

Tom