From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- .../objc-test-suite-next-encode-assist.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h (limited to 'gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h') diff --git a/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h b/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h new file mode 100644 index 000000000..af02b278a --- /dev/null +++ b/gcc/testsuite/objc-obj-c++-shared/objc-test-suite-next-encode-assist.h @@ -0,0 +1,87 @@ +#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 +typedef void * PMETH; +#else +#include +typedef struct objc_method * PMETH; + +/* 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; +}; + +typedef union arglist { + char *arg_ptr; + char arg_regs[sizeof (char*)]; +} *arglist_t; /* argument frame */ + +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 *); + +int method_get_number_of_arguments (PMETH); +int method_get_sizeof_arguments (PMETH); +char *method_get_next_argument (arglist_t , const char **); +char *method_get_first_argument (PMETH, arglist_t, const char **); +char *method_get_nth_argument (PMETH, arglist_t, int, const char **); + +#endif /* __NEXT_RUNTIME__ */ +#endif /* _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_ */ -- cgit v1.2.3