Fix bug when optimizing string pools of aligned strings.
Tail optimization of string pools (enabled when linker is run with -O2 or greater) should not be done when the section alignment is greater than the size of the characters in the strings; otherwise, unaligned strings may result. gold/ PR gold/18010 * stringpool.cc (Stringpool_template): Don't optimize if section alignment is greater than sizeof(char).
This commit is contained in:
parent
410da591ba
commit
1c582fe718
@ -1,3 +1,9 @@
|
||||
2015-03-21 Cary Coutant <cary@google.com>
|
||||
|
||||
PR gold/18010
|
||||
* stringpool.cc (Stringpool_template): Don't optimize if section
|
||||
alignment is greater than sizeof(char).
|
||||
|
||||
2015-03-21 Cary Coutant <cary@google.com>
|
||||
|
||||
PR gold/18048
|
||||
|
@ -39,7 +39,9 @@ Stringpool_template<Stringpool_char>::Stringpool_template(uint64_t addralign)
|
||||
zero_null_(true), optimize_(false), offset_(sizeof(Stringpool_char)),
|
||||
addralign_(addralign)
|
||||
{
|
||||
if (parameters->options_valid() && parameters->options().optimize() >= 2)
|
||||
if (parameters->options_valid()
|
||||
&& parameters->options().optimize() >= 2
|
||||
&& addralign <= sizeof(Stringpool_char))
|
||||
this->optimize_ = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user