aboutsummaryrefslogtreecommitdiff
path: root/gold/stringpool.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-04-29 17:15:09 +0000
committerCary Coutant <ccoutant@google.com>2013-04-29 17:15:09 +0000
commite31908b642bf3602c06fe64ab574a865307e45b0 (patch)
tree10a5d3ebaad183647e9da9ef874b2fc7fed3aa9a /gold/stringpool.h
parent5dad867ccace0a74c90b729372c9c01392756875 (diff)
downloadfsf-binutils-gdb-e31908b642bf3602c06fe64ab574a865307e45b0.zip
fsf-binutils-gdb-e31908b642bf3602c06fe64ab574a865307e45b0.tar.gz
fsf-binutils-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.h4
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.