Ver código fonte

* fixed bug in previous fix (hopped over revision 1.26 because that one
also removed the fix for high(cardinal))

Jonas Maebe 24 anos atrás
pai
commit
9ecf1c9aa7
1 arquivos alterados com 18 adições e 20 exclusões
  1. 18 20
      compiler/ninl.pas

+ 18 - 20
compiler/ninl.pas

@@ -126,25 +126,19 @@ implementation
 
                   { low/high of torddef are longints, so we need special }
                   { handling for cardinal and 64bit types (JM)           }
-                  if is_64bitint(adef) then
-                   begin
-                     if is_signed(adef) then
-                      begin
-                        if (inlinenumber=in_low_x) then
-                         v := int64($80000000) shl 32
-                        else
-                         v := (int64($7fffffff) shl 32) or $ffffffff
-                      end
-                     else
-                      begin
-                        { we have to use a dirty trick for high(qword), }
-                        { because it's bigger than high(v)  (JM)        }
-                        if (inlinenumber=in_low_x) then
-                         v := 0
-                        else
-                         v := cardinal(v);
-                      end;
-                   end;
+                  if is_signed(adef) and
+                     is_64bitint(adef) then
+                    if (inlinenumber=in_low_x) then
+                      v := int64($80000000) shl 32
+                    else
+                      v := (int64($7fffffff) shl 32) or $ffffffff
+                  else
+                    if is_64bitint(adef) then
+                      { we have to use a dirty trick for high(qword),     }
+                      { because it's bigger than high(tconstexprint) (JM) }
+                      v := 0
+                    else
+                      v := cardinal(v);
                   hp:=genordinalconstnode(v,adef);
                   firstpass(hp);
                   { fix high(qword) }
@@ -1535,7 +1529,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.26  2001-02-21 20:50:59  peter
+  Revision 1.27  2001-02-22 11:24:40  jonas
+    * fixed bug in previous fix (hopped over revision 1.26 because that one
+      also removed the fix for high(cardinal))
+
+  Revision 1.26  2001/02/21 20:50:59  peter
     * fix to compile again, but high(cardinal) with $R+ still fails!
 
   Revision 1.25  2001/02/21 12:57:46  jonas