[fpc-devel] CompareValue

mftq75 at dsl.pipex.com mftq75 at dsl.pipex.com
Sun Mar 4 19:54:54 CET 2007


Quoting Vincent Snijders <vsnijders at quicknet.nl>:

> C Western schreef:
> > ð£ÔÒ ëÏÓÁÒÅ×ÓËÉÊ wrote:
> >>> In the math unit are the CompareValue functions only for signed 
> >>> integers. Why not for DWORD and QWORD?
> >>
> >> I guess, that it's Delphi mimicing implementation (because it is 
> >> Delphi-like).
> >>
> >> And it can be tricky to distinguish signed and unsigned expression 
> >> values.
> >>
> >> Like,
> >> a: qword;
> >> a-1 --- ??? (anyone may know for sure that a-1>0 and want to subtract 
> >> one)
> >>
> >> I guess it's something like that.
> > 
> > If you check <http://www.freepascal.org/mantis/view.php?id=8448> you can 
> > see this bug in action - the fpcadds and math unit provide signed and 
> > unsigned versions of CompareValue, but the correct one is not always 
> > chosen.
> > 
> 
> What a lousy compiler we use! ;-)
> 
> Do you have a testprogram, so I can make a fpc bug report?

I think this is inherent in the language design, as it is too easy to convert
between signed and unsigned integers. For example should the call:

CompareValue(0,0)

use the signed or unsigned version?

Colin



More information about the fpc-devel mailing list