Commit 062583ea by Bryce McKinlay Committed by Bryce McKinlay

decl.c (struct binding_level): Add GTY marker.

	* decl.c (struct binding_level): Add GTY marker. Compile
	binding_depth unconditionally.
	(current_binding_level, free_binding_level, global_binding_level):
	Likewise.
	(clear_binding_level): Unconditionally set binding_depth.
	(make_binding_level): Use ggc_alloc_cleared, not xmalloc.

From-SVN: r82323
parent 08fb03fd
2004-05-26 Bryce McKinlay <mckinlay@redhat.com> 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
* decl.c (struct binding_level): Add GTY marker. Compile
binding_depth unconditionally.
(current_binding_level, free_binding_level, global_binding_level):
Likewise.
(clear_binding_level): Unconditionally set binding_depth.
(make_binding_level): Use ggc_alloc_cleared, not xmalloc.
2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
* lex.c (java_new_lexer): Set 'encoding'. * lex.c (java_new_lexer): Set 'encoding'.
(java_read_char): Improve error message for unrecognized characters. (java_read_char): Improve error message for unrecognized characters.
* lex.h (struct java_lexer): New field 'encoding'. * lex.h (struct java_lexer): New field 'encoding'.
......
...@@ -281,7 +281,7 @@ find_stack_slot (int index, tree type) ...@@ -281,7 +281,7 @@ find_stack_slot (int index, tree type)
type, -1); type, -1);
} }
struct binding_level struct binding_level GTY(())
{ {
/* A chain of _DECL nodes for all variables, constants, functions, /* A chain of _DECL nodes for all variables, constants, functions,
* and typedef types. These are in the reverse of the order supplied. * and typedef types. These are in the reverse of the order supplied.
...@@ -314,27 +314,25 @@ struct binding_level ...@@ -314,27 +314,25 @@ struct binding_level
/* The statements in this binding level. */ /* The statements in this binding level. */
tree stmts; tree stmts;
#if defined(DEBUG_JAVA_BINDING_LEVELS) /* Binding depth at which this level began. Used only for debugging. */
/* Binding depth at which this level began. */
unsigned binding_depth; unsigned binding_depth;
#endif /* defined(DEBUG_JAVA_BINDING_LEVELS) */
}; };
#define NULL_BINDING_LEVEL (struct binding_level *) NULL #define NULL_BINDING_LEVEL (struct binding_level *) NULL
/* The binding level currently in effect. */ /* The binding level currently in effect. */
static struct binding_level *current_binding_level; static GTY(()) struct binding_level *current_binding_level;
/* A chain of binding_level structures awaiting reuse. */ /* A chain of binding_level structures awaiting reuse. */
static struct binding_level *free_binding_level; static GTY(()) struct binding_level *free_binding_level;
/* The outermost binding level, for names of file scope. /* The outermost binding level, for names of file scope.
This is created when the compiler is started and exists This is created when the compiler is started and exists
through the entire run. */ through the entire run. */
static struct binding_level *global_binding_level; static GTY(()) struct binding_level *global_binding_level;
/* A PC value bigger than any PC value we may ever may encounter. */ /* A PC value bigger than any PC value we may ever may encounter. */
...@@ -344,11 +342,7 @@ static struct binding_level *global_binding_level; ...@@ -344,11 +342,7 @@ static struct binding_level *global_binding_level;
static const struct binding_level clear_binding_level static const struct binding_level clear_binding_level
= {NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, = {NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE,
NULL_BINDING_LEVEL, LARGEST_PC, 0, NULL, NULL_BINDING_LEVEL, LARGEST_PC, 0, NULL_TREE, 0};
#if defined(DEBUG_JAVA_BINDING_LEVELS)
0,
#endif /* defined(DEBUG_JAVA_BINDING_LEVELS) */
};
#if 0 #if 0
/* A list (chain of TREE_LIST nodes) of all LABEL_DECLs in the function /* A list (chain of TREE_LIST nodes) of all LABEL_DECLs in the function
...@@ -1200,7 +1194,7 @@ static struct binding_level * ...@@ -1200,7 +1194,7 @@ static struct binding_level *
make_binding_level (void) make_binding_level (void)
{ {
/* NOSTRICT */ /* NOSTRICT */
return xmalloc (sizeof (struct binding_level)); return ggc_alloc_cleared (sizeof (struct binding_level));
} }
void void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment