diff options
author | Iain Sandoe <iains@gcc.gnu.org> | 2010-09-30 16:51:00 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2010-09-30 16:51:00 +0000 |
commit | 92902b1bafff14a118ef08dc323dfdc12b2a63ae (patch) | |
tree | 42ebcaff8a7ee59b29d662bbc60c7b6727371ef5 /gcc/objc/objc-act.h | |
parent | 0eeccfa3ff890e75c4db2375262c2484de62f475 (diff) | |
download | gcc-92902b1bafff14a118ef08dc323dfdc12b2a63ae.zip gcc-92902b1bafff14a118ef08dc323dfdc12b2a63ae.tar.gz gcc-92902b1bafff14a118ef08dc323dfdc12b2a63ae.tar.bz2 |
add @optional/@required to prto lists
add @optional/@required to prto lists
gcc:
* c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
parse @optional/@required and set the flags as appropriate.
gcc/c-family:
* c-common.c: Add two new entries for @optional
and @required keywords.
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
objective-c keywords.
(objc_set_method_opt): New declaration.
* stub-objc.c (objc_set_method_opt): New stub.
gcc/cp:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* cp/parser.c (cp_parser_objc_interstitial_code): For
@optional/@required set the optional/required flag.
gcc/objc:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* objc/objc-act.c (objc_set_method_opt): New function.
(objc_start_protocol, objc_finish_interface): Reset
objc_method_optional_flag flag.
(objc_add_method_declaration): Pass on the new
flag to objc_add_method.
(objc_add_method): Add optional methods to new chain in
the protocol class.
* objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
class's optional method chains.
testsuite:
merge from FSF 'apple/trunk' branch.
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
* objc.dg/enhanced-proto-1.m: New.
* objc.dg/enhanced-proto-2.m: New.
* obj-c++.dg/enhanced-proto-1.mm: New
* obj-c++.dg/enhanced-proto-2.mm: New.
From-SVN: r164754
Diffstat (limited to 'gcc/objc/objc-act.h')
-rw-r--r-- | gcc/objc/objc-act.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h index c8edd64..61312e9 100644 --- a/gcc/objc/objc-act.h +++ b/gcc/objc/objc-act.h @@ -38,7 +38,7 @@ tree objc_eh_personality (void); /* Objective-C structures */ #define CLASS_LANG_SLOT_ELTS 5 -#define PROTOCOL_LANG_SLOT_ELTS 2 +#define PROTOCOL_LANG_SLOT_ELTS 4 #define OBJC_INFO_SLOT_ELTS 2 /* KEYWORD_DECL */ @@ -71,6 +71,8 @@ tree objc_eh_personality (void); #define PROTOCOL_CLS_METHODS(CLASS) ((CLASS)->type.maxval) #define PROTOCOL_FORWARD_DECL(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 1) #define PROTOCOL_DEFINED(CLASS) TREE_USED (CLASS) +#define PROTOCOL_OPTIONAL_CLS_METHODS(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 2) +#define PROTOCOL_OPTIONAL_NST_METHODS(CLASS) TREE_VEC_ELT (TYPE_LANG_SLOT_1 (CLASS), 3) /* ObjC-specific information pertaining to RECORD_TYPEs are stored in the LANG_SPECIFIC structures, which may itself need allocating first. */ |