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

patspiper patspiper at gmail.com
Wed Sep 26 10:00:31 CEST 2012


On 26/09/12 08:58, Vincent Snijders wrote:
> 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.
Can anybody test under Delphi? The complete unit is in the OP.

Stephano





More information about the fpc-pascal mailing list