Przeglądaj źródła

* 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 4 lat temu
rodzic
commit
56c58b517d
1 zmienionych plików z 3 dodań i 1 usunięć
  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: