Redefinition of TObject and function reference in unit gives internal error 2022010801

Run this program twice to get the error.

{$mode objfpc}

unit uinternal_error;
interface

type
  TObject = class
  end;

implementation

end.
{$mode objfpc}
{$modeswitch functionreferences}

program internal_error;
uses
  uinternal_error;

var
  obj: TObject;
  proc: reference to procedure;
begin
  obj := TObject.Create;
  proc := @obj.Free;
end.