diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/langhooks-def.h | 1 | ||||
-rw-r--r-- | gcc/langhooks.c | 29 | ||||
-rw-r--r-- | gcc/toplev.c | 31 |
4 files changed, 33 insertions, 32 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ae5510e8..22d7092 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-02-18 Matt Austern <austern@apple.com> + * toplev.c, langhooks.c, langhooks-def.h: Move + write_global_declarations from toplev.c to langhooks.c. + 2003-02-18 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300.c (general_operand_src): Always check diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index 6fc1060..8834e78 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -82,7 +82,6 @@ int lhd_tree_inlining_start_inlining PARAMS ((tree)); void lhd_tree_inlining_end_inlining PARAMS ((tree)); tree lhd_tree_inlining_convert_parm_for_inlining PARAMS ((tree, tree, tree)); -/* In toplev.c */ void write_global_declarations PARAMS ((void)); #define LANG_HOOKS_NAME "GNU unknown" diff --git a/gcc/langhooks.c b/gcc/langhooks.c index 912d5db..045a5e4 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -448,3 +448,32 @@ lhd_expr_size (exp) else return size_in_bytes (TREE_TYPE (exp)); } + +/* lang_hooks.decls.final_write_globals: perform final processing on + global variables. */ +void +write_global_declarations () +{ + /* Really define vars that have had only a tentative definition. + Really output inline functions that must actually be callable + and have not been output so far. */ + + tree globals = (*lang_hooks.decls.getdecls) (); + int len = list_length (globals); + tree *vec = (tree *) xmalloc (sizeof (tree) * len); + int i; + tree decl; + + /* Process the decls in reverse order--earliest first. + Put them into VEC from back to front, then take out from front. */ + + for (i = 0, decl = globals; i < len; i++, decl = TREE_CHAIN (decl)) + vec[len - i - 1] = decl; + + wrapup_global_declarations (vec, len); + + check_global_declarations (vec, len); + + /* Clean up. */ + free (vec); +} diff --git a/gcc/toplev.c b/gcc/toplev.c index c72f54f..9322f4f 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -72,7 +72,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "debug.h" #include "target.h" #include "langhooks.h" -#include "langhooks-def.h" #include "cfglayout.h" #include "cfgloop.h" #include "hosthooks.h" @@ -2225,36 +2224,6 @@ compile_file () timevar_pop (TV_DUMP); } } - -/* Default for lang_hooks.decls.final_write_globals */ -void write_global_declarations () -{ - tree globals = (*lang_hooks.decls.getdecls) (); - - /* Really define vars that have had only a tentative definition. - Really output inline functions that must actually be callable - and have not been output so far. */ - - { - int len = list_length (globals); - tree *vec = (tree *) xmalloc (sizeof (tree) * len); - int i; - tree decl; - - /* Process the decls in reverse order--earliest first. - Put them into VEC from back to front, then take out from front. */ - - for (i = 0, decl = globals; i < len; i++, decl = TREE_CHAIN (decl)) - vec[len - i - 1] = decl; - - wrapup_global_declarations (vec, len); - - check_global_declarations (vec, len); - - /* Clean up. */ - free (vec); - } -} /* This is called from various places for FUNCTION_DECL, VAR_DECL, and TYPE_DECL nodes. |