/* GNU Objective C Runtime messaging declarations
- Copyright (C) 1993, 1995, 1996, 2004, 2009,
- 2010 Free Software Foundation, Inc.
+ Copyright (C) 1993-2024 Free Software Foundation, Inc.
This file is part of GCC.
The compiler generates one of these structures and passes it to
objc_msg_lookup_super() when a [super method] call is compiled. */
-/* In the traditional API, the super class field is called 'class' in
- Objective-C and 'super_class' in Objective-C++. In the new API
- (objc/runtime.h) it is always called 'super_class'. We detect the
- "traditional API" by the fact that the objc/objc-api.h header
- include guards are defined, which means objc/objc-api.h has been
- included. This works because objc/message.h does not exist in the
- Traditional API and is only read because objc-api.h itself includes
- it. */
-#ifdef __objc_api_INCLUDE_GNU
-/* Traditional API. */
-typedef struct objc_super
-{
- id self; /* Id of the object sending the message. */
-#ifdef __cplusplus
- Class super_class;
-#else
- Class class; /* Object's super class. */
-#endif
-} Super, *Super_t;
-#else
/* Modern API. */
struct objc_super
{
id self; /* The receiver of the message. */
Class super_class; /* The superclass of the receiver. */
};
-#endif
/* This is used by the compiler instead of objc_msg_lookup () when
compiling a call to 'super', such as [super method]. This requires
built-in forwarding with one based on a library, such as ffi, that
implement closures, thereby avoiding gcc's __builtin_apply
problems. __objc_msg_forward2's result will be preferred over that
- of __objc_msg_forward if both are set and return non-NULL.
-
- TODO: The API should define objc_set_msg_forward_handler () or
- similar instead of these hooks. */
+ of __objc_msg_forward if both are set and return non-NULL. */
objc_EXPORT IMP (*__objc_msg_forward)(SEL);
objc_EXPORT IMP (*__objc_msg_forward2)(id, SEL);
-
-/* The following types and functions are provided only for
- backwards-compatibility and should not be used in new code. They
- were deprecated in GCC 4.6 and will be removed in the next
- release. */
-typedef void* retval_t; /* return value */
-typedef void(*apply_t)(void); /* function pointer */
-typedef union arglist {
- char *arg_ptr;
- char arg_regs[sizeof (char*)];
-} *arglist_t; /* argument frame */
-
-objc_EXPORT retval_t objc_msg_sendv(id, SEL, arglist_t);
-
#ifdef __cplusplus
}
#endif