* gold.h: Include <cstring> and <stdint.h>.
authorIan Lance Taylor <ian@airs.com>
Wed, 28 Jan 2009 20:09:18 +0000 (20:09 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 28 Jan 2009 20:09:18 +0000 (20:09 +0000)
* version.cc: Include <cstdio>.
* object.cc (Sized_relobj::do_layout): Initialize gc_sd to avoid a
warning.
* reduced_debug_output.cc (insert_into_vector): Rename from
Insert_into_vector; change all callers.  Use Swap_unaligned to
avoid aliasing issue; remove union since it is unnecessary.

gold/ChangeLog
gold/gold.h
gold/object.cc
gold/reduced_debug_output.cc
gold/version.cc

index 19a5ad09c857f924fc75b1def064074da44740cb..579835aa941a9cd5cd911b03c117f03f8416cf72 100644 (file)
@@ -1,3 +1,13 @@
+2009-01-28  Ian Lance Taylor  <iant@google.com>
+
+       * gold.h: Include <cstring> and <stdint.h>.
+       * version.cc: Include <cstdio>.
+       * object.cc (Sized_relobj::do_layout): Initialize gc_sd to avoid a
+       warning.
+       * reduced_debug_output.cc (insert_into_vector): Rename from
+       Insert_into_vector; change all callers.  Use Swap_unaligned to
+       avoid aliasing issue; remove union since it is unnecessary.
+
 2009-01-27  Sriraman Tallam  <tmsriram@google.com>
 
        * Makefile.am (CCFILES): Add gc.cc.
index 7e386686d0160a3746fe40902117c4bc6207a4ac..964de32aff9446feab8aaa26226da6c3fd4b2f29 100644 (file)
@@ -27,6 +27,8 @@
 #include "ansidecl.h"
 
 #include <cstddef>
+#include <cstring>
+#include <stdint.h>
 #include <sys/types.h>
 
 #ifndef ENABLE_NLS
index 9030abe5b33948cdebc8eb021428d0f676377afd..a05dcfc5e713ed1e36dc7a473066c28825bd696e 100644 (file)
@@ -913,7 +913,7 @@ Sized_relobj<size, big_endian>::do_layout(Symbol_table* symtab,
                          && symtab->gc()->is_worklist_ready());
   if (shnum == 0)
     return;
-  Symbols_data* gc_sd;
+  Symbols_data* gc_sd = NULL;
   if (is_gc_pass_one)
     {
       // During garbage collection save the symbols data to use it when 
index d195cfdd40d6aefe6b72ef15565cc9f0722b21fb..48346943dd511a9d68f959a87d5730095b9d3a88 100644 (file)
@@ -68,19 +68,15 @@ get_length_as_unsigned_LEB_128(uint64_t value)
 }
 
 template <int valsize>
-void Insert_into_vector(std::vector<unsigned char>* destination,
+void insert_into_vector(std::vector<unsigned char>* destination,
                         typename elfcpp::Valtype_base<valsize>::Valtype value)
 {
-  union
-    {
-      unsigned char buffer[valsize / 8];
-      long long align;
-    } u;
+  unsigned char buffer[valsize / 8];
   if (parameters->target().is_big_endian())
-    elfcpp::Swap<valsize, true>::writeval(u.buffer, value);
+    elfcpp::Swap_unaligned<valsize, true>::writeval(buffer, value);
   else
-    elfcpp::Swap<valsize, false>::writeval(u.buffer, value);
-  destination->insert(destination->end(), u.buffer, u.buffer + valsize / 8);
+    elfcpp::Swap_unaligned<valsize, false>::writeval(buffer, value);
+  destination->insert(destination->end(), buffer, buffer + valsize / 8);
 }
 
 template <int valsize>
@@ -356,15 +352,15 @@ void Output_reduced_debug_info_section::set_final_data_size()
               return;
             }
 
-          Insert_into_vector<32>(&this->data_, 0xFFFFFFFF);
-          Insert_into_vector<32>(&this->data_, 0);
-          Insert_into_vector<64>(
+          insert_into_vector<32>(&this->data_, 0xFFFFFFFF);
+          insert_into_vector<32>(&this->data_, 0);
+          insert_into_vector<64>(
               &this->data_,
               (11 + get_length_as_unsigned_LEB_128(abbreviation_number)
               + die_end - debug_info));
-          Insert_into_vector<16>(&this->data_, version);
-          Insert_into_vector<64>(&this->data_, 0);
-          Insert_into_vector<8>(&this->data_, address_size);
+          insert_into_vector<16>(&this->data_, version);
+          insert_into_vector<64>(&this->data_, 0);
+          insert_into_vector<8>(&this->data_, address_size);
           write_unsigned_LEB_128(&this->data_, abbreviation_number);
           this->data_.insert(this->data_.end(), debug_info, die_end);
         }
@@ -398,13 +394,13 @@ void Output_reduced_debug_info_section::set_final_data_size()
               return;
             }
 
-          Insert_into_vector<32>(
+          insert_into_vector<32>(
               &this->data_,
               (7 + get_length_as_unsigned_LEB_128(abbreviation_number)
               + die_end - debug_info));
-          Insert_into_vector<16>(&this->data_, version);
-          Insert_into_vector<32>(&this->data_, 0);
-          Insert_into_vector<8>(&this->data_, address_size);
+          insert_into_vector<16>(&this->data_, version);
+          insert_into_vector<32>(&this->data_, 0);
+          insert_into_vector<8>(&this->data_, address_size);
           write_unsigned_LEB_128(&this->data_, abbreviation_number);
           this->data_.insert(this->data_.end(), debug_info, die_end);
         }
index 2e4b7776f2e9bdc925f8d24be1ef3b2da9cd66a1..71d163bb9e8560910f29dbd7c1947acf2fd83b4b 100644 (file)
@@ -23,6 +23,7 @@
 #include "gold.h"
 
 #include <string>
+#include <cstdio>
 
 #include "../bfd/bfdver.h"