浏览代码

+ handle properly ret in param in tinlinenode.first_abs_real

git-svn-id: branches/z80@45012 -
nickysn 5 年之前
父节点
当前提交
a1ccab5e23
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      compiler/ninl.pas

+ 7 - 2
compiler/ninl.pas

@@ -4172,14 +4172,19 @@ implementation
      function tinlinenode.first_abs_real : tnode;
       var
          callnode : tcallnode;
+         temp_pnode: pnode;
       begin
         { create the call to the helper }
         { on entry left node contains the parameter }
+        if left.nodetype = callparan then
+          temp_pnode := @tcallparanode(left).left
+        else
+          temp_pnode := @left;
         callnode:=ccallnode.createintern('fpc_abs_real',
-                    ccallparanode.create(left,nil));
+                    ccallparanode.create(temp_pnode^,nil));
         result := ctypeconvnode.create(callnode,resultdef);
         include(callnode.callnodeflags,cnf_check_fpu_exceptions);
-        left := nil;
+        temp_pnode^ := nil;
       end;
 
      function tinlinenode.first_sqr_real : tnode;