On 10.03.2013 20:39, Flávio Etrusco wrote:
On Sun, Mar 10, 2013 at 11:56 AM, Marco van de Voort <mar...@stack.nl> wrote:
In our previous episode, Vincent Snijders said:
So be careful if you use OUT with types that have range limitations. Not
setting the out parameter can make debug tools like gttt difficult.


You found a big in fcp-passrc, because if you have an out parameter,
then the callee has to output a valid variable. If it asumes that is
initialized when called, then it must use var instead.

I already had changed it to var in r23760. I did want to warn for the
bug's pattern, so I wrote this to the ml.


I'd really like the compiler would stop with an error if it can't
prove a variable/out/result is initialized.
Did anybody try implementing this in FPC?

Have fun fixing the errors then:

=== example begin ===

type
  TTest = record
    t: LongInt;
  end;
var
  t: TTest;
begin
  FillChar(t, SizeOf(t), 0);
end;

=== example end ===

The above code will have the hint that "t" is not initalized.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to