[EMAIL PROTECTED] schreef:
Quoting Vincent Snijders <[EMAIL PROTECTED]>:

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?

But in this particular case, I did not use constants, but variables of the same type.

Vincent
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to