aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/java-tree.h1
-rw-r--r--gcc/java/lang.c2
-rw-r--r--gcc/java/typeck.c16
4 files changed, 17 insertions, 8 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 269bdc2..8b5ef4e 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,5 +1,11 @@
2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
+ * java-tree.h (java_mark_addressable): New.
+ * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
+ * typeck.c (mark_addressable): Rename, update.
+
+2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
+
* expr.c (build_java_binop): Update.
* java-tree.h (java_signed_type, java_unsigned_type,
java_signed_or_unsigned_type): Update.
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 4a55281..ae26b61 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -1039,6 +1039,7 @@ struct lang_type
extern void java_set_yydebug PARAMS ((int));
extern void java_parse_file PARAMS ((void));
extern void java_mark_tree PARAMS ((tree));
+extern bool java_mark_addressable PARAMS ((tree));
extern tree java_type_for_mode PARAMS ((enum machine_mode, int));
extern tree java_type_for_size PARAMS ((unsigned int, int));
extern tree java_unsigned_type PARAMS ((tree));
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 05b5ced..53e11be 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -229,6 +229,8 @@ static int dependency_tracking = 0;
#define LANG_HOOKS_PARSE_FILE java_parse_file
#undef LANG_HOOKS_MARK_TREE
#define LANG_HOOKS_MARK_TREE java_mark_tree
+#undef LANG_HOOKS_MARK_ADDRESSABLE
+#define LANG_HOOKS_MARK_ADDRESSABLE java_mark_addressable
#undef LANG_HOOKS_EXPAND_EXPR
#define LANG_HOOKS_EXPAND_EXPR java_expand_expr
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 5afa5a4..108f3fb 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -263,10 +263,10 @@ java_unsigned_type (type)
/* Mark EXP saying that we need to be able to take the
address of it; it should not be allocated in a register.
- Value is 1 if successful. */
+ Value is true if successful. */
-int
-mark_addressable (exp)
+bool
+java_mark_addressable (exp)
tree exp;
{
register tree x = exp;
@@ -288,12 +288,12 @@ mark_addressable (exp)
break;
case COND_EXPR:
- return mark_addressable (TREE_OPERAND (x, 1))
- & mark_addressable (TREE_OPERAND (x, 2));
+ return java_mark_addressable (TREE_OPERAND (x, 1))
+ && java_mark_addressable (TREE_OPERAND (x, 2));
case CONSTRUCTOR:
TREE_ADDRESSABLE (x) = 1;
- return 1;
+ return true;
case INDIRECT_REF:
/* We sometimes add a cast *(TYPE*)&FOO to handle type and mode
@@ -309,7 +309,7 @@ mark_addressable (exp)
x = TREE_OPERAND (x, 0);
break;
}
- return 1;
+ return true;
case VAR_DECL:
case CONST_DECL:
@@ -323,7 +323,7 @@ mark_addressable (exp)
#endif
/* drops through */
default:
- return 1;
+ return true;
}
}