diff options
author | Jason Merrill <jason@casey.cygnus.com> | 1999-12-15 01:34:16 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1999-12-14 20:34:16 -0500 |
commit | d67cdbc3fd9c9e679cd44f6dd64ea5c6b325cbb5 (patch) | |
tree | 710cfe44b75b8c89261643cec26ad7a6f260362b /gcc/cp | |
parent | 08b962b08b68b6568cf689d8935c9aa5d410a228 (diff) | |
download | gcc-d67cdbc3fd9c9e679cd44f6dd64ea5c6b325cbb5.zip gcc-d67cdbc3fd9c9e679cd44f6dd64ea5c6b325cbb5.tar.gz gcc-d67cdbc3fd9c9e679cd44f6dd64ea5c6b325cbb5.tar.bz2 |
error.c (dump_decl): operator==, not operator ==.
* 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.
From-SVN: r30935
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/cp/decl.c | 17 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 9 | ||||
-rw-r--r-- | gcc/cp/error.c | 8 |
4 files changed, 35 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3de530b..0614ab0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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 ... diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 9849874..3f7fe2a 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -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 diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index ca142a8..dbf7ff3 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -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] diff --git a/gcc/cp/error.c b/gcc/cp/error.c index e6d3084..61d1270 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -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; } |