Browse Source

* traisenode.pass_typecheck: in the case of 'raise X at addr,frame' require 'addr' to be a far pointer in i8086 far code memory models

git-svn-id: trunk@25514 -
nickysn 12 years ago
parent
commit
5973b231ec
1 changed files with 10 additions and 0 deletions
  1. 10 0
      compiler/nflw.pas

+ 10 - 0
compiler/nflw.pas

@@ -237,6 +237,9 @@ implementation
     {$ifdef state_tracking}
       nstate,
     {$endif}
+    {$ifdef i8086}
+      cpuinfo,
+    {$endif i8086}
       cgbase,procinfo
       ;
 
@@ -1929,7 +1932,14 @@ implementation
                begin
                  { addr }
                  typecheckpass(right);
+{$ifdef i8086}
+                 if current_settings.x86memorymodel in x86_far_code_models then
+                   inserttypeconv(right,voidfarpointertype)
+                 else
+                   inserttypeconv(right,voidnearpointertype);
+{$else i8086}
                  inserttypeconv(right,voidpointertype);
+{$endif i8086}
                  { frame }
                  if assigned(third) then
                   begin