diff options
author | iains <iains@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-13 08:24:48 +0000 |
---|---|---|
committer | iains <iains@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-13 08:24:48 +0000 |
commit | 40c8d1dd9270673b786230c1a649fd5a12641562 (patch) | |
tree | dd26564b609fa5c247334c65f3d8f1bb72743eea /gcc/c-family | |
parent | 570c5a3d4bf441cde795a9f759d1f4b0c4302688 (diff) | |
download | gcc-40c8d1dd9270673b786230c1a649fd5a12641562.tar.gz |
implement method attributes.
gcc/c-family:
merge from FSF apple 'trunk' branch.
2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
Radar 3803157 (method attributes)
* c-common.c (handle_deprecated_attribute): Recognize
objc methods as valid declarations.
* c-common.h: Declare objc_method_decl ().
* stub-objc.c (objc_method_decl): New stub.
gcc/objc:
merge from FSF apple 'trunk' branch.
2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
Radar 3803157 (method attributes)
* objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
* objc/objc-act.c (objc_decl_method_attributes): New.
(objc_add_method_declaration): Process method's attribute.
(objc_start_method_definition): Ditto.
(build_objc_method_call): Inject method attribute into
built function type.
(objc_method_decl): New.
(objc_warn_deprecated)use): New.
testsuite:
* objc.dg/attributes/method-attribute-1.m: Update to respond
to implemented method attributes..
* objc.dg/attributes/method-attribute-2.m: Likewise.
* objc.dg/attributes/method-attribute-3.m: Likewise.
* obj-c++.dg/attributes/method-attribute-1.mm: Likewise.
* obj-c++.dg/attributes/method-attribute-2.mm: Likewise.
* obj-c++.dg/attributes/method-attribute-3.mm: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165415 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family')
-rw-r--r-- | gcc/c-family/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/c-family/c-common.c | 3 | ||||
-rw-r--r-- | gcc/c-family/c-common.h | 1 | ||||
-rw-r--r-- | gcc/c-family/stub-objc.c | 6 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 77908955dfb..dde5c45eb4f 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,14 @@ +2010-10-13 Iain Sandoe <iains@gcc.gnu.org> + + merge from FSF apple 'trunk' branch. + 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3803157 (method attributes) + * c-common.c (handle_deprecated_attribute): Recognize + objc methods as valid declarations. + * c-common.h: Declare objc_method_decl (). + * stub-objc.c (objc_method_decl): New stub. + 2010-10-08 Joseph Myers <joseph@codesourcery.com> * c-common.c (parse_optimize_options): Call diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index ff3526b03c3..49eb5106f63 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -7189,7 +7189,8 @@ handle_deprecated_attribute (tree *node, tree name, || TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == FUNCTION_DECL - || TREE_CODE (decl) == FIELD_DECL) + || TREE_CODE (decl) == FIELD_DECL + || objc_method_decl (TREE_CODE (decl))) TREE_DEPRECATED (decl) = 1; else warn = 1; diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h index 3236e856a09..71efaf955da 100644 --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@ -1009,6 +1009,7 @@ extern tree objc_generate_static_init_call (tree); extern tree objc_generate_write_barrier (tree, enum tree_code, tree); extern void objc_set_method_opt (bool); extern void objc_finish_foreach_loop (location_t, tree, tree, tree, tree, tree); +extern bool objc_method_decl (enum tree_code); /* The following are provided by the C and C++ front-ends, and called by ObjC/ObjC++. */ diff --git a/gcc/c-family/stub-objc.c b/gcc/c-family/stub-objc.c index 52675840d99..6b8c33457ea 100644 --- a/gcc/c-family/stub-objc.c +++ b/gcc/c-family/stub-objc.c @@ -217,6 +217,12 @@ objc_finish_method_definition (tree ARG_UNUSED (fndecl)) { } +bool +objc_method_decl (enum tree_code ARG_UNUSED(opcode)) +{ + return false; +} + tree objc_build_keyword_decl (tree ARG_UNUSED (selector), tree ARG_UNUSED (type), |