From b3f7c02fd975d38fe3a687cda9881c91f5fa95b0 Mon Sep 17 00:00:00 2001 From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu, 28 Mar 2002 18:51:49 +0000 Subject: [PATCH] * c-decl.c (finish_function): New arg can_defer_p. Pass it on to c_expand_body. * c-tree.h (finish_function): Update decl. * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51518 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/c-decl.c | 8 +++++--- gcc/c-objc-common.c | 2 +- gcc/c-parse.in | 10 +++++----- gcc/c-tree.h | 2 +- gcc/objc/objc-act.c | 4 ++-- 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b07a41b7ba00..288f5107940c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-03-28 Richard Henderson <rth@redhat.com> + + * c-decl.c (finish_function): New arg can_defer_p. Pass it + on to c_expand_body. + * c-tree.h (finish_function): Update decl. + * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls. + Thu Mar 28 19:13:36 CET 2002 Jan Hubicka <jh@suse.cz> * ifcvt.c (if_convert): Clear aux_for_blocks early enought. diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 620a16f5d5d2..931f17487ac6 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -6687,11 +6687,13 @@ store_parm_decls () This is called after parsing the body of the function definition. - NESTED is nonzero if the function being finished is nested in another. */ + NESTED is nonzero if the function being finished is nested in another. + CAN_DEFER_P is nonzero if the function may be deferred. */ void -finish_function (nested) +finish_function (nested, can_defer_p) int nested; + int can_defer_p; { tree fndecl = current_function_decl; @@ -6760,7 +6762,7 @@ finish_function (nested) if (! nested) { /* Generate RTL for the body of this function. */ - c_expand_body (fndecl, nested, 1); + c_expand_body (fndecl, nested, can_defer_p); /* Let the error reporting routines know that we're outside a function. For a nested function, this value is used in diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c index 416a31042f37..595e6cec7566 100644 --- a/gcc/c-objc-common.c +++ b/gcc/c-objc-common.c @@ -326,7 +326,7 @@ finish_cdtor (body) RECHAIN_STMTS (body, COMPOUND_BODY (body)); - finish_function (0); + finish_function (0, 0); } /* Called at end of parsing, but before end-of-file processing. */ diff --git a/gcc/c-parse.in b/gcc/c-parse.in index 1628057b7840..fa56bfcfce75 100644 --- a/gcc/c-parse.in +++ b/gcc/c-parse.in @@ -394,7 +394,7 @@ fndef: save_filename save_lineno compstmt_or_error { DECL_SOURCE_FILE (current_function_decl) = $7; DECL_SOURCE_LINE (current_function_decl) = $8; - finish_function (0); + finish_function (0, 1); POP_DECLSPEC_STACK; } | declspecs_ts setspecs declarator error { POP_DECLSPEC_STACK; } @@ -408,7 +408,7 @@ fndef: save_filename save_lineno compstmt_or_error { DECL_SOURCE_FILE (current_function_decl) = $7; DECL_SOURCE_LINE (current_function_decl) = $8; - finish_function (0); + finish_function (0, 1); POP_DECLSPEC_STACK; } | declspecs_nots setspecs notype_declarator error { POP_DECLSPEC_STACK; } @@ -422,7 +422,7 @@ fndef: save_filename save_lineno compstmt_or_error { DECL_SOURCE_FILE (current_function_decl) = $6; DECL_SOURCE_LINE (current_function_decl) = $7; - finish_function (0); + finish_function (0, 1); POP_DECLSPEC_STACK; } | setspecs notype_declarator error { POP_DECLSPEC_STACK; } @@ -1586,7 +1586,7 @@ nested_function: { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = $5; DECL_SOURCE_LINE (decl) = $6; - finish_function (1); + finish_function (1, 1); pop_function_context (); add_decl_stmt (decl); } ; @@ -1616,7 +1616,7 @@ notype_nested_function: { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = $5; DECL_SOURCE_LINE (decl) = $6; - finish_function (1); + finish_function (1, 1); pop_function_context (); add_decl_stmt (decl); } ; diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 53d55d4309bc..57c335d0d644 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -192,7 +192,7 @@ extern tree define_label PARAMS ((const char *, int, tree)); extern void finish_decl PARAMS ((tree, tree, tree)); extern tree finish_enum PARAMS ((tree, tree, tree)); -extern void finish_function PARAMS ((int)); +extern void finish_function PARAMS ((int, int)); extern tree finish_struct PARAMS ((tree, tree, tree)); extern tree get_parm_info PARAMS ((int)); extern tree grokfield PARAMS ((const char *, int, tree, tree, tree)); diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 2d689a25eb8e..cfc47024bf53 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -1731,7 +1731,7 @@ build_module_descriptor () c_expand_expr_stmt (decelerator); - finish_function (0); + finish_function (0, 0); return XEXP (DECL_RTL (init_function_decl), 0); } @@ -7265,7 +7265,7 @@ void finish_method_def () { lang_expand_function_end = objc_expand_function_end; - finish_function (0); + finish_function (0, 1); lang_expand_function_end = NULL; /* Required to implement _msgSuper. This must be done AFTER finish_function, -- GitLab