OSDN Git Service

* error.c (dump_decl): operator==, not operator ==.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Dec 1999 01:34:16 +0000 (01:34 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Dec 1999 01:34:16 +0000 (01:34 +0000)
        (op_to_string): Likewise.

        * decl.c (compute_array_index_type): Handle null name.

        * decl2.c (ambiguous_decl): Fix to match comment.
        (lookup_using_namespace): Adjust.

        * decl2.c (import_export_class): Don't ignore dllimport.

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

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/error.c

index 3de530b..0614ab0 100644 (file)
@@ -1,3 +1,15 @@
+1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
+
+       * error.c (dump_decl): operator==, not operator ==.
+       (op_to_string): Likewise.
+
+       * decl.c (compute_array_index_type): Handle null name.
+
+       * decl2.c (ambiguous_decl): Fix to match comment.
+       (lookup_using_namespace): Adjust.
+
+       * decl2.c (import_export_class): Don't ignore dllimport.
+
 1999-12-14  Mark Mitchell  <mark@codesourcery.com>
 
        * class.c (check_field_decls): Split out from ...
index 9849874..3f7fe2a 100644 (file)
@@ -8743,7 +8743,10 @@ compute_array_index_type (name, size)
       && TREE_CODE (TREE_TYPE (size)) != ENUMERAL_TYPE
       && TREE_CODE (TREE_TYPE (size)) != BOOLEAN_TYPE)
     {
-      cp_error ("size of array `%D' has non-integer type", name);
+      if (name)
+       cp_error ("size of array `%D' has non-integer type", name);
+      else
+       cp_error ("size of array has non-integer type");
       size = integer_one_node;
     }
 
@@ -8762,14 +8765,22 @@ compute_array_index_type (name, size)
       /* An array must have a positive number of elements.  */
       if (INT_CST_LT (size, integer_zero_node))
        {
-         cp_error ("size of array `%D' is negative", name);
+         if (name)
+           cp_error ("size of array `%D' is negative", name);
+         else
+           cp_error ("size of array is negative");
          size = integer_one_node;
        }
       /* Except that an extension we allow zero-sized arrays.  We
         always allow them in system headers because glibc uses 
         them.  */
       else if (integer_zerop (size) && pedantic && !in_system_header)
-       cp_pedwarn ("ANSI C++ forbids zero-size array `%D'", name);
+       {
+         if (name)
+           cp_pedwarn ("ANSI C++ forbids zero-size array `%D'", name);
+         else
+           cp_pedwarn ("ANSI C++ forbids zero-size array");
+       }
     }
 
   /* Compute the index of the largest element in the array.  It is
index ca142a8..dbf7ff3 100644 (file)
@@ -2458,9 +2458,10 @@ import_export_class (ctype)
 #ifdef VALID_MACHINE_TYPE_ATTRIBUTE
   /* FIXME this should really use some sort of target-independent macro.  */
   if (lookup_attribute ("dllimport", TYPE_ATTRIBUTES (ctype)))
-    import_export = -1;
+    /* Use -2 so we survive the MULTIPLE_SYMBOL_SPACES check below.  */
+    import_export = -2;
   else if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (ctype)))
-    import_export = 1;
+    import_export = 2;
 #endif
 
   /* If we got -fno-implicit-templates, we import template classes that
@@ -4264,7 +4265,7 @@ ambiguous_decl (name, old, new, flags)
                }
               cp_error_at ("  also declared as `%#D' here", val);
             }
-         return error_mark_node;
+         BINDING_VALUE (old) = error_mark_node;
        }
     }
   /* ... and copy the type. */
@@ -4312,7 +4313,7 @@ lookup_using_namespace (name, val, usings, scope, flags, spacesp)
        /* Resolve ambiguities. */
        val = ambiguous_decl (name, val, val1, flags);
       }
-  return val != error_mark_node;
+  return BINDING_VALUE (val) != error_mark_node;
 }
 
 /* [namespace.qual]
index e6d3084..61d1270 100644 (file)
@@ -945,7 +945,7 @@ dump_decl (t, flags)
        else if (IDENTIFIER_OPNAME_P (t))
          {
            const char *name_string = operator_name_string (t);
-           OB_PUTS ("operator ");
+           OB_PUTS ("operator");
            OB_PUTCP (name_string);
          }
        else
@@ -1276,7 +1276,7 @@ dump_function_name (t, flags)
   else if (IDENTIFIER_OPNAME_P (name))
     {
       const char *name_string = operator_name_string (name);
-      OB_PUTS ("operator ");
+      OB_PUTS ("operator");
       OB_PUTCP (name_string);
     }
   else
@@ -2205,7 +2205,7 @@ decl_to_string (decl, verbose)
      int verbose;
 {
   enum tree_string_flags flags = 0;
-  
+
   if (TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == RECORD_TYPE
       || TREE_CODE (decl) == UNION_TYPE || TREE_CODE (decl) == ENUMERAL_TYPE)
     flags = TS_AGGR_TAGS;
@@ -2312,7 +2312,7 @@ op_to_string (p, v)
   if (p == 0)
     return "{unknown}";
   
-  strcpy (buf + 9, opname_tab [p]);
+  strcpy (buf + 8, opname_tab [p]);
   return buf;
 }