[fpc-pascal] InterlockedExchangeAdd64

Adriaan van Os adriaan at adriaan.biz
Sat Jan 11 07:53:34 CET 2025


Sven Barth via fpc-pascal wrote:
> Am 10.01.2025 um 15:43 schrieb Adriaan van Os via fpc-pascal:
>>
>> I have an arm64 (aarch64) test program on MacOS that calls 
>> InterlockedExchangeAdd64 with a target variable that is not 8-byte 
>> aligned. Running the test program emits "EBusError: Bus error or 
>> misaligned data access".
>>
>> So far so good.
>>
>> But now I install a system.ErrorProc and run the same program. It 
>> emits, instead of the EBusError, Runtime Error 214.
>>
>> This puzzles me.
> 
> This is as designed, because the ErrorProc is what is used by the 
> SysUtils unit to convert runtime errors to exceptions. If you want to 
> implement your own handling, then store the original value of ErrorProc, 
> assign your own handler, do your own handling and at the end call the 
> saved ErrorProc.

I don't want to handle the error, I want a meaningful error. And Runtime Error 214 "Collection 
overflow" is nonsense.

Regards,

Adriaan van Os


More information about the fpc-pascal mailing list