aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Green <green@redhat.com>2000-11-24 15:29:39 +0000
committerAnthony Green <green@gcc.gnu.org>2000-11-24 15:29:39 +0000
commit1510057a32b1646c235117aaed4ab54536d1d18a (patch)
treec613feae29fe58c445b9d9c9150ae1a14e173930
parent52a84e42704079b6a1e93fee1215b6d7368f856c (diff)
downloadgcc-1510057a32b1646c235117aaed4ab54536d1d18a.zip
gcc-1510057a32b1646c235117aaed4ab54536d1d18a.tar.gz
gcc-1510057a32b1646c235117aaed4ab54536d1d18a.tar.bz2
jcf-parse.c (init_jcf_parse): Register current_file_list root.
* jcf-parse.c (init_jcf_parse): Register current_file_list root. Move current_file_list out of yyparse and make it static. * expr.c: Declare quick_stack and tree_list_free_list as static (init_expr_processing): Register quick_stack and tree_list_free_list roots. From-SVN: r37708
-rw-r--r--gcc/java/ChangeLog9
-rw-r--r--gcc/java/expr.c32
-rw-r--r--gcc/java/jcf-parse.c6
3 files changed, 31 insertions, 16 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 02b70d0..289b829 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,12 @@
+2000-11-23 Anthony Green <green@redhat.com>
+
+ * jcf-parse.c (init_jcf_parse): Register current_file_list root.
+ Move current_file_list out of yyparse and make it static.
+
+ * expr.c: Declare quick_stack and tree_list_free_list as static
+ (init_expr_processing): Register quick_stack and
+ tree_list_free_list roots.
+
2000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (build_outer_field_access): New local `decl_ctx', use
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 2d59229..5b90488 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -93,19 +93,6 @@ tree dtable_ident = NULL_TREE;
before static field references. */
int always_initialize_class_p;
-void
-init_expr_processing()
-{
- operand_type[21] = operand_type[54] = int_type_node;
- operand_type[22] = operand_type[55] = long_type_node;
- operand_type[23] = operand_type[56] = float_type_node;
- operand_type[24] = operand_type[57] = double_type_node;
- operand_type[25] = operand_type[58] = ptr_type_node;
- ggc_add_tree_root (operand_type, 59);
- ggc_add_tree_root (&methods_ident, 1);
- ggc_add_tree_root (&ncode_ident, 1);
-}
-
/* We store the stack state in two places:
Within a basic block, we use the quick_stack, which is a
pushdown list (TREE_LISTs) of expression nodes.
@@ -133,10 +120,10 @@ init_expr_processing()
So dup cannot just add an extra element to the quick_stack, but iadd can.
*/
-tree quick_stack = NULL_TREE;
+static tree quick_stack = NULL_TREE;
/* A free-list of unused permamnet TREE_LIST nodes. */
-tree tree_list_free_list = NULL_TREE;
+static tree tree_list_free_list = NULL_TREE;
/* The stack pointer of the Java virtual machine.
This does include the size of the quick_stack. */
@@ -146,6 +133,21 @@ int stack_pointer;
const unsigned char *linenumber_table;
int linenumber_count;
+void
+init_expr_processing()
+{
+ operand_type[21] = operand_type[54] = int_type_node;
+ operand_type[22] = operand_type[55] = long_type_node;
+ operand_type[23] = operand_type[56] = float_type_node;
+ operand_type[24] = operand_type[57] = double_type_node;
+ operand_type[25] = operand_type[58] = ptr_type_node;
+ ggc_add_tree_root (operand_type, 59);
+ ggc_add_tree_root (&methods_ident, 1);
+ ggc_add_tree_root (&ncode_ident, 1);
+ ggc_add_tree_root (&quick_stack, 1);
+ ggc_add_tree_root (&tree_list_free_list, 1);
+}
+
tree
truthvalue_conversion (expr)
tree expr;
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index aebd4a5..91e8ae0 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -76,6 +76,9 @@ static tree current_field = NULL_TREE;
/* The METHOD_DECL for the current method. */
static tree current_method = NULL_TREE;
+/* A list of file names. */
+static tree current_file_list = NULL_TREE;
+
/* The Java .class file that provides main_class; the main input file. */
static struct JCF main_jcf[1];
@@ -807,7 +810,7 @@ yyparse ()
{
int several_files = 0;
char *list = xstrdup (input_filename), *next;
- tree node, current_file_list = NULL_TREE;
+ tree node;
FILE *finput;
do
@@ -1093,4 +1096,5 @@ init_jcf_parse ()
/* Register roots with the garbage collector. */
ggc_add_tree_root (&current_field, 1);
ggc_add_tree_root (&current_method, 1);
+ ggc_add_tree_root (&current_file_list, 1);
}