[fpc-devel] c-blocks (darwin aarch64)

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Apr 15 11:13:56 CEST 2016


Dmitry Boyarintsev wrote on Fri, 15 Apr 2016:

> Does anyone know if cblocks are working for darwin-aarch64?

The tests in the testsuite work at least, both for ARM and AArch64.

> The problem is that code seems to be failing on "setValueCahngeHandler"
> call.
>
> libobjc.A.dylib`objc_msgSend:
>     0x2469fa80 <+0>:  cbz    r0, 0x2469fabe            ; <+62>
>     0x2469fa82 <+2>:  ldr.w  r9, [r0]
> ->  0x2469fa86 <+6>:  ldrh.w r12, [r9, #0xc]    ; EXC_BAD_ACCESS

This crash probably has nothing to do with with blocks. objc_msgSend  
is the dispatch routine to call an Objective-C method. Blocks are  
called in a different way. The location of the error here suggests  
that this Objective instance pointer is invalid.
>
> I wonder if it's related to aarch64, is block parameter passed
> incorrectly?.

Even if that were the case, it wouldn't crash at that place in  
objc_msgSend. r0 contains the "self" pointer of the Objective-C  
instance. It's unrelated to the the value of any parameters.

> I'm also using fpc-trunk some 2015-Nov revision.
> Should I just update to the latest fpc revision?

When using trunk, you should always use the latest version.


Jonas



More information about the fpc-devel mailing list