* cp-tree.h (struct tree_binding): Replace scope field with a union.
(BINDING_SCOPE): Adjust.
* decl.c (BINDING_LEVEL): Adjust.
From-SVN: r24894
+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
_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. */
struct tree_binding
{
char common[sizeof (struct tree_common)];
- void* scope;
+ union {
+ tree scope;
+ struct binding_level *level;
+ } scope;
tree value;
};
/* 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