소스 검색

* 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;