Explorar o código

* is_signed does not check the ordtype but the ranges, so it cannot be used to
check for valid types for cvtsi2sd/s

git-svn-id: trunk@47083 -

florian %!s(int64=4) %!d(string=hai) anos
pai
achega
56c58b517d
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      compiler/x86/nx86cnv.pas

+ 3 - 1
compiler/x86/nx86cnv.pas

@@ -289,7 +289,9 @@ implementation
               end
             else
               begin
-                if not(is_signed(left.resultdef)) then
+                { do not use is_signed here as it checks the boundaries instead
+                  of the ordtype }
+                if not(torddef(left.resultdef).ordtype in [s32bit,s64bit]) then
                   Internalerror(2020101001);
                 case location.size of
                   OS_F32: