2
0
Эх сурвалжийг харах

* wrong alignment was used in r38252: alignment for a class returns the alignment of the implict pointer, but we really need the alignment of the data structure

git-svn-id: trunk@38261 -
florian 7 жил өмнө
parent
commit
2e9f6f9dfb

+ 2 - 2
compiler/ncgmem.pas

@@ -356,9 +356,9 @@ implementation
                 (target_info.system in systems_garbage_collected_managed_types) then
                 (target_info.system in systems_garbage_collected_managed_types) then
                begin
                begin
                  { take care of the alignment of the fields }
                  { take care of the alignment of the fields }
-                 if not(left.resultdef is tabstractrecorddef) then
+                 if not(left.resultdef is tobjectdef) then
                    Internalerror(2018021601);
                    Internalerror(2018021601);
-                 location_reset_ref(location,LOC_REFERENCE,def_cgsize(resultdef),newalignment(tabstractrecorddef(left.resultdef).alignment,vs.fieldoffset),[]);
+                 location_reset_ref(location,LOC_REFERENCE,def_cgsize(resultdef),newalignment(tObjectSymtable(tobjectdef(left.resultdef).symtable).recordalignment,vs.fieldoffset),[]);
                  case left.location.loc of
                  case left.location.loc of
                     LOC_CREGISTER,
                     LOC_CREGISTER,
                     LOC_REGISTER:
                     LOC_REGISTER: