【aarch64-win64】发现fpc将TSmallPoint赋值为一个负数,并将TSmallPoint赋值给TPoint时得到一个655xx的数值的bug
近日发现fpc aarch64-win64的bug: 将TSmallPoint赋值为一个负数,并赋值给TPoint时得到一个错误的值:655xx的数值。
【aarch64-win64】修复aarch64 win64下lazarus不弹出SourceTabPopUpMenu及拖dock时出错的两个bug(2026-07-20更新)就是这个Bug引起的
【aarch64-win64】修复aarch64 win64下lazarus不弹出SourceTabPopUpMenu及拖dock时出错的两个bug(2026-07-20更新)就是这个Bug引起的
program project2; uses classes,sysutils; var P: TSmallPoint; MP: TPoint; begin p.X:=123; p.Y:=-2; MP:= p; WriteLn('p.y='+(P.Y).ToString); WriteLn('MP.y='+(MP.Y).ToString); end.

在fpc未修复之前,用Smallint强制转换就可以值得正确的数值:
program project2; uses classes,sysutils; var P: TSmallPoint; MP: TPoint; begin p.X:=123; p.Y:=-2; MP:= p; WriteLn('p.y='+(P.Y).ToString); WriteLn('MP.y='+(MP.Y).ToString); WriteLn('SmallInt(MP.y)='+(SmallInt(MP.Y)).ToString); end.


浙公网安备 33010602011771号