I am getting a compiler warning I don't understand:
procedure Test; var Var1: Integer; begin while True do begin try if System.Random > 0.5 then begin ShowMessage('Skipping'); continue; // If I remove this line, the warning goes away end; Var1:=6; except on E:Exception do begin ShowMessage('Error'); raise; end; end; ShowMessage(IntToStr(Var1)); // Compiler warning on this line end; end; When I compile this in Delphi 2010 I get:
[DCC Warning] OnlineClaimManagerMainU.pas(554): W1036 Variable 'Var1' might not have been initialized
If I remove the call to 'continue', the warning goes away.
Also, if I remove the try/except clause (and leave the continue), the warning goes away.
How will execution get to the line in question without Var1 being initialised?