From 1510057a32b1646c235117aaed4ab54536d1d18a Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Fri, 24 Nov 2000 15:29:39 +0000 Subject: [PATCH] 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 --- gcc/java/ChangeLog | 9 +++++++++ gcc/java/expr.c | 32 +++++++++++++++++--------------- gcc/java/jcf-parse.c | 6 +++++- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 02b70d01ad6..289b829a2c4 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2000-11-23 Anthony Green + + * 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 * parse.y (build_outer_field_access): New local `decl_ctx', use diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 2d592299f30..5b9048856ee 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 aebd4a5b112..91e8ae07270 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 (¤t_field, 1); ggc_add_tree_root (¤t_method, 1); + ggc_add_tree_root (¤t_file_list, 1); }