win32: int-overflow with int64(w)
Original Reporter info from Mantis: nanobit @nanobit
-
Reporter name:
Original Reporter info from Mantis: nanobit @nanobit
- Reporter name:
Description:
{mode delphi} or {
mode objfpc}
var i64: int64; w: word;
{$Q+}
i64 := 8191; w := 4096;
i64 := i64 - 2*w; // ok
assert(i64=-1);
i64 := 8191;
i64 := i64 - 2*longint(w); // ok
assert(i64=-1);
i64 := 8191;
i64 := i64 - 2*int64(w); // EIntOverflow (RTE 215), should not occur
assert(i64=-1);
Mantis conversion info:
- Mantis ID: 37878
- OS: Windows
- OS Build: 10
- Platform: win32
- Version: 3.2.0
- Fixed in version: 3.3.1
- Fixed in revision: 47142 (#099134b5)