Is it correct (i.e. by design) that the compiler emits some "may not be initialized" warnings, only on certain optimization levels?

The following is
- NOT given with -O1
- present with -O3

lazsyntextarea.pp(1325,54) Warning: Local variable "ViewedRange" does not seem to be initialized

O1 is actually right, it is always initialized, no warning needed. But I would accept that the compiler may not be able to deduce that.
However, if it does not, then should O1 also display the warning?



procedure TLazSynSurfaceManager.InvalidateLines(FirstTextLine,
  LastTextLine: TLineIdx; AScreenLineOffset: Integer);
var
  rcInval: TRect;
  ViewedRange: TLineRange;
begin
  rcInval := Bounds;
  if (FirstTextLine >= 0) then begin
    ViewedRange := DisplayView.TextToViewIndex(FirstTextLine);
    rcInval.Top := Max(TextArea.TextBounds.Top,
                       TextArea.TextBounds.Top + (ViewedRange.Top + AScreenLineOffset
                          - TextArea.TopLine + 1) * TextArea.LineHeight);
  end;
  if (LastTextLine >= 0) then begin
    if LastTextLine <> FirstTextLine then
      ViewedRange := DisplayView.TextToViewIndex(LastTextLine);
    rcInval.Bottom := Min(TextArea.TextBounds.Bottom, /////////////// <<<<<<< 1325                           TextArea.TextBounds.Top + (ViewedRange.Bottom + AScreenLineOffset                              - TextArea.TopLine + 2)  * TextArea.LineHeight);
  end;

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to