Peter Vreman wrote:
Hi,The following compiles with fpc 2.0.1, but not anymore with fpc 2.1.1. Is it a bug in my code (and fpc 2.0.1) or in fpc 2.1.1? program Project1; {$mode objfpc}{$H+} procedure test(l: longint); begin end; begin test(longint('')); end.You are dependning on the internal storage of constant strings. In 2.0.1 it is an ansistring because of the $H+, compiling with $H- gives an error. Because an ansistring is 4 bytes in 32bit the explicit typeconversion to a 4 bytes longint will work in 32bit mode. In 2.1.1 constant strings are array[0..x] of char. Where only a longint('1234') can be converted.
Thanks. I suspected it had to do with this change. I just didn't know if it was a wanted or unwanted side effect of that change. I will fix my program.
Vincent. _______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
