On 25 Jun 2009, at 20:33, Inoussa OUEDRAOGO wrote:

2009/6/25 Jonas Maebe <jonas.ma...@elis.ugent.be>:

On 25 Jun 2009, at 20:14, Inoussa OUEDRAOGO wrote:

as it makes one doubtfull about
the correctness of the program( In my case I debugged the program to
be sure that the "good" value was assigned).

When it's changed, you will get the warning/error when assigning this value
to an int64 and then those cases can be debugged.

and that seems more accurate to me

It's equally accurate. A hex number does not contain any sign information, so both interpretations are valid.

to an int64 and then those cases can be debugged. It's the same when we changed from parsing $80000000-$FFFFFFFF as a longint to parsing it as a cardinal. Suddenly a whole bunch of code no longer worked correctly anymore then either, and we got a bunch of questions why code no longer compiled or
produced warnings.

IMHO warnings/errors should be reported as one is actually in a "out
of range" case. But if some code depends on this ( such as a bit mask
) changing the behavior of the compiler can effectively be harmfull.
I think that should be up to the people (ab)using the parser this way
to correct their code by doing a explicit typecast.

There is no abuse of the parser. The parser has, since the very first moment that int64 and qword were supported in FPC, always parsed such numbers as int64. So people using it like that, are using it as designed. In fact, before Delphi supported uint64, it also parsed such values as int64.


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

Reply via email to