diff options
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/merge.cc | 18 |
2 files changed, 13 insertions, 10 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index a6f3d59..164da85 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2013-05-01 H.J. Lu <hongjiu.lu@intel.com> + + * merge.cc (Output_merge_string<Char_type>::do_add_input_section): + Restore empty string handling. + 2013-05-01 Cary Coutant <ccoutant@google.com> * stringpool.cc (Stringpool_template::new_key_offset): Fix diff --git a/gold/merge.cc b/gold/merge.cc index 6480bd9..2d01462 100644 --- a/gold/merge.cc +++ b/gold/merge.cc @@ -565,18 +565,16 @@ Output_merge_string<Char_type>::do_add_input_section(Relobj* object, { size_t len = string_length(p); - if (len != 0) - { - // Within merge input section each string must be aligned. - if ((reinterpret_cast<uintptr_t>(p) & (this->addralign() - 1)) - != init_align_modulo) - has_misaligned_strings = true; + // Within merge input section each string must be aligned. + if (len != 0 + && ((reinterpret_cast<uintptr_t>(p) & (this->addralign() - 1)) + != init_align_modulo)) + has_misaligned_strings = true; - Stringpool::Key key; - this->stringpool_.add_with_length(p, len, true, &key); + Stringpool::Key key; + this->stringpool_.add_with_length(p, len, true, &key); - merged_strings.push_back(Merged_string(i, key)); - } + merged_strings.push_back(Merged_string(i, key)); p += len + 1; i += (len + 1) * sizeof(Char_type); } |