Hi, Is there a FPC command line parameter to enable warnings or errors for the following situation at compile time? All logic tells me that detecting this an runtime only is WAY to late in the game!
Irrespective of the value of d64, I really think it aught to give you a compiler warning to say that you might run into data loss. I know Delphi can't do this (no surprise), but I really expected something better from FPC. ======================================= program overflow; {$mode objfpc}{$H+} var d32: integer; d64: Int64; begin d64 := 9223372036854775806; d32 := d64; // <---- No compiler warning here, yet clearly // a programming mistake writeln(d64); writeln(d32); end. ======================================= The compiler's default behaviour: $ fpc overflow.pas Hint: End of reading config file /home/graemeg/.fpc.cfg Free Pascal Compiler version 3.0.4+dfsg-18ubuntu2 [2018/08/29] for x86_64 Copyright (c) 1993-2017 by Florian Klaempfl and others Target OS: Linux for x86-64 Compiling overflow.pas Linking overflow /usr/bin/ld.bfd: warning: link.res contains output sections; did you forget -T? 14 lines compiled, 0.1 sec 1 hint(s) issued $ ./overflow 9223372036854775806 -2 Now enable runtime range checking and overflow support: $ fpc -Criot overflow.pas Hint: End of reading config file /home/graemeg/.fpc.cfg Free Pascal Compiler version 3.0.4+dfsg-18ubuntu2 [2018/08/29] for x86_64 Copyright (c) 1993-2017 by Florian Klaempfl and others Target OS: Linux for x86-64 Compiling overflow.pas Linking overflow /usr/bin/ld.bfd: warning: link.res contains output sections; did you forget -T? 14 lines compiled, 0.1 sec 1 hint(s) issued $ ./overflow Runtime error 201 at $000000000040020B $000000000040020B $000000000040018C A crash at runtime only is way to late. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal