Browse Source

* Set return value of safecall procedure if implicit try/finally blocks are disabled.

git-svn-id: trunk@7727 -
yury 18 năm trước cách đây
mục cha
commit
9bbff8042f
1 tập tin đã thay đổi với 6 bổ sung0 xóa
  1. 6 0
      compiler/psub.pas

+ 6 - 0
compiler/psub.pas

@@ -1034,6 +1034,12 @@ implementation
             current_filepos:=entrypos;
             gen_proc_entry_code(templist);
             aktproccode.insertlistafter(headertai,templist);
+{$if defined(x86) or defined(arm)}
+            { Set return value of safecall procedure if implicit try/finally blocks are disabled }
+            if not (cs_implicit_exceptions in current_settings.moduleswitches) and
+               (procdef.proccalloption=pocall_safecall) then
+              cg.a_load_const_reg(aktproccode,OS_ADDR,0,NR_FUNCTION_RETURN_REG);
+{$endif}
             { Add exit code at the end }
             current_filepos:=exitpos;
             gen_proc_exit_code(templist);