summaryrefslogtreecommitdiffstats
path: root/binutils-2.22/gold/reduced_debug_output.cc
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.22/gold/reduced_debug_output.cc')
-rw-r--r--binutils-2.22/gold/reduced_debug_output.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/binutils-2.22/gold/reduced_debug_output.cc b/binutils-2.22/gold/reduced_debug_output.cc
index 93757bf..a6158fc 100644
--- a/binutils-2.22/gold/reduced_debug_output.cc
+++ b/binutils-2.22/gold/reduced_debug_output.cc
@@ -1,6 +1,6 @@
// reduced_debug_output.cc -- output reduced debugging information to save space
-// Copyright 2008, 2010 Free Software Foundation, Inc.
+// Copyright 2008, 2010, 2012 Free Software Foundation, Inc.
// Written by Caleb Howe <cshowe@google.com>.
// This file is part of gold.
@@ -60,9 +60,10 @@ Output_reduced_debug_info_section::get_die_end(
return false;
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 +89,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 +108,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 +116,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_addr_index:
+ case elfcpp::DW_FORM_GNU_str_index:
+ default:
return false;
}
}