> After upgrading fpc 2.6.4 -> 3.0.0, I'm seeing a bug where (as noted in > subject) reference-counted function results are not being initialized to > nil.
They were never guaranteed to be initialized to nil. Reference-counted types (unlike other types) cannot contain memory garbage. But it doesn't mean that they are always initialized empty when the function starts. You need to explicitly do Result := '' if your code reads the Result later. See similar questions for Delphi: http://stackoverflow.com/questions/5336863/what-is-the-default-value-of-result-in-delphi http://stackoverflow.com/questions/5314918/do-i-need-to-setlength-a-dynamic-array-on-initialization/5315254#5315254 Luckily, FPC warns about it, at least in my simple test: $ fpc -vw a.lpr && ./a a.lpr(5,20) Warning: function result variable of a managed type does not seem to be initialized blabla blablablabla blablablablablabla Regards, Michalis
a.lpr
Description: Binary data
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal