[fpc-pascal] can the compiler zero any out parameter of procedure/function automatically?

Dennis dec12 at avidsoft.com.hk
Mon Jul 11 17:40:44 CEST 2016


I just found the cause of a strange bug is because I forgot to zero the 
out parameter of a procedure like.

procedure FindEvent (out TheEvent : TNotifyEvent);
begin
   TheEvent := nil;//I forgot to add this line before all the 
processing, which sometimes did not assign to TheEvent at all
    .... long code...
end;


when later, I called.
var
   aEvent : TNotifyEvent;
      FindEvent(aEvent);
   if assigned(aEvent) then
    aEvent(nil);  -> cause serious error that crash the program.


I know it is my responsibility to initialize out parameters, but I think 
the compiler could help us by initializing all out parameters.
Am I the only one with this view?

Dennis





More information about the fpc-pascal mailing list