aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/langhooks-def.h1
-rw-r--r--gcc/langhooks.c29
-rw-r--r--gcc/toplev.c31
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.