[LLD][ELF] - Do not forget to use ch_addralign field after decompressing the sections.

LLD did not use ELF::Chdr::ch_addralign for decompressed sections.
This resulted in a broken output.

Fixes https://bugs.llvm.org/show_bug.cgi?id=40482.

Differential revision: https://reviews.llvm.org/D60959

llvm-svn: 358885
This commit is contained in:
George Rimar
2019-04-22 13:40:42 +00:00
parent d6989daae9
commit 3275742898
2 changed files with 69 additions and 0 deletions

View File

@@ -253,6 +253,7 @@ void InputSectionBase::parseCompressedHeader() {
}
UncompressedSize = Hdr->ch_size;
Alignment = std::max<uint64_t>(Hdr->ch_addralign, 1);
RawData = RawData.slice(sizeof(*Hdr));
return;
}
@@ -270,6 +271,7 @@ void InputSectionBase::parseCompressedHeader() {
}
UncompressedSize = Hdr->ch_size;
Alignment = std::max<uint64_t>(Hdr->ch_addralign, 1);
RawData = RawData.slice(sizeof(*Hdr));
}