소스 검색

* some runtime errors fixed, if compiled with -CrR

git-svn-id: trunk@42479 -
florian 6 년 전
부모
커밋
aac8559a8d
3개의 변경된 파일5개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 1
      compiler/cfidwarf.pas
  2. 1 1
      compiler/pdecl.pas
  3. 3 2
      compiler/symdef.pas

+ 1 - 1
compiler/cfidwarf.pas

@@ -247,7 +247,7 @@ implementation
         FLastLocLabel:=nil;
         code_alignment_factor:=1;
         data_alignment_factor:=-4;
-        FDwarfList:=TLinkedList.Create;
+        FDwarfList:=TAsmList.Create;
       end;
 
 

+ 1 - 1
compiler/pdecl.pas

@@ -1077,7 +1077,7 @@ implementation
               { if we have a real type definition or a unique type we may bind
                 attributes to this def }
               if not istyperenaming or isunique then
-                trtti_attribute_list.bind(rtti_attrs_def,tobjectdef(hdef).rtti_attribute_list);
+                trtti_attribute_list.bind(rtti_attrs_def,tstoreddef(hdef).rtti_attribute_list);
             end;
 
            if isgeneric and (not(hdef.typ in [objectdef,recorddef,arraydef,procvardef])

+ 3 - 2
compiler/symdef.pas

@@ -2302,7 +2302,8 @@ implementation
             is_intregable:=false
 {$else cpuhighleveltarget}
             is_intregable:=not(is_special_array(self)) and
-              (tarraydef(self).size in [1,2,4,8]) and tstoreddef(tarraydef(self).elementdef).is_intregable
+              (tarraydef(self).size<=8) and (tarraydef(self).size in [1,2,4,8]) and
+              tstoreddef(tarraydef(self).elementdef).is_intregable
 {$ifdef SUPPORT_MMX}
               and not((cs_mmx in current_settings.localswitches) and
                  is_mmx_able_array(self))
@@ -4228,7 +4229,7 @@ implementation
           end;
 
         { Tarraydef.size may never be called for an open array! }
-        if highrange<lowrange then
+        if highrange=-1 then
           internalerror(99080501);
         if not (ado_IsBitPacked in arrayoptions) then
           cachedelesize:=elesize