Selaa lähdekoodia

+ override tabstractprocdef.getcopyas for i8086, so it preserves the po_far
option (so that for far procedures, a far procdef is created)

git-svn-id: trunk@38601 -

nickysn 7 vuotta sitten
vanhempi
commit
3b70fc628c
1 muutettua tiedostoa jossa 22 lisäystä ja 0 poistoa
  1. 22 0
      compiler/i8086/symcpu.pas

+ 22 - 0
compiler/i8086/symcpu.pas

@@ -110,6 +110,7 @@ type
 
   tcpuprocvardef = class(ti86procvardef)
     constructor create(level:byte);override;
+    function getcopyas(newtyp:tdeftyp;copytyp:tproccopytyp):tstoreddef;override;
     function address_type:tdef;override;
     function size:asizeint;override;
     procedure declared_far;override;
@@ -130,6 +131,7 @@ type
     function default_far:boolean;
    public
     constructor create(level:byte;doregister:boolean);override;
+    function getcopyas(newtyp:tdeftyp;copytyp:tproccopytyp):tstoreddef;override;
     function address_type:tdef;override;
     function size:asizeint;override;
     procedure declared_far;override;
@@ -329,6 +331,16 @@ implementation
     end;
 
 
+  function tcpuprocdef.getcopyas(newtyp:tdeftyp;copytyp:tproccopytyp):tstoreddef;
+    begin
+      result:=inherited;
+      if is_far then
+        include(tabstractprocdef(result).procoptions,po_far)
+      else
+        exclude(tabstractprocdef(result).procoptions,po_far);
+    end;
+
+
   function tcpuprocdef.address_type: tdef;
     begin
       if is_far then
@@ -398,6 +410,16 @@ implementation
     end;
 
 
+  function tcpuprocvardef.getcopyas(newtyp:tdeftyp;copytyp:tproccopytyp):tstoreddef;
+    begin
+      result:=inherited;
+      if is_far then
+        include(tabstractprocdef(result).procoptions,po_far)
+      else
+        exclude(tabstractprocdef(result).procoptions,po_far);
+    end;
+
+
   function tcpuprocvardef.address_type:tdef;
     begin
       if is_addressonly then