summaryrefslogtreecommitdiff
path: root/gold/stringpool.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-06-23 07:04:10 +0000
committerIan Lance Taylor <ian@airs.com>2009-06-23 07:04:10 +0000
commitf7c8a183e8d2c83eddadddb3b473338abf30a1d5 (patch)
treed2bceeacff8a0d85d0dac1baff52cd9c84548ede /gold/stringpool.cc
parente6a307bae3aac48d98d01f51308e238aeabbdfd4 (diff)
downloadbinutils-gdb-f7c8a183e8d2c83eddadddb3b473338abf30a1d5.tar.gz
PR 10133
* stringpool.h (class Stringpool_template): Add optimize_ field. (Stringpool_template::set_optimize): New function. * stringpool.cc (Stringpool_template::Stringpool_template): Initialize optimize_ field. (Stringpool_template::set_string_offsets): Test local optimize fild rather than parameter. * layout.cc (Layout::Layout): Call set_optimize on the section name stringpool.
Diffstat (limited to 'gold/stringpool.cc')
-rw-r--r--gold/stringpool.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/gold/stringpool.cc b/gold/stringpool.cc
index e37846b9edc..05d1d68e5d5 100644
--- a/gold/stringpool.cc
+++ b/gold/stringpool.cc
@@ -36,8 +36,10 @@ namespace gold
template<typename Stringpool_char>
Stringpool_template<Stringpool_char>::Stringpool_template()
: string_set_(), key_to_offset_(), strings_(), strtab_size_(0),
- zero_null_(true)
+ zero_null_(true), optimize_(false)
{
+ if (parameters->options_valid() && parameters->options().optimize() >= 2)
+ this->optimize_ = true;
}
template<typename Stringpool_char>
@@ -395,7 +397,7 @@ Stringpool_template<Stringpool_char>::set_string_offsets()
// the strtab size, and gives a relatively small benefit (it's
// typically rare for a symbol to be a suffix of another), we only
// take the time to sort when the user asks for heavy optimization.
- if (parameters->options().optimize() < 2)
+ if (!this->optimize_)
{
for (typename String_set_type::iterator curr = this->string_set_.begin();
curr != this->string_set_.end();