cp-tree.h (struct tree_binding): Replace scope field with a union.

* cp-tree.h (struct tree_binding): Replace scope field with a union.
	(BINDING_SCOPE): Adjust.
	* decl.c (BINDING_LEVEL): Adjust.

From-SVN: r24894
This commit is contained in:
Jason Merrill 1999-01-28 09:47:48 +00:00 committed by Jason Merrill
parent 661c790959
commit c7a932b1cf
3 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,9 @@
1999-01-28 Jason Merrill <jason@yorick.cygnus.com>
* cp-tree.h (struct tree_binding): Replace scope field with a union.
(BINDING_SCOPE): Adjust.
* decl.c (BINDING_LEVEL): Adjust.
1999-01-26 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (instantiate_class_template): Set up the DECL_INITIAL of

View File

@ -138,7 +138,7 @@ typedef struct ptrmem_cst
_TYPE node, or a NAMESPACE_DECL.) This macro should be used only
for namespace-level bindings; on the IDENTIFIER_BINDING list
BINDING_LEVEL is used instead. */
#define BINDING_SCOPE(NODE) ((tree) ((struct tree_binding*)NODE)->scope)
#define BINDING_SCOPE(NODE) (((struct tree_binding*)NODE)->scope.scope)
/* This is the declaration bound to the name. Possible values:
variable, overloaded function, namespace, template, enumerator. */
@ -159,7 +159,10 @@ typedef struct ptrmem_cst
struct tree_binding
{
char common[sizeof (struct tree_common)];
void* scope;
union {
tree scope;
struct binding_level *level;
} scope;
tree value;
};

View File

@ -1039,7 +1039,7 @@ pushlevel_temporary (tag_transparent)
/* For a binding between a name and an entity at a block scope,
this is the `struct binding_level' for the block. */
#define BINDING_LEVEL(NODE) \
((struct binding_level*) ((struct tree_binding*)NODE)->scope)
(((struct tree_binding*)NODE)->scope.level)
/* These are currently unused, but permanent, CPLUS_BINDING nodes.
They are kept here because they are allocated from the permanent