Commit 6d37cf2f by Per Bothner Committed by Per Bothner

Fix a problem where rest_of_decl_compilation applied to class_dtable_decl causes…

Fix a problem where rest_of_decl_compilation applied to class_dtable_decl causes problems because it was done too early...


	Fix a problem where rest_of_decl_compilation applied to
	class_dtable_decl causes problems because it was done too early,
	before output file was opened.
	* decl.c (init_decl_processing):  Remove init of class_dtable_decl.
	* class.c (class_dtable_decl):  Add macro - element of class_roots.
	(make_class_data):  Define class_dtable_decl.
	* java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.

From-SVN: r40256
parent 21aaf8bf
2001-03-05 Per Bothner <per@bothner.com>
Fix a problem where rest_of_decl_compilation applied to
class_dtable_decl causes problems because it was done too early,
before output file was opened.
* decl.c (init_decl_processing): Remove init of class_dtable_decl.
* class.c (class_dtable_decl): Add macro - element of class_roots.
(make_class_data): Define class_dtable_decl.
* java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
2001-03-01 Zack Weinberg <zackw@stanford.edu> 2001-03-01 Zack Weinberg <zackw@stanford.edu>
* java/class.c, java/decl.c, java/java-tree.h: Replace all * java/class.c, java/decl.c, java/java-tree.h: Replace all
......
...@@ -84,11 +84,13 @@ static assume_compiled_node *find_assume_compiled_node ...@@ -84,11 +84,13 @@ static assume_compiled_node *find_assume_compiled_node
static assume_compiled_node *assume_compiled_tree; static assume_compiled_node *assume_compiled_tree;
static tree class_roots[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE }; static tree class_roots[5]
= { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE };
#define registered_class class_roots[0] #define registered_class class_roots[0]
#define fields_ident class_roots[1] /* get_identifier ("fields") */ #define fields_ident class_roots[1] /* get_identifier ("fields") */
#define info_ident class_roots[2] /* get_identifier ("info") */ #define info_ident class_roots[2] /* get_identifier ("info") */
#define class_list class_roots[3] #define class_list class_roots[3]
#define class_dtable_decl class_roots[4]
/* Return the node that most closely represents the class whose name /* Return the node that most closely represents the class whose name
is IDENT. Start the search from NODE. Return NULL if an is IDENT. Start the search from NODE. Return NULL if an
...@@ -1347,6 +1349,17 @@ make_class_data (type) ...@@ -1347,6 +1349,17 @@ make_class_data (type)
DECL_IGNORED_P (dtable_decl) = 1; DECL_IGNORED_P (dtable_decl) = 1;
TREE_PUBLIC (dtable_decl) = 1; TREE_PUBLIC (dtable_decl) = 1;
rest_of_decl_compilation (dtable_decl, (char*) 0, 1, 0); rest_of_decl_compilation (dtable_decl, (char*) 0, 1, 0);
if (type == class_type_node)
class_dtable_decl = dtable_decl;
}
if (class_dtable_decl == NULL_TREE)
{
class_dtable_decl = build_dtable_decl (class_type_node);
TREE_STATIC (class_dtable_decl) = 1;
DECL_ARTIFICIAL (class_dtable_decl) = 1;
DECL_IGNORED_P (class_dtable_decl) = 1;
rest_of_decl_compilation (class_dtable_decl, (char*) 0, 1, 0);
} }
super = CLASSTYPE_SUPER (type); super = CLASSTYPE_SUPER (type);
......
...@@ -636,12 +636,6 @@ init_decl_processing () ...@@ -636,12 +636,6 @@ init_decl_processing ()
FIELD_PRIVATE (t) = 1; FIELD_PRIVATE (t) = 1;
FINISH_RECORD (object_type_node); FINISH_RECORD (object_type_node);
class_dtable_decl = build_dtable_decl (class_type_node);
TREE_STATIC (class_dtable_decl) = 1;
DECL_ARTIFICIAL (class_dtable_decl) = 1;
DECL_IGNORED_P (class_dtable_decl) = 1;
rest_of_decl_compilation (class_dtable_decl, (char*) 0, 1, 0);
field_type_node = make_node (RECORD_TYPE); field_type_node = make_node (RECORD_TYPE);
field_ptr_type_node = build_pointer_type (field_type_node); field_ptr_type_node = build_pointer_type (field_type_node);
method_type_node = make_node (RECORD_TYPE); method_type_node = make_node (RECORD_TYPE);
......
...@@ -335,8 +335,6 @@ enum java_tree_index ...@@ -335,8 +335,6 @@ enum java_tree_index
JTI_ACCESS_FLAGS_TYPE_NODE, JTI_ACCESS_FLAGS_TYPE_NODE,
JTI_CLASS_DTABLE_DECL,
JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE, JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE,
JTI_WFL_OPERATOR, JTI_WFL_OPERATOR,
...@@ -584,9 +582,6 @@ extern tree throw_node[]; ...@@ -584,9 +582,6 @@ extern tree throw_node[];
#define access_flags_type_node \ #define access_flags_type_node \
java_global_trees[JTI_ACCESS_FLAGS_TYPE_NODE] java_global_trees[JTI_ACCESS_FLAGS_TYPE_NODE]
#define class_dtable_decl \
java_global_trees[JTI_CLASS_DTABLE_DECL]
#define nativecode_ptr_array_type_node \ #define nativecode_ptr_array_type_node \
java_global_trees[JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE] java_global_trees[JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE]
......
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