From feb5f3b01670dbd7324e144cb0edd147ea252db3 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 13 Mar 2012 00:13:08 +0000 Subject: elfcpp/ Update DWARF enums from ../include/dwarf2.h. * dwarf.h (enum DW_TAG): Add new DWARF-4 tags. (enum DW_FORM): Add new DWARF-4 and Fission extensions. (enum DW_AT): New enum. (enum DW_LINE_EXTENDED_OPS): Add new DWARF-4 opcode. (enum DW_ENCODING): Add new DWARF-4 encoding. (enum DW_OP): Add new DWARF-4 opcodes. (enum DW_CHILDREN): New enum. (enum DW_LANG): New enum. gold/ * reduced_debug_output.cc (Output_reduced_debug_info_section::get_die_end): Add new FORM codes to switch. --- gold/reduced_debug_output.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'gold/reduced_debug_output.cc') diff --git a/gold/reduced_debug_output.cc b/gold/reduced_debug_output.cc index 93757bf..31eaf77 100644 --- a/gold/reduced_debug_output.cc +++ b/gold/reduced_debug_output.cc @@ -61,8 +61,10 @@ Output_reduced_debug_info_section::get_die_end( switch(form) { case elfcpp::DW_FORM_null: + case elfcpp::DW_FORM_flag_present: break; case elfcpp::DW_FORM_strp: + case elfcpp::DW_FORM_sec_offset: die += is64 ? 8 : 4; break; case elfcpp::DW_FORM_addr: @@ -88,6 +90,7 @@ Output_reduced_debug_info_section::get_die_end( break; } case elfcpp::DW_FORM_block: + case elfcpp::DW_FORM_exprloc: LEB_decoded = read_unsigned_LEB_128(die, &LEB_size); die += (LEB_decoded + LEB_size); break; @@ -106,6 +109,7 @@ Output_reduced_debug_info_section::get_die_end( break; case elfcpp::DW_FORM_data8: case elfcpp::DW_FORM_ref8: + case elfcpp::DW_FORM_ref_sig8: die += 8; break; case elfcpp::DW_FORM_ref_udata: @@ -113,14 +117,20 @@ Output_reduced_debug_info_section::get_die_end( read_unsigned_LEB_128(die, &LEB_size); die += LEB_size; break; + case elfcpp::DW_FORM_sdata: + read_signed_LEB_128(die, &LEB_size); + die += LEB_size; + break; case elfcpp::DW_FORM_string: { size_t length = strlen(reinterpret_cast(die)); die += length + 1; break; } - case elfcpp::DW_FORM_sdata: case elfcpp::DW_FORM_indirect: + case elfcpp::DW_FORM_GNU_ref_index: + case elfcpp::DW_FORM_GNU_addr_index: + case elfcpp::DW_FORM_GNU_str_index: return false; } } -- cgit v1.1