]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/gcc/cp/ChangeLog
merge fix for boot-time hang on centos' xen
[FreeBSD/FreeBSD.git] / contrib / gcc / cp / ChangeLog
1 2006-03-05  Release Manager
2
3         * GCC 3.4.6 released.
4
5 2006-02-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6
7         PR c++/26291
8         * decl.c (grok_op_properties): Check for ellipsis in arguments of
9         operators.
10
11 2006-02-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12
13         PR c++/26070
14         * decl.c (grokdeclarator): Clear RID_STATIC together with staticp.
15
16 2006-02-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17
18         Backport:
19         2005-12-22  Mark Mitchell  <mark@codesourcery.com>
20
21         PR c++/25369
22         * pt.c (tsubst_copy): Call mark_used on the member referenced by an
23         OFFSET_REF.
24         * decl2.c (mark_used): Accept BASELINKs.
25
26 2006-02-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
27
28         Backport:
29         2005-12-19  Mark Mitchell  <mark@codesourcery.com>
30
31         PR c++/24915
32         * class.c (add_method): Do not treat templates as identical unless
33         their return types are the same.
34
35 2006-02-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
36
37         Backport:
38         2005-12-19  Mark Mitchell  <mark@codesourcery.com>
39
40         PR c++/24278
41         * init.c (expand_member_init): Print messages about baseclasses
42         using %T rather than %D.
43
44 2006-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
45
46         PR c++/16829
47         * decl.c (start_preparsed_function): Check default arguments
48         unconditionally.
49         * name-lookup.c (pushdecl_maybe_friend): Check default arguments
50         of all functions and function templates.
51         * parser.c (cp_parser_late_parsing_default_args): Check default
52         arguments.
53         * decl2.c (check_default_args): Set missing default arguments to
54         error_mark_node.
55
56 2006-01-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
57
58         PR c++/25854
59         * pt.c (maybe_process_partial_specialization): Return early on
60         error_mark_node.
61
62 2005-12-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
63
64         PR c++/20552
65         Backport:
66         2004-03-08  Mark Mitchell  <mark@codesourcery.com>
67
68         * decl.c (duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
69
70 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
71
72         PR c++/19397
73         PR c++/19762
74         PR c++/19764
75         * parser.c (cp_parser_declarator_id): Check for error_mark_node
76         before building a SCOPE_REF.
77
78 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
79
80         Backport:
81         2005-10-20  Mark Mitchell  <mark@codesourcery.com>
82
83         PR c++/22618
84         * search.c (accessible_p): Check access in the outermost set of
85         template parameters.
86
87 2005-12-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
88
89         Backport:
90         2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
91
92         PR c++/21383
93         * name-lookup.c (arg_assoc): Template args can be null in a
94         template-id-expr.
95
96 2005-12-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
97
98         Backport:
99         2005-10-13  Mark Mitchell  <mark@codesourcery.com>
100
101         PR c++/22352
102         * pt.c (tsubst_template_parms): Set processing_template_decl while
103         processing the parameters.
104         (tsubst_decl): Set processing_template_decl when substituting into
105         a TEMPLATE_DECL.
106
107 2005-12-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
108
109         Backport:
110         2005-10-13  Mark Mitchell  <mark@codesourcery.com>
111
112         PR c++/22464
113         * semantics.c (finish_id_expression): Issue errors about uses of
114         local variables in containing functions even in templates.
115
116 2005-12-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
117
118         Backport:
119         2005-10-13  Mark Mitchell  <mark@codesourcery.com>
120
121         PR c++/23307
122         * pt.c (push_template_decl_real): Complain about attempts to
123         declare template variables.
124
125 2005-11-30  Release Manager
126
127         * GCC 3.4.5 released.
128
129 2005-11-23  Jakub Jelinek  <jakub@redhat.com>
130
131         PR c++/21983
132         * class.c (find_final_overrider): Move diagnostic about no unique final
133         overrider to...
134         (update_vtable_entry_for_fn): ... here.
135
136 2005-11-15  Jason Merrill  <jason@redhat.com>
137
138         PR c++/24580
139         * method.c (locate_copy): Also use skip_artificial_parms here.
140         (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
141         for RECORD_TYPE.
142
143 2005-11-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
144
145         Backport from mainline:
146         2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
147
148         PR c++/23797
149         * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
150         TYPE_DECL.  Use dependent_type_p to check type.
151         * pt.c (uses_template_parms_p): Use dependent_type_p for a
152         TYPE_DECL.
153         (type_dependent_expression_p): Assert we've not been given a
154         TYPE_DECL.
155
156 2005-11-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
157
158         PR c++/19253
159         PR c++/22172
160         Backport from mainline:
161         2005-11-02  Mark Mitchell  <mark@codesourcery.com>
162
163         * parser.c (cp_parser_postfix_expression): Use
164         cp_parser_elaborated_type_specifier to handle typename-types in
165         functional casts.
166         (cp_parser_enclosed_argument_list): Skip ahead to the end of the
167         template argument list if the closing ">" is not found.
168
169 2005-11-14  Jason Merrill  <jason@redhat.com>
170
171         PR c++/24580
172         * method.c (locate_ctor): Skip all artificial parms, not just
173         'this'.
174
175 2005-10-28  Josh Conner  <jconner@apple.com>
176
177         PR c++/22153
178         * parser.c (cp_parser_member_declaration): Detect and handle
179         a template specialization.
180
181 2005-10-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
182
183         PR c++/22508
184         * init.c (build_new_1): Remove misleading comment.
185
186 2005-10-12  Paolo Bonzini  <bonzini@gnu.org>
187
188         PR c++/24052
189         * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
190         an ADDR_EXPR of a LABEL_DECL as &&.
191
192 2005-10-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
193
194         Backport:
195         2004-09-23  Andrew Pinski  <pinskia@physics.uc.edu>
196         PR c++/17618
197         * cvt.c (cp_convert_to_pointer): Return early when the type is
198         an error_mark_node.
199
200         2004-05-22  Roger Sayle  <roger@eyesopen.com>
201         * name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by
202         returning when TREE_TYPE is error_mark_node.
203         * typeck.c (require_complete_type): Return error_mark_node if
204         value's type is an error_mark_node.
205
206         2004-11-02  Mark Mitchell  <mark@codesourcery.com>
207         PR c++/18177
208         * typeck.c (build_const_cast): Use error_operand_p.
209
210 2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
211
212         * call.c (resolve_args): Remove redundant test.
213
214 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
215
216         PR c++/23965
217         * call.c (resolve_args): Return error_mark_node on arguments
218         whose TREE_TYPE is error_mark_node.
219
220 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
221
222         PR c++/17609
223         Backport:
224
225         2004-03-08  Mark Mitchell  <mark@codesourcery.com>
226         * lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
227         in the innermost scope, rather than at namespace scope.
228         * name-lookup.c (push_local_binding): Give it external linkage.
229         * name-lookup.h (push_local_binding): Declare it.
230
231 2005-09-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
232
233         Backport:
234
235         2004-11-27  Mark Mitchell  <mark@codesourcery.com>
236         PR c++/18368
237         * parser.c (cp_parser_check_for_definition_in_return_type): Take
238         the defined type as a parameter, and inform the user about the
239         possibility of a missing semicolon.
240         (cp_parser_explicit_instantiation): Adjust call to
241         cp_parser_check_for_definition_in_return_type.
242         (cp_parser_init_declarator): Likewise.
243         (cp_parser_member_declaration): Likewise.
244
245 2005-09-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
246
247         PR c++/18803
248         Revert:
249
250         2005-09-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
251         PR c++/18445
252         * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
253         unknown_type as non matching.
254         * pt.c (build_non_dependent_expr): Do not build a
255         NON_DEPENDENT_EXPR for a VAR_DECL.
256
257 2005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
258
259         Backport:
260
261         2004-12-14  Mark Mitchell  <mark@codesourcery.com>
262         PR c++/18738
263         * decl.c (make_typename_type): Do not handle namespace-scoped
264         names here.
265         (tag_name): Handle typename_type.
266         (check_elaborated_type_specifier): Handle typenames.
267         * parser.c (cp_parser_diagnose_invalid_type_name): Do not call
268         make_typename_type for namespace-scoped names here.
269         (cp_parser_elaborated_type_specifier): Use
270         cp_parser_diagnose_invalid_type_name.
271
272 2005-09-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
273
274         Backport:
275
276         2005-08-26  Mark Mitchell  <mark@codesourcery.com>
277         PR c++/19004
278         * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
279         (type_dependent_expression_p): Allow BASELINKs whose associated
280         functions are simply a FUNCTION_DECL.
281
282 2005-09-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
283
284         PR c++/22233
285         * pt.c (push_template_decl_real): Return error_mark_node if the
286         number of template parameters does not match previous definition.
287         * decl.c (start_function): Handle error_mark_node returned by
288         push_template_decl.
289
290 2005-09-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
291
292         Backport:
293
294         2004-11-25  Mark Mitchell  <mark@codesourcery.com>
295         PR c++/18466
296         * decl.c (grokvardecl): Keep track of whether or not a there was
297         explicit qualification.
298         * name-lookup.c (set_decl_namespace): Complain about explicit
299         qualification of a name within its own namespace.
300
301 2005-09-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
302
303         Backport:
304
305         2004-11-25  Mark Mitchell  <mark@codesourcery.com>
306         PR c++/18445
307         * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
308         unknown_type as non matching.
309         * pt.c (build_non_dependent_expr): Do not build a
310         NON_DEPENDENT_EXPR for a VAR_DECL.
311
312 2005-09-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
313
314         Backport:
315
316         2004-11-27  Mark Mitchell  <mark@codesourcery.com>
317         PR c++/18512
318         * parser.c (cp_parser_postfix_expression): Robustify.
319
320 2005-09-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
321
322         Backport:
323
324         2004-11-25  Mark Mitchell  <mark@codesourcery.com>
325         PR c++/18545
326         * typeck.c (check_return_expr): Robustify.
327
328 2005-09-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
329
330         Backport:
331
332         2005-02-22  Mark Mitchell  <mark@codesourcery.com>
333         PR c++/20153
334         * decl2.c (build_anon_union_vars): Add type parameter.
335         (finish_anon_union): Pass it.
336
337         2005-07-28  Mark Mitchell  <mark@codesourcery.com>
338         PR c++/22545
339         * call.c (add_builtin_candidate): Adjust for changes in
340         representation of pointer-to-member types.
341
342 2005-09-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
343
344         PR c++/13377
345         * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
346         lookup_name_real on final parse.
347
348 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
349
350         PR c++/23586
351         * parser.c (cp_parser_namespace_name): Move diagnostic for
352         invalid namespace-name to here from ...
353         * name-lookup.c (do_namespace_alias): ... here and ...
354         (do_using_directive): ... here.  Remove dead code.
355
356 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
357
358         PR c++/23639
359         * semantics.c (qualified_name_lookup_error): Do not complain again
360         on invalid scope.
361
362 2005-07-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
363
364         Backport:
365
366         2004-09-16  Mark Mitchell  <mark@codesourcery.com>
367         PR c++/16002
368         * parser.c (cp_parser_simple_declaration): Commit to tentative
369         parses after seeing a decl-specifier.
370         (cp_parser_simple_declaration): Eliminate spurious message.
371         (cp_parser_init_declarator): Adjust error message.
372
373         2005-06-17  Geoffrey Keating  <geoffk@apple.com>        
374         PR c++/17413
375         * pt.c (type_unification_real): Apply template type deduction even
376         to procedure parameters that are not dependent on a template
377         parameter.
378
379         2004-11-02  Mark Mitchell  <mark@codesourcery.com>
380         PR c++/18124
381         * parser.c (cp_parser_type_parameter): Robustify.
382         PR c++/18155
383         * parser.c (cp_parser_single_declaration): Disallow template
384         typedefs.
385         (cp_parser_typedef_p): New function.
386
387         2004-12-21  Mark Mitchell  <mark@codesourcery.com>
388         PR c++/18378
389         * call.c (convert_like_real): Do not permit the use of a copy
390         constructor to copy a packed field.
391
392 2005-07-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
393
394         PR c++/19208
395         * pt.c (tsubst): Use fold_non_dependent_expr to fold array domains.
396
397 2005-06-14  Mark Mitchell  <mark@codesourcery.com>
398
399         PR c++/21987
400         * decl.c (grok_op_properties): Add missing warn_conversion check.
401
402 2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>
403
404         PR c++/20789
405         * decl.c (cp_finish_decl): Clear runtime runtime initialization if
406         in-class decl's initializer is bad.
407
408 2005-06-10  Aldy Hernandez  <aldyh@redhat.com>
409
410         PR c++/10611
411         * cvt.c (build_expr_type_conversion): Same.
412         * typeck.c (build_binary_op): Handle vectors.
413         (common_type): Same.
414         (type_after_usual_arithmetic_conversions): Same.
415         * testsuite/g++.dg/conversion/simd2.C: New.
416
417 2005-06-08  Nathan Sidwell  <nathan@codesourcery.com>
418
419         PR c++/21903
420         * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
421         * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
422         argument to any early instantiations.
423         * pt.c (tsubst_arg_types): Chain early instantiation of default
424         arg.
425
426         PR c++/19884
427         * pt.c (check_explicit_specialization): Make sure namespace
428         binding lookup found an overloaded function.
429         (lookup_template_function): Just assert FNS is an overloaded
430         function.
431
432         PR c++/19608
433         * parser.c (cp_parser_late_parsing_for_member): Use
434         current_function_decl as scope to push to and from.
435         testsuite:
436
437 2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
438
439         PR c++/20563
440         * parser.c (cp_parser_label_declaration): Deal with invalid/missing
441         identifiers.
442
443 2005-06-03  Mark Mitchell  <mark@codesourcery.com>
444
445         PR c++/21853
446         * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
447         the pointed-to type for a pointer-to-member.
448
449 2005-06-03  Mark Mitchell  <mark@codesourcery.com>
450
451         PR c++/21336
452         * cp-tree.h (grok_op_properties): Remove friendp parameter.
453         * decl.c (grokfndecl): Adjust call.
454         (grok_op_properties): Determine the class of which the function is
455         a member by looking at its DECL_CONTEXT, not current_class_type.
456         * pt.c (tsubst_decl): Adjust call to grok_op_properties.
457
458 2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
459
460         PR c++/21768
461         * pt.c (redeclare_class_template): Change error message according
462         to coding conventions.
463
464 2005-05-19  Release Manager
465
466         * GCC 3.4.4 released.
467
468 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
469
470         PR c++/21427
471         Backport 2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
472         * class.c (update_vtable_entry_for_fn): Don't crash on invalid
473         covariancy. 
474
475         * cp-tree.h (THUNK_TARGET): Expand comment.
476         * method.c (use_thunk): Make sure we also use the target, if that
477         is a thunk.
478
479         Backport 2005-02-11  Nathan Sidwell  <nathan@codesourcery.com>
480         * class.c (update_vtable_entry_for_fn): Walk the covariant's binfo
481         chain rather than using lookup_base.
482
483 2005-05-04  Mark Mitchell  <mark@codesourcery.com>
484
485         Backport:
486         2004-12-21  Mark Mitchell  <mark@codesourcery.com>
487         PR c++/19034
488         * tree.c (cp_tree_equal): Handle OVERLOAD.
489
490 2005-05-02  Mark Mitchell  <mark@codesourcery.com>
491
492         Revert:
493         2005-05-01  Mark Mitchell  <mark@codesourcery.com>
494         * typeck.c (unary_complex_lvalue): In a template, always refuse
495         simplifications.
496
497 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
498
499         Backport:
500         2005-02-22  Mark Mitchell  <mark@codesourcery.com>
501         PR c++/19991
502         * init.c (decl_constant_value): Iterate if the value of a decl
503         is itself a constant.
504
505 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
506
507         Backport:
508         2004-12-22  Mark Mitchell  <mark@codesourcery.com>
509         PR c++/18464
510         * call.c (build_this): In templates, do not bother with
511         build_unary_op.
512         * typeck.c (unary_complex_lvalue): In a template, always refuse
513         simplifications.
514
515 2005-04-25  Roger Sayle  <roger@eyesopen.com>
516             Mark Mitchell  <mark@codesourcery.com>
517
518         PR c++/20995
519         Partial backport from mainline.
520         2004-09-27  Mark Mitchell  <mark@codesourcery.com>
521         * tree.c (fold_if_not_in_template): New function.
522         * cp-tree.h (fold_if_not_in_template): Prototype here.
523         * call.c (build_conditional_expr): Use fold_if_not_in_template.
524         * typeck.c (build_binary_op): Likewise.
525
526 2005-04-16  Mark Mitchell  <mark@codesourcery.com>
527
528         PR c++/21025
529         * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
530         which sizeof/alignof is dependent, rather than just whether we are
531         processing_template_decl.
532         
533 2005-04-06  Jason Merrill  <jason@redhat.com>
534
535         PR c++/19312
536         * tree.c (stabilize_init): Don't bother trying to stabilize
537         something with no side-effects.
538
539 2005-04-04  Mark Mitchell  <mark@codesourcery.com>
540
541         PR c++/20679
542         * parser.c (cp_parser_template_name): Fix thinko.
543
544 2005-04-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
545
546         PR c++/18644
547         * call.c (build_new_op): Remove check for -Wsynth.
548
549 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
550
551         PR c++/20147
552         * semantics.c (finish_stmt_expr_expr): Return immediately
553         if error_operand_p (expr).
554
555 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
556
557         PR c++/20240
558         * decl.c (decls_match): Compare context of VAR_DECL.
559
560 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
561
562         PR c++/20333
563         * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
564         Check the return value of cp_parser_nested_name_specifier.
565
566 2005-03-08  Mark Mitchell  <mark@codesourcery.com>
567
568         PR c++/20142
569         * init.c (build_vec_init): When determining whether or not the
570         element type has an asignment operator, look through all array
571         dimensions. 
572
573 2005-03-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
574
575         PR c++/19311
576         * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
577         * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
578         for OFFSET_TYPE.
579         * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
580         Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
581         (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
582         template.
583
584 2005-03-02  Alexandre Oliva  <aoliva@redhat.com>
585
586         * name-lookup.c (push_overloaded_decl): Don't error if the new
587         decl matches the old one.
588         * decl.c (redeclaration_error_message): Likewise.
589
590 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
591
592         PR c++/20175
593         * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
594         initializes a char/wchar_t array.
595
596 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
597
598         PR c++/20028
599         * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
600         template along with TYPE_SIZE.
601
602 2005-02-14  Mark Mitchell  <mark@codesourcery.com>
603
604         * decl.c (reshape_init): Use explicit quotes in error message
605         instead of %q.
606         
607 2005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
608
609         PR c++/14479
610         PR c++/19487
611         * pt.c (maybe_check_template_type): Remove.
612         * cp-tree.h (maybe_check_template_type): Remove prototype.
613         * name-lookup.c (maybe_process_template_type_declaration): Don't
614         use maybe_check_template_type.
615
616 2005-02-10  Mark Mitchell  <mark@codesourcery.com>
617
618         PR c++/19755
619         * decl.c (reshape_init): Issue warnings about missing braces.
620
621 2005-02-09  Mark Mitchell  <mark@codesourcery.com>
622
623         * parser.c (cp_parser_unqualified_id): Initialize type_decl.
624
625         PR c++/19787
626         * call.c (initialize_reference): Robustify.
627
628         PR c++/19762
629         * parser.c (cp_parser_unqualified_id): Avoid creating destructor
630         names with invalid types.
631
632         PR c++/19739
633         * parser.c (cp_parser_attributes_list): Allow empty lists.
634
635 2005-02-08  Mark Mitchell  <mark@codesourcery.com>
636
637         PR c++/19733
638         * cvt.c (convert_to_void): Issue errors about pseudo-destructor
639         expressions.
640
641 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
642
643         PR c++/18757
644         PR c++/19366
645         PR c++/19499
646         * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
647         Issue an error when creating the template id.
648         * pt.c (fn_type_unification): Return early if the explicit
649         template arg list is an error_mark_node.
650
651 2005-01-27  J"orn Rennecke <joern.rennecke@st.com>
652
653         PR c++/18370
654         * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
655
656 2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
657
658         PR c++/19375
659         * semantics.c (finish_id_expression): Disable access checking for
660         already lookuped FIELD_DECL.
661
662 2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
663
664         PR c++/19258
665         * parser.c (cp_parser_late_parsing_default_args): Handle friend
666         defined in class.
667         * pt.c (push_access_scope, pop_access_scope): Likewise.
668
669 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
670
671         PR c++/19263
672         * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
673         of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
674         Store code to *pcode.
675
676 2004-12-28  Jakub Jelinek  <jakub@redhat.com>
677
678         PR c++/18384, c++/18327
679         * decl.c (reshape_init_array): Use UHWI type for max_index_cst
680         and index.  Convert max_index to size_type_node if it isn't
681         host_integerp (, 1).
682
683 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
684
685         PR c++/18962
686         * pt.c (check_explicit_specialization): Use the argument list from
687         the definition in a template function specialization definition.
688
689 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
690
691         PR c++/18757
692         * parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
693         if parsing failed.
694
695 2004-12-17  Nathan Sidwell  <nathan@codesourcery.com>
696
697         PR c++/18975
698         * method.c (do_build_copy_constructor): Refactor. Don't const
699         qualify a mutable field.
700         (do_build_assign_ref): Likewise.
701
702 2004-12-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
703
704         PR c++/18731
705         * parser.c (cp_parser_class_head): Reject typedef-name in class head.
706
707 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
708
709         PR c++/16681
710         * init.c (build_zero_init): Build a RANGE_EXPR for an array
711         initializer.
712
713 2004-12-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
714
715         PR c++/18100
716         * name-lookup.c (push_class_level_binding): Diagnose nested
717         class template with the same name as enclosing class.
718
719 2004-12-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
720
721         PR c++/17011, c++/17971
722         * pt.c (tsubst_copy) <FIELD_DECL case>: Check and diagnose
723         invalid field.
724         (tsubst_copy_and_build) <COMPONENT_REF case>: Check
725         error_mark_node after member substitution.
726         * semantics.c (finish_id_expression): Call
727         finish_non_static_data_member for dependent FIELD_DECL.
728
729 2004-12-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
730
731         PR c++/18123
732         * parser.c (cp_parser_type_specifier): Don't create new enum
733         type if it is not in the form 'enum [identifier] { [...] };'.
734         Catch template declaration of enum. 
735
736 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
737
738         PR c++/17431
739         * call.c (standard_conversion): Add FLAGS parameter. Do not allow
740         derived to base conversion when checking constructor
741         accessibility.
742         (implicit_conversion): Pass FLAGS to standard_conversion.
743         (check_constructir_callable): Disallow conversion functions.
744
745 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
746
747         PR c++/18389
748         * decl.c (start_decl): Make sure to set *pop_scope_p.  Return
749         error_mark_node to indicate errors.
750
751         PR c++/18436
752         * pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
753         unqualified name resolves to a member function.
754
755         PR c++/18407
756         * pt.c (tsubst_copy_and_build): Handle qualified names used from a
757         derived class correctly.
758
759 2004-11-04  Release Manager
760
761         * GCC 3.4.3 released.
762
763 2004-10-31  Mark Mitchell  <mark@codesourcery.com>
764
765         PR c++/15172
766         * typeck2.c (store_init_value): Use split_nonconstant_init even
767         for types that require construction.
768         
769 2004-10-28  Mark Mitchell  <mark@codesourcery.com>
770
771         PR c++/17132
772         * pt.c (instantiate_class_template): Increment
773         processing_template_decl when substituting into a member class
774         template.
775
776 2004-10-27  Mark Mitchell  <mark@codesourcery.com>
777
778         PR c++/18140
779         * parser.c (cp_parser_next_token_ends_template_argument_p): Do not
780         include ">>".
781
782 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
783
784         PR c++/13560
785         * error.c (cp_error_at): Output the context as it might be
786         different file as the other location.
787
788 2004-10-26  Mark Mitchell  <mark@codesourcery.com>
789
790         PR c++/18093
791         * search.c (current_scope): Return the innermost non-block scope,
792         not the innermost non-block, non-namespace scope.
793         (at_namespace_scope_p): Adjust accordingly.
794         (dfs_accessible_post): Do not pass namespaces to is_friend.
795         (dfs_walk_once_accessible_r): Likewise.
796         * decl.c (grokvardecl): Adjust call to current_scope.
797         (build_enumerator): Likewise.
798         * parser.c (cp_parser_using_declaration): Likewise.
799         (cp_parser_direct_declarator): Use at_namespace_scope_p instead of
800         current_scope.
801         (cp_parser_class_head): Adjust call to current_scope.
802         * name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
803         alias.
804
805         PR c++/18020
806         * pt.c (tusbst_copy_and_build): Resolve enumeration constants to
807         their underlying values.
808
809 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
810
811         PR c++/16301
812         * name-lookup.c (parse_using_directive): If we have a
813         error_mark_node, do not set the decl namespace associations
814         on it.
815
816 2004-10-14  Mark Mitchell  <mark@codesourcery.com>
817
818         PR c++/17976
819         * decl.c (cp_finish_decl): Do not call expand_static_init more
820         than once for a single variable.
821
822 2004-10-11  Mark Mitchell  <mark@codesourcery.com>
823
824         PR c++/15786
825         * parser.c (cp_parser_declarator): Add member_p parameter. 
826         (cp_parser_condition): Adjust calls to cp_parser_declarator.
827         (cp_parser_explicit_instantiation): Likewise.
828         (cp_parser_init_declarator): Likewise.
829         (cp_parser_direct_declarator): Add member_p parameter.  Do not
830         parse tentatively when parsing the parameters to a member.
831         (cp_parser_type_id): Adjust calls to cp_parser_declarator.
832         (cp_parser_parameter_declaration): Likewise.
833         (cp_parser_member_declaration): Likewise.
834         (cp_parser_exception_declaration): Likewise.
835
836 2004-10-11  Mark Mitchell  <mark@codesourcery.com>
837
838         * decl2.c (finish_anon_union): Robustify.
839
840 2004-10-10  Mark Mitchell  <mark@codesourcery.com>
841
842         PR c++/17393
843         * decl.c (grokdeclarator): Robustify error-recovery on invalid
844         declarations.
845
846 2004-10-09  Mark Mitchell  <mark@codesourcery.com>
847
848         PR c++/17821
849         * parser.c (cp_parser_postfix_dot_deref_expression): If the
850         pseduo-destructor-name production does not work, fall back to the
851         ordinary production.
852
853         PR c++/17826
854         * tree.c (cp_tree_equal): Handle a BASELINK.
855
856 2004-10-09  Mark Mitchell  <mark@codesourcery.com>
857
858         PR c++/17524
859         * cp-tree.h (check_var_type): New function.
860         * decl.c (check_var_type): New function, split out from ...
861         (grokdeclarator): ... here.
862         * pt.c (tsubst_decl): Use check_var_type.
863
864         PR c++/17685
865         * decl.c (grokdeclarator): Disallow declarations of operators as
866         non-functions.
867         
868 2004-10-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
869
870         PR c++/17868
871         * error.c (dump_expr): Add missing case for RDIV_EXPR.
872
873 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
874
875         PR c++/17829
876         * parser.c (cp_parser_postfix_expression): Inhibit Koenig when
877         unqualified lookup finds a member function.
878
879 2004-09-28  Roger Sayle  <roger@eyesopen.com>
880
881         PR driver/17537
882         * g++spec.c (lang_specific_driver): Unrecognized libraries, other
883         than -lc and -lm, may require linking against libstc++.
884
885 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
886
887         PR c++/17585
888         * cp-tree.h (shared_member_p): Declare.
889         * search.c (shared_member_p): Give it external linkage.
890         * semantics.c (finish_qualified_id_expr): Use it.
891         (finish_id_expression): Likewise.
892
893 2004-09-22  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
894
895         PR c++/14179
896         * parser.c (cp_parser_initializer): Speed up parsing of simple
897         literals as initializers.
898
899 2004-09-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
900
901         PR c++/14179
902         * decl.c (reshape_init): Extract array handling into...
903         (reshape_init_array): New function. Use integers instead of trees
904         for indices. Handle out-of-range designated initializers.
905
906 2004-09-16  Mark Mitchell  <mark@codesourcery.com>
907
908         PR c++/17501
909         * parser.c (cp_parser_nested_name_specifier): Do not resolve
910         typename types if the user explicitly said "typename".
911
912 2004-09-13  Mark Mitchell  <mark@codesourcery.com>
913
914         PR c++/16162
915         * parser.c (cp_parser_id_expression): Correct value for
916         is_declarator.
917         (cp_parser_nested_name_specifier_opt): Look through typenames as
918         necessary.
919         (cp_parser_template_name): Honor check_dependency_p.
920
921 2004-09-13  Mark Mitchell  <mark@codesourcery.com>
922
923         PR c++/17327
924         * pt.c (unify): Add ENUMERAL_TYPE case.  Replace sorry with
925         gcc_unreacable.
926
927 2004-09-06  Release Manager
928
929         * GCC 3.4.2 released.
930
931 2004-08-25  Roger Sayle  <roger@eyesopen.com>
932
933         PR middle-end/16693
934         PR tree-optimization/16372
935         * decl.c (finish_enum): Make the precision of the enumerated type
936         the same width as the underlying integer type.
937
938 2004-08-24  Jason Merrill  <jason@redhat.com>
939
940         PR c++/16851
941         * tree.c (stabilize_init): See through a COMPOUND_EXPR.
942
943         PR c++/15461
944         * semantics.c (nullify_returns_r): Replace a DECL_STMT
945         for the NRV with an INIT_EXPR.
946
947 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
948
949         PR c++/16889
950         * (is_subobject_of_p): Resurrect & optimize.
951         (lookup_field_r): Use it.
952
953 2004-08-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
954
955         PR c++/16706
956         * search.c (friend_accessible_p): Increment processing_template_decl
957         when deal with TEMPLATE_DECL of SCOPE.
958
959 2004-08-23  Janis Johnson  <janis187@us.ibm.com>
960
961         Backports from mainline:
962
963         2004-02-27  Ziemowit Laski  <zlaski@apple.com>
964         2004-03-24  Ziemowit Laski  <zlaski@apple.com>
965
966         * Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
967         * mangle.c (write_type): Add call to 'mangle_fundamental_type'
968         target hook.
969         * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
970
971 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
972
973         PR c++/15890
974         * pt.c (push_template_decl_real): Disallow template allocation
975         functions with fewer than two parameters.
976
977 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
978
979         PR c++/17068
980         * pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
981         dependent.
982
983 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
984
985         PR c++/16246
986         * pt.c (unify): Make sure that non-type arguments have the same
987         type as the corresponding parameter.
988
989 2004-08-12  Mark Mitchell  <mark@codesourcery.com>
990
991         PR c++/16273
992         * class.c (count_depth_data): New type.
993         (dfs_depth_post): New function.
994         (dfs_depth_q): Likewise.
995         (find_final_overrider_data_s): Change type of vpath.
996         Add vpath_list.
997         (dfs_find_final_overrider_1): New function.
998         (dfs_find_final_overrider): Use it.
999         (dfs_find_final_overrider_q): Adjust use of vpath.
1000         (dfs_find_final_overrider_post): Likewise.
1001         (find_final_overrider): Use dfs_depth.  Allocate and deallocate
1002         vpath_list.
1003
1004 2004-08-12 Jan Beulich <jbeulich@novell.com>
1005
1006         * parser.c (cp_parser_asm_definition): Properly consume scope operator
1007         tokens preceding the clobbers. Don't check for scope operator
1008         following inputs. Simplify inputs handling to match that now used for
1009         clobbers.
1010
1011 2004-08-11  Mark Mitchell  <mark@codesourcery.com>
1012
1013         PR c++/16698
1014         * except.c (build_throw): Allocate cleanup_type and the function
1015         for __cxa_throw separately.
1016
1017 2004-08-11  Mark Mitchell  <mark@codesourcery.com>
1018
1019         PR c++/16717
1020         * semantics.c (expand_body): Do not update static_ctors and
1021         static_dtors here.
1022         (expand_or_defer_fn): Do it here, instead.
1023
1024         PR c++/16853
1025         * call.c (standard_conversion): Do not accept conversions between
1026         pointers to members if the class types are unrelated.
1027
1028         PR c++/16870
1029         * pt.c (tsubst): Just return the unknown_type_node.
1030
1031         PR c++/16964
1032         * parser.c (cp_parser_class_specifier): Robustify.
1033
1034         PR c++/16904
1035         * pt.c (tsubst_copy_and_build): Complain about invalid
1036         qualification.
1037
1038         PR c++/16929
1039         * pt.c (tsubst_default_argument): Clear out current_class_ptr and
1040         current_class_ref while tsubsting.
1041         
1042 2004-08-01  Mark Mitchell  <mark@codesourcery.com>
1043
1044         PR c++/16224
1045         * name-lookup.c (decl_namespace): Remove.
1046         (current_decl_namespace): Use decl_namespace_context instead of
1047         decl_namespace.
1048         (push_decl_namespace): Likewise.
1049         (arg_assoc_class): Likewise.
1050         (arg_assoc_type): Likewise.
1051         * pt.c (check_specialization_namespace): New function.
1052         (maybe_process_partial_specialization): Use it.
1053         (register_specialization): Likewise.
1054
1055 2004-08-01  Mark Mitchell  <mark@codesourcery.com>
1056
1057         PR c++/16489
1058         * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
1059         * call.c (null_ptr_cst_p): Handle variables with constant
1060         initializers.
1061         * pt.c (convert_nontype_argument): Use
1062         DECL_INTEGRAL_CONSTANT_VAR_P.
1063         * semantics.c (finish_id_expression): Likewise.
1064
1065         PR c++/16529
1066         * decl.c (duplicate_decls): Reject duplicate namespace
1067         declarations.
1068
1069         PR c++/16810
1070         * typeck.c (build_ptrmemfunc): Loosen assertion.
1071
1072 2004-07-28  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1073
1074         PR c++/13092
1075         * init.c (build_offset_ref): Build SCOPE_REF with non-null
1076         TREE_TYPE for non-dependent names.
1077         * typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
1078         * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1079         unknown_type_node as its TREE_TYPE.
1080         * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1081         * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1082         (dump_expr) <SCOPE_REF case>: Likewise.
1083
1084 2004-07-21  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1085
1086         PR c++/16175
1087         * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
1088         cv qualifier.
1089
1090 2004-07-20  Mark Mitchell  <mark@codesourcery.com>
1091
1092         (cp_parser_simple_type_specifier): Fix typo.
1093         
1094         PR c++/16637
1095         * parser.c (cp_parser_simple_type_specifier): Do not record usage
1096         of globally-qualified names.
1097
1098 2004-07-12  Andrew Pinski  <apinski@apple.com>
1099
1100         PR c++/16475
1101         Revert:
1102         2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1103                 PR c++/16276
1104                 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
1105                 is not public.
1106
1107
1108 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1109
1110         PR c++/16276
1111         * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
1112         is not public.
1113
1114 2004-07-01  Release Manager
1115
1116         * GCC 3.4.1 released.
1117
1118 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
1119
1120         PR C++/16174
1121         * call.c (build_temp): Declare.
1122         (check_constructor_callable): New.
1123         (reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
1124         CONSTRUCTOR_CALLABLE.
1125         (convert_like_real, initialize_reference): Use
1126         check_constructor_callable.
1127         * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
1128         (LOOKUP_*): Renumber.
1129
1130 2004-06-25  Jan Hubicka  <jh@suse.cz>
1131
1132         PR C++/14865
1133         * decl2.c (maybe_emit_vtables):  Always import_export_vtable for the
1134         reachability analysis.
1135
1136 2004-06-22  Jan Hubicka  <jh@suse.cz>
1137
1138         PR C++/14950
1139         * pt.c (instantiate_decl): Clean TI_PENDING_TEMPLATE_FLAG before
1140         expanding the function.
1141
1142 2004-06-21  Nathan Sidwell  <nathan@codesourcery.com>
1143
1144         PR c++/3518
1145         * pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
1146         level.
1147         
1148         PR c++/14007
1149         * pt.c (check_cv_quals_for_unify): Correct logic for disallowed
1150         cv-qualifier unification.
1151         * tree.c (cp_build_qualified_type_real): Renable DR295 logic.
1152
1153 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1154
1155         PR c++/15967
1156         * search.c (build_new_1): Robustify.
1157
1158 2004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1159
1160         PR c++/15947
1161         * parser.c (cp_parser_template_name): Ctors/dtors never need a
1162         template keyword to disambiguate.
1163
1164 2004-06-14  Mark Mitchell  <mark@codesourcery.com>
1165
1166         PR c++/15096
1167         * decl.c (grokdeclarator): Ignore pointer-to-members when
1168         computing template depth.
1169
1170         PR c++/14930
1171         * name-lookup.c (pushtag): Do not try to put class declarations in
1172         explicit specialization scopes.
1173
1174 i2004-06-11  Mark Mitchell  <mark@codesourcery.com>
1175
1176         PR c++/15862
1177         * name-lookup.c (unqualified_namespace_lookup): Do not ignore type
1178         bindings for undeclared built-ins.
1179
1180 2004-06-10  Jason Merrill  <jason@redhat.com>
1181
1182         PR c++/15875
1183         Revert:
1184         2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1185         * init.c (build_offset_ref): Build SCOPE_REF with non-null
1186         TREE_TYPE for non-dependent names.
1187         * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1188         unknown_type_node as its TREE_TYPE.
1189         * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1190         * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1191         (dump_expr) <SCOPE_REF case>: Likewise.
1192
1193 2004-06-10  Mark Mitchell  <mark@codesourcery.com>
1194
1195         PR c++/15227
1196         * parser.c (cp_parser_direct_declarator): Robustify.
1197
1198         PR c++/15877
1199         * pt.c (tsubst_copy): Use decl_constant_value on enumeration
1200         constants in non-dependent contexts.
1201
1202         PR c++/14211
1203         PR c++/15076
1204         * typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
1205         necessary.
1206
1207 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1208
1209         Revert:
1210         PR c++/15815
1211         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1212         * lex.c (handle_pragma_interface): Deprecate.
1213         (handle_pragma_implementation): Likewise.
1214
1215 2004-06-07  Dan Kegel  <dank@kegel.com>
1216
1217         PR c++/14808
1218         * method.c (make_alias_for_thunk, use_thunk): Use TARGET_IS_PE_COFF
1219         instead of __CYWGIN__ and __MINGW32__.
1220
1221 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1222
1223         PR c++/15815
1224         * lex.c (handle_pragma_interface): Deprecate.
1225         (handle_pragma_implementation): Likewise.
1226
1227         PR c++/15766
1228         * parser.c (cp_parser_iteration_statement): Fix typo in error
1229         message.
1230
1231         PR c++/14777
1232         * pt.c (tsubst_default_argument): Do not defer access checks
1233         while substituting into the default argument.
1234
1235         PR c++/15554
1236         * pt.c (tsubst_copy): Do not try to substitute for an enumeration
1237         constant in a non-dependent context. 
1238         
1239         PR c++/15057
1240         * except.c (build_throw): Ensure that temp_expr has been
1241         initialized.
1242
1243 2004-06-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1244
1245         PR c++/15503
1246         * parser.c (cp_parser_mem_initializer_id): Gracefully reject
1247         'typename', and accept 'template'.
1248
1249 2004-06-01  Jason Merrill  <jason@redhat.com>
1250
1251         PR c++/15142
1252         * call.c (call_builtin_trap): Remove type parm.
1253         (convert_arg_to_ellipsis): Change a non-POD argument to integer type.
1254         (build_x_va_arg): Dereference a null pointer for a non-POD argument.
1255
1256 2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1257
1258         PR c++/13092
1259         * init.c (build_offset_ref): Build SCOPE_REF with non-null
1260         TREE_TYPE for non-dependent names.
1261         * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1262         unknown_type_node as its TREE_TYPE.
1263         * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1264         * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1265         (dump_expr) <SCOPE_REF case>: Likewise.
1266
1267 2004-06-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1268
1269         PR c++/14932
1270         * parser.c (cp_parser_postfix_expression): Allow subscript
1271         operator in offsetof.
1272
1273 2004-05-31  Mark Mitchell  <mark@codesourcery.com>
1274
1275         PR c++/15701
1276         * friend.c (add_friend): Do not try to perform access checks for
1277         functions from dependent classes.
1278
1279         PR c++/15742
1280         * call.c (build_over_call): Set
1281         current_function_returns_abnormally even in template functions.
1282
1283         PR c++/15696
1284         * cp-tree.h (invalid_nonstatic_memfn_p): New function.
1285         * cvt.c (convert_to_void): Use it.
1286         * typeck.c (invalid_nonstatic_memfn_p): New function.
1287         (decay_conversion): Use it.
1288
1289         PR c++/15625
1290         * pt.c (tsubst_decl): Set DECL_FRIEND_CONTEXT for instantiated
1291         templates.
1292
1293         PR c++/15629
1294         * name-lookup.c (arg_assoc_class): Do not find template
1295         specializations.
1296
1297         PR c++/15209
1298         * tree.c (lvalue_p_1): Only consider the right-hand side of "."
1299         expressions when determining whether or not an express is packed.
1300
1301 2004-05-28  Mark Mitchell  <mark@codesourcery.com>
1302
1303         PR c++/15083
1304         * decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
1305         even in a templat.e
1306         * init.c (build_new): Likewise.
1307
1308         PR c++/15640
1309         * name-lookup.c (arg_assoc): Robustify.
1310
1311         PR c++/15471
1312         * typeck.c (unary_complex_lvalue): Use context_for_name_lookup
1313         when determining the scope to use for a pointer to member.
1314         (lookup_anon_field): Give it external linkage.
1315         * cp-tree.h (lookup_anon_field): Declare it.
1316         * expr.c (cplus_expand_constant): Use it.
1317
1318         PR c++/14668
1319         * parser.c (cp_parser_simple_type_specifier): Call
1320         maybe_note_name_used_in_class.
1321
1322 2004-05-23  Mark Mitchell  <mark@codesourcery.com>
1323
1324         PR c++/15044
1325         * parser.c (cp_parser_class_head): Robustify.
1326
1327         PR c++/15317
1328         * parser.c (cp_parser_decl_specifier_seq): Correct error in
1329         comment.
1330         (cp_parser_constructor_declarator_p): Treat attributes
1331         as decl-specifiers.
1332
1333         PR c++/15329
1334         * typeck.c (build_unary_op): Do not attempt to resolve casts to
1335         base classes in templates.
1336
1337         PR c++/15165
1338         * pt.c (instantiate_template): Robustify.
1339
1340         PR c++/15025
1341         * decl.c (xref_tag): Issue errors about redeclaring template
1342         classes as non-template classes.
1343
1344         PR c++/14821
1345         * name-lookup.c (supplement_binding): Allow redefinitions of
1346         namespace aliases.
1347
1348         PR c++/14883
1349         * parser.c (cp_parser_template_argument): Robustify.
1350
1351 2004-05-22  Mark Mitchell  <mark@codesourcery.com>
1352
1353         PR c++/15285
1354         PR c++/15299
1355         * pt.c (build_non_dependent_expr): Expand the set of tree nodes
1356         recognized as overloaded functions.
1357
1358         PR c++/15507
1359         * class.c (layout_nonempty_base_or_field): Do not try to avoid
1360         layout conflicts for unions.
1361
1362         PR c++/15542
1363         * typeck.c (build_x_unary_op): Instantiate template class
1364         specializations before looking for "operator &".
1365
1366         PR c++/15427
1367         * typeck.c (complete_type): Layout non-dependent array types, even
1368         in templates.
1369
1370         PR c++/15287
1371         * typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
1372         template.
1373
1374 2004-04-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1375
1376         PR c++/15064
1377         * parser.c (cp_parser_postfix_expression): typeid operator cannot be
1378         used in integral constant expressions.
1379
1380 2004-04-18  Release Manager
1381
1382         * GCC 3.4.0 released.
1383
1384 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1385
1386         PR c++/14808
1387         * method.c (make_alias_for_thunk): Just return function decl
1388         for one_only functions if __CYGWIN__ or __MINGW32__
1389         (use_thunk): Don't put function and thunk in same one_only
1390         section if __CYGWIN__ or __MINGW32__.
1391
1392 2004-04-08  Jakub Jelinek  <jakub@redhat.com>
1393
1394         * decl2.c (mark_used): Don't segfault if cfun != NULL but
1395         current_function_decl == NULL.
1396
1397 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1398
1399         PR c++/14803
1400         * typeck.c (get_delta_difference): Call fold before returning the
1401         value.
1402
1403 2004-04-01  Richard Henderson  <rth@redhat.com>
1404
1405         PR c++/14804
1406         * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
1407         * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
1408
1409 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1410
1411         PR c++/14810
1412         * name-lookup.c (maybe_push_cleanup_level): Robustify.
1413
1414 2004-03-30  Mark Mitchell  <mark@codesourcery.com>
1415
1416         PR c++/14724
1417         * decl.c (start_decl_1): Do not decide whether or not to create a
1418         new cleanup level until after the type has been completed.
1419
1420         PR c++/14763
1421         * pt.c (tsubst_default_argument): Clear current_function_decl.
1422
1423 2004-03-28  Jan Hubicka  <jh@suse.cz>
1424
1425         PR C++/14639
1426         * method.c (use_think): Do not mark thunk as referenced.
1427
1428 2004-03-21  Mark Mitchell  <mark@codesourcery.com>
1429
1430         PR c++/14616
1431         * decl.c (cp_finish_decl): Compute the size of arrays declared in
1432         templates, if their type is non-dependent.
1433
1434 2004-03-19  Mark Mitchell  <mark@codesourcery.com>
1435
1436         * call.c (build_op_delete_call): Do not forget the placement
1437         arguments when iterating through mutiple delete operators.
1438
1439         * cp-tree.h (svaed_scope): Remove last_parms.
1440         (NEW_DELETE_OPNAME_P): New macro.
1441         (last_function_parms): Remove.
1442         (do_friend): Adjust prototype.
1443         * decl.c (grokparms): Return the PARM_DECLs directly, rather than
1444         using last_function_parms.
1445         (grokfndecl): Take the PARM_DECLs as an argument, rather than
1446         using last_function_parms.
1447         (grokdeclarator): Adjust accordingly.  Do not form METHOD_TYPEs
1448         for class-specific operator new and operator delete.
1449         (grok_op_properties): Do not look for allocation functions with
1450         METHOD_TYPEs.
1451         (start_function): Use DECL_ARGUMENTS instead of
1452         last_function_parms.
1453         * decl.h (last_function_parms): Do not declare.
1454         * decl2.c (grokclassfn): Do not use last_function_parms.
1455         * friend.c (do_friend): Remove parmdecls parameter.
1456         * name-lookup.c (push_to_top_level): Do not save last_function_parms.
1457         (pop_from_top_level): Do not restore it.
1458         * pt.c (check_explicit_specialization): Do not adjust
1459         last_function_parms.
1460
1461         * name-lookup.c (do_local_using_decl): Create a local binding for
1462         types brought in via using declarations.
1463
1464         * name-lookup.c (lookup_arg_dependent): Handle block-scope
1465         function declarations correctly.
1466
1467         * semantics.c (finish_id_expression): Correct handling of
1468         conversion operators to dependent types.
1469
1470         * typeck.c (lookup_destructor): Allow the use of destructors from
1471         base classes.
1472         
1473 2004-03-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1474
1475         PR c++/14545
1476         * parser.c (cp_parser_functional_cast): A cast to anything
1477         but integral or enumaration type is not an integral constant
1478         expression.
1479         * pt.c (value_dependent_expression_p): Handle cast expressions
1480         without operands (such as "int()").
1481
1482 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1483
1484         * semantics.c (finish_pseudo_destructor_expr): Allow differing
1485         cv-qualification between the type named by the
1486         pseudo-destructor-name and the object-type.
1487
1488         * search.c (accessible_base_p): Handle non-proper bases.
1489
1490         * name-lookup.c (do_nonmember_using_decl): If a using declaration
1491         refers to a single overloaded function, set the type of the
1492         function.
1493         * tree.c (lvalue_type): Simplify.
1494         * typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
1495         unknown type.
1496         (build_unary_op): Handle OVERLOADs with known types.
1497
1498         * decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
1499         function templates.
1500
1501         * parser.c (cp_parser_postfix_expression): Handle the use of
1502         "typename" in non-dependent contexts.  Convert appropriately when
1503         when using a qualified name after "->" or ".".
1504
1505         * call.c (conditional_conversion): Honor the requirement that some
1506         conversions refer to the original object.
1507
1508         * call.c (build_conditional_expr): Do not call force_rvalue for
1509         operands of void_type when the conditional expression itself has
1510         void type.
1511         * name-lookup.c (pushdecl): Don't consider a declaration of a
1512         function named "main" to be an overload of a type named "main".
1513         * parser.c (cp_parser_template_name): Perform name lookup when the
1514         template name is proceeded by "template" if the qualifying scope
1515         is non-dependent.
1516         * typeck.c (composite_pointer_type_r): Correctly handle
1517         pointer-to-member types.
1518         (build_const_cast): Likewise.
1519
1520 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
1521
1522         PR c++/14586
1523         * cp-tree.h (build_new_op): Change prototype.
1524         (build_x_binary_op): Likewise.
1525         * call.c (build_new_op): Add overloaded_p parameter.
1526         * decl2.c (grok_array_decl): Adjust call to build_new_op.
1527         * parser.c (cp_parser_binary_expression): Note that uses of
1528         overloaded operators prevents an expression from being considered
1529         an integral constant.
1530         * pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
1531         build_x_binary_op.
1532         * semantics.c (finish_call_expr): Likewise.
1533         * typeck.c (rationalize_conditional_expr): Likewise.
1534         (build_x_indirect_ref): Likewise.
1535         (build_x_binary_op): Likewise.
1536         (build_x_unary_op): Likewise.
1537         (build_x_compound_expr): Likewise.
1538         (build_modify_expr): Likewise.
1539         * typeck2.c (build_x_arrow): Likewise.
1540
1541 2004-03-13  Mark Mitchell  <mark@codesourcery.com>
1542
1543         PR c++/14550
1544         * parser.c (cp_parser_non_integral_constant_expression): Encode
1545         more of the idiom that surrounded calls to this function within
1546         the function itself
1547         (cp_parser_primary_expression): Adjust accordingly.
1548         (cp_parser_postfix_expression): Likewise.
1549         (cp_parser_unary_expression): Likewise.
1550         (cp_parser_cast_expression): Likewise.
1551         (cp_parser_assignment_expression): Likewise.
1552         (cp_parser_expression): Likewise.
1553         (cp_parser_new_expression): Note that new-expressions are not
1554         allowed in integral constant expressions.
1555         (cp_parser_delete_expression): Likewise.
1556
1557 2004-03-11  Mark Mitchell  <mark@codesourcery.com>
1558
1559         PR c++/14476
1560         * decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
1561
1562 2004-03-10  Mark Mitchell  <mark@codesourcery.com>
1563
1564         PR c++/14510
1565         * decl.c (xref_tag): Disregard non-type declarations when
1566         looking up a tagged type. 
1567
1568 2004-03-10  Jason Merrill  <jason@redhat.com>
1569
1570         PR c++/14452
1571         * tree.c (stabilize_init): Return whether or not it worked.
1572         * init.c (build_new_1): If not, use a sentry.
1573         * cp-tree.h: Adjust prototype.
1574
1575 2004-03-09  Nathan Sidwell  <nathan@garibaldi.home>
1576
1577         PR c++/14397
1578         * call.c (convert_like_real): Build a const qualified temporary,
1579         when testing ctor access.
1580
1581 2004-03-09  Mark Mitchell  <mark@codesourcery.com>
1582
1583         * call.c (initialize_reference): Fix typo.
1584
1585 2004-03-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1586
1587         PR c++/14409
1588         * pt.c (determine_specialization): For member templates, match also
1589         constness.
1590
1591         PR c++/14448
1592         * parser.c (cp_parser_initializer_clause): Fold initializer if it is
1593         non-dependent.
1594         * pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
1595
1596 2004-03-09  Mark Mitchell  <mark@codesourcery.com>
1597
1598         PR c++/14230
1599         * call.c (initialize_reference): Handle initializers that are
1600         class-member access expressions applies to rvalues.
1601
1602         PR c++/14432
1603         * name-lookup.c (supplement_binding): Ignore functions that are
1604         marked DECL_ANTICIPATED.
1605
1606 2004-03-08  Mark Mitchell  <mark@codesourcery.com>
1607
1608         PR c++/14401
1609         * class.c (check_field_decls): Complain about non-static data
1610         members of reference type in unions.  Propagate
1611         CLASSTYPE_REF_FIELDS_NEED_INIT and
1612         CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
1613         data members.
1614         * init.c (perform_member_init): Complain about mbmers with const
1615         type that are not explicitly initialized.
1616
1617 2004-03-08  Jason Merrill  <jason@redhat.com>
1618
1619         PR c++/13170
1620         * decl.c (xref_tag): Remove attribute handling.
1621         * cp-tree.h: Adjust prototype.
1622         * decl.c, parser.c, rtti.c: Adjust callers.
1623         * parser.c (cp_parser_class_head): Pass back attributes in the
1624         class head.
1625         (cp_parser_class_specifier): Adjust.
1626
1627 2004-03-08  Matt Austern  <austern@apple.com>
1628
1629         PR debug/14079
1630         * name-lookup.c (add_decl_to_level): Add extern variables, as well
1631         as static, to static_decls array.
1632         
1633 2004-03-01  Jason Merrill  <jason@redhat.com>
1634
1635         PR c++/13944
1636         * except.c (do_free_exception): Remove #if 0 wrapper.
1637         (build_throw): Use it if we elide a copy into the
1638         exception object.
1639
1640         * tree.c (stabilize_call): Fix thinko.
1641
1642         * init.c (build_new_1): Preevaluate initializer.  Simplify EH code.
1643         (build_init): Call a constructor rather than call build_aggr_init
1644         for classes.
1645         * except.c (stabilize_throw_expr): Remove.
1646         (build_throw): Use stabilize_init instead of stabilize_throw_expr.
1647         * tree.c (stabilize_call, stabilize_init): New fns.
1648         * call.c (build_over_call): A constructor no longer returns the
1649         address of the object.
1650
1651 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
1652
1653         PR c++/14324
1654         * lex.c (retrofit_lang_decl): Treat entities with no linkage as
1655         having C++ linkage for name-mangling purposes.
1656
1657         PR c++/14260
1658         * parser.c (cp_parser_direct_declarator): Recognize constructor
1659         declarators that use a template-id to name the class being
1660         constructed.
1661
1662         PR c++/14337
1663         * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
1664         (tsubst_expr): Do not call tsubst_copy, even when
1665         processing_template_decl.       
1666
1667 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
1668
1669         PR c++/14369
1670         * pt.c (build_non_dependent_expr): Do not create a
1671         NON_DEPENDENT_EXPR for a THROW_EXPR.
1672
1673         PR c++/14360
1674         * parser.c (cp_parser_postfix_expression): Do not perform Koenig
1675         lookup if ordinary name-lookup finds a non-function.
1676         * pt.c (tsubst_copy_and_build): Likewise.
1677
1678         PR c++/14361
1679         * parser.c (cp_parser_late_parsing_default_args): Check that there
1680         are no extra tokens after the end of the default-argument
1681         expression.
1682
1683         PR c++/14359
1684         Backport 2004-02-12  Mark Mitchell  <mark@codesourcery.com>
1685         * decl.c (redeclaration_error_message): Correct handling of
1686         templates.
1687         * pt.c (tsubst_friend_declaration): Adjust code to determine
1688         whether or not a friend template is a definition.
1689         (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
1690
1691 2004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1692
1693         PR c++/14369
1694         * error.c (dump_expr): Handle THROW_EXPR.
1695
1696 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
1697
1698         PR c++/14138
1699         * name-lookup.h (push_scope): Change prototype.
1700         * name-lookup.c (push_scope): Do not reenter the current class
1701         scope.
1702         * decl.c (grokfndecl): Check return code from push_scope before
1703         calling pop_scope.
1704         * decl2.c (check_classfn): Likewise.
1705         * parser.c (cp_parser_conversion_function_id): Likewise.
1706         (cp_parser_init_declarator): Likewise.
1707         (cp_parser_direct_declarator): Likewise.
1708         (cp_parser_class_specifier): Likewise.
1709         (cp_parser_class_head): Likewise.
1710         (cp_parser_lookup_name): Likewise.
1711         (cp_parser_constructor_declarator_p): Likewise.
1712         * pt.c (instantiate_class_template): Likewise.
1713         (resolve_typename_type): Likewise.
1714
1715 2004-02-27  Mark Mitchell  <mark@codesourcery.com>
1716
1717         PR debug/12103
1718         * class.c (update_vtable_entry_for_fn): Do not go through
1719         covariance machinery if the type returned by an overrider is the
1720         same as the original.
1721
1722 2004-02-27  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1723
1724         PR c++/14284
1725         * pt.c (dependent_type_p_r): A template template parameter is a
1726         dependent type.
1727
1728 2004-02-26  Mark Mitchell  <mark@codesourcery.com>
1729
1730         PR c++/14278
1731         * parser.c (cp_parser_parameter_declaration_list): Commit
1732         to fewer tentative parses.
1733
1734 2004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1735
1736         PR c++/14246
1737         * mangle.c (write_template_arg_literal): Don't rely on identity for
1738         boolean constants.
1739
1740 2004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1741
1742         PR c++/14250
1743         * cvt.c (build_expr_type_conversion): Type must be complete before
1744         looking up for conversions.
1745
1746 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
1747
1748         PR c++/14199
1749         * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
1750
1751         PR c++/14173
1752         * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
1753         for all type variants.
1754
1755 2004-02-19  Mark Mitchell  <mark@codesourcery.com>
1756
1757         PR c++/14186
1758         * name-lookup.c (push_class_level_binding): Do not complain about
1759         adding a binding for a member whose name is the same as the
1760         enclosing class if the member is located in a base class of the
1761         current class.
1762
1763 2004-02-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1764
1765         PR c++/14181
1766         * parser.c (cp_parser_new_expression): Parse an ill-formed 
1767         direct-new-declarator after a parenthesized type-id to emit good
1768         diagnostic.
1769
1770 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
1771
1772         PR c++/11326
1773         * cp-tree.h (abi_version_at_least): Remove.
1774         * mangle.c: Include flags.h.
1775
1776 2004-02-15  Mark Mitchell  <mark@codesourcery.com>
1777
1778         PR c++/13971
1779         * call.c (build_conditional_expr): Handle conversions between
1780         class types which result in differently cv-qualified type
1781         variants.
1782
1783         PR c++/14086
1784         * class.c (delete_duplicate_fields_1): Remove.
1785         (delete_duplicate_fields): Likewise.
1786         (finish_struct_anon): Remove check for members with the same name
1787         as their enclosing class.
1788         (check_field_decls): Do not call duplicate_fields.
1789         * decl.c (grokdeclarator): Remove check for static data members
1790         with the same name as their enclosing class.
1791         * name-lookup.c (push_class_level_binding): Check for members with
1792         the same name as their enclosing class.
1793
1794 2004-02-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1795
1796         PR c++/14085
1797         * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
1798
1799 2004-02-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1800
1801         PR c++/13635
1802         * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
1803         has full set of arguments.
1804
1805 2004-02-13  Mark Mitchell  <mark@codesourcery.com>
1806
1807         PR c++/14122
1808         * cp-tree.h (delete_sanity): Change prototype.
1809         * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
1810         Remove dead code.  Adjust code to warn about deleting an array.
1811         * typekc.c (decay_conversion): Use build_address and build_nop.
1812
1813         PR c++/14108
1814         * search.c (accessible_p): Do not check access in thunks.
1815
1816 2004-02-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1817
1818         PR c++/13927
1819         * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
1820
1821 2004-02-13  Mark Mitchell  <mark@codesourcery.com>
1822
1823         PR c++/14083
1824         * call.c (build_conditional_expr): Call force_rvalue on the
1825         non-void operand in the case that one result is a throw-expression
1826         and the other is not.
1827
1828 2004-02-13  Ian Lance Taylor  <ian@wasabisystems.com>
1829
1830         PR c++/9851
1831         * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
1832         the type name and look ahead for ::~, and bail out early with a
1833         better error message if the parse is going to fail.
1834
1835 2004-02-10  Mark Mitchell  <mark@codesourcery.com>
1836
1837         * typeck.c (lookup_destructor): Fix typo in error message.
1838
1839 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
1840
1841         Bug 13856
1842         * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
1843         * decl.c (duplicate_decls, start_function): Likewise.
1844
1845 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
1846
1847         * name-lookup.c (pushdecl): Issue shadow warnings directly.
1848         * parser.c (free_parser_stacks): Delete.
1849
1850 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1851
1852         * rtti.c, tree.c: Update copyright.
1853
1854 2003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1855
1856         PR c++/14033
1857         * decl.c (require_complete_types_for_parms): Do not insert
1858         error_mark_node in the parameter list.
1859
1860 2003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1861
1862         PR c++/14028
1863         * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
1864         error when terminator can not be found.
1865
1866 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
1867
1868         Make-lang.in (po-generated):  Delete.
1869
1870 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1871
1872         PR middle-end/13750
1873         Revert:
1874         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
1875         PR pch/13361
1876         * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1877         (handle_pragma_implementation): Likewise.
1878
1879 2004-02-05  Mark Mitchell  <mark@codesourcery.com>
1880
1881         PR c++/13714
1882         * typeck.c (lookup_destructor): Tweak error message.
1883
1884 2004-02-05  Paul Brook  <paul@codesourcery.com>
1885
1886         Backport from mainline.
1887
1888         2003-11-05  Mark Mitchell  <mark@codesourcery.com>
1889
1890         * decl.c (cxx_push_function_context): Do not set
1891         current_function_is_thunk.
1892         * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
1893         actual function.
1894
1895 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
1896
1897         PR c++/13932
1898         * call.c (convert_like_real): Use "converting" rather than
1899         "argument" as the descriptive keyword to
1900         dubious_conversion_warnings.
1901         * typeck.c (convert_for_assignment): Do not call
1902         dubious_conversion_warnings.
1903
1904 2004-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1905
1906         PR c++/13086
1907         * init.c (build_delete): Emit a more informative error message in
1908         case of an incomplete type, and on the correct source line.
1909
1910 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
1911
1912         PR c++/9941
1913         * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
1914         linkage for the typeinfo name string.
1915
1916         PR c++/13969
1917         * cp-tree.h (fold_non_dependent_expr): New function.
1918         * parser.c (cp_parser_fold_non_dependent_expr): Remove.
1919         (cp_parser_template_argument): Use fold_non_dependent_expr.
1920         (cp_parser_direct_declarator): Likewise.
1921         * pt.c (fold_non_dependent_expr): New function.
1922         (convert_nontype_argument): Use it.
1923         (tsubst_qualified_id): Simplify.
1924         (tsubst_copy_and_build): Likewise.
1925
1926 2003-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1927
1928         PR c++/13997
1929         * pt.c (more_specialized_class): Increase processing_template_decl
1930         while partial ordering.
1931
1932 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
1933
1934         PR c++/13950
1935         * parser.c (cp_parser_class_name): Robustify.
1936
1937         PR c++/13970
1938         * parser.c (cp_parser_cache_group): Do not consume the EOF token.
1939
1940 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
1941
1942         PR c++/13925
1943         * decl.c (start_function): Do not call pushdecl for any
1944         instantiation or specialization of a primary template.
1945
1946         PR c++/14002
1947         * semantics.c (finish_id_expression): Do not return an
1948         IDENTIFIER_NODE when lookup finds a PARM_DECL.
1949
1950         PR c++/13978
1951         * pt.c (build_non_dependent_expr): Do not build
1952         NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
1953
1954         PR c++/13968
1955         * semantics.c (finish_id_expression): Do not return an
1956         IDENTIFIER_NODE when lookup finds a VAR_DECL.
1957
1958         PR c++/13975
1959         * parser.c (cp_parser_simple_declaration): When skipping to the
1960         end of the statement swallow the terminating semicolon.
1961
1962 2004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1963
1964         DR206
1965         PR c++/13813
1966         * decl.c (grokdeclarator): Check immediatly type completeness for
1967         non-dependent types.
1968
1969 2004-01-30  Mark Mitchell  <mark@codesourcery.com>
1970
1971         PR c++/13113
1972         * init.c (build_offset_ref): Improve error recovery for invalid
1973         uses of non-static member functions.
1974
1975         PR c++/13854
1976         * cp-tree.h (cp_build_type_attribute_variant): New function.
1977         * class.c (build_clone): Use cp_build_type_attribute_variant.
1978         * decl.c (duplicate_decls): Likewise.
1979         * pt.c (copy_default_args_to_explicit_spec): Likewise.
1980         (tsubst_function_type): Likewise.
1981         * tree.c (build_exception_variant): Check attributes before
1982         concluding that two types are the same.
1983         (cp_build_type-attribute_variant): New method.
1984         * typeck.c (merge_types): Use cp_build_type_attribute_variant.
1985
1986         PR c++/13907
1987         * call.c (convert_class_to_reference): Keep better track of
1988         pedantically invalid user-defined conversions.
1989
1990 2004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1991
1992         PR c++/13957
1993         * pt.c (tsubst_qualified_id): Improved error message when a type
1994         is expected but not found.
1995
1996 2004-01-30  Michael Matz  <matz@suse.de>
1997
1998         * parser.c (cp_parser_labeled_statement): Accept case ranges.
1999
2000 2004-01-28  Jan Hubicka  <jh@suse.czi
2001
2002         * semantics.c (expand_body)  Do emit_associated_thunks before
2003         expansion.
2004
2005 2004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2006
2007         PR c++/13683
2008         * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
2009         a sizeof expression.block
2010
2011 2004-01-29  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2012
2013         * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
2014         template name as it was `<::' (digraph typo).
2015         (cp_parser_nth_token_starts_template_argument_list_p): New function.
2016         (cp_parser_id_expression): Use it.
2017         (cp_parser_nested_name_specifier_opt): Likewise.
2018         (cp_parser_template_name): Likewise.
2019         (cp_parser_class_name): Likewise.
2020         (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
2021
2022 2004-01-29  Mark Mitchell  <mark@codesourcery.com>
2023
2024         PR c++/13883
2025         * mangle.c (write_encoding): Correct encoding of member template
2026         constructors.
2027
2028 2004-01-28  Mark Mitchell  <mark@codesourcery.com>
2029
2030         PR c++/13791
2031         * typeck.c (merge_types): Do not merge attributes into
2032         TYPENAME_TYPEs.
2033
2034 2004-01-28  Mark Mitchell  <mark@codesourcery.com>
2035
2036         PR c++/13736
2037         * parser.c (cp_parser_direct_declarator): Do not prevent
2038         backtracking inside a parenthesized declarator.
2039         (cp_parser_parameter_declaration): Fix typo in comment.
2040
2041 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2042
2043         * cp-tree.h (language_function, lang_type_header): Use
2044         BOOL_BITFIELD.
2045         * name-lookup.h (cp_binding_level): Likewise.
2046
2047 2004-01-26  Mark Mitchell  <mark@codesourcery.com>
2048
2049         PR c++/13663
2050         * semantics.c (finish_for_expr): Check for unresolved overloaded
2051         functions.
2052
2053 2004-01-26  Mark Mitchell  <mark@codesourcery.com>
2054
2055         * class.c (add_method): Just check processing_template_decl to
2056         determine whether or not we are within a template.
2057         * decl2.c (maybe_retrofit_in_chrg): Likewise.
2058         * init.c (decl_constant_value): Check the type of the declaration,
2059         not TREE_READONLY.
2060         * name-lookup.c (maybe_push_to_top_level): Rename to ...
2061         (push_to_top_level): ... this.
2062         * name-lookup.h (maybe_push_to_top_level): Do not declare it.
2063         * pt.c (push_template_decl_real): Reorder condition for speed.
2064         (convert_template_argument): Use dependency-checking functions in
2065         place of uses_template_parms.
2066         (lookup_template_class): Avoid calling uses_template_parms more
2067         than once.
2068         (uses_template_parms): Reimplement, using dependency-checking
2069         functions.
2070         (instantiate_class_template): Use push_to_top_level, not
2071         maybe_push_to_top_level.
2072         (type_unification_real): Simplify.
2073         (type_dependent_expression_p): Handle OFFSET_REFs and
2074         TEMPLATE_DECLs.
2075         (any_dependent_template_arguments_p): Handle multiple levels of
2076         template argument.
2077         * semantics.c (expand_or_defer_fn): Do not check
2078         uses_template_parms for template instantiations.
2079         * typeck.c (comptypes): Avoid calling cp_type_quals.
2080
2081 2004-01-25  Mark Mitchell  <mark@codesourcery.com>
2082
2083         PR c++/13833
2084         * call.c (build_over_call): Do not convert arguments when
2085         processing a template.
2086         * pt.c (build_non_dependent_expr): Do not build a
2087         NON_DEPENDENT_EXPR for arithmetic constants.
2088
2089 2004-01-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2090
2091         PR c++/13810
2092         * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
2093         returns a TYPE_DECL. no further lookup is required.
2094         * semantics.c (check_template_template_default_arg): A TYPE_DECL
2095         is invalid. Rework to give better diagnostics.
2096
2097 2004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2098
2099         PR c++/13797
2100         * pt.c (instantiate_class_template): Add an error_mark_node
2101         check.
2102         (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
2103
2104 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2105
2106         * call.c: Update copyright.
2107         * class.c: Likewise.
2108         * decl2.c: Likewise.
2109         * except.c: Likewise.
2110         * expr.c: Likewise.
2111         * init.c: Likewise.
2112         * mangle.c: Likewise.
2113         * optimize.c: Likewise.
2114         * typeck.c: Likewise.
2115         * typeck2.c: Likewise.
2116
2117 2004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
2118
2119         PR c++/13701
2120         * decl.c (finish_function): Move the call to
2121         finish_fname_decls below the call to
2122         finish_eh_spec_block.
2123
2124 2004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2125
2126         * parser.c (cp_parser_class_specifier): Prevent garbage collection.
2127
2128 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
2129
2130         * Make-lang.in: Replace $(docdir) with doc.
2131         (c++.info, c++.srcinfo): Dummy entry.
2132         (c++.man, c++.srcman): New rules.
2133         (c++.install-man): Revamp rule.
2134
2135 2004-01-19  Kelley Cook  <kcook@gcc.gnu.org>
2136
2137         * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
2138         CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
2139         immediate $(shell) instead of deferred backquote.
2140
2141 2004-01-19  Mark Mitchell  <mark@codesourcery.com>
2142
2143         PR c++/13651
2144         * parser.c (cp_parser_postfix_expression): When encountering
2145         incomplete type on left-hand side of "->" or ".", treat the entire
2146         expression as erroneous.
2147
2148 2004-01-19  Mark Mitchell  <mark@codesourcery.com>
2149
2150         PR c++/13592
2151         * call.c (build_field_call): Remove.
2152         (n_build_method_call): Likewise.
2153         (build_method_call): Likewise.
2154         (build_new_method_call): Do not call build_field_call.
2155         * class.c (n_build_method_call): Remove.
2156         (print_class_statistics): Do not print it.
2157         * cp-tree.h (build_method_call): Remove declaration.
2158         (finish_object_call_expr): Likewise.
2159         (build_new_1): Do not use build_method_call.
2160         * parser.c (cp_parser_postfix_expression): Use finish_call_expr
2161         when the function appearing on the right-hand-side of "." or "->"
2162         is not actually a function.
2163         * pt.c (tsubst_copy_and_build): Likewise.
2164         * semantics.c (finish_object_call_expr): Remove.
2165
2166 2004-01-18  Mark Mitchell  <mark@codesourcery.com>
2167
2168         PR c++/13710
2169         * pt.c (tsubst): Use finish_typeof.
2170
2171 2004-01-18  Jason Merrill  <jason@redhat.com>
2172
2173         PR c++/11725
2174         * except.c (build_throw): In a template, set
2175         current_function_returns_abnormally.
2176
2177 2004-01-17  Fred Fish  <fnf@intrinsity.com>
2178
2179         PR c++/11895
2180         * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
2181         except don't call array_type_nelts() with a VECTOR_TYPE.
2182
2183 2004-01-16  Jan Hubicka  <jh@suse.cz>
2184
2185         * mangle.c (write_mangled_name): Remove inline modifier.
2186
2187 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
2188
2189         PR c++/13574
2190         * decl.c (compute_array_index_type): Fix grammar in comment.
2191         * init.c (build_zero_init): Handle zero-sized arrays correctly.
2192
2193         PR c++/13178
2194         * call.c (name_as_c_string): Print conversion operator names
2195         correctly.
2196
2197         PR c++/13478
2198         * call.c (initialize_reference): Pass -1 for inner parameter to
2199         convert_like_real.
2200
2201 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2202
2203         PR c++/13407
2204         * parser.c (cp_parser_base_specifier): Check for an invalid
2205         keyword `typename' and emit an user-friendly error message.
2206
2207 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
2208
2209         PR pch/13361
2210         * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
2211         (handle_pragma_implementation): Likewise.
2212
2213 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2214
2215         PR c++/9259
2216         * typeck.c (build_class_member_access_expr): Allow to access members
2217         of the currently open class.
2218         (finish_class_member_access_expr): Likewise.
2219
2220 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
2221
2222         PR c++/13659
2223         * name-lookup.c (validate_nonmember_using_decl): Take scope and
2224         name by value, instead of computing them.
2225         (do_local_using_decl, do_toplevel_using_decl): Add scope and name
2226         arguments.  Pass them to validate_nonmember_using_decl.
2227         * name-lookup.h (do_local_using_decl): Adjust.
2228         (do_toplevel_using_decl): Likewise.
2229         * parser.c (cp_parser_using_declaration): Likewise.
2230         * pt.c (tsubst_expr): Likewise.
2231
2232 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
2233
2234         PR c++/13594
2235         PR c++/13658
2236         * name-lookup.c (qualified_lookup_using_namespace): Search
2237         strongly-associated namespaces first, and only then try other
2238         namespaces.
2239
2240 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
2241
2242         * Make-lang.in (c++.srcextra): Dummy entry.
2243
2244 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2245
2246         PR c++/8856
2247         * parser.c (cp_parser_template_name): Don't try to parse a
2248         conversion-function-id, as it cannot be a template-name.
2249         (cp_parser_simple_type_specifier): Check for invalid template-ids
2250         even after a built-in type.
2251
2252 2004-01-14  Jan Hubicka  <jh@suse.cz>
2253
2254         PR c++/12850
2255         * pt.c (instantiate_decl):  Do not increase function_depth.
2256
2257 2004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
2258
2259         PR c++/9021
2260         PR c++/11005
2261         * parser.c (cp_parser_elaborated_type_specifier): Warn about
2262         attributes and discard.
2263         * decl.c (xref_tag): Don't overwite existing attributes with
2264         NULL_TREE.
2265
2266 2004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2267
2268         PR c++/12335
2269         * parser.c (cp_parser_lookup_name): Return error_mark_node if there
2270         is no destructor while looking up a BIT_NOT_EXPR.
2271
2272 2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
2273
2274         * cxxfilt.c: Remove unused file.
2275
2276 2004-01-14  Jan Hubicka  <jh@suse.cz>
2277
2278         Partial fix to PR c++/12850
2279         * decl2.c (mark_used): Do not proactively instantiate templates
2280         when compiling in unit-at-a-time or not optimizing.
2281         * optimize.c (maybe_clone_body): Do not increase function depth.
2282
2283 2004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2284
2285         PR c++/13474
2286         * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
2287
2288 2003-01-12  Steven Bosscher  <stevenb@suse.de>
2289
2290         PR c++/13558
2291         * parser.c (cp_parser_member_declaration): Any non-type is also
2292         not a class or a function.
2293
2294 2004-01-12  Jason Merrill  <jason@redhat.com>
2295
2296         PR c++/12815
2297         * class.c (build_base_path): Do not mark vtable references as
2298         TREE_CONSTANT.
2299         (build_vtbl_ref_1): Likewise.
2300
2301 2004-01-12  Richard Henderson  <rth@redhat.com>
2302
2303         PR opt/10776
2304         * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
2305         (store_init_value): Use it.
2306         * decl.c (check_initializer): Expect full initialization code
2307         from store_init_value.
2308         * init.c (expand_aggr_init_1): Likewise.
2309         * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
2310
2311 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
2312
2313         * class.c (layout_class_type): For non-POD class types, also copy
2314         the DECL_SIZE and DECL_MODE of fields to the base class type.
2315
2316 2004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2317
2318         PR c++/13289
2319         * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
2320         calling regenerate_decl_from_template.
2321
2322 2004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
2323
2324         PR c++/4100
2325         * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
2326         decl-specifier occurring along with a class definition.
2327
2328 2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
2329
2330         * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
2331         clauses to comments describing declares_class_or_enum.
2332         (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
2333         false.
2334
2335 2004-01-12  Jan Hubicka  <jh@suse.cz>
2336
2337         * pt.c (for_each_template_parm): Do not check for duplicates.
2338         (for_each_template_parm): Use walk_tree duplicate checking code.
2339
2340 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
2341
2342         PR c++/3478
2343         * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
2344         is error_mark_node, don't add any more decl_specs.
2345         (cp_parser_init_declarator): After committing to a declaration, if
2346         the decl_specifiers start with error_mark_node, issue an error and
2347         change the type to "int".
2348
2349 2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
2350
2351         PR bootstrap/7817
2352         * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
2353
2354 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2355
2356         DR 337
2357         PR c++/9256
2358         * pt.c (tsubst): Substitution must fail if we are attempting to
2359         create an array with element type that is an abstract class type.
2360         * decl.c (cp_finish_decl): Strip pointers and array types recursively
2361         before calling abstract_virtuals_error.
2362
2363 2004-01-09  Alexandre Oliva  <aoliva@redhat.com>
2364
2365         * name-lookup.c (qualified_lookup_using_namespace): Consider
2366         strong using directives even if we've already found a binding.
2367
2368 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
2369
2370         * cp-tree.h (cxx_expand_expr): Change prototype.
2371         * expr.c (cxx_expand_expr): Add alt_rtl parameter.
2372
2373 2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2374
2375         PR c++/12573
2376         * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
2377         looking into them recursively. They can be there because of the
2378         new __offsetof__ extension.
2379
2380 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
2381
2382         * parser.c (cp_parser_save_member_function_body): Mark the
2383         definition static.
2384
2385 2004-01-05  Mark Mitchell  <mark@codesourcery.com>
2386
2387         PR c++/13057
2388         * class.c (build_clone): Copy type attributes from the original
2389         function to the clone.
2390
2391         PR c++/12815
2392         * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
2393         references as constant.
2394
2395         PR c++/12132
2396         * parser.c (cp_parser_explicit_instantiation): Improve error
2397         recovery.
2398         (cp_parser_require): Improve indication of the error location.
2399
2400         PR c++/13451
2401         * parser.c (cp_parser_class_head): Reorder logic to check for
2402         invalid qualification.
2403
2404 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
2405
2406         PR c++/13157
2407         * name-lookup.c (lookup_using_namespace): Remove spacesp
2408         parameter.
2409         (unqualified_namespace_lookup): Likewise.
2410         (lookup_qualified_name): Adjust accordingly.
2411         (lookup_name_real): Likewise.
2412         (lookup_arg_dependent): Do not eliminate the namespace of the
2413         functions found by unqualified name lookup unless that is the
2414         current namespace.
2415
2416 2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
2417
2418         * semantics.c (push_deferring_access_checks): Fix format.
2419         (resume_deferring_access_checks): Likewise.
2420         (stop_deferring_access_checks): Likewise.
2421         (pop_deferring_access_checks): Likewise.
2422         (get_deferred_access_checks): Likewise.
2423         (pop_to_parent_deferring_access_checks): Likewise.
2424         (perform_deferred_access_checks): Likewise.
2425         (perform_or_defer_access_check): Likewise.
2426
2427 2004-01-04  Richard Henderson  <rth@redhat.com>
2428
2429         * call.c (build_over_call): Don't create a save_expr of an
2430         aggregate, but rather its address.
2431
2432 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
2433
2434         PR c++/13529
2435         * parser.c (cp_parser_postfix_expression): Allow "." to appear in
2436         an offsetof expression.
2437
2438         * parser.c (cp_parser_parameter_declaration): Fix comment.
2439
2440         PR c++/12226
2441         * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
2442         (reference_binding): Set it when appropriate.
2443         (build_temp): New function, split out from ...
2444         (convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
2445         (initialize_reference): Likewise.
2446
2447         PR c++/13536
2448         * parser.c (cp_parser): Add in_type_id_in_expr_p.
2449         (cp_parser_new): Initialize it.
2450         (cp_parser_postfix_expression): Set it.
2451         (cp_parser_sizeof_operand): Likewise.
2452         (cp_parser_parameteR_declaration): Do not commit early to tenative
2453         parsers when in_type_id_in_expr_p is set.
2454
2455 2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2456
2457         PR c++/13094
2458         * parser.c (cp_parser_template_argument): Don't call
2459         make_unbound_class_template directly.
2460         (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
2461         UNBOUND_CLASS_TEMPLATE tree node.
2462
2463 2004-01-02  Richard Sandiford  <rsandifo@redhat.com>
2464
2465         PR target/12729
2466         * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
2467
2468 2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2469
2470         PR c++/13520
2471         * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
2472         (DECL_FUNCTION_TEMPLATE_P): Use it.
2473         (DECL_CLASS_TEMPLATE_P): Likewise.
2474         * parser.c (cp_parser_lookup_name): Add is_template parameter.
2475         (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
2476         (cp_parser_template_name): Likewise.
2477         (cp_parser_elaborated_type_specifier): Likewise.
2478         (cp_parser_namespace_name): Likewise.
2479         (cp_parser_class_name): Likewise.
2480         (cp_parser_lookup_name_simple): Likewise.
2481
2482 See ChangeLog.3 for earlier changes.