On 28 Nov 2011, at 12:02, Michael Müller wrote:

Am 28.11.2011 um 01:05 schrieb Jonas Maebe:

If you enable hints, the compiler will print a hint if it detects you passing a potentially uninitialized variable to a "var" parameter, while it won't print such a warning if you pass it to an "out" parameter.

But inside the routine with "out" parameter I had expected to get the same warning ;-).

You do get a warning if you use an "out" parameter inside a routine without first writing to it.

Why is this 'passing a potentially uninitialized variable to a "var" parameter' ('bla does not seem to be initialized') message a warning for arrays and a hint for basic types?

It's only a warning for dynamic arrays. And the cause is a side effect of the way a "dynamic array" is internally converted to an "open array". It shouldn't be very difficult to fix that though.

I don't understand this restriction. In the code High() works for open arrays at run time.


See Sven's answer.


Jonas_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to