summaryrefslogtreecommitdiff
path: root/compiler/ncgflw.pas
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-02-20 21:53:27 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-02-20 21:53:27 +0000
commit2f8e7deee303883b5bfa50ef71228e3b76d011be (patch)
tree22e0ffb3be238d57aac992fb47cd67391fe9c6e1 /compiler/ncgflw.pas
parent566db3a9d74ebffab25599874e8871e281d3b97b (diff)
downloadfpc-2f8e7deee303883b5bfa50ef71228e3b76d011be.tar.gz
* some safecall issues fixed
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41406 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgflw.pas')
-rw-r--r--compiler/ncgflw.pas6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/ncgflw.pas b/compiler/ncgflw.pas
index 6567b5f73b..903d473e5f 100644
--- a/compiler/ncgflw.pas
+++ b/compiler/ncgflw.pas
@@ -1354,7 +1354,11 @@ implementation
if-branch -> fc_inflowcontrol) }
if (tf_safecall_exceptions in target_info.flags) and
(current_procinfo.procdef.proccalloption=pocall_safecall) then
- handle_safecall_exception
+ begin
+ handle_safecall_exception;
+ { we have to jump immediatly as we have to return the value of FPC_SAFECALL }
+ hlcg.a_jmp_always(current_asmdata.CurrAsmList,oldCurrExitLabel);
+ end
else
cexceptionstatehandler.handle_reraise(current_asmdata.CurrAsmList,excepttemps,finallyexceptionstate,exceptframekind);
{ we have to load 0 into the execepttemp, else the program thinks an exception happended }