aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/parse.y4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 88117f5..4f4b8bd 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,5 +1,10 @@
2004-12-02 Tom Tromey <tromey@redhat.com>
+ PR java/16675:
+ * parse.y (craft_constructor): Special case null_pointer_node.
+
+2004-12-02 Tom Tromey <tromey@redhat.com>
+
PR java/18741:
* java-gimplify.c (java_gimplify_expr): Don't call
SET_EXPR_LOCATION unless wrapped tree is an expression.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 2b3d3a4..2634de9 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -5591,6 +5591,10 @@ craft_constructor (tree class_decl, tree args)
/* Then if there are any args to be enforced, enforce them now */
for (; args && args != end_params_node; args = TREE_CHAIN (args))
{
+ /* If we see a `void *', we need to change it to Object. */
+ if (TREE_VALUE (args) == TREE_TYPE (null_pointer_node))
+ TREE_VALUE (args) = object_ptr_type_node;
+
sprintf (buffer, "parm%d", i++);
parm = tree_cons (get_identifier (buffer), TREE_VALUE (args), parm);
}