add @optional/@required to prto lists
commit069761fbf4b005ff86f4e2bc2b53e70efaf5b89f
authoriains <iains@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Sep 2010 16:51:00 +0000 (30 16:51 +0000)
committeriains <iains@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Sep 2010 16:51:00 +0000 (30 16:51 +0000)
tree42ebcaff8a7ee59b29d662bbc60c7b6727371ef5
parentc02c1386ee1914333a33ccaa3b7b43c1d25ce974
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164754 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/c-family/stub-objc.c
gcc/c-parser.c
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/objc/objc-act.h
gcc/testsuite/ChangeLog
gcc/testsuite/obj-c++.dg/enhanced-proto-1.mm [new file with mode: 0644]
gcc/testsuite/obj-c++.dg/enhanced-proto-2.mm [new file with mode: 0644]
gcc/testsuite/objc.dg/enhanced-proto-1.m [new file with mode: 0644]
gcc/testsuite/objc.dg/enhanced-proto-2.m [new file with mode: 0644]