aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@waitaki.otago.ac.nz>2001-10-26 01:53:56 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2001-10-26 02:53:56 +0100
commit961b8e7028e4434d031214cd170b3ec85af87bbd (patch)
tree91722ffb7b8a13491652f4adbc7c3b762d82a185 /gcc
parent839f8204241b26ffd49b18e86af8c8d2c396e923 (diff)
downloadgcc-961b8e7028e4434d031214cd170b3ec85af87bbd.zip
gcc-961b8e7028e4434d031214cd170b3ec85af87bbd.tar.gz
gcc-961b8e7028e4434d031214cd170b3ec85af87bbd.tar.bz2
expr.c (expand_java_field_op): Don't special-case references to java.lang.PRIMTYPE.TYPE.
* expr.c (expand_java_field_op): Don't special-case references to java.lang.PRIMTYPE.TYPE. (build_primtype_type_ref): Removed. * java-tree.h (build_primtype_type_ref): Remove prototype. * parse.y (maybe_build_primttype_type_ref): Removed. (complete_function_arguments): Don't special-case references to java.lang.PRIMTYPE.TYPE. (patch_assignment): Likewise. (array_constructor_check_entry): Likewise. From-SVN: r46522
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog12
-rw-r--r--gcc/java/expr.c48
-rw-r--r--gcc/java/java-tree.h1
-rw-r--r--gcc/java/parse.y41
4 files changed, 14 insertions, 88 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 7e05cc2..7b6b4ef 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,15 @@
+2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * expr.c (expand_java_field_op): Don't special-case references to
+ java.lang.PRIMTYPE.TYPE.
+ (build_primtype_type_ref): Removed.
+ * java-tree.h (build_primtype_type_ref): Remove prototype.
+ * parse.y (maybe_build_primttype_type_ref): Removed.
+ (complete_function_arguments): Don't special-case references to
+ java.lang.PRIMTYPE.TYPE.
+ (patch_assignment): Likewise.
+ (array_constructor_check_entry): Likewise.
+
2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
* mangle.c (static tree compression_table): Fixed leading comment.
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 5481289..cf9bef4 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -2266,22 +2266,6 @@ expand_java_field_op (is_static, is_putting, field_ref_index)
return;
}
- /* Inline references to java.lang.PRIMTYPE.TYPE.
- In addition to being a useful (minor) optimization,
- this is also needed to avoid circularities in the implementation
- of these fields in libjava. */
- if (field_name == TYPE_identifier_node && ! is_putting
- && ! flag_emit_class_files && field_type == class_ptr_type
- && strncmp (self_name, "java.lang.", 10) == 0)
- {
- tree typ = build_primtype_type_ref (self_name);
- if (typ)
- {
- push_value (typ);
- return;
- }
- }
-
field_ref = build_field_ref (field_ref, self_type, field_name);
if (is_static)
field_ref = build_class_init (self_type, field_ref);
@@ -2313,38 +2297,6 @@ expand_java_field_op (is_static, is_putting, field_ref_index)
push_value (field_ref);
}
-tree
-build_primtype_type_ref (self_name)
- const char *self_name;
-{
- const char *class_name = self_name+10;
- tree typ;
- if (strncmp(class_name, "Byte", 4) == 0)
- typ = byte_type_node;
- else if (strncmp(class_name, "Short", 5) == 0)
- typ = short_type_node;
- else if (strncmp(class_name, "Integer", 7) == 0)
- typ = int_type_node;
- else if (strncmp(class_name, "Long", 4) == 0)
- typ = long_type_node;
- else if (strncmp(class_name, "Float", 5) == 0)
- typ = float_type_node;
- else if (strncmp(class_name, "Double", 6) == 0)
- typ = double_type_node;
- else if (strncmp(class_name, "Boolean", 7) == 0)
- typ = boolean_type_node;
- else if (strncmp(class_name, "Char", 4) == 0)
- typ = char_type_node;
- else if (strncmp(class_name, "Void", 4) == 0)
- typ = void_type_node;
- else
- typ = NULL_TREE;
- if (typ != NULL_TREE)
- return build_class_ref (typ);
- else
- return NULL_TREE;
-}
-
void
load_type_state (label)
tree label;
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 22be149..132cd71 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -1102,7 +1102,6 @@ extern void write_classfile PARAMS ((tree));
extern char *print_int_node PARAMS ((tree));
extern void parse_error_context PARAMS ((tree cl, const char *, ...))
ATTRIBUTE_PRINTF_2;
-extern tree build_primtype_type_ref PARAMS ((const char *));
extern void finish_class PARAMS ((void));
extern void java_layout_seen_class_methods PARAMS ((void));
extern unsigned int check_for_initialization PARAMS ((tree));
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 0fed076..089d2c3 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -258,7 +258,6 @@ static int check_method_redefinition PARAMS ((tree, tree));
static int check_method_types_complete PARAMS ((tree));
static void java_check_regular_methods PARAMS ((tree));
static void java_check_abstract_methods PARAMS ((tree));
-static tree maybe_build_primttype_type_ref PARAMS ((tree, tree));
static void unreachable_stmt_error PARAMS ((tree));
static tree find_expr_with_wfl PARAMS ((tree));
static void missing_return_error PARAMS ((tree));
@@ -3650,7 +3649,7 @@ find_as_inner_class (enclosing, name, cl)
/* Otherwise, create a qual for the other part of the resolution. */
else
qual = build_tree_list (build_expr_wfl (name, NULL, 0, 0), NULL_TREE);
-
+
return find_as_inner_class_do (qual, enclosing);
}
@@ -12247,8 +12246,6 @@ complete_function_arguments (node)
`+' operator. Build `parm.toString()' and expand it. */
if ((temp = patch_string (parm)))
parm = temp;
- /* Inline PRIMTYPE.TYPE read access */
- parm = maybe_build_primttype_type_ref (parm, wfl);
TREE_VALUE (cn) = parm;
}
@@ -12790,33 +12787,6 @@ check_final_assignment (lvalue, wfl)
return 1;
}
-/* Inline references to java.lang.PRIMTYPE.TYPE when accessed in
- read. This is needed to avoid circularities in the implementation
- of these fields in libjava. */
-
-static tree
-maybe_build_primttype_type_ref (rhs, wfl)
- tree rhs, wfl;
-{
- tree to_return = NULL_TREE;
- tree rhs_type = TREE_TYPE (rhs);
- if (TREE_CODE (rhs) == COMPOUND_EXPR)
- {
- tree n = TREE_OPERAND (rhs, 1);
- if (TREE_CODE (n) == VAR_DECL
- && DECL_NAME (n) == TYPE_identifier_node
- && rhs_type == class_ptr_type
- && TREE_CODE (wfl) == EXPR_WITH_FILE_LOCATION
- && TREE_CODE (EXPR_WFL_NODE (wfl)) == IDENTIFIER_NODE)
- {
- const char *self_name = IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl));
- if (!strncmp (self_name, "java.lang.", 10))
- to_return = build_primtype_type_ref (self_name);
- }
- }
- return (to_return ? to_return : rhs );
-}
-
/* 15.25 Assignment operators. */
static tree
@@ -12927,10 +12897,6 @@ patch_assignment (node, wfl_op1, wfl_op2)
error_found = 1;
}
- /* Inline read access to java.lang.PRIMTYPE.TYPE */
- if (new_rhs)
- new_rhs = maybe_build_primttype_type_ref (new_rhs, wfl_op2);
-
if (error_found)
return error_mark_node;
@@ -14875,10 +14841,7 @@ array_constructor_check_entry (type, entry)
}
if (new_value)
- {
- new_value = maybe_build_primttype_type_ref (new_value, wfl_value);
- TREE_VALUE (entry) = new_value;
- }
+ TREE_VALUE (entry) = new_value;
if (array_type_string)
free (array_type_string);