aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2004-12-02 19:41:03 +0000
committerTom Tromey <tromey@gcc.gnu.org>2004-12-02 19:41:03 +0000
commit5c5d79d28c0398e442e3ee095dce8c4275eaf7ab (patch)
tree193b23aea37dd044d8b275b773620a55d4ee9e03
parentabd7fea9f9afbe42fbaad073dab52e7d78640543 (diff)
downloadgcc-5c5d79d28c0398e442e3ee095dce8c4275eaf7ab.zip
gcc-5c5d79d28c0398e442e3ee095dce8c4275eaf7ab.tar.gz
gcc-5c5d79d28c0398e442e3ee095dce8c4275eaf7ab.tar.bz2
re PR java/16675 (Null parameter values for anonymous constructor invocation require explicit cast)
PR java/16675: * parse.y (craft_constructor): Special case null_pointer_node. From-SVN: r91657
-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);
}