[fpc-pascal] this line in pascal compile for i386 version but arm version

josepascual josepascual at almudi.com
Thu Jun 14 20:39:40 CEST 2007


Hi Jonas,

> -----Mensaje original-----
> De: fpc-pascal-bounces at lists.freepascal.org [mailto:fpc-pascal-
> bounces at lists.freepascal.org] En nombre de Jonas Maebe
> Enviado el: miƩrcoles, 13 de junio de 2007 11:42
> Para: FPC-Pascal users discussions
> Asunto: Re: [fpc-pascal] this line in pascal compile for i386 version
> but arm version
> 
> 
> On 13 jun 2007, at 11:34, josepascual wrote:
> 
> > else Result :=Round(VarAsType(dataNum, varDouble))//varInteger)
> > .
> > .
> > .
> >
> > compile okey in 2.1.1 and 2.1.4 fpc for i386 but 2.1.1 and 2.1.4
> > ppccrossarm
> >
> >
> > this is the error:
> >
> > ===
> > .
> > .
> > (431,58) Error: Can't determine which overloaded function to call
> > .
> > .
> > ===
> > error is talking about Round.
> 
> That is because the overload priority for routines which accept a 64
> bit integer (int64/qword, currency, and also comp on non-x86) and a
> 64 bit float(double) is the same when passing a variable variant
> argument. Since we have round(comp), round(currency) and round
> (double), the compiler cannot choose which one you want if you pass a
> variant. The reason it compiles on i386, is that you also have a round
> (extended) there, which has a higher priority than the 64 bit variants.
> 
> So you need to fix your code by adding an extra VarAsType(...,double)
> call.

How can I do it? 

else Result :=Round(double(VarAsType(dataNum, varDouble)))//varInteger)

or other solution?

thank you in advanced

Jose Pascual
 
> 
> Jonas
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> 
> __________ Informacisn de NOD32, revisisn 2325 (20070612) __________
> 
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com





More information about the fpc-pascal mailing list