forked from OSchip/llvm-project
parent
f08b592390
commit
09268b7b1e
|
@ -253,7 +253,6 @@ static uint64_t getOutFlags(InputSectionBase *S) {
|
||||||
return S->Flags & ~SHF_GROUP & ~SHF_COMPRESSED;
|
return S->Flags & ~SHF_GROUP & ~SHF_COMPRESSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ELFT>
|
|
||||||
static SectionKey createKey(InputSectionBase *C, StringRef OutsecName) {
|
static SectionKey createKey(InputSectionBase *C, StringRef OutsecName) {
|
||||||
// The ELF spec just says
|
// The ELF spec just says
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
|
@ -298,12 +297,10 @@ static SectionKey createKey(InputSectionBase *C, StringRef OutsecName) {
|
||||||
// Given the above issues, we instead merge sections by name and error on
|
// Given the above issues, we instead merge sections by name and error on
|
||||||
// incompatible types and flags.
|
// incompatible types and flags.
|
||||||
|
|
||||||
typedef typename ELFT::uint uintX_t;
|
|
||||||
|
|
||||||
uint32_t Alignment = 0;
|
uint32_t Alignment = 0;
|
||||||
uintX_t Flags = 0;
|
uint64_t Flags = 0;
|
||||||
if (Config->Relocatable && (C->Flags & SHF_MERGE)) {
|
if (Config->Relocatable && (C->Flags & SHF_MERGE)) {
|
||||||
Alignment = std::max<uintX_t>(C->Alignment, C->Entsize);
|
Alignment = std::max<uint64_t>(C->Alignment, C->Entsize);
|
||||||
Flags = C->Flags & (SHF_MERGE | SHF_STRINGS);
|
Flags = C->Flags & (SHF_MERGE | SHF_STRINGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,7 +342,7 @@ void OutputSectionFactory::addInputSec(InputSectionBase *IS,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SectionKey Key = createKey<ELFT>(IS, OutsecName);
|
SectionKey Key = createKey(IS, OutsecName);
|
||||||
uint64_t Flags = getOutFlags(IS);
|
uint64_t Flags = getOutFlags(IS);
|
||||||
OutputSection *&Sec = Map[Key];
|
OutputSection *&Sec = Map[Key];
|
||||||
if (Sec) {
|
if (Sec) {
|
||||||
|
|
Loading…
Reference in New Issue