mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 02:33:06 +01:00
[dsymutil] Stop emulating dsymutil-classic CIE caching behavior
Stop emulating dsymutil-classic which only cached the last used CIE for reuse.
This commit is contained in:
parent
0bfa635758
commit
0567faf9a5
@ -1901,12 +1901,7 @@ void DWARFLinker::patchFrameInfoForObject(const DWARFFile &File,
|
||||
auto IteratorInserted = EmittedCIEs.insert(
|
||||
std::make_pair(CIEData, TheDwarfEmitter->getFrameSectionSize()));
|
||||
// If there is no CIE yet for this ID, emit it.
|
||||
if (IteratorInserted.second ||
|
||||
// FIXME: dsymutil-classic only caches the last used CIE for
|
||||
// reuse. Mimic that behavior for now. Just removing that
|
||||
// second half of the condition and the LastCIEOffset variable
|
||||
// makes the code DTRT.
|
||||
LastCIEOffset != IteratorInserted.first->getValue()) {
|
||||
if (IteratorInserted.second) {
|
||||
LastCIEOffset = TheDwarfEmitter->getFrameSectionSize();
|
||||
IteratorInserted.first->getValue() = LastCIEOffset;
|
||||
TheDwarfEmitter->emitCIE(CIEData);
|
||||
|
@ -7,9 +7,6 @@
|
||||
# Check the handling of multiple different CIEs. To have CIEs that
|
||||
# appear to be different, use a dwarf2 version of the file along with
|
||||
# a dwarf 4 version. The CIE header version (and layout) will be different.
|
||||
# FIXME: this test also checks that we didn't reuse the first CIE when it
|
||||
# appears again. This is a behavior we inherited from dsymutil-classic
|
||||
# but this should be fixed (see comment in patchFrameInfoForObject())
|
||||
---
|
||||
triple: 'i386-apple-darwin'
|
||||
objects:
|
||||
@ -39,11 +36,6 @@ objects:
|
||||
# CHECK-NEXT: Version:{{.*}}4
|
||||
# CHECK-NOT: FDE
|
||||
# CHECK: FDE cie=[[CIEDW4]] pc=00003000...00003
|
||||
# CHECK-NOT: FDE
|
||||
# CHECK: [[CIEDW2:[0-9a-f]*]] {{[0-9a-f]*}} ffffffff CIE
|
||||
# CHECK-NEXT: Format: DWARF32
|
||||
# CHECK-NEXT: Version:{{.*}}1
|
||||
# CHECK-NOT: FDE
|
||||
# CHECK: FDE cie=[[CIEDW2]] pc=00004000...00004
|
||||
# CHECK: FDE cie=00000000 pc=00004000...00004
|
||||
# CHECK-NOT: FDE
|
||||
# CHECK: .eh_frame contents:
|
||||
|
Loading…
Reference in New Issue
Block a user