浏览代码

* after making a copy of a vo_has_local_copy parameter, only release
the old location as a temp in case it was a reference

git-svn-id: trunk@38813 -

Jonas Maebe 7 年之前
父节点
当前提交
3e8cd7d4c9
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      compiler/hlcgobj.pas

+ 2 - 1
compiler/hlcgobj.pas

@@ -4994,7 +4994,8 @@ implementation
                   g_concatcopy(list,tparavarsym(p).vardef,href,localcopyloc.reference);
                 end;
               { update localloc of varsym }
-              tg.Ungetlocal(list,tparavarsym(p).localloc.reference);
+              if tparavarsym(p).localloc.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
+                tg.Ungetlocal(list,tparavarsym(p).localloc.reference);
               tparavarsym(p).localloc:=localcopyloc;
               tparavarsym(p).initialloc:=localcopyloc;
             end;