(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
+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 ...
&& 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;
}
/* 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
#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
}
cp_error_at (" also declared as `%#D' here", val);
}
- return error_mark_node;
+ BINDING_VALUE (old) = error_mark_node;
}
}
/* ... and copy the type. */
/* Resolve ambiguities. */
val = ambiguous_decl (name, val, val1, flags);
}
- return val != error_mark_node;
+ return BINDING_VALUE (val) != error_mark_node;
}
/* [namespace.qual]
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
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
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;
if (p == 0)
return "{unknown}";
- strcpy (buf + 9, opname_tab [p]);
+ strcpy (buf + 8, opname_tab [p]);
return buf;
}