Hi Jeffrey, on 2005-03-23T22:16:26+02:00 Jeffrey wrote: > However, the example below gives me a similar warning > with 1.9.8, but not 1.9.6:
I don't get such a warning with a version some days ago. > program vdnstbi; > var > s:string; > begin > str(16, s); // Variable "s" does not seem to be initialized > WriteLn(s); > end. > Does "S" really need to be initialized ? It is the same problem like BlockRead. In TurboPascal there exist only two variants of parameters, call by value and call by reference. Call by value parameters are always input-only parameters. Call by reference parameters can be input-only parameter, input/output parameter or output-only parameter, the compiler can not differentiate this. Since Delphi there exists two more parameter variants: const and out. const do mean, that the function don't change the parameter, it is input-only parameter. out do mean, that the parameter is a output-only parameter. Now the compiler can differentiate and generate dependable hints. I don't know, whether other compiler modes support const and out. If yes, the RTL/FCL/LCL functions should use it. This do mean e.g. procedure int_str(l: longint; out s: string); instead of procedure int_str(l: longint; var s: string); wkr Peter. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal