瀏覽代碼

* set TOC pointer when returning to HandleErrorAddrFrame from signal handler

git-svn-id: trunk@20826 -
Jonas Maebe 13 年之前
父節點
當前提交
60869a0da0
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      rtl/aix/sighnd.inc

+ 2 - 0
rtl/aix/sighnd.inc

@@ -63,6 +63,8 @@ begin
       { the address of a function is a descriptor, and we need the actual
       { the address of a function is a descriptor, and we need the actual
         address here -> dereference }
         address here -> dereference }
       pointer(SigContext^.uc_mcontext.iar) := ppointer(@HandleErrorAddrFrame)^;
       pointer(SigContext^.uc_mcontext.iar) := ppointer(@HandleErrorAddrFrame)^;
+      { set corresponding TOC for the routine we are returning to }
+      pointer(SigContext^.uc_mcontext.gpr[2]) := (ppointer(@HandleErrorAddrFrame)+1)^;
     end;
     end;
 end;
 end;