Explorar o código

* 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 %!s(int64=7) %!d(string=hai) anos
pai
achega
3e8cd7d4c9
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  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;