[fpc-pascal] this line in pascal compile for i386 version but arm version
josepascual
josepascual at almudi.com
Wed Jun 13 20:25:19 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