Browse Source

* all currently supported platforms require that single precision
parameters passed as C-style varargs are upgraded to double
precision

git-svn-id: trunk@9201 -

Jonas Maebe 18 years ago
parent
commit
70c0c2ddd9
1 changed files with 1 additions and 3 deletions
  1. 1 3
      compiler/ncnv.pas

+ 1 - 3
compiler/ncnv.pas

@@ -600,9 +600,7 @@ implementation
                   if is_constrealnode(p) and
                   if is_constrealnode(p) and
                      not(nf_explicit in p.flags) then
                      not(nf_explicit in p.flags) then
                     MessagePos(p.fileinfo,type_w_double_c_varargs);
                     MessagePos(p.fileinfo,type_w_double_c_varargs);
-                  if (tfloatdef(p.resultdef).floattype in [{$ifndef x86_64}s32real,{$endif}s64currency]) or
-                    { win64 requires the double type cast for singles as well }
-                     ((tfloatdef(p.resultdef).floattype=s32real) and (target_info.system=system_x86_64_win64)) or
+                  if (tfloatdef(p.resultdef).floattype in [s32real,s64currency]) or
                      (is_constrealnode(p) and
                      (is_constrealnode(p) and
                       not(nf_explicit in p.flags)) then
                       not(nf_explicit in p.flags)) then
                     p:=ctypeconvnode.create(p,s64floattype);
                     p:=ctypeconvnode.create(p,s64floattype);