Commit 29370796 by Nathan Sidwell Committed by Nathan Sidwell

cp-tree.h (pushclass): Remove unneeded parameter.

cp:
	* cp-tree.h (pushclass): Remove unneeded parameter.
	* class.c (pushclass): Remove unneeded MODIFY parm. Adjust.
	(push_nested_class): Adjust pushclass call.
	* pt.c (instantiate_class_template): Likewise.
	* semantics.c (begin_class_definition): Likewise.

From-SVN: r70101
parent 50612a04
2003-08-02 Nathan Sidwell <nathan@codesourcery.com>
* cp-tree.h (pushclass): Remove unneeded parameter.
* class.c (pushclass): Remove unneeded MODIFY parm. Adjust.
(push_nested_class): Adjust pushclass call.
* pt.c (instantiate_class_template): Likewise.
* semantics.c (begin_class_definition): Likewise.
2003-08-01 Nathanael Nerode <neroden@gcc.gnu.org> 2003-08-01 Nathanael Nerode <neroden@gcc.gnu.org>
* typeck2.c (add_exception_specifier): Use 'bool' where appropriate. * typeck2.c (add_exception_specifier): Use 'bool' where appropriate.
......
...@@ -5395,19 +5395,6 @@ init_class_processing (void) ...@@ -5395,19 +5395,6 @@ init_class_processing (void)
/* Set global variables CURRENT_CLASS_NAME and CURRENT_CLASS_TYPE as /* Set global variables CURRENT_CLASS_NAME and CURRENT_CLASS_TYPE as
appropriate for TYPE. appropriate for TYPE.
If MODIFY is 1, we set IDENTIFIER_CLASS_VALUE's of names
which can be seen locally to the class. They are shadowed by
any subsequent local declaration (including parameter names).
If MODIFY is 2, we set IDENTIFIER_CLASS_VALUE's of names
which have static meaning (i.e., static members, static
member functions, enum declarations, etc).
If MODIFY is 3, we set IDENTIFIER_CLASS_VALUE of names
which can be seen locally to the class (as in 1), but
know that we are doing this for declaration purposes
(i.e. friend foo::bar (int)).
So that we may avoid calls to lookup_name, we cache the _TYPE So that we may avoid calls to lookup_name, we cache the _TYPE
nodes of local TYPE_DECLs in the TREE_TYPE field of the name. nodes of local TYPE_DECLs in the TREE_TYPE field of the name.
...@@ -5420,7 +5407,7 @@ init_class_processing (void) ...@@ -5420,7 +5407,7 @@ init_class_processing (void)
that name becomes `error_mark_node'. */ that name becomes `error_mark_node'. */
void void
pushclass (tree type, bool modify) pushclass (tree type)
{ {
type = TYPE_MAIN_VARIANT (type); type = TYPE_MAIN_VARIANT (type);
...@@ -5464,39 +5451,36 @@ pushclass (tree type, bool modify) ...@@ -5464,39 +5451,36 @@ pushclass (tree type, bool modify)
/* If we're about to enter a nested class, clear /* If we're about to enter a nested class, clear
IDENTIFIER_CLASS_VALUE for the enclosing classes. */ IDENTIFIER_CLASS_VALUE for the enclosing classes. */
if (modify && current_class_depth > 1) if (current_class_depth > 1)
clear_identifier_class_values (); clear_identifier_class_values ();
pushlevel_class (); pushlevel_class ();
if (modify) if (type != previous_class_type || current_class_depth > 1)
push_class_decls (type);
else
{ {
if (type != previous_class_type || current_class_depth > 1) tree item;
push_class_decls (type);
else
{
tree item;
/* We are re-entering the same class we just left, so we
don't have to search the whole inheritance matrix to find
all the decls to bind again. Instead, we install the
cached class_shadowed list, and walk through it binding
names and setting up IDENTIFIER_TYPE_VALUEs. */
set_class_shadows (previous_class_values);
for (item = previous_class_values; item; item = TREE_CHAIN (item))
{
tree id = TREE_PURPOSE (item);
tree decl = TREE_TYPE (item);
push_class_binding (id, decl); /* We are re-entering the same class we just left, so we don't
if (TREE_CODE (decl) == TYPE_DECL) have to search the whole inheritance matrix to find all the
set_identifier_type_value (id, TREE_TYPE (decl)); decls to bind again. Instead, we install the cached
} class_shadowed list, and walk through it binding names and
unuse_fields (type); setting up IDENTIFIER_TYPE_VALUEs. */
set_class_shadows (previous_class_values);
for (item = previous_class_values; item; item = TREE_CHAIN (item))
{
tree id = TREE_PURPOSE (item);
tree decl = TREE_TYPE (item);
push_class_binding (id, decl);
if (TREE_CODE (decl) == TYPE_DECL)
set_identifier_type_value (id, TREE_TYPE (decl));
} }
unuse_fields (type);
cxx_remember_type_decls (CLASSTYPE_NESTED_UTDS (type));
} }
cxx_remember_type_decls (CLASSTYPE_NESTED_UTDS (type));
} }
/* When we exit a toplevel class scope, we save the /* When we exit a toplevel class scope, we save the
...@@ -5598,7 +5582,7 @@ push_nested_class (tree type) ...@@ -5598,7 +5582,7 @@ push_nested_class (tree type)
if (context && CLASS_TYPE_P (context)) if (context && CLASS_TYPE_P (context))
push_nested_class (context); push_nested_class (context);
pushclass (type, true); pushclass (type);
} }
/* Undoes a push_nested_class call. */ /* Undoes a push_nested_class call. */
......
...@@ -3582,7 +3582,7 @@ extern void finish_struct_1 (tree); ...@@ -3582,7 +3582,7 @@ extern void finish_struct_1 (tree);
extern int resolves_to_fixed_type_p (tree, int *); extern int resolves_to_fixed_type_p (tree, int *);
extern void init_class_processing (void); extern void init_class_processing (void);
extern int is_empty_class (tree); extern int is_empty_class (tree);
extern void pushclass (tree, bool); extern void pushclass (tree);
extern void popclass (void); extern void popclass (void);
extern void push_nested_class (tree); extern void push_nested_class (tree);
extern void pop_nested_class (void); extern void pop_nested_class (void);
......
...@@ -5225,7 +5225,7 @@ instantiate_class_template (tree type) ...@@ -5225,7 +5225,7 @@ instantiate_class_template (tree type)
correctly. This is precisely analogous to what we do in correctly. This is precisely analogous to what we do in
begin_class_definition when defining an ordinary non-template begin_class_definition when defining an ordinary non-template
class. */ class. */
pushclass (type, true); pushclass (type);
/* Now members are processed in the order of declaration. */ /* Now members are processed in the order of declaration. */
for (member = CLASSTYPE_DECL_LIST (pattern); for (member = CLASSTYPE_DECL_LIST (pattern);
......
...@@ -2025,7 +2025,7 @@ begin_class_definition (tree t) ...@@ -2025,7 +2025,7 @@ begin_class_definition (tree t)
pushtag (TYPE_IDENTIFIER (t), t, 0); pushtag (TYPE_IDENTIFIER (t), t, 0);
} }
maybe_process_partial_specialization (t); maybe_process_partial_specialization (t);
pushclass (t, true); pushclass (t);
TYPE_BEING_DEFINED (t) = 1; TYPE_BEING_DEFINED (t) = 1;
TYPE_PACKED (t) = flag_pack_struct; TYPE_PACKED (t) = flag_pack_struct;
/* Reset the interface data, at the earliest possible /* Reset the interface data, at the earliest possible
......
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