diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h')
-rw-r--r-- | gcc-4.9/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h b/gcc-4.9/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h new file mode 100644 index 000000000..e62944560 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h @@ -0,0 +1,74 @@ +#ifndef _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_ +#define _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_ + +#ifdef __NEXT_RUNTIME__ + +#include "next-abi.h" +#ifdef NEXT_OBJC_USE_NEW_INTERFACE +#include <objc/runtime.h> +#else +#include <objc/objc-runtime.h> + +/* Missing from old NeXT objc headers... */ +#define _C_LNG_LNG 'q' +#define _C_ULNG_LNG 'Q' +#define _C_ATOM '%' +#define _C_BOOL 'B' + +#endif + +/* The NeXT headers do not define NULL. */ +#ifndef NULL +#define NULL 0 +#endif + +#define _C_CONST 'r' +#define _C_IN 'n' +#define _C_INOUT 'N' +#define _C_OUT 'o' +#define _C_BYCOPY 'O' +#define _C_BYREF 'R' +#define _C_ONEWAY 'V' +#define _C_GCINVISIBLE '!' + +#define _F_CONST 0x01 +#define _F_IN 0x01 +#define _F_OUT 0x02 +#define _F_INOUT 0x03 +#define _F_BYCOPY 0x04 +#define _F_BYREF 0x08 +#define _F_ONEWAY 0x10 +#define _F_GCINVISIBLE 0x20 + +/* The NeXT runtimes do not include these functions (at least not through + any public API). They are required for the objc/execute/bf-* and bycopy-3. */ + +struct objc_struct_layout +{ + const char *original_type; + const char *type; + const char *prev_type; + unsigned int record_size; + unsigned int record_align; +}; + +void objc_layout_structure_get_info (struct objc_struct_layout *,unsigned int *, + unsigned int *, const char **); +void objc_layout_structure (const char *, struct objc_struct_layout *); +BOOL objc_layout_structure_next_member (struct objc_struct_layout *); +void objc_layout_finish_structure (struct objc_struct_layout *, unsigned int *, + unsigned int *); + +int objc_sizeof_type (const char *); +int objc_alignof_type (const char *); +int objc_aligned_size (const char *); +int objc_promoted_size (const char *); + +unsigned objc_get_type_qualifiers (const char *); +const char *objc_skip_type_qualifiers (const char *); +const char *objc_skip_typespec (const char *); +const char *objc_skip_offset (const char *); +const char *objc_skip_argspec (const char *); + +#endif /* __NEXT_RUNTIME__ */ +#endif /* _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_ */ |