[fpc-pascal] Blockread and buffers

Michael Van Canneyt michael at freepascal.org
Thu Mar 24 21:53:50 CET 2005

On Thu, 24 Mar 2005, Peter J. Haas wrote:

> Hi Peter,
> on 2005-03-24T12:55:21+02:00 Peter wrote:
> >> 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.
> > For compatibility we can't do this. Delphi also doesn't warn.
> This is not really a good argument. FPC generate several hints, which
> are not generated by Delphi and which are useful.
> > And making the warning dependent on the compiler mode will make
> > things too complex. Because it then dependents on the compiler mode
> > used to compile a used unit that contains a function and not on the
> > compiler mode used in the current unit.
> The problem is, that only the OBJFPC and Delphi modes support the out
> parameter. This prevent a simple solution.
> BTW: This need to be documented, at least in the Reference guide
> Chapter 10 (Using functions and procedures / Parameter lists / Out
> parameters), maybe in the Programmers manual too.

Good point. I will do this.

> The problem, you describe above could be solved relative simple, even
> the solution is more complex. I don't know any details of the
> compiler, but I assume, that internally the compiler use a identical
> structure to manage the parameter lists for all compiler modes. The
> compiler can analyse the function and determine, whether a var
> parameter is a in, a in/out or a out parameter and modify the
> parameter list corresponding. This enable to generate correct hints.
> As a side effect of such a analyse, FPC could generate hints regarding
> unneeded assignments, like in Delphi:
> var
>   i: Integer;
> begin
>   i := 1;   <--- assigned value not used
>   i := 2;
> ...
> And additionally the compiler could generate hints to change a var
> parameter to a const or out parameter in OBJFPC or Delphi mode.
> Because I know your standard answer and don't accept it, is there any
> suggestion list, similar to the bug list?

You can enter a 'wish-list' item in the bug list.  (it's the Category)


More information about the fpc-pascal mailing list