diff options
author | Cary Coutant <ccoutant@google.com> | 2012-03-13 00:13:08 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2012-03-13 00:13:08 +0000 |
commit | feb5f3b01670dbd7324e144cb0edd147ea252db3 (patch) | |
tree | 95143203c7fb1e9c5b81d22f96fd0059a8cffa77 /gold | |
parent | 799f5b96727aa5d733ab2d690141809e62ef0fa6 (diff) | |
download | gdb-feb5f3b01670dbd7324e144cb0edd147ea252db3.zip gdb-feb5f3b01670dbd7324e144cb0edd147ea252db3.tar.gz gdb-feb5f3b01670dbd7324e144cb0edd147ea252db3.tar.bz2 |
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.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/reduced_debug_output.cc | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index df015ac..f0ec893 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2012-03-12 Cary Coutant <ccoutant@google.com> + + * reduced_debug_output.cc + (Output_reduced_debug_info_section::get_die_end): Add new FORM + codes to switch. + 2012-02-29 Cary Coutant <ccoutant@google.com> * object.cc (need_decompressed_section): Add #ifdef ENABLE_THREADS. 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<char*>(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; } } |