[fpc-devel] Looking for clarification on what I think are obviously missing "const" prefixes for parameters in the methods of TRect (the typshrdh.inc one)
    Jonas Maebe 
    jonas at freepascal.org
       
    Sun Jan 27 14:21:50 CET 2019
    
    
  
On 27/01/19 14:11, Walter Prins wrote:
> Would it perhaps be possible to treat this as a type of optimization 
> however?  Which is to say, if the called routine makes no changes to the 
> passed record, then it should not matter whether compiler implicitly 
> const passes the parameter or copies it?
It does, because another routine called by this routine may modify the 
original record.
E.g.
var
   r: record a: longint end;;
procedure modify;
begin
   r.a:=2;
end;
procedure test(r: trecord);
begin
   modify;
   if r.a<>1 then
     writeln('error');
end;
begin
   r.a:=1;
   test(r);
end.
Jonas
    
    
More information about the fpc-devel
mailing list