diff options
author | Roger Sayle <roger@eyesopen.com> | 2005-04-21 21:31:40 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2005-04-21 21:31:40 +0000 |
commit | dbb743654f3b7d96ba40b9683feed4cb20e4435d (patch) | |
tree | d315e995a7b40e667b44d79bab6a3168904d425a /gcc/objc | |
parent | 915167f5a5a8f8f5a4107b7fa7df7fe5aae66365 (diff) | |
download | gcc-dbb743654f3b7d96ba40b9683feed4cb20e4435d.zip gcc-dbb743654f3b7d96ba40b9683feed4cb20e4435d.tar.gz gcc-dbb743654f3b7d96ba40b9683feed4cb20e4435d.tar.bz2 |
c-common.h (objc_build_method_signature): Update prototype.
* c-common.h (objc_build_method_signature): Update prototype.
* stub-objc.c (objc_build_method_signature): Update the stub
implementation to accept and ignore additional parameter.
* c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
the value of ellipsis to objc_build_method_signature instead
of setting TREE_OVERFLOW on the parms TREE_LIST node.
* objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
this field of an objc method decl.
* objc-act.c (build_method_decl): Take an additional "ellipsis"
argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
(objc_build_method_signature): Accept additional "ellipsis"
argument and pass it to build_method_decl.
(get_arg_type_list, start_method_def, gen_method_decl): Use
the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
TREE_OVERFLOW field of a TREE_LIST node.
From-SVN: r98528
Diffstat (limited to 'gcc/objc')
-rw-r--r-- | gcc/objc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 17 | ||||
-rw-r--r-- | gcc/objc/objc-act.h | 1 |
3 files changed, 23 insertions, 7 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 01c8a2b..b6583b4 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,15 @@ +2005-04-21 Roger Sayle <roger@eyesopen.com> + + * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing + this field of an objc method decl. + * objc-act.c (build_method_decl): Take an additional "ellipsis" + argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. + (objc_build_method_signature): Accept additional "ellipsis" + argument and pass it to build_method_decl. + (get_arg_type_list, start_method_def, gen_method_decl): Use + the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the + TREE_OVERFLOW field of a TREE_LIST node. + 2005-04-20 Joseph S. Myers <joseph@codesourcery.com> PR c/12913 diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 62d5c84..017c2cd 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -164,7 +164,7 @@ static void objc_start_function (tree, tree, tree, tree); static void objc_start_function (tree, tree, tree, struct c_arg_info *); #endif static tree start_protocol (enum tree_code, tree, tree); -static tree build_method_decl (enum tree_code, tree, tree, tree); +static tree build_method_decl (enum tree_code, tree, tree, tree, bool); static tree objc_add_method (tree, tree, int); static tree add_instance_variable (tree, int, tree); static tree build_ivar_reference (tree); @@ -771,9 +771,11 @@ objc_set_method_type (enum tree_code type) } tree -objc_build_method_signature (tree rettype, tree selector, tree optparms) +objc_build_method_signature (tree rettype, tree selector, + tree optparms, bool ellipsis) { - return build_method_decl (objc_inherit_code, rettype, selector, optparms); + return build_method_decl (objc_inherit_code, rettype, selector, + optparms, ellipsis); } void @@ -5263,7 +5265,7 @@ build_keyword_selector (tree selector) static tree build_method_decl (enum tree_code code, tree ret_type, tree selector, - tree add_args) + tree add_args, bool ellipsis) { tree method_decl; @@ -5280,6 +5282,7 @@ build_method_decl (enum tree_code code, tree ret_type, tree selector, METHOD_SEL_NAME (method_decl) = build_keyword_selector (selector); METHOD_SEL_ARGS (method_decl) = selector; METHOD_ADD_ARGS (method_decl) = add_args; + METHOD_ADD_ARGS_ELLIPSIS_P (method_decl) = ellipsis; } else { @@ -5347,7 +5350,7 @@ get_arg_type_list (tree meth, int context, int superflag) chainon (arglist, build_tree_list (NULL_TREE, arg_type)); } - if (!TREE_OVERFLOW (METHOD_ADD_ARGS (meth))) + if (!METHOD_ADD_ARGS_ELLIPSIS_P (meth)) goto lack_of_ellipsis; } else @@ -7536,7 +7539,7 @@ start_method_def (tree method) objc_push_parm (TREE_VALUE (akey)); } - if (TREE_OVERFLOW (METHOD_ADD_ARGS (method))) + if (METHOD_ADD_ARGS_ELLIPSIS_P (method)) have_ellipsis = 1; } @@ -8116,7 +8119,7 @@ gen_method_decl (tree method) chain = TREE_CHAIN (chain); } - if (TREE_OVERFLOW (METHOD_ADD_ARGS (method))) + if (METHOD_ADD_ARGS_ELLIPSIS_P (method)) strcat (errbuf, ", ..."); } } diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h index 4050303..fe84260 100644 --- a/gcc/objc/objc-act.h +++ b/gcc/objc/objc-act.h @@ -52,6 +52,7 @@ enum gimplify_status objc_gimplify_expr (tree *, tree *, tree *); #define METHOD_SEL_NAME(DECL) ((DECL)->decl.name) #define METHOD_SEL_ARGS(DECL) ((DECL)->decl.arguments) #define METHOD_ADD_ARGS(DECL) ((DECL)->decl.result) +#define METHOD_ADD_ARGS_ELLIPSIS_P(DECL) ((DECL)->decl.lang_flag_0) #define METHOD_DEFINITION(DECL) ((DECL)->decl.initial) #define METHOD_ENCODING(DECL) ((DECL)->decl.context) |