* c-decl.c (finish_function): New arg can_defer_p. Pass it
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Mar 2002 18:51:49 +0000 (18:51 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Mar 2002 18:51:49 +0000 (18:51 +0000)
        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
gcc/c-decl.c
gcc/c-objc-common.c
gcc/c-parse.in
gcc/c-tree.h
gcc/objc/objc-act.c

index b07a41b..288f510 100644 (file)
@@ -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.
index 620a16f..931f174 100644 (file)
@@ -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
index 416a310..595e6ce 100644 (file)
@@ -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.  */
index 1628057..fa56bfc 100644 (file)
@@ -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); }
        ;
index 53d55d4..57c335d 100644 (file)
@@ -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));
index 2d689a2..cfc4702 100644 (file)
@@ -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,