In the code below / with fpc 3.2

function TDwarfInformationEntry.ReadName(out AName: PChar): Boolean;
var
  AttrData: TDwarfAttribData;
begin
  PrepareAbbrev;
  if dafHasName in FAbbrev^.flags then begin
    Result := GetAttribData(DW_AT_name, AttrData);
    assert(Result and (AttrData.InformationEntry = Self), 'TDwarfInformationEntry.ReadName');
    Result := ReadValue(AttrData, AName);
  end
  else
  if (dafHasAbstractOrigin in FAbbrev^.flags) and PrepareAbstractOrigin then     Result := FAbstractOrigin.ReadName(AName)    // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  else
    Result := False;
end;

components\fpdebug\fpdbgdwarfdataclasses.pas
line 2875

The indicate line says "fpdbgdwarfdataclasses.pas(2870,30) Warning: Function result variable does not seem to be initialized"
And I get the warning 5 times.

I also get one (just one) such warning on:
- the "begin" line of the function
- the "PrepareAbbrev" line (which is a call to a procedure)

This appears to be, due to the function being marked "inline".
If I remove the "inline" then the warning goes.

---
Unrelated:

I also get the obvious
fpdbgdwarfdataclasses.pas(2887,30) Note: Call to subroutine "function TDwarfInformationEntry.ReadName(out AName:PChar):Boolean;" marked as inline is not inlined

Of course a call to the function itself is not inlined.....
(Well yes, it could be a few times, like loop unroll / but does that warrant a warning?)
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to