diff options
author | Cary Coutant <ccoutant@google.com> | 2013-04-29 17:15:09 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2013-04-29 17:15:09 +0000 |
commit | e31908b642bf3602c06fe64ab574a865307e45b0 (patch) | |
tree | 10a5d3ebaad183647e9da9ef874b2fc7fed3aa9a /gold/stringpool.h | |
parent | 5dad867ccace0a74c90b729372c9c01392756875 (diff) | |
download | gdb-e31908b642bf3602c06fe64ab574a865307e45b0.zip gdb-e31908b642bf3602c06fe64ab574a865307e45b0.tar.gz gdb-e31908b642bf3602c06fe64ab574a865307e45b0.tar.bz2 |
2013-04-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
gold/
* output.cc (Output_section::add_merge_input_section): Allow
to merge sections if the alignment is more than character size.
* merge.h (Output_merge_string::Output_merge_string): Remove
assert.
* merge.cc (Output_merge_string<Char_type>::do_add_input_section): Count
only not-null strings. Check the alignment of strings.
* stringpool.h
(Stringpool_template<Stringpool_char>::Stringpool_template): Add
alignment as the argument.
(Stringpool_template<Stringpool_char>::addralign_): New class member.
* stringpool.cc (Stringpool_template<Stringpool_char>::new_key_offset):
Align non-zero length strings according to the addralign_.
(Stringpool_template<Stringpool_char>::set_string_offsets):
Updating offsets according to the given alignment.
* testsuite/Makefile.am (text_section_grouping): Test if string
literals are getting merged.
* testsuite/Makefile.in: Regenerate.
* testsuite/merge_string_literals_1.c: New file.
* testsuite/merge_string_literals_2.c: Ditto.
* testsuite/merge_string_literals.sh: Ditto.
Diffstat (limited to 'gold/stringpool.h')
-rw-r--r-- | gold/stringpool.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gold/stringpool.h b/gold/stringpool.h index c51b143..b638329 100644 --- a/gold/stringpool.h +++ b/gold/stringpool.h @@ -180,7 +180,7 @@ class Stringpool_template typedef size_t Key; // Create a Stringpool. - Stringpool_template(); + Stringpool_template(uint64_t addralign = 1); ~Stringpool_template(); @@ -409,6 +409,8 @@ class Stringpool_template bool optimize_; // offset of the next string. section_offset_type offset_; + // The alignment of strings in the stringpool. + uint64_t addralign_; }; // The most common type of Stringpool. |