diff options
author | Richard Henderson <rth@redhat.com> | 2002-03-28 10:51:49 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-03-28 10:51:49 -0800 |
commit | 619708cce29db738d1926514d92c07b24f689b22 (patch) | |
tree | c3f3d3f6bcb25054ebc7c74e7f3117eb734219a8 /gcc | |
parent | b1d874d7b19e09b07657ace24315e9ee279a9ae9 (diff) | |
download | gcc-619708cce29db738d1926514d92c07b24f689b22.zip gcc-619708cce29db738d1926514d92c07b24f689b22.tar.gz gcc-619708cce29db738d1926514d92c07b24f689b22.tar.bz2 |
c-decl.c (finish_function): New arg can_defer_p.
* 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.
From-SVN: r51518
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-decl.c | 8 | ||||
-rw-r--r-- | gcc/c-objc-common.c | 2 | ||||
-rw-r--r-- | gcc/c-parse.in | 10 | ||||
-rw-r--r-- | gcc/c-tree.h | 2 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 4 |
6 files changed, 21 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b07a41b..288f510 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 620a16f..931f174 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 416a310..595e6ce 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 1628057..fa56bfc 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 53d55d4..57c335d 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 2d689a2..cfc4702 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, |