%%cython
ctypedef fused realloc_ptr:
(unsigned char*)
(size_t*)
cdef realloc_ptr safe_realloc(realloc_ptr* p) nogil except (<realloc_ptr> NULL):
with gil:
raise MemoryError("I ain't gonna work...")
return NULL
cpdef fn():
cdef size_t* a
safe_realloc(&a)
fn()