mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-07 16:42:07 +00:00
[WinEH] _except_handlerN uses 0 instead of 1 to indicate catch-all
Our usage of 1 was a holdover from __C_specific_handler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239482 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b78ea510c1
commit
3de99b70aa
@ -612,12 +612,10 @@ void WinException::emitExceptHandlerTable(const MachineFunction *MF) {
|
||||
"gaps in the SEH scope table");
|
||||
for (const SEHHandler &Handler : LPInfo->SEHHandlers) {
|
||||
// Emit the filter or finally function pointer, if present. Otherwise,
|
||||
// emit '1' to indicate a catch-all.
|
||||
const MCExpr *FilterOrFinally;
|
||||
if (const Function *F = Handler.FilterOrFinally)
|
||||
FilterOrFinally = create32bitRef(Asm->getSymbol(F));
|
||||
else
|
||||
FilterOrFinally = MCConstantExpr::create(1, Asm->OutContext);
|
||||
// emit '0' to indicate a catch-all.
|
||||
const Function *F = Handler.FilterOrFinally;
|
||||
const MCExpr *FilterOrFinally =
|
||||
create32bitRef(F ? Asm->getSymbol(F) : nullptr);
|
||||
|
||||
// Compute the recovery address, which is a block address or null.
|
||||
const BlockAddress *BA = Handler.RecoverBA;
|
||||
|
@ -67,5 +67,5 @@ eh.resume:
|
||||
; X86: .section .xdata,"dr"
|
||||
; X86-NEXT: L__ehtable$main
|
||||
; X86-NEXT: .long -1
|
||||
; X86-NEXT: .long 1
|
||||
; X86-NEXT: .long 0
|
||||
; X86-NEXT: .long Ltmp{{[0-9]+}}
|
||||
|
@ -37,7 +37,7 @@ catchall:
|
||||
; CHECK: .section .xdata,"dr"
|
||||
; CHECK-LABEL: L__ehtable$use_except_handler3:
|
||||
; CHECK-NEXT: .long -1
|
||||
; CHECK-NEXT: .long 1
|
||||
; CHECK-NEXT: .long 0
|
||||
; CHECK-NEXT: .long Ltmp{{[0-9]+}}
|
||||
|
||||
define void @use_except_handler4() {
|
||||
@ -77,7 +77,7 @@ catchall:
|
||||
; CHECK-NEXT: .long 9999
|
||||
; CHECK-NEXT: .long 0
|
||||
; CHECK-NEXT: .long -2
|
||||
; CHECK-NEXT: .long 1
|
||||
; CHECK-NEXT: .long 0
|
||||
; CHECK-NEXT: .long Ltmp{{[0-9]+}}
|
||||
|
||||
define void @use_CxxFrameHandler3() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user