forked from OSchip/llvm-project
[ELF]: --icf: don't fold sections referencing sections with LCDA after D84610
This commit is contained in:
parent
5a0b1472c0
commit
164a02d0fa
|
|
@ -468,9 +468,10 @@ template <class ELFT> void ICF<ELFT>::run() {
|
|||
//
|
||||
// If two .gcc_except_table have identical semantics (usually identical
|
||||
// content with PC-relative encoding), we will lose folding opportunity.
|
||||
uint32_t uniqueId = 0;
|
||||
for (Partition &part : partitions)
|
||||
part.ehFrame->iterateFDEWithLSDA<ELFT>(
|
||||
[&](InputSection &s) { s.eqClass[0] = 1; });
|
||||
[&](InputSection &s) { s.eqClass[0] = ++uniqueId; });
|
||||
|
||||
// Collect sections to merge.
|
||||
for (InputSectionBase *sec : inputSections) {
|
||||
|
|
|
|||
|
|
@ -41,3 +41,10 @@ _Z1dv:
|
|||
.section .gcc_except_table,"a",@progbits
|
||||
## The actual content does not matter.
|
||||
.Lexception0:
|
||||
|
||||
## .rodata.Z1[ab]v reference .text.Z1[ab]v. Dont fold them.
|
||||
.section .rodata.Z1av,"a",@progbits
|
||||
.long .text.Z1av - .
|
||||
|
||||
.section .rodata.Z1bv,"a",@progbits
|
||||
.long .text.Z1bv - .
|
||||
|
|
|
|||
Loading…
Reference in New Issue