OSDN Git Service

PR java/19070
authorrmathew <rmathew@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Jan 2005 06:12:32 +0000 (06:12 +0000)
committerrmathew <rmathew@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Jan 2005 06:12:32 +0000 (06:12 +0000)
        * parse.y (patch_binop): Allow comparisons against NULL only
        if the other operand is of a reference type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94205 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/parse.y

index 116df16..ee41864 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-18  Ranjit Mathew  <rmathew@hotmail.com>
+
+       PR java/19070
+       * parse.y (patch_binop): Allow comparisons against NULL only
+       if the other operand is of a reference type.
+
 2005-01-24  Tom Tromey  <tromey@redhat.com>
 
        * java-tree.h (gcj_abi_version): Declare.
index b09bb87..1c3eb92 100644 (file)
@@ -1,6 +1,6 @@
 /* Source code parsing and tree node generation for the GNU compiler
    for the Java(TM) language.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
    Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
 
@@ -13798,7 +13798,9 @@ patch_binop (tree node, tree wfl_op1, tree wfl_op2)
       /* Types have to be either references or the null type. If
          they're references, it must be possible to convert either
          type to the other by casting conversion. */
-      else if (op1 == null_pointer_node || op2 == null_pointer_node
+      else if ((op1 == null_pointer_node && op2 == null_pointer_node)
+               || (op1 == null_pointer_node && JREFERENCE_TYPE_P (op2_type))
+               || (JREFERENCE_TYPE_P (op1_type) && op2 == null_pointer_node)
               || (JREFERENCE_TYPE_P (op1_type) && JREFERENCE_TYPE_P (op2_type)
                   && (valid_ref_assignconv_cast_p (op1_type, op2_type, 1)
                       || valid_ref_assignconv_cast_p (op2_type,