OSDN Git Service

* parse.y (resolve_inner_class): Error if qualifier is a primitive
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Mar 2003 18:35:01 +0000 (18:35 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Mar 2003 18:35:01 +0000 (18:35 +0000)
type.

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

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

index 13fa86a..46f2950 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-13  Tom Tromey  <tromey@redhat.com>
+
+       * parse.y (resolve_inner_class): Error if qualifier is a primitive
+       type.
+
 2003-03-04  Andrew Haley  <aph@redhat.com>
 
         * gjavah.c (is_first_data_member): New global variable.
index 82293ed..b8abc0e 100644 (file)
@@ -3527,9 +3527,16 @@ resolve_inner_class (htab_t circularity_hash, tree cl, tree *enclosing,
            return decl;
        }
 
-      /* Now go to the upper classes, bail out if necessary. We will
+      /* Now go to the upper classes, bail out if necessary.  We will
         analyze the returned SUPER and act accordingly (see
-        do_resolve_class.) */
+        do_resolve_class).  */
+      if (JPRIMITIVE_TYPE_P (TREE_TYPE (local_enclosing))
+         || TREE_TYPE (local_enclosing) == void_type_node)
+       {
+         parse_error_context (cl, "Qualifier must be a reference");
+         local_enclosing = NULL_TREE;
+         break;
+       }
       local_super = CLASSTYPE_SUPER (TREE_TYPE (local_enclosing));
       if (!local_super || local_super == object_type_node)
         break;