* objc-act.c: Partially reverse mistaken commit.
From-SVN: r47519
This commit is contained in:
parent
1f978f5f7e
commit
2e1b463b4d
@ -58,6 +58,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
#include "cpplib.h"
|
#include "cpplib.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
#include "varray.h"
|
||||||
#include "langhooks.h"
|
#include "langhooks.h"
|
||||||
#include "langhooks-def.h"
|
#include "langhooks-def.h"
|
||||||
|
|
||||||
@ -481,6 +482,8 @@ static int print_struct_values = 0;
|
|||||||
/* Each front end provides its own. */
|
/* Each front end provides its own. */
|
||||||
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
|
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
|
||||||
|
|
||||||
|
static varray_type deferred_fns;
|
||||||
|
|
||||||
/* Post-switch processing. */
|
/* Post-switch processing. */
|
||||||
static void
|
static void
|
||||||
objc_post_options ()
|
objc_post_options ()
|
||||||
@ -607,13 +610,36 @@ objc_init (filename)
|
|||||||
|
|
||||||
objc_act_parse_init ();
|
objc_act_parse_init ();
|
||||||
|
|
||||||
|
VARRAY_TREE_INIT (deferred_fns, 32, "deferred_fns");
|
||||||
|
ggc_add_tree_varray_root (&deferred_fns, 1);
|
||||||
|
|
||||||
return filename;
|
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
|
void
|
||||||
finish_file ()
|
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 */
|
finish_objc (); /* Objective-C finalization */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user