> Indeed, this is by design. See > https://wiki.freepascal.org/User_Changes_2.2.0#Floating_point_constants for > how to explicitly specify a different precision.
That was long before the change Tomas discovered. The gotcha here is about your fix to <https://bugs.freepascal.org/view.php?id=25121>, which together with the one you linked made runtime and compile time evaluation the same, at the expense of specifically breaking Delphi compat. From the current Delphi Reference: > In Delphi, intermediate results of Single precision floating-point > expressions are always implicitly stored as Extended on x86. > > By default, all x64 arithmetic operations and expressions involving only > Single precision floating-point values retain high precision by storing > intermediate results as Double precision values. But since then, FPC sees Single / Int2Single = Single, with no high precision intermediates. There was either a bug or a thread here about the code that broke and some issues with explicit casts also not helping, but I can't seem to locate either. Best, Sebastian _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel