OSDN Git Service

* gcc.dg/compat/scalar-by-value-3_main.c: New file.
[pf3gnuchains/gcc-fork.git] / gcc / c-objc-common.c
index 7d54d7a..32b894b 100644 (file)
@@ -1,5 +1,5 @@
 /* Some code common to C and ObjC front ends.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -37,6 +37,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "ggc.h"
 #include "langhooks.h"
 #include "target.h"
+#include "cgraph.h"
 
 static bool c_tree_printer PARAMS ((output_buffer *, text_info *));
 static tree inline_forbidden_p PARAMS ((tree *, int *, void *));
@@ -240,15 +241,19 @@ c_warn_unused_global_decl (decl)
 }
 
 /* Initialization common to C and Objective-C front ends.  */
-const char *
-c_objc_common_init (filename)
-     const char *filename;
+bool
+c_objc_common_init ()
 {
+  static const enum tree_code stmt_codes[] = {
+    c_common_stmt_codes
+  };
+
+  INIT_STATEMENT_CODES (stmt_codes);
+
   c_init_decl_processing ();
 
-  filename = c_common_init (filename);
-  if (filename == NULL)
-    return NULL;
+  if (c_common_init () == false)
+    return false;
 
   lang_expand_decl_stmt = c_expand_decl_stmt;
 
@@ -270,7 +275,7 @@ c_objc_common_init (filename)
 
   VARRAY_TREE_INIT (deferred_fns, 32, "deferred_fns");
 
-  return filename;
+  return true;
 }
 
 /* Register a function tree, so that its optimization and conversion
@@ -358,7 +363,16 @@ finish_cdtor (body)
 void
 c_objc_common_finish_file ()
 {
-  expand_deferred_fns ();
+  if (pch_file)
+    c_common_write_pch ();
+
+  if (flag_unit_at_a_time)
+    {
+      cgraph_finalize_compilation_unit ();
+      cgraph_optimize ();
+    }
+  else
+    expand_deferred_fns ();
 
   if (static_ctors)
     {