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

* fixed types in thlcgobj.location_get_data_ref

git-svn-id: trunk@30710 -
Jonas Maebe 10 жил өмнө
parent
commit
5418978415
1 өөрчлөгдсөн 6 нэмэгдсэн , 3 устгасан
  1. 6 3
      compiler/hlcgobj.pas

+ 6 - 3
compiler/hlcgobj.pas

@@ -3988,6 +3988,8 @@ implementation
     end;
 
     procedure thlcgobj.location_get_data_ref(list: TAsmList; def: tdef; const l: tlocation; var ref: treference; loadref: boolean; alignment: longint);
+      var
+        pdef: tdef;
       begin
         case l.loc of
           LOC_REGISTER,
@@ -3995,16 +3997,17 @@ implementation
             begin
               if not loadref then
                 internalerror(200410231);
-              reference_reset_base(ref,voidpointertype,l.register,0,alignment);
+              reference_reset_base(ref,getpointerdef(def),l.register,0,alignment);
             end;
           LOC_REFERENCE,
           LOC_CREFERENCE :
             begin
               if loadref then
                 begin
-                  reference_reset_base(ref,voidpointertype,getaddressregister(list,voidpointertype),0,alignment);
+                  pdef:=getpointerdef(def);
+                  reference_reset_base(ref,pdef,getaddressregister(list,voidpointertype),0,alignment);
                   { it's a pointer to def }
-                  a_load_ref_reg(list,voidpointertype,voidpointertype,l.reference,ref.base);
+                  a_load_ref_reg(list,pdef,pdef,l.reference,ref.base);
                 end
               else
                 ref:=l.reference;