/* * This file is subject to the terms and conditions of the LGPL V2.1 * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2019 Kalray Inc. */ #include #include /* Test if longjmp to JMPBUF would unwind the frame containing a local variable at ADDRESS. */ #if __WORDSIZE == 64 # define _JMPBUF_UNWINDS(jmpbuf, address) \ ((void *) (address) < (void *) (jmpbuf)[JB_R12]) #else #error 32-bit unsupported #endif #ifdef __UCLIBC_HAS_THREADS_NATIVE__ #include #include #define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj) #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \ ((uintptr_t) (_address) - (_adj) < (uintptr_t) _jmpbuf_sp(_jmpbuf) - (_adj)) #endif