From fa0ce2a14c530f2b04be6b1172b28f72ae18da10 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sun, 28 Jul 2024 18:57:46 +0800 Subject: [PATCH] ssa: panicBlk use IndirectJump --- ssa/eh.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ssa/eh.go b/ssa/eh.go index 28f8ea71..269dd2a0 100644 --- a/ssa/eh.go +++ b/ssa/eh.go @@ -255,6 +255,7 @@ func (p Function) endDefer(b Builder) { } procBlk := self.procBlk panicBlk := self.panicBlk + rethPtr := self.rethPtr rundPtr := self.rundPtr nexts := self.rundsNext if len(nexts) == 0 { @@ -273,7 +274,7 @@ func (p Function) endDefer(b Builder) { b.SetBlockEx(panicBlk, AtEnd, false) // exec runDefers and rethrow b.Store(rundPtr, nexts[0].Addr()) // nexts[0] is rethrowBlk - b.Jump(procBlk) + b.IndirectJump(b.Load(rethPtr), self.rethsNext) } // -----------------------------------------------------------------------------