Kaynağa Gözat

Fixed #29025.
Some architecture bit-nesses were missing.

git-svn-id: trunk@32442 -

Jeppe Johansen 9 yıl önce
ebeveyn
işleme
0046af39eb
2 değiştirilmiş dosya ile 9 ekleme ve 3 silme
  1. 1 1
      compiler/globtype.pas
  2. 8 2
      compiler/ngtcon.pas

+ 1 - 1
compiler/globtype.pas

@@ -106,7 +106,7 @@ interface
 {$ifdef i8086}
        TConstPtrUInt = LongWord;  { 32-bit for far pointers support }
 {$else i8086}
-       TConstPtrUInt = AWord;
+       TConstPtrUInt = PUint;
 {$endif i8086}
 
        { Use a variant record to be sure that the array if aligned correctly }

+ 8 - 2
compiler/ngtcon.pas

@@ -810,8 +810,14 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
               {$if sizeof(TConstPtrUInt)=4}
                 ftcb.queue_emit_ordconst(longint(tpointerconstnode(node).value),ptrsinttype);
               {$else}
-                internalerror(200404122);
-            {$endif} {$endif}
+                {$if sizeof(TConstPtrUInt)=2}
+                  ftcb.queue_emit_ordconst(smallint(tpointerconstnode(node).value),ptrsinttype);
+                {$else}
+                  {$if sizeof(TConstPtrUInt)=1}
+                    ftcb.queue_emit_ordconst(shortint(tpointerconstnode(node).value),ptrsinttype);
+                  {$else}
+                    internalerror(200404122);
+            {$endif} {$endif} {$endif} {$endif}
           end
         { nil pointer ? }
         else if node.nodetype=niln then