mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,
but we need it to actually be 4-bytes in the FDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91337 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
80dd125e17
commit
f8084fb1e1
@ -292,14 +292,13 @@ void DwarfException::EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) {
|
|||||||
Asm->EmitULEB128Bytes(is4Byte ? 4 : 8);
|
Asm->EmitULEB128Bytes(is4Byte ? 4 : 8);
|
||||||
Asm->EOL("Augmentation size");
|
Asm->EOL("Augmentation size");
|
||||||
|
|
||||||
|
// We force 32-bits here because we've encoded our LSDA in the CIE with
|
||||||
|
// `dwarf::DW_EH_PE_sdata4'. And the CIE and FDE should agree.
|
||||||
if (EHFrameInfo.hasLandingPads)
|
if (EHFrameInfo.hasLandingPads)
|
||||||
EmitReference("exception", EHFrameInfo.Number, true, false);
|
EmitReference("exception", EHFrameInfo.Number, true, true);
|
||||||
else {
|
else
|
||||||
if (is4Byte)
|
Asm->EmitInt32((int)0);
|
||||||
Asm->EmitInt32((int)0);
|
|
||||||
else
|
|
||||||
Asm->EmitInt64((int)0);
|
|
||||||
}
|
|
||||||
Asm->EOL("Language Specific Data Area");
|
Asm->EOL("Language Specific Data Area");
|
||||||
} else {
|
} else {
|
||||||
Asm->EmitULEB128Bytes(0);
|
Asm->EmitULEB128Bytes(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user