[fpc-pascal] Error: Can't take the address of constant expressions

Vincent Snijders vincent.snijders at gmail.com
Wed Sep 26 07:58:47 CEST 2012


2012/9/25 Bernd <prof7bit at gmail.com>:
> 2012/9/25 patspiper <patspiper at gmail.com>:
>> procedure test;
>> begin
>>   Move(MyClass1.Ref.Data^, MyClass2.Ref.Data^, 1);
>> end;
>
> and if you cast it to some other pointer type before dereferencing the
> error goes away:
>
> procedure test;
> begin
>   Move(MyClass1.Ref.Data^, PByte(MyClass2.Ref.Data)^, 1);
> end;
>
> But this should not be necessary.

Why not?  The error is correct. By using the type cast you tell the
compiler you know what you are doing and that is should not bother
doing the sanity check.

So IMO, not a bug.

Vincent



More information about the fpc-pascal mailing list