* objc-act.c: Partially reverse mistaken commit.

From-SVN: r47519
This commit is contained in:
Neil Booth 2001-12-02 00:10:14 +00:00
parent 1f978f5f7e
commit 2e1b463b4d
1 changed files with 27 additions and 1 deletions

View File

@ -58,6 +58,7 @@ Boston, MA 02111-1307, USA. */
#include "cpplib.h"
#include "debug.h"
#include "target.h"
#include "varray.h"
#include "langhooks.h"
#include "langhooks-def.h"
@ -481,6 +482,8 @@ static int print_struct_values = 0;
/* Each front end provides its own. */
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
static varray_type deferred_fns;
/* Post-switch processing. */
static void
objc_post_options ()
@ -607,13 +610,36 @@ objc_init (filename)
objc_act_parse_init ();
VARRAY_TREE_INIT (deferred_fns, 32, "deferred_fns");
ggc_add_tree_varray_root (&deferred_fns, 1);
return filename;
}
/* Register a function tree, so that its optimization and conversion
to RTL is only done at the end of the compilation. */
int
defer_fn (fn)
tree fn;
{
VARRAY_PUSH_TREE (deferred_fns, fn);
return 1;
}
void
finish_file ()
{
c_objc_common_finish_file ();
int i;
for (i = 0; i < VARRAY_ACTIVE_SIZE (deferred_fns); i++)
/* Don't output the same function twice. We may run into such
situations when an extern inline function is later given a
non-extern-inline definition. */
if (! TREE_ASM_WRITTEN (VARRAY_TREE (deferred_fns, i)))
c_expand_deferred_function (VARRAY_TREE (deferred_fns, i));
VARRAY_FREE (deferred_fns);
finish_objc (); /* Objective-C finalization */