summaryrefslogtreecommitdiff
path: root/gold/reduced_debug_output.cc
diff options
context:
space:
mode:
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 93757bfa1c..31eaf779cd 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;
}
}