OSDN Git Service

* config/i860/i860-protos.h: Remove the prototype for
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2
3         PR c++/13797
4         * pt.c (instantiate_class_template): Add an error_mark_node
5         check.
6         (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
7
8 2004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
9
10         PR c++/13701
11         * decl.c (finish_function): Move the call to
12         finish_fname_decls below the call to
13         finish_eh_spec_block.
14
15 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16
17         * optimize.c, typeck2.c: Update copyright.
18
19 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
20
21         * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
22         init.c, mangle.c, typeck.c: Update copyright.
23
24 2004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
25
26         * parser.c (cp_parser_class_specifier): Prevent garbage collection.
27
28 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
29
30         * Make-lang.in: Replace $(docdir) with doc.
31         (c++.info, c++.srcinfo): Dummy entry.
32         (c++.man, c++.srcman): New rules.
33         (c++.install-man): Revamp rule.
34
35 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
36
37         * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME, 
38         CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
39         immediate $(shell) instead of deferred backquote.
40
41 2004-01-19  Mark Mitchell  <mark@codesourcery.com>
42
43         PR c++/13651
44         * parser.c (cp_parser_postfix_expression): When encountering
45         incomplete type on left-hand side of "->" or ".", treat the entire
46         expression as erroneous.
47
48         PR c++/13592
49         * call.c (build_field_call): Remove.
50         (n_build_method_call): Likewise.
51         (build_method_call): Likewise.
52         (build_new_method_call): Do not call build_field_call.
53         * class.c (n_build_method_call): Remove.
54         (print_class_statistics): Do not print it.
55         * cp-tree.h (build_method_call): Remove declaration.
56         (finish_object_call_expr): Likewise.
57         (build_new_1): Do not use build_method_call.
58         * parser.c (cp_parser_postfix_expression): Use finish_call_expr
59         when the function appearing on the right-hand-side of "." or "->"
60         is not actually a function.
61         * pt.c (tsubst_copy_and_build): Likewise.
62         * semantics.c (finish_object_call_expr): Remove.
63
64 2004-01-18  Mark Mitchell  <mark@codesourcery.com>
65
66         PR c++/13710
67         * pt.c (tsubst): Use finish_typeof.
68
69 2004-01-16  Jason Merrill  <jason@redhat.com>
70
71         PR c++/11725
72         * except.c (build_throw): In a template, set
73         current_function_returns_abnormally.
74
75 2004-01-17  Fred Fish  <fnf@intrinsity.com>
76
77         PR c++/11895
78         * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
79         except don't call array_type_nelts() with a VECTOR_TYPE.
80
81 2004-01-16  Jan Hubicka  <jh@suse.cz>
82
83         * mangle.c (write_mangled_name): Remove inline modifier.
84
85 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
86
87         PR c++/13574
88         * decl.c (compute_array_index_type): Fix grammar in comment.
89         * init.c (build_zero_init): Handle zero-sized arrays correctly.
90
91         PR c++/13178
92         * call.c (name_as_c_string): Print conversion operator names
93         correctly.
94
95         PR c++/13478
96         * call.c (initialize_reference): Pass -1 for inner parameter to
97         convert_like_real.
98
99 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
100
101         PR c++/13407
102         * parser.c (cp_parser_base_specifier): Check for an invalid
103         keyword `typename' and emit an user-friendly error message.
104
105 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
106
107         PR pch/13361
108         * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
109         (handle_pragma_implementation): Likewise.
110
111 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
112
113         PR c++/9259
114         * typeck.c (build_class_member_access_expr): Allow to access members
115         of the currently open class.
116         (finish_class_member_access_expr): Likewise.
117
118 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
119
120         PR c++/13659
121         * name-lookup.c (validate_nonmember_using_decl): Take scope and
122         name by value, instead of computing them.
123         (do_local_using_decl, do_toplevel_using_decl): Add scope and name
124         arguments.  Pass them to validate_nonmember_using_decl.
125         * name-lookup.h (do_local_using_decl): Adjust.
126         (do_toplevel_using_decl): Likewise.
127         * parser.c (cp_parser_using_declaration): Likewise.
128         * pt.c (tsubst_expr): Likewise.
129
130 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
131
132         PR c++/13594
133         PR c++/13658
134         * name-lookup.c (qualified_lookup_using_namespace): Search
135         strongly-associated namespaces first, and only then try other
136         namespaces.
137
138 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
139
140         * Make-lang.in (c++.srcextra): Dummy entry.
141
142 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
143
144         PR c++/8856
145         * parser.c (cp_parser_template_name): Don't try to parse a 
146         conversion-function-id, as it cannot be a template-name.
147         (cp_parser_simple_type_specifier): Check for invalid template-ids
148         even after a built-in type.
149
150 2004-01-14  Jan Hubicka  <jh@suse.cz>
151
152         PR c++/12850
153         * pt.c (instantiate_decl):  Do not increase function_depth.
154
155 2004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
156
157         PR c++/9021
158         PR c++/11005
159         * parser.c (cp_parser_elaborated_type_specifier): Warn about
160         attributes and discard.
161         * decl.c (xref_tag): Don't overwite existing attributes with
162         NULL_TREE.
163
164 2004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
165
166         PR c++/12335
167         * parser.c (cp_parser_lookup_name): Return error_mark_node if there
168         is no destructor while looking up a BIT_NOT_EXPR.
169
170 2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
171
172         * cxxfilt.c: Remove unused file.
173
174 2004-01-14  Jan Hubicka  <jh@suse.cz>
175
176         Partial fix to PR c++/12850
177         * decl2.c (mark_used): Do not proactively instantiate templates
178         when compiling in unit-at-a-time or not optimizing.
179         * optimize.c (maybe_clone_body): Do not increase function depth.
180
181 2004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
182
183         PR c++/13474
184         * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
185
186 2003-01-12  Steven Bosscher  <stevenb@suse.de>
187
188         PR c++/13558
189         * parser.c (cp_parser_member_declaration): Any non-type is also
190         not a class or a function.
191
192 2004-01-12  Jason Merrill  <jason@redhat.com>
193
194         PR c++/12815
195         * class.c (build_base_path): Do not mark vtable references as
196         TREE_CONSTANT.
197         (build_vtbl_ref_1): Likewise.
198
199 2004-01-12  Richard Henderson  <rth@redhat.com>
200
201         PR opt/10776
202         * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
203         (store_init_value): Use it.
204         * decl.c (check_initializer): Expect full initialization code
205         from store_init_value.
206         * init.c (expand_aggr_init_1): Likewise.
207         * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
208
209 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
210
211         * class.c (layout_class_type): For non-POD class types, also copy
212         the DECL_SIZE and DECL_MODE of fields to the base class type.
213
214 2004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
215
216         PR c++/13289
217         * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
218         calling regenerate_decl_from_template.
219
220 2004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
221
222         PR c++/4100
223         * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
224         decl-specifier occurring along with a class definition.
225
226 2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
227
228         * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
229         clauses to comments describing declares_class_or_enum.
230         (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
231         false.
232
233 2004-01-12  Jan Hubicka  <jh@suse.cz>
234
235         * pt.c (for_each_template_parm): Do not check for duplicates.
236         (for_each_template_parm): Use walk_tree duplicate checking code.
237
238 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
239
240         PR c++/3478
241         * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
242         is error_mark_node, don't add any more decl_specs.
243         (cp_parser_init_declarator): After committing to a declaration, if
244         the decl_specifiers start with error_mark_node, issue an error and
245         change the type to "int".
246
247 2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
248
249         PR bootstrap/7817
250         * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
251
252 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
253
254         DR 337
255         PR c++/9256
256         * pt.c (tsubst): Substitution must fail if we are attempting to 
257         create an array with element type that is an abstract class type.
258         * decl.c (cp_finish_decl): Strip pointers and array types recursively
259         before calling abstract_virtuals_error.
260
261 2004-01-09  Alexandre Oliva  <aoliva@redhat.com>
262
263         * name-lookup.c (qualified_lookup_using_namespace): Consider
264         strong using directives even if we've already found a binding.
265
266 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
267
268         * cp-tree.h (cxx_expand_expr): Change prototype.
269         * expr.c (cxx_expand_expr): Add alt_rtl parameter.
270
271 2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
272
273         PR c++/12573
274         * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
275         looking into them recursively. They can be there because of the
276         new __offsetof__ extension.
277
278 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
279
280         * parser.c (cp_parser_save_member_function_body): Mark the
281         definition static.
282
283 2004-01-05  Mark Mitchell  <mark@codesourcery.com>
284
285         PR c++/13057
286         * class.c (build_clone): Copy type attributes from the original
287         function to the clone.
288
289         PR c++/12815
290         * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
291         references as constant.
292
293         PR c++/12132
294         * parser.c (cp_parser_explicit_instantiation): Improve error
295         recovery.
296         (cp_parser_require): Improve indication of the error location.
297
298         PR c++/13451
299         * parser.c (cp_parser_class_head): Reorder logic to check for
300         invalid qualification.
301
302 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
303
304         PR c++/13157
305         * name-lookup.c (lookup_using_namespace): Remove spacesp
306         parameter.
307         (unqualified_namespace_lookup): Likewise.
308         (lookup_qualified_name): Adjust accordingly.
309         (lookup_name_real): Likewise.
310         (lookup_arg_dependent): Do not eliminate the namespace of the
311         functions found by unqualified name lookup unless that is the
312         current namespace.
313
314 2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
315
316         * semantics.c (push_deferring_access_checks): Fix format.
317         (resume_deferring_access_checks): Likewise.
318         (stop_deferring_access_checks): Likewise.
319         (pop_deferring_access_checks): Likewise.
320         (get_deferred_access_checks): Likewise.
321         (pop_to_parent_deferring_access_checks): Likewise.
322         (perform_deferred_access_checks): Likewise.
323         (perform_or_defer_access_check): Likewise.
324
325 2004-01-04  Richard Henderson  <rth@redhat.com>
326
327         * call.c (build_over_call): Don't create a save_expr of an
328         aggregate, but rather its address.
329
330 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
331
332         PR c++/13529
333         * parser.c (cp_parser_postfix_expression): Allow "." to appear in
334         an offsetof expression.
335
336         * parser.c (cp_parser_parameter_declaration): Fix comment.
337
338         PR c++/12226
339         * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
340         (reference_binding): Set it when appropriate.
341         (build_temp): New function, split out from ...
342         (convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
343         (initialize_reference): Likewise.
344
345         PR c++/13536
346         * parser.c (cp_parser): Add in_type_id_in_expr_p.
347         (cp_parser_new): Initialize it.
348         (cp_parser_postfix_expression): Set it.
349         (cp_parser_sizeof_operand): Likewise.
350         (cp_parser_parameteR_declaration): Do not commit early to tenative
351         parsers when in_type_id_in_expr_p is set.
352
353 2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
354
355         PR c++/13094
356         * parser.c (cp_parser_template_argument): Don't call
357         make_unbound_class_template directly.
358         (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
359         UNBOUND_CLASS_TEMPLATE tree node.
360
361 2004-01-02  Richard Sandiford  <rsandifo@redhat.com>
362
363         PR target/12729
364         * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
365
366 2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
367
368         PR c++/13520
369         * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
370         (DECL_FUNCTION_TEMPLATE_P): Use it.
371         (DECL_CLASS_TEMPLATE_P): Likewise.
372         * parser.c (cp_parser_lookup_name): Add is_template parameter.
373         (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
374         (cp_parser_template_name): Likewise.
375         (cp_parser_elaborated_type_specifier): Likewise.
376         (cp_parser_namespace_name): Likewise.
377         (cp_parser_class_name): Likewise.
378         (cp_parser_lookup_name_simple): Likewise.
379
380 See ChangeLog.3 for earlier changes.