소스 검색

* generic conversaion routines only work on signed types

carl 22 년 전
부모
커밋
dd0322c646
1개의 변경된 파일9개의 추가작업 그리고 4개의 파일을 삭제
  1. 9 4
      compiler/ncnv.pas

+ 9 - 4
compiler/ncnv.pas

@@ -1371,7 +1371,7 @@ implementation
 
     function ttypeconvnode.first_int_to_real: tnode;
       var
-        fname: string[19];
+        fname: string[32];
         typname : string[12];
       begin
         { Get the type name  }
@@ -1385,7 +1385,8 @@ implementation
             if is_signed(left.resulttype.def) then
               fname := 'fpc_int64_to_'+typname
             else
-              fname := 'fpc_qword_to_'+typname;
+{$warning generic conversion from int to float does not support unsigned integers}            
+              fname := 'fpc_int64_to_'+typname;
             result := ccallnode.createintern(fname,ccallparanode.create(
               left,nil));
             left:=nil;
@@ -1395,10 +1396,11 @@ implementation
         else
           { other integers are supposed to be 32 bit }
           begin
+{$warning generic conversion from int to float does not support unsigned integers}            
             if is_signed(left.resulttype.def) then
               fname := 'fpc_longint_to_'+typname
             else
-              fname := 'fpc_longword_to_'+typname;
+              fname := 'fpc_longint_to_'+typname;
             result := ccallnode.createintern(fname,ccallparanode.create(
               left,nil));
             left:=nil;
@@ -2025,7 +2027,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.101  2003-01-16 22:13:52  peter
+  Revision 1.102  2003-02-15 22:15:57  carl
+   * generic conversaion routines only work on signed types
+
+  Revision 1.101  2003/01/16 22:13:52  peter
     * convert_l3 convertlevel added. This level is used for conversions
       where information can be lost like converting widestring->ansistring
       or dword->byte