Wed May 20 15:26:50 1998 Richard Frith-Macdonald (richard@brainstorm.co.uk> * c-lex.c: Added 'byref' keyword for Objective-C * c-lex.h: Added 'byref' keyword for Objective-C * objc/encoding.c: Added 'byref' keyword for Objective-C * objc/encoding.h: Added 'byref' keyword for Objective-C * objc/objc-act.c: Added 'byref' keyword for Objective-C diff -r -N -u gcc-2.8.1/c-lex.c gcc-2.8.1-byref/c-lex.c --- gcc-2.8.1/c-lex.c Thu Feb 26 12:38:58 1998 +++ gcc-2.8.1-byref/c-lex.c Mon Mar 23 16:46:29 1998 @@ -185,6 +185,8 @@ wordlist[i].name = "inout"; else if (wordlist[i].rid == RID_BYCOPY) wordlist[i].name = "bycopy"; + else if (wordlist[i].rid == RID_BYREF) + wordlist[i].name = "byref"; else if (wordlist[i].rid == RID_ONEWAY) wordlist[i].name = "oneway"; } @@ -256,6 +258,7 @@ ridpointers[(int) RID_OUT] = get_identifier ("out"); ridpointers[(int) RID_INOUT] = get_identifier ("inout"); ridpointers[(int) RID_BYCOPY] = get_identifier ("bycopy"); + ridpointers[(int) RID_BYREF] = get_identifier ("byref"); ridpointers[(int) RID_ONEWAY] = get_identifier ("oneway"); forget_protocol_qualifiers(); diff -r -N -u gcc-2.8.1/c-lex.h gcc-2.8.1-byref/c-lex.h --- gcc-2.8.1/c-lex.h Wed Oct 9 12:24:35 1996 +++ gcc-2.8.1-byref/c-lex.h Mon Mar 23 16:46:29 1998 @@ -50,6 +50,7 @@ RID_OUT, RID_INOUT, RID_BYCOPY, + RID_BYREF, RID_ONEWAY, RID_ID, diff -r -N -u gcc-2.8.1/objc/encoding.c gcc-2.8.1-byref/objc/encoding.c --- gcc-2.8.1/objc/encoding.c Sat Nov 29 02:14:41 1997 +++ gcc-2.8.1-byref/objc/encoding.c Mon Mar 23 16:46:29 1998 @@ -300,6 +300,7 @@ || *type == _C_INOUT || *type == _C_OUT || *type == _C_BYCOPY + || *type == _C_BYREF || *type == _C_ONEWAY) { type += 1; @@ -543,6 +544,7 @@ case _C_INOUT: res |= _F_INOUT; break; case _C_OUT: res |= _F_OUT; break; case _C_BYCOPY: res |= _F_BYCOPY; break; + case _C_BYREF: res |= _F_BYREF; break; case _C_ONEWAY: res |= _F_ONEWAY; break; default: flag = NO; } diff -r -N -u gcc-2.8.1/objc/encoding.h gcc-2.8.1-byref/objc/encoding.h --- gcc-2.8.1/objc/encoding.h Wed Jun 25 21:12:35 1997 +++ gcc-2.8.1-byref/objc/encoding.h Wed May 20 13:21:30 1998 @@ -37,6 +37,7 @@ #define _C_INOUT 'N' #define _C_OUT 'o' #define _C_BYCOPY 'O' +#define _C_BYREF 'R' #define _C_ONEWAY 'V' #define _F_CONST 0x01 @@ -44,7 +45,9 @@ #define _F_OUT 0x02 #define _F_INOUT 0x03 #define _F_BYCOPY 0x04 -#define _F_ONEWAY 0x08 +#define _F_BYREF 0x08 +#define _F_ONEWAY 0x10 + int objc_aligned_size (const char* type); diff -r -N -u gcc-2.8.1/objc/objc-act.c gcc-2.8.1-byref/objc/objc-act.c --- gcc-2.8.1/objc/objc-act.c Wed Dec 3 13:11:23 1997 +++ gcc-2.8.1-byref/objc/objc-act.c Wed May 20 13:22:16 1998 @@ -4550,6 +4550,7 @@ || node == ridpointers [(int) RID_OUT] || node == ridpointers [(int) RID_INOUT] || node == ridpointers [(int) RID_BYCOPY] + || node == ridpointers [(int) RID_BYREF] || node == ridpointers [(int) RID_ONEWAY])); } @@ -6433,6 +6434,8 @@ obstack_1grow (&util_obstack, 'o'); else if (ridpointers[(int) RID_BYCOPY] == TREE_VALUE (spec)) obstack_1grow (&util_obstack, 'O'); + else if (ridpointers[(int) RID_BYREF] == TREE_VALUE (spec)) + obstack_1grow (&util_obstack, 'R'); else if (ridpointers[(int) RID_ONEWAY] == TREE_VALUE (spec)) obstack_1grow (&util_obstack, 'V'); }