aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/expr.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 93eb1c2..4ec9a3c 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-28 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (java_check_reference): Use the semantics of COND_EXPRs
+ with void-type branches instead of using a COMPOUND_EXPR.
+
2003-09-28 Jeff Sturm <jsturm@one-point.com>
* decl.c (java_optimize_inline, dump_function): Remove.
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 272cb35..994a8c5 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -695,15 +695,13 @@ java_check_reference (tree expr, int check)
{
if (!flag_syntax_only && check)
{
- tree cond;
expr = save_expr (expr);
- cond = build (COND_EXPR, void_type_node,
+ expr = build (COND_EXPR, TREE_TYPE (expr),
build (EQ_EXPR, boolean_type_node, expr, null_pointer_node),
build (CALL_EXPR, void_type_node,
build_address_of (soft_nullpointer_node),
NULL_TREE, NULL_TREE),
- empty_stmt_node);
- expr = build (COMPOUND_EXPR, TREE_TYPE (expr), cond, expr);
+ expr);
}
return expr;