2010-03-08 Doug Kwan <dougkwan@google.com>
authorDoug Kwan <dougkwan@google.com>
Mon, 8 Mar 2010 22:15:16 +0000 (22:15 +0000)
committerDoug Kwan <dougkwan@google.com>
Mon, 8 Mar 2010 22:15:16 +0000 (22:15 +0000)
* gold/arm.cc (Arm_exidx_fixup::update_offset_map): Fix build breakage
due to a conversion warning.
(Arm_relobj::update_output_local_symbol_count): Check for local
symbol with unset output index.

gold/ChangeLog
gold/arm.cc

index 1ae668b59bc154f08e95c8e9b015e4c8b62817fa..1bc64e86c90ee466563fe3d3b43b23cc45139496 100644 (file)
@@ -1,3 +1,10 @@
+2010-03-08  Doug Kwan  <dougkwan@google.com>
+
+       * gold/arm.cc (Arm_exidx_fixup::update_offset_map): Fix build breakage
+       due to a conversion warning.
+       (Arm_relobj::update_output_local_symbol_count): Check for local
+       symbol with unset output index.
+
 2010-03-05  Ian Lance Taylor  <iant@google.com>
 
        * options.h (class General_options): Add --spare-dynamic-tags.
index c141bc010f9803bf02523949b030688ffbe73f83..e331fd3462a18d31a62f9be69c985a660abfe148 100644 (file)
@@ -5194,9 +5194,10 @@ Arm_exidx_fixup::update_offset_map(
 {
   if (this->section_offset_map_ == NULL)
     this->section_offset_map_ = new Arm_exidx_section_offset_map();
-  section_offset_type output_offset = (delete_entry
-                                      ? -1
-                                      : input_offset - deleted_bytes);
+  section_offset_type output_offset =
+    (delete_entry
+     ? Arm_exidx_input_section::invalid_offset
+     : input_offset - deleted_bytes);
   (*this->section_offset_map_)[input_offset] = output_offset;
 }
 
@@ -6506,7 +6507,7 @@ Arm_relobj<big_endian>::update_output_local_symbol_count()
       Symbol_value<32>& lv((*this->local_values())[i]);
 
       // This local symbol was already discarded by do_count_local_symbols.
-      if (!lv.is_output_symtab_index_set())
+      if (lv.is_output_symtab_index_set() && !lv.has_output_symtab_entry())
        continue;
 
       bool is_ordinary;