summaryrefslogtreecommitdiff
path: root/gold/reduced_debug_output.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2012-03-13 00:13:08 +0000
committerCary Coutant <ccoutant@google.com>2012-03-13 00:13:08 +0000
commitfeb5f3b01670dbd7324e144cb0edd147ea252db3 (patch)
tree95143203c7fb1e9c5b81d22f96fd0059a8cffa77 /gold/reduced_debug_output.cc
parent799f5b96727aa5d733ab2d690141809e62ef0fa6 (diff)
downloadbinutils-gdb-feb5f3b01670dbd7324e144cb0edd147ea252db3.tar.gz
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/reduced_debug_output.cc')
-rw-r--r--gold/reduced_debug_output.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/gold/reduced_debug_output.cc b/gold/reduced_debug_output.cc
index 93757bfa1c6..31eaf779cd3 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;
}
}