On 11/09/18 16:15, Santiago A. wrote:
El 11/09/18 a las 12:30, Mark Morgan Lloyd escribió:> On 11/09/18 10:15,
Santiago A. wrote:>> Hello:FPC: 3.0.4 (Realease from Lazarus 1.8.4 SVN:
57972)OS: Windows7 >> 32bits / Linux 64Bits>> I have this code and I get
a hint>> ---------- var Entity:Longword;FullParagraph:string;
pIni:Integer; >> begin ....
Entity:=Entity*10+ord(FullParagraph[pIni])-48; // <=== >> Hint .... end;
----------->> Hint: Converting the operands to "Int64" before doing the
add could >> prevent overflow errors.I can't see why it mentions int64,
there are >> integer and longword variables, but no Int64 one.>> There
is you know.>>
https://www.freepascal.org/docs-html/current/ref/refsu4.html#x26-250003.1.1
>
----------var Entity:Longword; FullParagraph:string;
pIni:Integer;begin ....
Entity:=Entity*10+ord(FullParagraph[pIni])-48; // <=== Hint ....end;
-----------Do you mean that Entity is promoted to int64 in a 32bits
system?
The operands Entity*10 and 10+ord(FullParagraph[pIni])-48 are both 32
bits, but the addition could overflow. The compiler writer's trying to
be nice to you, quit kvetching :-)
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal