瀏覽代碼

Raise internalerror inside RemoveCurentP is called with p=hp1, because it leads to using a class instance after it has been freed

git-svn-id: trunk@47689 -
pierre 4 年之前
父節點
當前提交
0189276a12
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      compiler/aoptobj.pas

+ 2 - 0
compiler/aoptobj.pas

@@ -1506,6 +1506,8 @@ Unit AoptObj;
 
     procedure TAOptObj.RemoveCurrentP(var p: tai; const hp1: tai); inline;
       begin
+        if (p=hp1) then
+          internalerror(2020120501);
         UpdateUsedRegs(tai(p.Next));
         AsmL.Remove(p);
         p.Free;