diff options
author | Ovidiu Predescu <ovidiu@aracnet.com> | 1998-09-02 23:48:01 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-09-02 17:48:01 -0600 |
commit | d8bb17c8e33975277dd5231e190bf99451b7025d (patch) | |
tree | 1c3b607110323b831606c2ec27d39a0f292a1a15 /gcc/objc/encoding.h | |
parent | d636ae0b801758df397e3e1ee790ed041a48b9f9 (diff) | |
download | gcc-d8bb17c8e33975277dd5231e190bf99451b7025d.zip gcc-d8bb17c8e33975277dd5231e190bf99451b7025d.tar.gz gcc-d8bb17c8e33975277dd5231e190bf99451b7025d.tar.bz2 |
Boehm GC support for ObjC from Ovidiu Predescu.
From-SVN: r22199
Diffstat (limited to 'gcc/objc/encoding.h')
-rw-r--r-- | gcc/objc/encoding.h | 50 |
1 files changed, 36 insertions, 14 deletions
diff --git a/gcc/objc/encoding.h b/gcc/objc/encoding.h index 141e9fe..cbbc8de 100644 --- a/gcc/objc/encoding.h +++ b/gcc/objc/encoding.h @@ -32,26 +32,28 @@ Boston, MA 02111-1307, USA. */ #include <ctype.h> #include "objc/objc-api.h" -#define _C_CONST 'r' -#define _C_IN 'n' -#define _C_INOUT 'N' -#define _C_OUT 'o' -#define _C_BYCOPY 'O' -#define _C_ONEWAY 'V' - -#define _F_CONST 0x01 -#define _F_IN 0x01 -#define _F_OUT 0x02 -#define _F_INOUT 0x03 -#define _F_BYCOPY 0x04 -#define _F_ONEWAY 0x08 - +#define _C_CONST 'r' +#define _C_IN 'n' +#define _C_INOUT 'N' +#define _C_OUT 'o' +#define _C_BYCOPY 'O' +#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_ONEWAY 0x08 +#define _F_GCINVISIBLE 0x10 int objc_aligned_size (const char* type); int objc_sizeof_type (const char* type); int objc_alignof_type (const char* type); int objc_aligned_size (const char* type); int objc_promoted_size (const char* type); + const char* objc_skip_type_qualifiers (const char* type); const char* objc_skip_typespec (const char* type); const char* objc_skip_offset (const char* type); @@ -72,4 +74,24 @@ char* method_get_nth_argument (struct objc_method* m, unsigned objc_get_type_qualifiers (const char* type); +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 (const char *type, + struct objc_struct_layout *layout); +BOOL objc_layout_structure_next_member (struct objc_struct_layout *layout); +void objc_layout_finish_structure (struct objc_struct_layout *layout, + unsigned int *size, + unsigned int *align); +void objc_layout_structure_get_info (struct objc_struct_layout *layout, + unsigned int *offset, + unsigned int *align, + const char **type); + #endif /* __encoding_INCLUDE_GNU */ |