Vinzent Hoefler a écrit :
On Thursday 07 July 2005 05:39, Peter Vreman wrote:


shouldn't it implement inv(v,-1) in exactly the same way it
implements v:=v-1?

The problem is what type do you give to -1. In the old situation the
-1 was converted to the same type as v -> longword.


Which should trigger a range check already, because -1 can't be represented as valid longword.

Personal note: Maybe there was a reason why Borland Pascal didn't do range checks on Inc/Dec.

Yes, there is always a good reason for a bug :-)

To the FPC team.
If ever you changed that, i.e., if you suppressed the overflows
with Inc and Dec, thanks to let us know explicitely (here, for
instance). Personally, I would have to rewrite a few lines of
code, like, for instance, in

procedure XDiv2(X: PBigFloat);
begin
  with X^ do if not IEqu0(Mantissa) then {$Q+} Dec(Exponent); {$Q-}
end;

The only time I ever used it was a checksum calculation which was modulo anyway. Any other time I use the usual operators. So especially with the "added" overflow check I think, Inc and Dec are pretty useless functions, because the don't do anything you can't accomplish by using "+" or "-" unless you have very_long_and_complex_variable_names and want to save some typing work.

That's a matter of habit. Not sure but I believe that with TP3,
the compiled code was better with "Inc" than with "+".

mm

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

Reply via email to