GCC 9 and older don't have __has_builtin(), but have
__builtin_frame_address() function.
#define _Py_AssertHoldsTstate()
#endif
-#if !_Py__has_builtin(__builtin_frame_address) && !defined(_MSC_VER)
+#if !_Py__has_builtin(__builtin_frame_address) && !defined(__GNUC__) && !defined(_MSC_VER)
static uintptr_t return_pointer_as_int(char* p) {
return (uintptr_t)p;
}
static inline uintptr_t
_Py_get_machine_stack_pointer(void) {
-#if _Py__has_builtin(__builtin_frame_address)
+#if _Py__has_builtin(__builtin_frame_address) || defined(__GNUC__)
return (uintptr_t)__builtin_frame_address(0);
#elif defined(_MSC_VER)
return (uintptr_t)_AddressOfReturnAddress();