forked from OSchip/llvm-project
[DebugInfo] Fix dumping CIE ID in .eh_frame sections.
We do not keep the actual value of the CIE ID field, because it is predefined, and use a constant when dumping a CIE record. The issue was that the predefined value is different for .debug_frame and .eh_frame sections, but we always printed the one which corresponds to .debug_frame. The patch fixes that by choosing an appropriate constant to print. See the following for more information about .eh_frame sections: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html Differential Revision: https://reviews.llvm.org/D73627
This commit is contained in:
parent
2e8c112ecf
commit
2ba4df6c11
|
@ -5,7 +5,7 @@
|
|||
|
||||
// CHECK: .eh_frame contents:
|
||||
|
||||
// CHECK: 00000000 0000001c ffffffff CIE
|
||||
// CHECK: 00000000 0000001c 00000000 CIE
|
||||
// CHECK-NEXT: Version: 1
|
||||
// CHECK-NEXT: Augmentation: "zPLR"
|
||||
// CHECK-NEXT: Code alignment factor: 1
|
||||
|
|
|
@ -287,7 +287,7 @@ void CFIProgram::dump(raw_ostream &OS, const MCRegisterInfo *MRI, bool IsEH,
|
|||
|
||||
void CIE::dump(raw_ostream &OS, const MCRegisterInfo *MRI, bool IsEH) const {
|
||||
OS << format("%08x %08x %08x CIE", (uint32_t)Offset, (uint32_t)Length,
|
||||
DW_CIE_ID)
|
||||
IsEH ? 0 : DW_CIE_ID)
|
||||
<< "\n";
|
||||
OS << format(" Version: %d\n", Version);
|
||||
OS << " Augmentation: \"" << Augmentation << "\"\n";
|
||||
|
|
|
@ -8,7 +8,7 @@ func:
|
|||
ret
|
||||
.cfi_endproc
|
||||
|
||||
# CHECK: 00000000 00000010 ffffffff CIE
|
||||
# CHECK: 00000000 00000010 00000000 CIE
|
||||
# CHECK: Version: 1
|
||||
# CHECK: Augmentation: "zR"
|
||||
# CHECK: Code alignment factor: 1
|
||||
|
|
|
@ -54,7 +54,7 @@ func:
|
|||
// PIC64-NEXT: R_MIPS_PC32/R_MIPS_NONE/R_MIPS_NONE
|
||||
// RELOCS-NEXT: }
|
||||
|
||||
// DWARF32: 00000000 00000010 ffffffff CIE
|
||||
// DWARF32: 00000000 00000010 00000000 CIE
|
||||
// DWARF32-NEXT: Version: 1
|
||||
// DWARF32-NEXT: Augmentation: "zR"
|
||||
// DWARF32-NEXT: Code alignment factor: 1
|
||||
|
@ -73,7 +73,7 @@ func:
|
|||
// DWARF32-NEXT: DW_CFA_nop:
|
||||
|
||||
|
||||
// DWARF64: 00000000 00000010 ffffffff CIE
|
||||
// DWARF64: 00000000 00000010 00000000 CIE
|
||||
// DWARF64-NEXT: Version: 1
|
||||
// DWARF64-NEXT: Augmentation: "zR"
|
||||
// DWARF64-NEXT: Code alignment factor: 1
|
||||
|
|
|
@ -33,11 +33,11 @@ h:
|
|||
// CHECK-ASM-ROUNDTRIP-NEXT: .cfi_return_column 0
|
||||
// CHECK-ASM-ROUNDTRIP: .cfi_endproc
|
||||
|
||||
// CHECK-EH_FRAME: 00000000 00000014 ffffffff CIE
|
||||
// CHECK-EH_FRAME: 00000000 00000014 00000000 CIE
|
||||
// CHECK-EH_FRAME: Return address column: 0
|
||||
|
||||
// CHECK-EH_FRAME: 0000002c 00000014 ffffffff CIE
|
||||
// CHECK-EH_FRAME: 0000002c 00000014 00000000 CIE
|
||||
// CHECK-EH_FRAME: Return address column: 65
|
||||
|
||||
// CHECK-EH_FRAME-NOT: ........ 00000014 ffffffff CIE
|
||||
// CHECK-EH_FRAME-NOT: ........ 00000014 00000000 CIE
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# checks that we are able to dump it correctly.
|
||||
|
||||
# CHECK: .eh_frame contents:
|
||||
# CHECK: 00000000 00000010 ffffffff CIE
|
||||
# CHECK: 00000000 00000010 00000000 CIE
|
||||
# CHECK-NEXT: Version: 1
|
||||
# CHECK-NEXT: Augmentation: "zR"
|
||||
# CHECK-NEXT: Code alignment factor: 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# CHECK: .eh_frame contents:
|
||||
|
||||
# CHECK: 00000000 00000010 ffffffff CIE
|
||||
# CHECK: 00000000 00000010 00000000 CIE
|
||||
# CHECK: Version: 1
|
||||
# CHECK: Augmentation: "zR"
|
||||
# CHECK: Code alignment factor: 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# CHECK: .eh_frame contents:
|
||||
|
||||
# CHECK: 00000000 0000001c ffffffff CIE
|
||||
# CHECK: 00000000 0000001c 00000000 CIE
|
||||
# CHECK: Version: 1
|
||||
# CHECK: Augmentation: "zPLR"
|
||||
# CHECK: Code alignment factor: 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# CHECK: .eh_frame contents:
|
||||
|
||||
# CHECK: 00000000 00000018 ffffffff CIE
|
||||
# CHECK: 00000000 00000018 00000000 CIE
|
||||
# CHECK: Version: 1
|
||||
# CHECK: Augmentation: "zPLR"
|
||||
# CHECK: Code alignment factor: 1
|
||||
|
@ -19,7 +19,7 @@
|
|||
# CHECK: DW_CFA_offset: reg31 -4
|
||||
# CHECK: DW_CFA_nop:
|
||||
|
||||
# CHECK: 00000038 00000000 ffffffff CIE
|
||||
# CHECK: 00000038 00000000 00000000 CIE
|
||||
# CHECK: Version: 0
|
||||
# CHECK: Augmentation: ""
|
||||
# CHECK: Code alignment factor: 0
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# CHECK: .eh_frame contents:
|
||||
|
||||
# CHECK: 00000000 00000000 ffffffff CIE
|
||||
# CHECK: 00000000 00000000 00000000 CIE
|
||||
# CHECK: Version: 0
|
||||
# CHECK: Augmentation: ""
|
||||
# CHECK: Code alignment factor: 0
|
||||
|
|
Loading…
Reference in New Issue