瀏覽代碼

compiler: don't treat array[..] of dynamic array as a 2 dimension array

git-svn-id: trunk@24522 -
paul 12 年之前
父節點
當前提交
b333ef582b
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      compiler/ncgrtti.pas

+ 4 - 1
compiler/ncgrtti.pas

@@ -604,7 +604,10 @@ implementation
                    write_rtti_reference(curdef.rangedef,rt);
                    write_rtti_reference(curdef.rangedef,rt);
                    inc(dimcount);
                    inc(dimcount);
                    totalcount:=totalcount*curdef.elecount;
                    totalcount:=totalcount*curdef.elecount;
-                   if assigned(curdef.elementdef)and(curdef.elementdef.typ=arraydef) then
+                   { get the next static array }
+                   if assigned(curdef.elementdef) and
+                      (curdef.elementdef.typ=arraydef) and
+                      not(ado_IsDynamicArray in tarraydef(curdef.elementdef).arrayoptions) then
                      curdef:=tarraydef(curdef.elementdef)
                      curdef:=tarraydef(curdef.elementdef)
                    else
                    else
                      break;
                      break;