Hi,

Despite http://wiki.freepascal.org/User_Changes_2.4.0#Treating_direct-mapped_properties_as_regular_fields, shouldn't the following be legal? I tested under FPC 2.6.1 and 2.7.1.

  TMyRecord = record
    Data: pointer;
  end;

  TMyClass = class
  private
    FRef: TMyRecord;
  public
    property Ref: TMyRecord read FRef write FRef;
  end;

var
  MyClass1, MyClass2: TMyClass;

procedure test;
begin
  Move(MyClass1.Ref.Data^, MyClass2.Ref.Data^, 1);
end;

The complete program is attached.

Thanks,
Stephano
program constaddresstest;

{$IFDEF FPC}
{$mode delphi}
{$ENDIF}
{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

type

  TMyRecord = record
    Data: pointer;
  end;

  TMyClass = class
  private
    FRef: TMyRecord;
  public
    property Ref: TMyRecord read FRef write FRef;
  end;

var
  MyClass1, MyClass2: TMyClass;

procedure test;
begin
  Move(MyClass1.Ref.Data^, MyClass2.Ref.Data^, 1);
end;

begin
end.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to