git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8173 8c9fc860-2736-0410-a75d-ab315db34111
@@ -1591,8 +1591,6 @@ TYPE
CallThis(position,"Runtime","Trap",1);
ELSE
Emit(Trap(position,trapNo));
- (* Artificially append code to keep address of the instruction following the trap at the end of procedure within its boundary *)
- IF trapNo = ReturnTrap THEN Emit(Trap(position,NoReturnTrap)) END;
END;
END EmitTrap;
@@ -167,6 +167,8 @@ VAR
(* assume call of procedure variable with value NIL *)
S.GET( sp, pc ); (* get return address on top of stack *)
+
+ IF (sig = 5) & (trapno = 3) THEN DEC (pc) END;
IF process # NIL THEN
Reflection.StackTraceBack( w, pc, bp, sp, Objects.GetStackBottom( process ), TRUE, FALSE );