OSDN Git Service

PR c++/42844
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog-2005
1 2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2
3         * cxx-pretty-print.c (pp_cxx_constant): New.  Print
4         string-literal in parens if input program says so.
5         (pp_cxx_primary_expression): Hand off constant printing to
6         pp_cxx_constant.
7         (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
8         (pp_cxx_expression): Use pp_cxx_constant for literals.
9         * error.c (dump_expr): Use pp_constant for literals.
10
11 2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12
13         * method.c (make_thunk): Don't set comdat_linkage here.
14         (use_thunk): Make thunk one only here, if thunk target is
15         DECL_ONE_ONLY.
16
17 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
18
19         PR c++/25439
20         * decl.c (grokdeclarator): Remove dead code.
21         * ptree.c (cxx_print_xnode): Handle BASELINK.
22         * parser.c (make_id_declarator): Add sfk parameter.
23         (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
24         make_id_declarator.
25         (cp_parser_declarator_id): Simplify BASELINKs here.
26         (cp_parser_member_declaration): Adjust calls to
27         make_id_declarator.
28
29 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
30
31         PR c++/23171, c++/23172, c++/25417.
32         * typeck.c (build_unary_op): Create temporary variables for
33         compound literals whose addresses are taken.
34         * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
35         * decl.c (reshape_init_vector): Likewise.
36         (reshape_init): Give it external linkage.
37         (check_initializer): Use COMPOUND_LITERAL_P.
38         (initialize_artificial_var): Allow the initializer to be a
39         CONSTRUCTOR.
40         * call.c (make_temporary_var_for_ref_to_temp): Use
41         create_temporary_var.
42         * cp-tree.h (COMPOUND_LITERAL_P): New macro.
43         (rehape_init): Declare.
44         * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
45         * semantics.c (finish_compound_literal): Use reshape_init.
46
47 2005-12-23  Mark Mitchell  <mark@codesourcery.com>
48
49         PR c++/24671
50         * pt.c (instantiate_template): Handle SFINAE.
51
52 2005-12-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
53
54         * decl.c (grokdeclarator): Improve diagnostic for friend
55         declarations of class members.
56
57 2005-12-22  Mark Mitchell  <mark@codesourcery.com>
58
59         PR c++/25369
60         * tree.c (really_overloaded_fn): Tweak comment.
61         * pt.c (tsubst_call_declarator_parms): Remove.
62         (tsubst_copy): Call mark_used on the member referenced by an
63         OFFSET_REF.
64         * semantics.c (finish_qualified_id_expr): Simplify.
65         * decl2.c (mark_used): Accept BASELINKs.
66
67         PR c++/25364
68         * typeck.c (build_unary_op): Pass DECLs not names to
69         build_offset_refs.
70         * init.c (build_offset_ref): Do not do name lookup.  Do not call
71         mark_used.
72         * call.c (build_call): Simplify and tidy.
73         * semantics.c (finish_qualified_id_expr): Call mark_used.
74
75 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
76
77         PR c++/23333
78         * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
79         identify a single '0'.
80
81 2005-12-20  Mark Mitchell  <mark@codesourcery.com>
82
83         PR c++/21228
84         * decl.c (use_eh_spec_block): New function.
85         (store_parm_decls): Use it.
86         (finish_function): Likewise.
87
88 2005-12-19  Mark Mitchell  <mark@codesourcery.com>
89
90         PR c++/24278
91         * init.c (expand_member_init): Print messages about baseclasses
92         using %T rather than %D.
93
94         PR c++/24915
95         * class.c (add_method): Do not treat templates as identical unless
96         their return types are the same.
97
98 2005-12-12  Mark Mitchell  <mark@codesourcery.com>
99
100         PR c++/25300
101         * tree.c (build_qualified_name): Return error_mark_node for
102         erroneous input.
103
104 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
105
106         PR c++/25337
107         * pt.c (tsubst_copy_and_build): Permit dependent types for the
108         object in a class member access expression.
109
110 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
111
112         PR java/9861
113         * mangle.c (write_bare_function_type): Mangle return type for
114         methods of Java classes
115
116 2005-12-08  Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
117
118         * call.c (build_conditional_expr): Print types in error messages.
119
120 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
121
122         * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
123
124 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
125
126         * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
127
128 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
129
130         * Make-lang.in (c++.all.build, c++.install-normal): Remove.
131
132 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
133
134         * Make-lang.in: Remove all dependencies on s-gtype.
135
136 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
137
138         PR C++/24138
139         * decl.c (reshape_init_array_1): Handle max_index of -1.
140
141 2005-12-06  Roger Sayle  <roger@eyesopen.com>
142
143         * typeck.c (build_binary_op): Issue warning if either operand of a
144         comparison operator is a string literal, except for testing equality
145         or inequality against NULL.
146
147 2005-12-06  Roger Sayle  <roger@eyesopen.com>
148
149         PR c++/25263
150         * decl.c (compute_array_index_type): Check that itype is an
151         INTEGER_CST node before testing/clearing TREE_OVERFLOW.
152
153 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
154
155         * ptree.c (cxx_print_decl): Update to check for decl_common
156         structure.
157
158 2005-12-02  Mark Mitchell  <mark@codesourcery.com>
159
160         PR c++/24173
161         * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
162         clobbering newdecl.
163
164 2005-12-02  Richard Guenther  <rguenther@suse.de>
165
166         * semantics.c (simplify_aggr_init_expr): Use buildN instead
167         of build.
168
169 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
170
171         * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
172         ggc_realloc.
173         (cp_parser_template_argument_list): Use XRESIZEVEC instead of
174         xrealloc.
175         * class.c (pushclass): Likewise.
176
177 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
178
179         * decl2.c (get_priority_info): Use XNEW, not xmalloc.
180         * decl.c (push_switch): Likewise.
181         * lex.c (handle_pragma_implementation): Likewise.
182         * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
183         not ggc_alloc.
184         (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
185         * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
186         * g++spec.c (lang_specific_driver): Likewise.
187         * mangle.c (save_partially_mangled_name): Likewise.
188         * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
189         (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
190         (cp_parser_sizeof_operand): Likewise.
191         * repo.c (open_repo_file, open_repo_file): Likewise.
192
193 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
194
195         * parser.c (cp_parser_make_typename_type): Call make_typename_type
196         with tf_none instead of magic value 0.
197         (cp_parser_explicit_instantiation): Call do_type_instantiation
198         with tf_error instead of magic value 1.
199         (cp_parser_elaborated_type_specifier): Call make_typename_type
200         with tf_error instead of magic value 1.
201         (cp_parser_class_name): Likewise.
202         (cp_parser_lookup_name): Likewise.
203
204 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
205
206         * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
207         not RID_MAX.
208
209 2005-11-30  Jason Merrill  <jason@redhat.com>
210
211         PR c++/21123
212         * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
213         parms in a thunk.
214
215 2005-11-30  Ben Elliston  <bje@au.ibm.com>
216
217         * typeck.c (build_x_unary_op): Correct spelling in error message.
218
219 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
220
221         PR c++/21166
222         * class.c (check_field_decls): Only set DECL_PACKED on a field
223         when its natural alignment is > BITS_PER_UNIT.
224
225 2005-11-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
226
227         PR c++/24979
228         * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
229
230 2005-11-26  Richard Henderson  <rth@redhat.com>
231
232         * lex.c: Update for pragma_lex rename.
233         * parser.c: Likewise.
234
235 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
236
237         PR c++/9278
238         * decl.c (grokparms): Do not allow typedef-names in a '(void)'
239         parmlist.
240
241 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
242
243         * typeck2.c (process_init_constructor_union): Remove check for
244         unnamed union members.
245
246 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
247
248         * name-lookup.c (lookup_name_real): Merge two if's.
249
250 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
251
252         * pt.c (instantiate_class_template): Clean-up.
253
254 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
255
256         * pt.c (template_class_depth_real): Remove. Move functionality to ...
257         (template_class_depth): ... here, replacing count_specializations
258         with 0.  Adjust comment.
259
260 2005-11-24  Richard Guenther  <rguenther@suse.de>
261         Dirk Mueller <dmueller@suse.de>
262
263         PR c++/14024
264         * typeck.c (build_reinterpret_cast_1): Use
265         strict_aliasing_warning.
266
267 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
268
269         PR c++/24235
270         * pt.c (check_instantiated_args): Reword diagnostic message about
271         template argument involving local types.
272
273 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
274
275         PR c++/21667
276         * typeck.c (build_array_ref): Avoid code duplicate.  Use common
277         C/C++ diagnostic function warn_array_subscript_with_type_char.
278
279 2005-11-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
280
281         PR c++/22238
282         * error.c (resolve_virtual_fun_from_obj_type_ref): New.
283         (dump_expr): Use it in <case CALL_EXPR>.
284
285 2005-11-21  Richard Henderson  <rth@redhat.com>
286
287         * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
288
289         * name-lookup.c (lookup_name): Remove prefer_type argument.
290         (lookup_name_prefer_type): New.
291         * decl.c (lookup_and_check_tag): Use them.
292         * pt.c (tsubst_friend_class): Likewise.
293         (lookup_template_class): Likewise.
294         (tsubst_copy_and_build): Likewise.
295         * name-lookup.h (lookup_name_prefer_type): New.
296         (lookup_name): Remove declaration.
297
298 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
299
300         PR c++/8355
301         * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
302         set_decl_namespace.
303         * name-lookup.c (set_decl_namespace):
304
305 2005-11-18  Mike Stump  <mrs@apple.com>
306
307         * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
308         * name-lookup.c (lookup_name_two): Remove.
309         (lookup_name_one): Add.
310         * name-lookup.h (lookup_name_two): Remove.
311         (lookup_name_one): Add.
312
313 2005-11-15  Jason Merrill  <jason@redhat.com>
314
315         PR c++/24580
316         * method.c (locate_copy): Also use skip_artificial_parms here.
317         (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
318         for RECORD_TYPE.
319         (locate_ctor): Abort if we fail to find a default constructor.
320
321 2005-11-15  Mike Stump  <mrs@apple.com>
322
323         * name-lookup.c (lookup_name_two): Add.
324         * name-lookup.h: Likewise.
325
326 2005-11-15  Mark Mitchell  <mark@codesourcery.com>
327
328         PR c++/24667
329         * typeck.c (check_for_casting_away_constness): Use the diag_fn.
330         (build_const_cast_1): Call it, for C-style casts.
331
332 2005-11-14  Mark Mitchell  <mark@codesourcery.com>
333
334         PR c++/24687
335         * pt.c (check_explicit_specialization): Don't check for C linkage.
336         (push_template_decl_real): Likewise.
337         * parser.c (cp_parser_explicit_specialization): Check here.
338         (cp_parser_template_declaration_after_export): And here.
339
340         * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
341         field.
342
343 2005-11-14  Jason Merrill  <jason@redhat.com>
344
345         PR c++/24580
346         * method.c (locate_ctor): Skip all artificial parms, not just
347         'this'.
348
349 2005-11-14  Mark Mitchell  <mark@codesourcery.com>
350
351         * parser.c (eof_token): Add initializer for ambiguous_p.
352
353 2005-11-13  Mark Mitchell  <mark@codesourcery.com>
354
355         PR c++/24817
356         * decl.c (check_redeclaration_exception_specification): New
357         function.
358         (duplicate_decls): Use it.
359         * error.c (fndecl_to_string): Print the template parameter list.
360
361         PR c++/20293
362         * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
363         for namespaces.
364         (pp_cxx_original_namespace_definition): Likewise.
365         * name-lookup.c (ambiguous_decl): Don't issue error messages;
366         instead return lists of ambiguous candidates.
367         (select_decl): Handle ambiguous namespace lookups.
368         * parser.c (cp_token): Add ambiguous_p.
369         (cp_lexer_get_preprocessor_token): Set it.
370         (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
371         when a qualified name uses an invalid scope.
372         (cp_parser_primary_expression): Print ambiguous candidates.
373         (cp_parser_type_parameter): Adjust comment to reflect new
374         parameter name for cp_parser_lookup_name.
375         (cp_parser_template_argument): Likewise.
376         (cp_parser_elaborated_type_specifier): Likewise.
377         (cp_parser_namespace_name): Likewise.
378         (cp_parser_class_name): Print ambiguous candidates.
379         (cp_parser_lookup_name): Rename ambiguous_p parameter to
380         ambiguous_decls.  Use it to return a list of ambiguous candiates
381         when a lookup is ambiguous.
382         (cp_parser_lookup_name_simple): Adjust comment to reflect new
383         parameter name for cp_parser_lookup_name.
384
385 2005-11-12  Jakub Jelinek  <jakub@redhat.com>
386
387         PR c++/24780
388         * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
389         and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
390         of array type.
391
392         PR c++/24761
393         * pt.c (tsubst_copy_asm_operands): New function.
394         (tsubst_expr) <case ASM_EXPR>: Use it.
395
396 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
397
398         PR c++/19450
399         * decl.c (redeclaration_error_message): Issue diagnostics about
400         olddecl and newdecl disagreement on __thread property.
401         (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
402
403 2005-11-08  Jason Merrill  <jason@redhat.com>
404
405         PR c++/21123
406         * method.c (use_thunk): Use build_cplus_new instead of
407         force_target_expr.
408
409 2005-11-06  Jason Merrill  <jason@redhat.com>
410             James A. Morrison <phython@gcc.gnu.org>
411
412         PR c++/17256
413         * decl2.c (cp_finish_file): Fix conditions for undefined warning.
414         Set TREE_NO_WARNING instead of TREE_PUBLIC.
415         * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
416         a warning on a function we didn't instantiate because of excessive
417         recursion.
418
419 2005-11-06  Mark Mitchell  <mark@codesourcery.com>
420
421         * class.c (record_subobject_offsets): Don't record offsets past
422         biggest empty class for non-empty base classes.
423         (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
424         keeping track of the size of emptyclasses.
425
426         PR c++/21308
427         * class.c (sizeof_biggest_empty_class): New variable.
428         (record_subobject_offsets): Don't record offsets past biggest
429         empty class for data members.  Replace vbases_p parameter with
430         is_data_member parameter.
431         (build_base_field): Adjust call.
432         (layout_class_type): Likewise.  Maintain
433         sizeof_biggest_empty_class.
434
435 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
436
437         * decl2.c, init.c, typeck.c: Fix comment typos.
438
439 2005-11-04  Richard Guenther  <rguenther@suse.de>
440
441         PR c++/22487
442         * init.c (build_vec_init): Build comparison of matching
443         types.
444
445 2005-11-03  Josh Conner  <jconner@apple.com>
446
447         PR c++/19989
448         pt.c (tsubst): Accept zero-length array if tf_error is set
449         in complain flags.  Change error message for negative-
450         length array.
451
452 2005-11-04  Joseph S. Myers  <joseph@codesourcery.com>
453
454         * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
455         parameter.
456
457 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
458
459         PR c++/17964
460         * error.c (cp_cpp_error): New function.
461         * cp-tree.h (cp_cpp_error): Declare.
462         * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
463         and error callback after lexing.
464
465 2005-11-03  Mark Mitchell  <mark@codesourcery.com>
466
467         PR c++/21627
468         * pt.c (register_specialization): Update inline flags on clones.y
469
470 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
471
472         PR c++/24582
473         * decl.c (declare_local_label): Return 0 for variables
474         with error_mark_node as their types.
475
476 2005-11-02  Mark Mitchell  <mark@codesourcery.com>
477
478         PR c++/22434
479         * call.c (build_conditional_expr): Do bad conversions, if there's
480         no other choice.
481
482         PR c++/24560
483         * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
484         message for use of overloaded functions on LHS of "." operator.
485
486         PR c++/19253
487         * parser.c (cp_parser_postfix_expression): Use
488         cp_parser_elaborated_type_specifier to handle typename-types in
489         functional casts.
490         (cp_parser_enclosed_argument_list): Skip ahead to the end of the
491         template argument list if the closing ">" is not found.
492
493         PR c++/24569
494         * pt.c (instantiate_decl): Use cp_finish_decl, not
495         finish_static_data_member_decl.
496
497 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
498
499         * decl.c (grokfndecl): Remove the setting
500         of the return type of the function type
501         of main after erroring about must returning
502         int.
503
504 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
505
506         PR C++/23229
507         * decl.c (grokfndecl): Create a new function type
508         after erroring out about main not returning int.
509
510 2005-10-28  Josh Conner  <jconner@apple.com>
511
512         PR c++/22153
513         * parser.c (cp_parser_member_declaration): Detect and handle
514         a template specialization.
515
516 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
517
518         PR C++/23426
519         * decl.c (start_decl): Check that the decl is an
520         error_mark_node before getting the type.
521         Remove the check for the decl's type being an
522         error_mark_node.
523
524 2005-10-21  Mark Mitchell  <mark@codesourcery.com>
525
526         PR c++/24260
527         * parser.c (cp_parser_init_declarator): Pass attributes to
528         grokfield.
529
530 2005-10-20  Mark Mitchell  <mark@codesourcery.com>
531
532         PR c++/22618
533         * search.c (accessible_p): Check access in the outermost set of
534         template parameters.
535
536 2005-10-20  Richard Guenther  <rguenther@suse.de>
537
538         * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
539
540 2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
541
542         PR c++/22293
543         * decl.c (grokdeclarator): Reject unqualified destructors in
544         friend declarations.
545
546 2005-10-18  Mark Mitchell  <mark@codesourcery.com>
547
548         PR c++/23293
549         * pt.c (convert_template_argument): Use canonical type variants in
550         template specializations.
551
552 2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
553
554         PR c++/21383
555         * name-lookup.c (arg_assoc): Template args can be null in a
556         template-id-expr.
557
558         PR c++/22604
559         * class.c (update_vtable_entry_for_fn): Don't process invalid
560         covariant overriders.
561
562         PR c++/23118
563         * cp-tree.h (add_method): Add return value.
564         * class.c (add_method): Return success indicator.
565         * semantics.c (finish_member_declaration): Don't add an invalid
566         method to the method list.
567
568 2005-10-17  Mark Mitchell  <mark@codesourcery.com>
569
570         PR c++/21908
571         * call.c (build_new_method_call): Do not show VTT parameters to
572         the user.
573
574 2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
575
576         PR c++/23440
577         * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
578         only complain about missing statement.
579
580 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
581
582         PR c++/24386
583         * cp-tree.h (BASELINK_QUALIFIED_P): New.
584         * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
585         * typeck.c (finish_class_member_access_expr): Set it.
586
587         PR c++/21353
588         * decl.c (check_default_argument): Don't check
589         processing_template_decl or uses_template_parms here.
590         (grokparms): Only call check_default_argument when not processing
591         a template decl.
592         * parser.c (cp_parser_late_parsing_default_arg): Call
593         check_default_argument when not processing a template decl.
594
595 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
596
597         PR c++/24389
598         * decl2.c (mark_used): Use uses_template_parms instead of
599         dependent_type_p.
600         * init.c (constant_value_1): Handle uninstantiated templates
601         specially.
602         * pt.c (instantiate_decl): Add sanity check.
603
604 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
605
606         PR c++/22173
607         * typeck.c (check_template_keyword): Fix thinko.
608
609 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
610
611         PR c++/23959
612         * decl.c (pop_switch): Only call c_do_switch_warnings
613         when not processing templates.
614
615 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
616
617         PR c++/22173
618         * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
619         (check_template_keyword): New function.
620         (finish_id_expression): Change prototoype.
621         (finish_qualified_id_expr): Change prototype.
622         (build_qualified_name): New function.
623         (finish_class_member_access_expr): Change prototype.
624         * init.c (build_offset_ref): Use build_qualified_name.
625         * mangle.c (write_expression): Likewise.
626         * parser.c (cp_parser_primary_expression): Remove qualifying_class
627         parameter.  Add address_p and template_arg_p.  Use
628         build_qualified_name.
629         (cp_parser_id_expression): Default *template_p to
630         template_keyword_p.  Check for invalid uses of the template
631         keyword.
632         (cp_parser_postfix_expression): Eliminate special handling for
633         qualified names.  Adjust call to cp_parser_primary_expression.
634         (cp_parser_postfix_dot_deref_expression): Adjust call to
635         cp_parser_id_expression and finish_class_member_access_expr.
636         (cp_parser_template_argument_list): Add comment.
637         (cp_parser_template_argument): Adjust use of
638         cp_parser_primary_expression.  Remove call to
639         finish_qualified_id_expr.
640         (cp_parser_lookup_name): Use build_qualified_name.
641         * pt.c (tsubst): Use build_qualified_name.
642         (tsubst_qualified_id): Likewise.  Adjust call to
643         finish_qualified_id_expr.
644         (tsubst_copy): Use build_qualified_name.
645         (tsubst_copy_and_build): Adjusts call to finish_id_expression and
646         finish_class_member_access_expr.
647         * semantics.c (finish_non_static_data_member): Use
648         build_qualified_name.
649         (finish_qualified_id_expr): Add template_p and template_arg_p
650         parameters.
651         (finish_id_expression): Remove qualifiying_class parameter.  Add
652         template_p, done, address_p, and template_arg_p.  Use
653         build_qualified_name.  Adjust calls to
654         finish_class_member_acess_expr.
655         * tree.c (build_qualified_name): New function.
656         * typeck.c (check_template_keyword): New function.
657         (finish_class_member_access_expr): Add template_p argument.  Check
658         for invalid uses of the template keyword.
659
660 2005-10-15  Mark Mitchell  <mark@codesourcery.com>
661
662         PR c++/21347
663         * class.c (maybe_warn_about_overly_private_class): Lazy
664         constructors are public.
665
666 2005-10-14  Mark Mitchell  <mark@codesourcery.com>
667
668         PR c++/19565
669         * call.c (convert_like_real): Rely on convert_and_check to issue
670         warnings about overflow and conversion to unsigned.
671         * decl.c (finish_enum): Use the location of the enumerators, not
672         the closing brace of the enumeration, when reporting warnings
673         about conversions.
674         (build_enumerator): Use error_mark_node for erroneous values.
675         * typeck2.c (digest_init): Remove reference to "signature pointer"
676         from comment.
677
678 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
679
680         PR c++/17796
681         * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
682         (maybe_clone_body): Track the first clone.
683
684 2005-10-13  Nathan Sidwell  <nathan@codesourcery.com>
685
686         PR c++/23984
687         * class.c (build_base_path): The vtable is always the first thing
688         in the vtt.
689
690 2005-10-13  Mark Mitchell  <mark@codesourcery.com>
691
692         PR c++/20721
693         * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
694         * decl.c (duplicate_decls): Merge it into new declarations.
695         (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
696         (cp_finish_decl): Set it, when appropriate.
697
698         PR c++/22180
699         * call.c (build_new_method_call): Correct pretty-printing of
700         destructor names.
701         * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
702         identifier.
703
704         PR c++/23694
705         * decl.c (start_method): Return error_mark_node for errors.
706
707         PR c++/23307
708         * pt.c (push_template_decl_real): Complain about attempts to
709         declare template variables.
710
711         PR c++/22352
712         * pt.c (tsubst_template_parms): Set processing_template_decl while
713         processing the parameters.
714         (tsubst_decl): Set processing_template_decl when substituting into
715         a TEMPLATE_DECL.
716
717         PR c++/22405
718         * pt.c (most_specialized_instantiation): Robustify.
719
720         PR c++/22464
721         * semantics.c (finish_id_expression): Issue errors about uses of
722         local variables in containing functions even in templates.
723
724 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
725
726         PR target/21801
727         PR target/23589
728         * class.c (finish_struct_1): Call
729         targetm.cxx.adjust_class_at_definition.
730
731
732 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
733
734         PR c++/21592
735         * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
736         with already looked up member functions.  Assert we're not
737         returning a NON_DEPENDENT_EXPR with unknown type.
738         * typeck.c (finish_class_member_access_expr):  We can get
739         non-template-id-expr baselinks.  If the lookup finds a baselink,
740         remember it even inside templates.
741
742         PR c++/23797
743         * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
744         TYPE_DECL.  Use dependent_type_p to check type.
745         * pt.c (uses_template_parms_p): Use dependent_type_p for a
746         TYPE_DECL.
747         (type_dependent_expression_p): Assert we've not been given a
748         TYPE_DECL.
749
750         PR c++/21117
751         * decl.c (check_function_type): Correctly overwrite incomplete
752         return type with void type.
753         * typeck.c (check_return_expr): If the function's return type is
754         void, don't try and convert a return expr.
755
756 2005-10-12  David Edelsohn  <edelsohn@gnu.org>
757
758         PR c++/23730
759         * call.c (build_object_call): If BINFO is NULL, bypass
760         lookup_fnfields and set fns to NULL_TREE.
761
762 2005-10-12  Paolo Bonzini  <bonzini@gnu.org>
763
764         PR c++/24052
765         * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
766         an ADDR_EXPR of a LABEL_DECL as &&.
767
768 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
769
770         PR c++/19964
771         * class.c (walk_subobject_offsets): Don't walk error_mark_node.
772
773 2005-10-11  Ian Lance Taylor  <ian@airs.com>
774
775         PR c++/8057
776         * cvt.c (convert_to_void): Don't warn about unused values when
777         processing a template declaration.
778
779 2005-10-11  Mark Mitchell  <mark@codesourcery.com>
780
781         PR c++/21089
782         * call.c (convert_like_real): Use decl_constant_value, not
783         integral_constant_value.
784         * init.c (constant_value_1): New function.
785         (integral_constant_value): Use it.
786         (decl_constant_value): Likewise.
787         * typeck.c (decay_conversion): Use decl_constant_value, not
788         integral_constant_value.
789
790         PR c++/21369
791         * parser.c (cp_parser_elaborated_type_specifier): Don't treat
792         class types as templates if the type is not appearing as part of a
793         type definition or declaration.
794
795 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
796
797         PR c++/24277
798         * pt.c (instantiate_decl): Call finish_static_data_member_decl for
799         static data members.
800
801 2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
802             Mark Mitchell  <mark@codesourcery.com>
803
804         PR c++/23437
805         * parser.c (cp_parser_template_argument_list): Do not treat
806         contents of argument list as part of a constant expression.
807
808 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
809
810         PR c++/24139
811         * decl.c (grokdeclarator): Do not require template parameter lists
812         for explicitly specialized class.
813         * error.c (dump_aggr_type): Do not dump template arguments for
814         non-primary specializations.
815         (dump_function_name): Likewise.
816
817         PR c++/24275
818         * pt.c (instantiate_decl): Instantiate the initializer of
819         a static data member in the namespace containing the class
820         containing the static data member.
821
822 2005-10-08  James A. Morrison  <phython@gcc.gnu.org>
823
824         PR c++/22172
825         * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
826         scopes as nondependent.
827
828 2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
829
830         * call.c (resolve_args): Remove redundant test.
831
832 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
833
834         PR tree-optimization/21419
835         PR tree-optimization/24146
836         PR tree-optimization/24151
837
838         * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
839         read-only.  Set ASM_VOLATILE_P for asms without outputs.
840
841 2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>
842
843         PR c++/23513
844         * call.c (joust): Adjust length count to more_specialized_fn.
845         * pt.c (more_specialized_fn): Cope with non-static member vs
846         non-member.
847
848 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
849
850         PR middle-end/23125
851         * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
852         instead of change_decl_assembler_name.
853
854 2005-10-03  Alexandre Oliva  <aoliva@redhat.com>
855
856         * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
857
858 2005-10-03  Mark Mitchell  <mark@codesourcery.com>
859
860         PR c++/17775
861         * repo.c: Include flags.h.
862         (finish_repo): Add -frandom-seed to the arguments.
863
864 2005-10-02  Mark Mitchell  <mark@codesourcery.com>
865
866         PR c++/22621
867         * parser.c (cp_parser_template_argument): Don't turn "T::f" into
868         "(*this).T::f".
869         * pt.c (convert_nontype_argument): Remove ??? comment.
870
871         PR c++/23840
872         * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
873         when class rvalues are lvalues.
874
875 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
876
877         PR c++/16782
878         * decl.c (grokdeclarator): Always pedwarn about overqualified
879         member names.
880
881 2005-09-27  Mark Mitchell  <mark@codesourcery.com>
882
883         PR c++/22147
884         * name-lookup.c (maybe_process_template_type_declaration): Don't
885         treat forward declarations of classes as templates just because
886         we're processing_template_decl.
887         * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
888         functions.
889
890 2005-09-26  Jason Merrill  <jason@redhat.com>
891
892         PR c++/13764
893         * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
894         * name-lookup.c (pushdecl_maybe_friend): Check it.
895         * decl.c (begin_function_body): Do nothing if it's false.
896         (finish_function_body): Ditto.
897         (outer_curly_brace_block): New fn.
898         (finish_function): Use it.
899
900 2005-09-26  Richard Guenther  <rguenther@suse.de>
901
902         PR middle-end/15855
903         * decl2.c (do_static_destruction): Remove.
904         (finish_static_initialization_or_destruction): Likewise.
905         (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
906         (NEEDS_GUARD_P): Likewise.
907         (do_static_initialization): Rename to
908         do_static_initialization_or_destruction.  Process all
909         initializers/destructors and handle common conditionalizing.
910         (start_static_initialization_or_destruction): Rename to
911         one_static_initialization_or_destruction.  Handle only
912         decl-specific conditionalizing.
913         (cp_finish_file): Call do_static_initialization_or_destruction.
914
915 2005-09-22  Jakub Jelinek  <jakub@redhat.com>
916
917         PR c++/21983
918         * class.c (find_final_overrider): Move diagnostic about no unique final
919         overrider to...
920         (update_vtable_entry_for_fn): ... here.
921
922 2005-09-21  Mark Mitchell  <mark@codesourcery.com>
923
924         PR c++/23993
925         * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
926
927 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
928
929         PR c++/23965
930         * call.c (resolve_args): Return error_mark_node on arguments
931         whose TREE_TYPE is error_mark_node.
932
933 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
934
935         PR c++/23947
936         * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
937         get_tinfo_ptr calls.
938
939 2005-09-16  Mark Mitchell  <mark@codesourcery.com>
940
941         PR c++/23914
942         * parser.c (cp_parser_enclosed_template_argument_list): Make sure
943         skip_evaluation is false when processing template arguments.
944
945         PR c++/21514
946         * pt.c (check_instantiated_args): Treat uses of anonymous types as
947         causing type-deduction failure.
948
949 2005-09-15  Jason Merrill  <jason@redhat.com>
950
951         PR c++/23357
952         * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
953         tcc_expression.
954
955 2005-09-15  Mark Mitchell  <mark@codesourcery.com>
956
957         PR c++/23896
958         * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
959         processing template arguments.
960
961         * pt.c (check_explicit_instantiation_namespace): Fix typo.
962
963         PR c++/13140
964         * decl.c (check_class_member_definition_namespace): New function.
965         (grokfndecl): Use it.
966         (grokvardecl): Likewise.
967         (grokdecl): Improve documentation.
968         * pt.c (check_explicit_instantiation_namespace): New function.
969         (register_specialization): Call check_specialization_namespace
970         when replacing an implicitly instantiated function.
971         (check_explicit_specialization): Ensure that DECL_CONTEXT is set
972         correctly for namespace-scope specializations.
973         (do_decl_instantiation): Use
974         check_explicit_instantiation_namespace.
975         (do_type_instantiation): Likewise.
976
977 2005-09-15  Nathan Sidwell  <nathan@codesourcery.com>
978
979         PR c++/23725
980         * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
981
982 2005-09-13  Bastian Blank <waldi@debian.org>
983
984         PR c++/16171
985         * mangle.c (find_substitution): Do not use special substitutions
986         for identifiers not in std::.
987
988 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
989
990         PR c++/23839
991         * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
992         for VAR_DECLs.
993
994 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
995
996         PR c++/23842
997         * pt.c (tsubst_default_argument): Do treat default argument
998         expressions as occurring in the context of the function called.
999
1000 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
1001
1002         PR c++/23841
1003         * parser.c (cp_parser_primary_expression): Recognize the closing
1004         ">" of a template-argument-list after a floating-point literal as
1005         the end of a cast expression.
1006
1007 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
1008
1009         PR c++/23789
1010         * cvt.c (perform_qualification_conversions): Don't create
1011         unnecessary NOP_EXPRs.
1012         * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
1013
1014 2005-09-12  Ian Lance Taylor  <ian@airs.com>
1015
1016         PR g++/7874
1017         * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
1018         bitfield.  Make dummy bitfield one bit smaller.
1019         (DECL_HIDDEN_FRIEND_P): Define.
1020         (pushdecl_maybe_friend): Declare.
1021         (pushdecl_top_level_maybe_friend): Declare.
1022         * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
1023         Change prototype and all callers.  Add assertion that a
1024         DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
1025         DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
1026         appropriate.
1027         * name-lookup.c (supplement_binding): Don't ignore a
1028         DECL_HIDDEN_FRIEND_P.
1029         (pushdecl_maybe_friend): Break out contents of pushdecl.  Add
1030         is_friend parameter.  Set DECL_ANTICIPATED and
1031         DECL_HIDDEN_FRIEND_P for a friend function.
1032         (pushdecl): Just call pushdecl_maybe_friend.
1033         (pushdecl_with_scope): Add is_friend parameter.  Change prototype
1034         and all callers.
1035         (pushdecl_namespace_level): Likewise.
1036         (push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
1037         well as DECL_ANTICIPATED when checking for a builtin.
1038         (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
1039         DECL_ANTICIPATED when checking for a builtin.
1040         (do_nonmember_using_decl): Likewise.
1041         (pushdecl_top_level_1): Add is_friend parameter.  Change all
1042         callers.
1043         (pushdecl_top_level_maybe_friend): New function.
1044         (remove_hidden_names): New function.
1045         (struct arg_lookup): Add args field.
1046         (friend_of_associated_class_p): New static function.
1047         (arg_assoc_namespace): Ignore hidden functions which are not
1048         friends of an associated class of some argument.
1049         (lookup_arg_dependent): Remove hidden functions from list passed
1050         in.  Initialize k.args.
1051         * name-lookup.h (remove_hidden_names): Declare.
1052         * friend.c (do_friend): Call pushdecl_maybe_friend instead of
1053         pushdecl.
1054         * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
1055         an assertion, with a check for DECL_HIDDEN_FRIEND_P.
1056         (build_new_function_call): Add koenig_p parameter.  Change
1057         prototype and callers.
1058         * pt.c (register_specialization): Add is_friend parameter.  Change
1059         all callers.
1060         (push_template_decl_real): Change is_friend parameter to bool.
1061         Change prototype and all callers.
1062         (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
1063         instead of pushdecl_top_level.
1064
1065 2005-09-11  Richard Henderson  <rth@redhat.com>
1066
1067         * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
1068         * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
1069
1070 2005-09-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1071
1072         * parser.c (cp_parser_translation_unit): Simplify.  The while-block
1073         was actually executed at most once.
1074
1075 2005-09-09  Richard Henderson  <rth@redhat.com>
1076
1077         PR debug/20998
1078         * cp-tree.def (ALIAS_DECL): Remove.
1079         * cp-lang.c (cp_init_ts): Remove support for it.
1080         * error.c (dump_decl): Likewise.
1081         * name-lookup.c (pushdecl): Likewise.
1082         * semantics.c (finish_id_expression): Likewise.
1083         * decl2.c (build_anon_union_vars): Use a VAR_DECL with
1084         DECL_VALUE_EXPR instead.
1085
1086 2005-09-09  Mark Mitchell  <mark@codesourcery.com>
1087
1088         PR c++/22252
1089         * decl.c (start_preparsed_function): Do not pay attention to
1090         #pragma interface for implicitly-defined methods.
1091         * decl2.c (cp_finish_file): Do not complain about uses of inline
1092         functions that have bodies, even if we decided not to emit the
1093         body in this translation unit.
1094         * semantics.c (note_decl_for_pch): Do not mess with linkage.
1095         (expand_or_defer_fn): Make inline, non-template functions COMDAT
1096         at this point.
1097
1098 2005-09-08  Richard Henderson  <rth@redhat.com>
1099
1100         PR debug/23190
1101         * decl.c (wrapup_globals_for_namespace): Call
1102         emit_debug_global_declarations.
1103         * decl2.c (cp_finish_file): Likewise.
1104
1105 2005-09-08  Mark Mitchell  <mark@codesourcery.com>
1106
1107         PR c++/23691
1108         * decl2.c (mark_used): Instantiate static data members initialized
1109         by constants, even in a template.
1110
1111 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
1112
1113         PR obj-c++/16816
1114         * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
1115         two CPP_COLON.
1116
1117 2005-09-07  Richard Guenther  <rguenther@suse.de>
1118
1119         * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
1120         for EMPTY_CLASS_EXPR.
1121
1122 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1123
1124         PR c/23075
1125         * typeck.c (check_return_expr): Add no_warning argument.  Set
1126         *no_warning to true if "return-statement with no value, in function
1127         returning" warning has been issued.
1128         * cp-tree.h (check_return_expr): Adjust prototype.
1129         * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
1130         check_return_expr set *no_warning to true.
1131
1132 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
1133
1134         * cp-tree.h (rvalue): New function.
1135         * call.c (build_conditional_expr): Use it.
1136         * init.c (build_new_1): Likewise.
1137         * rtti.c (build_dynamic_cast_1): Likewise.
1138         * tree.c (rvalue): New function.
1139         * typeck.c (build_unary_op): Use it.
1140         (build_static_cast_1): Likewise.
1141
1142         PR c++/9782
1143         * init.c (build_new_1): Make sure the entire array type is
1144         complete, not just its element types.
1145
1146 2005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1147
1148         * decl.c (check_elaborated_type_specifier): Remove redundant check.
1149
1150 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1151
1152         PR c++/23056
1153         * typeck.c (ignore_overflows): New helper function.
1154         (build_static_cast_1): Use it.
1155
1156 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
1157
1158         * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
1159         Follow spelling conventions.
1160
1161 2005-09-05  Mark Mitchell  <mark@codesourcery.com>
1162
1163         PR c++/23667
1164         * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
1165         copying a VAR_DECL.
1166
1167 2005-09-05  Mark Mitchell  <mark@codesourcery.com>
1168
1169         PR c++/21440
1170         * semantics.c (finish_stmt_expr_expr): Add an explicit
1171         initialization to the last statement in the statement-expression.
1172         * (finish_stmt_expr): Adjust accordingly.
1173
1174 2005-09-03  Mark Mitchell  <mark@codesourcery.com>
1175
1176         PR c++/23699
1177         * decl2.c (mark_used): Always instantiate static data members
1178         initialized by constant expressions.
1179         * pt.c (instantiate_decl): Instantiate the initializers for static
1180         data members initialized by constant expressions.
1181
1182         PR c++/21687
1183         * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
1184         finishing processing for a template function in a local class.
1185         Revert:
1186         2005-09-02  Mark Mitchell  <mark@codesourcery.com>
1187         * parser.c (cp_parser_class_specifier): Push/pop GC contexts
1188         around functions in local classes.
1189
1190 2005-09-02  Mark Mitchell  <mark@codesourcery.com>
1191
1192         PR c++/21687
1193         * parser.c (cp_parser_class_specifier): Push/pop GC contexts
1194         around functions in local classes.
1195
1196 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1197
1198         PR obj-c++/23640
1199         * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
1200         init, call generate_ctor_or_dtor_function.
1201
1202 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1203
1204         PR c++/13377
1205         * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
1206         lookup_name_real on final parse.
1207
1208 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1209
1210         PR c++/23639
1211         * semantics.c (qualified_name_lookup_error): Do not complain again
1212         on invalid scope.
1213
1214 2005-08-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1215
1216         PR c++/23586
1217         * parser.c (cp_parser_namespace_name): Move diagnostic for
1218         invalid namespace-name to here from ...
1219         * name-lookup.c (do_namespace_alias): ... here and ...
1220         (do_using_directive): ... here.  Remove dead code.
1221
1222 2005-08-28  Mark Mitchell  <mark@codesourcery.com>
1223
1224         PR c++/23099
1225         * cp-tree.h (saved_scope): Add skip_evaluation.
1226         * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
1227         DECL_INITIAL, to determine whether or not a static data member was
1228         initialized in the class-specifier.
1229         (cp_finish_decl): Add comment.
1230         * init.c (integral_constant_value): Subtitute into the
1231         initializers for static data members in templates.
1232         * name-lookup.c (push_to_top_level): Save skip_evaluation.
1233         (pop_from_top_level): Restore it.
1234         * pt.c (instantiate_class_template): Do not substitute into the
1235         intializers of static data members when instantiating a class.
1236         (regenerate_decl_from_template): Simplify.
1237         (instantiate_decl): Tidy.  Substitute into the initializer for a
1238         static data member even when the definition of the data member is
1239         not available.
1240
1241 2005-08-26  Mark Mitchell  <mark@codesourcery.com>
1242
1243         PR c++/19004
1244         * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
1245         (type_dependent_expression_p): Allow BASELINKs whose associated
1246         functions are simply a FUNCTION_DECL.
1247
1248         PR c++/23491
1249         * cp-tree.h (build_vec_init): Adjust prototype.
1250         * init.c (perform_member_init): Adjust call to build_vec_init.
1251         (build_aggr_init): Likewise.
1252         (build_new_1): Do not call build_default_init for array types.
1253         (build_vec_init): Add explicit_default_init_p parameter.  Perform
1254         default initialization of vector elements when set.
1255         * typeck.c (build_modify_expr): Adjust call to build_vec_init.
1256
1257 2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1258
1259         PR c++/20817
1260         * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
1261         ->*.
1262
1263 2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1264
1265         PR c++/22454
1266         * parser.c (cp_lexer_peek_nth_token): Relax assert.
1267
1268 2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1269
1270         PR c++/23044
1271         * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
1272
1273 2005-08-22  James E Wilson  <wilson@specifix.com>
1274
1275         PR tree-optimization/23426
1276         * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
1277         array size check.
1278
1279 2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1280
1281         PR c++/22233
1282         * pt.c (push_template_decl_real): Return error_mark_node if the
1283         number of template parameters does not match previous definition.
1284
1285 2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1286
1287         PR c++/23089
1288         * decl.c (require_complete_types_for_parms): Mark incomplete types
1289         as invalid.
1290
1291 2005-08-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1292
1293         * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
1294         Fix typo in leading comment.
1295
1296 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1297
1298         * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
1299
1300 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
1301
1302         * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
1303         * call.c (add_template_candidate_real): Pass down 'flags' to
1304         fn_type_unification.
1305         (can_convert_arg): New 'flags' argument. Pass it to call to
1306         implicit_conversion instead of LOOKUP_NORMAL.
1307         (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
1308         * class.c (resolve_address_of_overloaded_function): Ditto.
1309         (resolve_address_of_overloaded_function): Ditto.
1310         * decl.c (reshape_init, check_default_argument): Ditto.
1311         * typeck.c (build_ptrmemfunc): Ditto.
1312         * pt.c (type_unification_real): Add 'flags' argument.
1313         (fn_type_unification): Pass 'flags' to type_unification_real.
1314         (type_unification_real): Pass new 'flags' argument to call to
1315         can_convert_arg.
1316
1317 2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
1318             Nathan Sidwell  <nathan@codesourcery.com>
1319
1320         PR c++/21799
1321         PR c++/8271
1322         * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
1323         explicitly.
1324
1325 2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>
1326
1327         PR c++/21799
1328         Revert my 2005-07-08 patch
1329         * pt.c (type_unification_real): Remove is_method_argument and
1330         assoicated checks.
1331         (fn_type_unification, unify): Adjust type_unification_real calls.
1332
1333 2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1334
1335         PR c++/23266
1336         * decl2.c (grokfield): Check that method is not static before
1337         marking it as pure.
1338
1339 2005-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1340
1341         PR c++/23219
1342         * name-lookup.c (pushtag): Process the template type before
1343         altering the identifier lookup fields.  Remove unreachable code
1344         creating an empty stub decl.
1345
1346 2005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1347
1348         PR c++/20646
1349         * decl.c (grokdeclarator): Reset storage_class after error.
1350
1351 2005-08-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1352
1353         PR c++/22508
1354         * init.c (build_new_1): Check for empty candidate list.
1355
1356 2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1357
1358         PR c++/23191
1359         * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
1360         before calling build_exception_variant.
1361
1362 2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1363
1364         PR c++/19498
1365         * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
1366         if substitution of template args did not succeed.
1367
1368 2005-08-06  Michael Matz  <matz@suse.de>
1369
1370         * method.c (use_thunk): Call init_insn_lengths.
1371
1372 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
1373
1374         PR c++/22514
1375         * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
1376         sorrycount or errorcount are nonzero.
1377
1378 2005-08-05  Mark Mitchell  <mark@codesourcery.com>
1379
1380         * name-lookup.c (pushtag): Remove accidental commit from:
1381         2004-12-21  Mark Mitchell  <mark@codesourcery.com>
1382         PR c++/19063
1383         * decl.c (grokdeclarator): Return error_mark_node, not
1384         void_type_node, to indicate errors.
1385         * parser.c (cp_parser_template_parameter_list): Robustify.
1386         (cp_parser_template_parameter): Likewise.
1387
1388 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
1389
1390         * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
1391         Fix comment typos.
1392
1393 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
1394
1395         * method.c: Fix a comment typo.
1396
1397 2005-07-28  Mark Mitchell  <mark@codesourcery.com>
1398
1399         PR c++/22545
1400         * call.c (add_builtin_candidate): Adjust for changes in
1401         representation of pointer-to-member types.
1402
1403 2005-07-28  Mike Stump  <mrs@apple.com>
1404
1405         * pt.c (check_explicit_specialization): Add visibility logic.
1406         (lookup_template_class): Likewise.
1407         (instantiate_class_template): Likewise.
1408
1409 2005-07-27  Devang Patel  <dpatel@apple.com>
1410
1411         * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
1412
1413 2005-07-25  Ian Lance Taylor  <ian@airs.com>
1414
1415         * ptree.c (cxx_print_identifier): Print a leading space if the
1416         indent level is 0.
1417
1418 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420         * call.c (convert_for_arg_passing): Check function pointers when
1421         -Wmissing-format-attribute is activated.
1422         * typeck.c (convert_for_assignment): Likewise.
1423
1424 2005-07-22  Manfred Hollstein  <mh@suse.com>
1425
1426         * parser.c (cp_parser_declaration): Fix unitialised warnings.
1427
1428 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1429
1430         * class.c (build_base_path): Fix typo.
1431
1432 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1433
1434         PR C++/22358
1435         * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
1436
1437 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1438
1439         * call.c: Fix comment typo(s).
1440         * cxx-pretty-print.h: Likewise.
1441         * name-lookup.c: Likewise.
1442         * parser.c: Likewise.
1443
1444 2005-07-20  Douglas Gregor <doug.gregor@gmail.com>
1445
1446         PR c++/2922
1447         * semantics.c (perform_koenig_lookup): For dependent calls, just
1448         return the set of functions we've found so far. Later, it will be
1449         augmented by those found through argument-dependent lookup.
1450         * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
1451         the optimization that skips namespaces where the functions were
1452         originally found.
1453
1454 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1455
1456         Make CONSTRUCTOR use VEC to store initializers.
1457         * call.c (convert_default_arg): Update call to digest_init.
1458         * class.c (dump_class_hierarchy, dump_array): Update to cope with
1459         VEC in CONSTRUCTOR_ELTS.
1460         * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
1461         (finish_compound_literal, digest_init): Update declaration.
1462         * decl.c (struct reshape_iter): New data type.
1463         (reshape_init_array): Rename to...
1464         (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
1465         (reshape_init): Rewrite from scratch. Split parts into...
1466         (reshape_init_array, reshape_init_vector, reshape_init_class,
1467         reshape_init_r): New functions.
1468         (check_initializer): Update call to reshape_init. Remove obsolete
1469         code.
1470         (initialize_artificial_var, cp_complete_array_type): Update to cope
1471         with VEC in CONSTRUCTOR_ELTS.
1472         * decl2.c (grokfield): Update calls to digest_init.
1473         (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
1474         * error.c (dump_expr_init_vec): New function.
1475         (dump_expr): Use dump_expr_init_vec.
1476         * init.c (build_zero_init, build_vec_init): Update to cope with VEC
1477         in CONSTRUCTOR_ELTS.
1478         (expand_default_init): Update call to digest_init.
1479         * parser.c  (cp_parser_postfix_expression): Use a VEC for the
1480         initializers.
1481         (cp_parser_initializer_list): Build a VEC of initializers.
1482         * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
1483         in CONSTRUCTOR_ELTS.
1484         * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
1485         ptm_initializer, class_initializer, get_pseudo_ti_init): Use
1486         build_constructor_from_list instead of build_constructor.
1487         * semantics.c (finish_compound_literal): Update call to digest_init.
1488         * tree.c (stabilize_init): Update to cope with VEC in
1489         CONSTRUCTOR_ELTS.
1490         * typeck.c (build_ptrmemfunc1): Likewise.
1491         * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
1492         Likewise.
1493         (store_init_value): Use build_constructor_from_list and update call
1494         to digest_init.
1495         (digest_init): Rewrite.
1496         (process_init_constructor): Rewrite from scratch. Split into...
1497         (process_init_constructor_array, picflag_from_initializer,
1498         process_init_constructor_record, process_init_constructor_union):
1499         New functions.
1500         (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
1501         New macros.
1502         (build_functional_cast): Use build_constructor_from_list instead of
1503         build_constructor.
1504
1505 2005-07-18  Mark Mitchell  <mark@codesourcery.com>
1506
1507         PR c++/22263
1508         * cp-tree.h (instantiate_decl): Change prototype.
1509         * decl2.c (mark_used): Adjust accordingly.
1510         * pt.c (do_decl_instantiation): Likewise.
1511         (instantiate_class_member): Likewise.
1512         (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
1513         Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
1514         that has no definition available.
1515         (instantiate_pending_templates): Adjust call to instantiate_decl.
1516
1517 2005-07-17  Mark Mitchell  <mark@codesourcery.com>
1518
1519         PR c++/22139
1520         * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
1521         * decl.c (duplicate_decls): Re-register template specializations
1522         for functions that have DECL_TEMLPLATE_INFO, even if they do not
1523         have DECL_TEMPLATE_INSTANTIATION set.
1524
1525 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1526
1527         * call.c (diagnostic_fn_t): New.
1528         (build_temp, convert_like_real): Use diagnostic_fn_t.
1529
1530 2005-07-15  Mark Mitchell  <mark@codesourcery.com>
1531
1532         PR c++/22204
1533         * repo.c (repo_emit_p): Robustify.
1534
1535 2005-07-14  Daniel Berlin  <dberlin@dberlin.org>
1536
1537         Fix PR c++/22452
1538         * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
1539
1540 2005-07-15  Mark Mitchell  <mark@codesourcery.com>
1541
1542         PR c++/22132
1543         * call.c (implicit_conversion): Add c_cast_p parameter.
1544         (standard_conversion): Likewise.  Allow conversions between
1545         differently-qualified pointer types when performing a C-style
1546         cast.
1547         (add_function_candidate): Adjust callee.
1548         (build_builtin_candidate): Likewise.
1549         (build_user_type_conversion_1): Likewise.
1550         (conditional_conversion): Likewise.
1551         (can_convert_arg): Likewise.
1552         (can_convert_arg_bad): Likewise.
1553         (perform_implicit_conversion): Likewise.
1554         * cp-tree.h (comp_ptr_ttypes_const): Declare.
1555         * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
1556         Return bool.
1557
1558 2005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1559             Nathan Sidwell  <nathan@codesourcery.com>
1560
1561         PR c++/20172
1562         * pt.c (tsubst_template_parms): Check for invalid non-type
1563         parameters.
1564
1565 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
1566
1567         * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
1568         decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
1569         (cp_init_ts): Call init_shadowed_var_for_decl.
1570         Remove include of gt-cp-cp-lang.h.
1571         * cp-objcp-common.c (shadowed_var_for_decl,
1572         decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
1573         cp-lang.c.
1574         (init_shadowed_var_for_decl): New function to initialize
1575         shadowed_var_for_decl.
1576         Include gt-cp-cp-objcp-common.h.
1577         * Make-lang.in (gt-cp-lang.h): Remove.
1578         (gt-cp-cp-objcp-common.h): Add.
1579         (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
1580         (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
1581         * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
1582         * cp-tree (init_shadowed_var_for_decl): Add prototype.
1583
1584 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1585
1586         * Make-lang.in: Add gt-cp-lang.h.
1587         (cp-lang.o): Ditto.
1588         * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
1589         the field.
1590         * config-lang.in: Add cp-lang.c to gtfiles.
1591         * cp-lang.c: Include hashtab.h.
1592         (cp_init_ts): New function.
1593         (LANG_HOOK_INIT_TS): Use macro.
1594         (decl_shadowed_for_var_lookup): New function.
1595         (decl_shadowed_for_var_insert): Ditto.
1596         * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
1597         (NON_THUNK_FUNCTION_CHECK): Ditto.
1598         (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
1599         (DECL_INIT_PRIORITY): Ditto.
1600         (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
1601         (DECL_SHADOWED_FOR_VAR): Use hashtable.
1602         (SET_DECL_SHADOWED_FOR_VAR): Ditto.
1603         * decl.c (duplicate_decls): Update for new/updated structures.
1604         (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
1605         * decl2.c (start_static_initialization_or_destruction): Deal with
1606         priority.
1607         * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
1608         SET_DECL_RTL.
1609         * tree.c (handle_init_priority_attribute): Handle priority.
1610
1611 2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>
1612
1613         PR c++/21799
1614         * pt.c (type_unification_real): Add is_method argument.  Use it
1615         for this pointer unification.
1616         (fn_type_unification): Adjust type_unification_real call.
1617         (unify): Likewise.
1618
1619 2005-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1620
1621         * pt.c (type_unification_real): Remove allow_incomplete argument.
1622         Remove unreachable code.
1623         (fn_type_unification): Adjust call to type_unification_real.
1624         (unify): Likewise.
1625
1626 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
1627
1628         * Makefile.in (class.o, decl2.o): Adjust dependencies.
1629         * class.c: Include tree-dump.h.
1630         * decl2.c: Include tree-dump.h.
1631
1632 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1633
1634         * dump.c: Use dump_string_field.
1635
1636 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
1637
1638         * cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
1639         minimum GCC version for format checking to 4.1.
1640
1641 2005-07-02  Kazu Hirata  <kazu@codesourcery.com>
1642
1643         * Make-lang.in (cc1plus-checksum.c): Use
1644         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1645
1646 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1647
1648         * name-lookup.c, parser.c: Use %q, %< and %> to quote in
1649         diagnostics.
1650
1651 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
1652             Joseph S. Myers  <joseph@codesourcery.com>
1653
1654         * error.c (location_of): Add comment.
1655         (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1656         * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1657         * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
1658         name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
1659         typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
1660         or cp_pedwarn_at.  Mark up some diagnostic strings with N_.
1661
1662 2005-06-30  Daniel Berlin  <dberlin@dberlin.org>
1663
1664         * decl.c (require_complete_types_for_parms): Call relayout_decl
1665         instead of layout_decl.
1666
1667 2005-06-30  Zack Weinberg  <zack@codesourcery.com>
1668             Jakub Jelinek  <jakub@redhat.com>
1669
1670         * cp-lang.c: No need to include cxx-pretty-print.h.
1671         * error.c (cp_printer): Update signature.  No need to process
1672         flags.
1673         (print_instantiation_partial_context): Output last newline
1674         with pp_base_newline.
1675         * Make-lang.in: Update dependencies.
1676
1677 2005-06-30  Steven Bosscher  <stevenb@suse.de>
1678
1679         * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
1680         DECL_THREAD_LOCAL_P.
1681         (cp_finish_decl): Likewise.
1682         (grokvardecl): Set the default DECL_TLS_MODEL here.
1683
1684 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
1685
1686         * cvt.c (ocp_convert): Use invalid_conversion hook.
1687         * typeck.c (build_binary_op): Use invalid_binary_op hook.
1688         (build_unary_op): Use invalid_unary_op hook.
1689
1690 2005-06-28  Paul Brook  <paul@codesourcery.com>
1691
1692         * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
1693         * except.c: Include target.h.
1694         (init_exception_processing): Initialize unwind_resume_libfunc.
1695         * doc/tm.texi: Document TARGET_ASM_TTYPE
1696
1697 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1698
1699         * call.c (build_over_call): Pass in named argument list to
1700         `check_function_arguments'.
1701         * typeck.c (build_function_call): Likewise.
1702
1703 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1704
1705         * cp-tree.h (lang_check_failed): Add noreturn attribute.
1706
1707 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1708
1709         * all files: Update FSF address in copyright headers.
1710
1711 2005-06-23  Jason Merrill  <jason@redhat.com>
1712
1713         PR c++/19317
1714         * semantics.c (simplify_aggr_init_expr): Use
1715         CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
1716
1717 2005-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1718
1719         * pt.c (register_specialization): Remove superfluous assertion.
1720
1721 2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723         * call.c (convert_like_real): Add format attribute.
1724         * typeck.c (check_for_casting_away_constness,
1725         build_static_cast_1): Likewise.
1726         * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
1727         Likewise.
1728
1729 2005-06-17  Geoffrey Keating  <geoffk@apple.com>
1730
1731         PR c++/17413
1732         * pt.c (type_unification_real): Apply template type deduction even
1733         to procedure parameters that are not dependent on a template
1734         parameter.
1735
1736 2005-06-16  Nathan Sidwell  <nathan@codesourcery.com>
1737
1738         * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
1739         change.
1740         (create_pseudo_type_info): First parameter is an int.
1741
1742 2005-06-15  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744         PR c++/20678
1745         * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
1746         null.
1747
1748         * Make-lang.in: Reformat some long lines.
1749         (gt-cp-rtti.h): New target.
1750         (cp/rtti.o): Add dependency.
1751         * config-lang.in (gtfiles): Add cp/rtti.c.
1752         * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
1753         CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
1754         CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
1755         CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
1756         CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
1757         (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
1758         ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
1759         class_desc_type_node, si_class_desc_type_node,
1760         vmi_class_desc_type_node, ptm_desc_type_node,
1761         base_desc_type_node): Remove.
1762         * decl.c: Adjust documentation of global trees.
1763         * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
1764         TINFO_REAL_NAME): Remove.
1765         (struct tinfo_s): New.
1766         (enum tinfo_kind): New.
1767         (tinfo_descs): New.
1768         (get_tinfo_decl): Adjust use of tinfo descriptor.
1769         (tinfo_base_init, generic_initializer, ptr_initializer,
1770         ptm_initializer, class_initializer): Likewise.
1771         (get_pseudo_ti_init): Take descriptor index. Adjust.
1772         (create_pseudo_type_info): Likewise.
1773         (get_pseudo_ti_desc): Return descriptor index. Adjust.
1774         (create_tinfo_types): Adjust use of create_pseudo_type_info.
1775         (emit_tinfo_decl): Adjust use of tinfo descriptor.
1776
1777 2005-06-14  Roger Sayle  <roger@eyesopen.com>
1778
1779         * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
1780
1781 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1782
1783         * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
1784         (rule for installing g++.1 manpage): Does depend on installdirs.
1785
1786 2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>
1787
1788         PR c++/20789
1789         * decl.c (cp_finish_decl): Clear runtime runtime initialization if
1790         in-class decl's initializer is bad.
1791
1792         PR c++/21929
1793         * parser.c (struct cp_parser): Document that scope could be
1794         error_mark.
1795         (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
1796         scope.
1797         (cp_parser_nested_name_specifier): Return NULL_TREE on error.
1798         (cp_parser_postfix_expression): Deal with null or error_mark
1799         scope.
1800         (cp_parser_elaborated_type_specifier): Adjust
1801         cp_parser_nested_name_specifier call.
1802
1803         * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
1804
1805 2005-06-12  Roger Sayle  <roger@eyesopen.com>
1806
1807         PR c++/21930
1808         * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
1809         Treat CONVERT_EXPR identically to NOP_EXPR.
1810
1811 2005-06-10  Aldy Hernandez  <aldyh@redhat.com>
1812
1813         PR c++/10611
1814         * cvt.c (build_expr_type_conversion): Same.
1815         * typeck.c (build_binary_op): Handle vectors.
1816         (common_type): Same.
1817         (type_after_usual_arithmetic_conversions): Same.
1818
1819 2005-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1820
1821         PR c++/19497
1822         * cp-tree.def (USING_DECL): Update documentation.
1823         * cp-tree.h (DECL_DEPENDENT_P): New.
1824         (USING_DECL_DECLS, USING_DECL_SCOPE): New.
1825         * class.c (handle_using_decl): Move most of the processing to ...
1826         * name-lookup.c (do_class_using_decl): ... here.  Make stricter.
1827         (push_using_decl): Use USING_DECL_SCOPE.
1828         (cp_emit_debug_info_for_using): Make extern.
1829         * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
1830         * name-lookup.h (cp_emit_debug_info_for_using): Declare.
1831         * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
1832         when tsubsting.
1833         (tsubst_expr): Use USING_DECL_SCOPE.
1834         * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
1835         * semantics.c (finish_member_declaration): Likewise.
1836
1837 2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1838
1839         PR c++/19894
1840         * pt.c (tsubst): Reject pointer-to-member of type void.
1841
1842         PR c++/20563
1843         * parser.c (cp_parser_label_declaration): Deal with invalid/missing
1844         identifiers.
1845
1846 2005-06-07  Nathan Sidwell  <nathan@codesourcery.com>
1847
1848         * cp-tree.def (DEFAULT_ARG): Adjust documentation.
1849         * cp-tree.h (DEFARG_INSTANTIATIONS): New.
1850         (struct tree_default_arg): Add instantiations member.
1851         * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
1852         VEC.
1853         * pt.c (tsubst_arg_types): Likewise.
1854
1855         * parser.c (cp_parser_late_parsing_default_args): Fix overeager
1856         assert in previous patch.
1857
1858 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
1859
1860         * error.c (locate_error): Use gmsgid instead of msgid for argument
1861         name.
1862         (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
1863
1864 2005-06-06  Nathan Sidwell  <nathan@codesourcery.com>
1865
1866         PR 21903
1867         * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
1868         * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
1869         argument to any early instantiations.
1870         * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
1871
1872         PR c++/20637
1873         * cp-tree.h (add_method): Add using_decl parameter.
1874         * class.c (add_method): Add using_decl parameter.  Adjust error
1875         messages.
1876         (handle_using_decl): Pass the using decl to add_method.
1877         (clone_function_decl): Adjust add_member calls.
1878         * decl2.c (check_classfn): Likewise.
1879         * method.c (lazily_declare_fn): Likewise.
1880         * semantics.c (finish_member_declaration): Likewise.
1881
1882         * method.c (synthesize_method): Use inform, not warning.
1883
1884 2005-06-06  Hans-Peter Nilsson  <hp@axis.se>
1885
1886         * config-lang.in (target_libs): Remove target-gperf.
1887
1888 2005-06-05  Mark Mitchell  <mark@codesourcery.com>
1889
1890         PR c++/21619
1891         * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
1892         * parser.c (cp_parser_postfix_expression): Allow non-constant
1893         expressions as arguments to __builtin_constant_p.
1894         * tree.c (builtin_valid_in_constant_expr_p): Use
1895         DECL_IS_BUILTIN_CONSTANT_P.
1896
1897 2005-06-03  Mark Mitchell  <mark@codesourcery.com>
1898
1899         PR c++/21853
1900         * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
1901         the pointed-to type for a pointer-to-member.
1902
1903         PR c++/21336
1904         * cp-tree.h (grok_op_properties): Remove friendp parameter.
1905         * decl.c (grokfndecl): Adjust call.
1906         (grok_op_properties): Determine the class of which the function is
1907         a member by looking at its DECL_CONTEXT, not current_class_type.
1908         * pt.c (tsubst_decl): Adjust call to grok_op_properties.
1909
1910 2005-06-02  Nathan Sidwell  <nathan@codesourcery.com>
1911
1912         * method.c (synthesize_method): Add addtional arg to warning call.
1913
1914         PR c++/21280
1915         * Make-lang.in (method.o): Add diagnostic.h
1916         * decl.c (start_preparsed_function): Use decl's location for file
1917         info.
1918         * decl2.c (cp_finish_file): Set input_location before synthesizing
1919         a function.
1920         (mark_used): When deferring a synthesized function, save current
1921         location.  Do not set function's location when actually
1922         synthesizing it.
1923         * method.c: #include diagnostic.h.
1924         (synthesize_method): Set the functions source location.  Show
1925         needed location if errors are emitted.
1926
1927         * decl.c (start_decl): Simplify specialization handling. Remove
1928         unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
1929         * mangle.c (discriminator_for_local_entity): Use VEC_index.
1930
1931         PR c++/20350
1932         * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
1933
1934         PR c++/21151
1935         * name-lookup.c (pushtag): Push local class even in a template.
1936
1937 2005-05-31  Nathan Sidwell  <nathan@codesourcery.com>
1938
1939         PR c++/21165
1940         * init.c (integral_constant_value): Check the type of the
1941         initializer, not the decl.
1942
1943 2005-05-30  Mark Mitchell  <mark@codesourcery.com>
1944
1945         PR c++/21784
1946         * name-lookup.c (do_nonmember_using_decl): Ignore builtin
1947         functions, even when the used name is not a function.
1948
1949 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1950
1951         * operators.def, optimize.c: Update copyright.
1952
1953 2005-05-28  Mark Mitchell  <mark@codesourcery.com>
1954
1955         PR c++/21210
1956         * call.c (standard_conversion): Permit conversions to complex
1957         types if conversion to the corresponding scalar type would be
1958         permitted.
1959
1960         PR c++/21340
1961         * method.c (implicitly_declare_fn): Clear processing_template_decl
1962         when generating implicit declaration.
1963
1964 2005-05-27  Mark Mitchell  <mark@codesourcery.com>
1965
1966         PR c++/21614
1967         * typeck.c (get_member_function_from_ptrfunc): Do not attempt
1968         conversions to base classes of incomplete types.
1969
1970 2005-05-27  Ian Lance Taylor  <ian@airs.com>
1971
1972         * semantics.c (add_stmt): Add C++ frontend specific version.
1973         * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
1974         (stmts_are_full_exprs_p): Declare.
1975
1976 2005-05-27  Roger Sayle  <roger@eyesopen.com>
1977             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1978
1979         * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
1980         * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
1981         of CONVERT_EXPR.
1982         (cp_parser_unary_expression): Likewise.
1983         * typeck.c (build_unary_op): Likewise.
1984         * call.c (add_builtin_candidate, build_new_op): Likewise.
1985         * error.c (dump_expr): Likewise.
1986         * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
1987         * decl.c (ambi_op_p, grok_op_properties): Likewise.
1988         * dump.c (dump_op): Likewise.
1989         * lex.c (init_operators): Likewise.
1990         * operators.def ("+"): Likewise.
1991         * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
1992         conversion, if the result and argument types differ.
1993         * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
1994         like a NOP_EXPR when !processing_template_decl.
1995
1996         * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
1997         (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
1998
1999 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
2000
2001         PR c++/21455
2002         * typeck.c (get_delta_difference): Cope with incomplete but equal
2003         classes.  Reorder if.
2004
2005         PR c++/21681
2006         * parser.c (cp_parser_late_parsing_for_member): Disable access
2007         checking for template functions.
2008
2009 2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2010
2011         PR c++/21768
2012         * pt.c (redeclare_class_template): Change error message according
2013         to coding conventions.
2014
2015 2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2016
2017         * call.c (build_op_delete_call): Fix quoting in error message.
2018
2019 2005-05-25  Richard Henderson  <rth@redhat.com>
2020
2021         PR libgcj/21692
2022         * cp-tree.h (make_alias_for): Declare.
2023         * decl2.c (build_java_method_aliases): New.
2024         (cp_finish_file): Call it.
2025         * method.c (make_alias_for): Split out from ...
2026         (make_alias_for_thunk): ... here.
2027
2028 2005-05-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2029
2030         PR c++/21686
2031         * semantics.c (finish_id_expression): Fix quoting in error message.
2032
2033 2005-05-25  DJ Delorie  <dj@redhat.com>
2034
2035         * decl.c (duplicate_decls): Move warning control from if() to
2036         warning(OPT_*).
2037         * name-lookup.c (parse_using_directive): Likewise.
2038         * parser.c (cp_parser_elaborated_type_specifier): Likewise.
2039         (cp_parser_init_declarator): Likewise.
2040         * tree.c (handle_com_interface_attribute): Likewise.
2041
2042 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2043
2044         * class.c (layout_class_type): Do not issue C++ ABI warnings
2045         for ObjC structs.
2046         * decl.c (objc_mark_locals_volatile): Streamline by calling
2047         objc_volatilize_decl().
2048         * parser.c (cp_parser_objc_message_expression): Allow simple
2049         type specifiers (instead of merely type names) as message
2050         receivers.
2051         * pt.c (template_args_equal): Do not call objc_comptypes().
2052         * typeck.c (composite_pointer_type): If both pointers are
2053         ObjC-esque, arbitrarily choose the first; do not call
2054         objc_comptypes().
2055         (comptypes): Do not call objc_comptypes().
2056         (convert_for_assignment): Call objc_compare_types().
2057         (comp_ptr_ttypes_real): Call objc_type_quals_match() before
2058         concluding that types do not match.
2059
2060 2005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>
2061
2062         PR C++/21645
2063         * optimize.c (update_cloned_parm): Copy the TYPE also from the
2064         original one.
2065
2066 2005-05-19  Jakub Jelinek  <jakub@redhat.com>
2067
2068         PR c++/21495
2069         * decl.c (grokdeclarator): Fix "storage class specified for"
2070         error reporting.
2071
2072 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2073
2074         * parser.c: Fix comment typos.
2075
2076 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2077
2078         * Make-lang.in (cc1plus-dummy): New.
2079         (cc1plus-checksum.c): New.
2080         (cc1plus-checksum.o): New.
2081         (cc1plus): Add cc1plus-checksum.o.
2082
2083 2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2084
2085         PR C++/19664
2086         * decl2.c (determine_visibility): Don't set visibility to
2087         hidden if it has been set explicitly by user.
2088
2089 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2090             Mike Stump  <mrs@apple.com>
2091
2092         Yet more Objective-C++...
2093
2094         * cp-objcp-common.h (cxx_get_alias_set): Move from
2095         here...
2096         (cxx_warn_unused_global_decl): Likewise.
2097         (cp_expr_size): Likewise.
2098         (cp_tree_size): Likewise.
2099         (cp_var_mod_type_p): Likewise.
2100         (cxx_initialize_diagnostics): Likewise.
2101         (cxx_types_compatible_p): Likewise.
2102         * cp-tree.h: to here.
2103         (do_poplevel): Add.
2104         * lex.c (D_OBJC): Add.
2105         (init_reswords): Add.
2106         * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
2107         * parser.c: Add c-common.h include.
2108         * pt.c: Add c-common.h and cp-objcp-common.h includes.
2109         (template_args_equal): Use objc_comptypes as well.
2110         (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
2111         * semantics.c (do_poplevel): Remove static.
2112
2113         * decl.c (objc_mark_locals_volatile): Don't change decls that are
2114         already ok.
2115         * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
2116         Objective C++ early enough.
2117         * lex.c (struct resword reswords): Add Objective-C++ support.
2118         * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
2119         (cp_parser_objc_message_receiver): Add.
2120         (cp_parser_objc_message_args): Likewise.
2121         (cp_parser_objc_message_expression): Likewise.
2122         (cp_parser_objc_encode_expression): Likewise.
2123         (cp_parser_objc_defs_expression): Likewise.
2124         (cp_parser_objc_protocol_expression): Likewise.
2125         (cp_parser_objc_selector_expression): Likewise.
2126         (cp_parser_objc_expression): Likewise.
2127         (cp_parser_objc_visibility_spec): Likewise.
2128         (cp_parser_objc_method_type): Likewise.
2129         (cp_parser_objc_protocol_qualifiers): Likewise.
2130         (cp_parser_objc_typename): Likewise.
2131         (cp_parser_objc_selector_p): Likewise.
2132         (cp_parser_objc_selector): Likewise.
2133         (cp_parser_objc_method_keyword_params): Likewise.
2134         (cp_parser_objc_method_tail_params_opt): Likewise.
2135         (cp_parser_objc_interstitial_code): Likewise.
2136         (cp_parser_objc_method_signature): Likewise.
2137         (cp_parser_objc_method_prototype_list): Likewise.
2138         (cp_parser_objc_method_definition_list): Likewise.
2139         (cp_parser_objc_class_ivars): Likewise.
2140         (cp_parser_objc_identifier_list): Likewise.
2141         (cp_parser_objc_alias_declaration): Likewise.
2142         (cp_parser_objc_class_declaration): Likewise.
2143         (cp_parser_objc_protocol_declaration): Likewise.
2144         (cp_parser_objc_protocol_refs_opt): Likewise.
2145         (cp_parser_objc_superclass_or_category): Likewise.
2146         (cp_parser_objc_class_interface): Likewise.
2147         (cp_parser_objc_class_implementation): Likewise.
2148         (cp_parser_objc_end_implementation): Likewise.
2149         (cp_parser_objc_declaration): Likewise.
2150         (cp_parser_objc_try_catch_finally_statement): Likewise.
2151         (cp_parser_objc_synchronized_statement): Likewise.
2152         (cp_parser_objc_throw_statement): Likewise.
2153         (cp_parser_objc_statement): Likewise.
2154         (cp_parser_primary_expression): Add Objective-C++.
2155         (cp_parser_statement): Likewise.
2156         (cp_parser_declaration): Likewise.
2157         (cp_parser_simple_type_specifier): Likewise.
2158         (cp_parser_type_name): Likewise.
2159         (cp_parser_parameter_declaration_list): Likewise.
2160         (cp_parser_member_declaration) Likewise.
2161         * tree.c: Include debug.h.
2162         * typeck.c (composite_pointer_type): Add Objective-C++ support.
2163         (finish_class_member_access_expr): Likewise.
2164         (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
2165         (build_modify_expr): Allow objc to generate write barriers.
2166
2167         * Make-lang.in (cp/tree.o): Add debug.h.
2168         * tree.c (lvalue_p_1, case CONST_DECL): Add.
2169
2170 2005-05-18  Jan Hubicka  <jh@suse.cz>
2171
2172         * method.c: Include tree-pass.h
2173         (use_thunk): Lower body before expanding.
2174
2175 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2176
2177         PR c++/21454
2178         * decl.c (maybe_deduce_size_from_array_init): Call
2179         cp_apply_type_quals_to_decl after completing array type.
2180
2181 2005-05-16  Richard Henderson  <rth@redhat.com>
2182
2183         * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
2184         (build_library_fn): ... here.
2185
2186 2005-05-12  Ian Lance Taylor  <ian@airs.com>
2187
2188         * cp-tree.h (cp_stmt_codes): Don't define.
2189         (statement_code_p): Declare.
2190         (STATEMENT_CODE_P): Define.
2191         * lex.c (statement_code_p): Define.
2192         (cxx_init): Use actual codes in stmt_codes initializer, not
2193         cp_stmt_codes macro.  Initialize statement_code_p directly, rather
2194         than using INIT_STATEMENT_CODES.
2195
2196 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
2197
2198         * typeck.c (build_unary_op): Do not resort to address arithmetic
2199         when taking the address of a COMPONENT_REF.
2200
2201 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2202
2203         * class.c (vtbl_init_data_s): Change the type of fns to
2204         VEC(tree,gc)*.
2205         (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
2206         Use VEC instead of VARRAY.
2207
2208 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2209
2210         * mangle.c: Remove a reference to the MIPS -mint64 option.
2211
2212 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2213
2214         * decl.c (wrapup_globals_for_namespace): Use VEC instead of
2215         VARRAY.
2216         * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
2217         * name-lookup.h (cp_binding_level): Change the type of
2218         static_decls to VEC(tree,gc)*.
2219
2220         * mangle.c (globals): Change the type of substitutions to
2221         VEC(tree,gc)*.
2222         (dump_substitution_candidates, add_substitution,
2223         find_substitution, finish_mangling, init_mangle): Use VEC
2224         instead of VARRAY.
2225
2226 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2227
2228         * decl2.c (spew_debug): Remove.
2229
2230         * decl2.c (ssdf_decls, start_static_storage_duration_function,
2231         generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
2232
2233         * decl2.c (pending_statics, note_vague_linkage_var,
2234         cp_finish_file): Use VEC instead of VARRAY.
2235         (pending_statics_used): Remove.
2236
2237 2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2238
2239         * decl2.c (deferred_fns, note_vague_linkage_fn,
2240         cp_finish_file): Use VEC instead of VARRAY.
2241
2242 2005-05-05  Mark Mitchell  <mark@codesourcery.com>
2243
2244         PR c++/21352
2245         * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
2246
2247 2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2248
2249         * pt.c: Fix a comment typo.
2250
2251 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2252
2253         * cp-tree.h (language_function): Change the type of
2254         x_local_names to VEC.
2255         * decl.c (push_local_name): Adjust uses of local_names.
2256
2257 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259         * friend.c, lex.c, mangle.c, repo.c: Update copyright.
2260
2261 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2262
2263         * class.c (local_classes, init_class_processing): Use VEC
2264         instead of VARRAY.
2265         * cp-tree.h (local_classes): Likewise.
2266         * mangle.c (discriminator_for_local_entity): Likewise.
2267         * name-lookup.c (pushtag): Likewise.
2268
2269         * class.c (current_lang_depth, push_lang_context,
2270         pop_lang_context): Use VEC instead of VARRAY.
2271         * cp-tree.h (saved_scope): Use VEC for lang_base instead of
2272         VARRAY.
2273         * name-lookup.c (push_to_top_level): Use VEC instead of
2274         VARRAY.
2275
2276 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2277
2278         * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
2279         for BUILT_IN_MD built-ins.
2280
2281 2005-05-02  Michael Matz  <matz@suse.de>
2282
2283         PR c++/19542
2284         * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
2285         common frontend.
2286         (null_node): Remove.
2287         * lex.c (cxx_init): Move null_node initialisation to C common frontend.
2288
2289 2005-04-25  Ian Lance Taylor  <ian@airs.com>
2290
2291         * cp-tree.def: Add EXPR_STMT.
2292         * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
2293         (EXPR_STMT_EXPR): Define.
2294         * cp-gimplify.c: Include "flags.h".
2295         (gimplify_expr_stmt): New static function.
2296         (cp_gimplify_expr): Handle EXPR_STMT.
2297         * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
2298         rather than pp_expression.
2299         (pp_cxx_statement): Handle EXPR_STMT.
2300         * dump.c (cp_dump_tree): Handle EXPR_STMT.
2301         * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
2302         initializer.
2303
2304 2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>
2305
2306         PR C++/21188
2307         * rtti.c (ifnonnull): Cast the zero comparison operand
2308         to the correct type.
2309
2310 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
2311
2312         PR middle-end/20991
2313         * class.c: Include cgraph.h.
2314         (cp_fold_obj_type_ref): Set node->local.vtable_method.
2315         * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
2316
2317 2005-04-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
2318
2319         * mangle.c (write_builtin_type): Handle integer types which are
2320         not one of the shared integer type nodes and emit a "vendor
2321         extended builtin type" with an encoding in the form of "u5int96".
2322
2323 2005-04-24  Ian Lance Taylor  <ian@airs.com>
2324
2325         * cp-tree.def (USING_STMT): Change class to tcc_statement.
2326         (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
2327         (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
2328         (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
2329
2330 2005-04-23  DJ Delorie  <dj@redhat.com>
2331
2332         * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
2333         init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
2334         repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
2335         callers.
2336
2337 2005-04-22  Per Bothner  <per@bothner.com>
2338
2339         * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
2340         input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
2341
2342 2005-04-22  Alexandre Oliva  <aoliva@redhat.com>
2343
2344         PR c++/21087
2345         * name-lookup.c (push_overloaded_decl): Do not overload with
2346         non-duplicate anticipated built-in.
2347
2348 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2349
2350         * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
2351         VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
2352
2353 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2354
2355         * cp-tree.h: Adjust for new VEC API.
2356         Define VEC(tree_pair_s,gc).
2357         (struct save_scope): Adjust.
2358         (struct lang_type_class): Adjust.
2359         (unemitted_tinfo_decls): Adjust.
2360         * class.c (add_method, resort_type_method_vec,
2361         finish_struct_methods, struct find_final_overrider_data,
2362         dfs_find_final_overrider_pre, find_final_overrider,
2363         get_vcall_index, warn_hidden, walk_subobject_offsets,
2364         check_methods, fixup_inline_methods, end_of_class,
2365         warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
2366         add_vcall_offset): Adjust.
2367         * decl.c (xref_basetypes, finish_method): Adjust.
2368         * decl2.c (check_classfn): Adjust.
2369         * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
2370         * method.c (do_build_copy_constructor): Adjust.
2371         * name-lookup.c (new_class_binding, store_binding,
2372         store_bindings, store_class_bindings): Adjust.
2373         * name-lookup.h: Define VEC(cxx_saved_binding,gc),
2374         VEC(cp_class_binding,gc).
2375         (struct cp_binding_level): Adjust.
2376         * parser.c: Define VEC(cp_token_position,heap).
2377         (struct cp_lexer): Adjust.
2378         (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
2379         cp_lexer_save_tokens): Adjust.
2380         * pt.c (retrieve_specialization,
2381         check_explicit_specialization): Adjust.
2382         * rtti.c (unemitted_tinfo_decls): Adjust.
2383         (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
2384         get_pseudo_ti_desc): Adjust.
2385         * search.c (dfs_access_in_type, lookup_conversion_operator,
2386         lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
2387         dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
2388         * semantics.c: Define VEC(deferred_access,gc).
2389         (push_deferring_access_checks): Adjust.
2390         * typeck2.c (abstract_virtuals_error): Adjust.
2391
2392 2005-04-20  Ian Lance Taylor  <ian@airs.com>
2393
2394         * cp-tree.def: Add STMT_EXPR.
2395         * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
2396         (STMT_EXPR_STMT): Define.
2397         * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
2398         STMT_EXPR.
2399         (pp_cxx_expression): Likewise.
2400         (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
2401         * dump.c (cp_dump_tree): Handle STMT_EXPR.
2402
2403 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2404
2405         * decl.c (expand_static_init): Call build2 and build3 instead
2406         of build.
2407
2408         * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
2409
2410 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2411
2412         * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
2413         * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
2414         ARROW_EXPR.
2415         (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
2416         (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
2417         ALIGNOF_EXPR.
2418         * typeck.c (cxx_sizeof_or_alignof_type): Update call to
2419         c_sizeof_or_alignof_type for change in parameter type.
2420
2421 2005-04-16  Mark Mitchell  <mark@codesourcery.com>
2422
2423         PR c++/21025
2424         * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
2425         which sizeof/alignof is dependent, rather than just whether we are
2426         processing_template_decl.
2427
2428 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2429
2430         * cp-tree.h (LOOKUP_GLOBAL): Remove.
2431         (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
2432         LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
2433         LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
2434         their values.
2435
2436 2005-04-15  Richard Henderson  <rth@redhat.com>
2437
2438         PR middle-end/14311
2439         * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
2440
2441 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2442
2443         * cp-tree.h (lang_type_class): Remove redefined.  Move
2444         java_interface into where redefined was.  Increment the width
2445         of dummy.
2446         (TYPE_REDEFINED): Remove.
2447
2448 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450         * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
2451         CLASSTYPE_TEMPLATE_LEVEL): Remove.
2452
2453 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
2454
2455         * decl2.c (determine_visibility): Don't use export_class_data.
2456         (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
2457         TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
2458
2459 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
2460
2461         * cp-tree.h (cxx_alignof): Remove.
2462
2463         * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
2464
2465         * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
2466         CONV_STATIC_CAST): Remove.
2467
2468         * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
2469
2470         * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
2471
2472         * cp-tree.h (cp_deprecated): Remove.
2473
2474 2005-04-08  Ian Lance Taylor  <ian@airs.com>
2475
2476         * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2477         CONTINUE_STMT, SWITCH_STMT.
2478         * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
2479         BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
2480         (WHILE_COND, WHILE_BODY): Define.
2481         (DO_COND, DO_BODY): Define.
2482         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
2483         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
2484         * cp-gimplify.c (enum bc_t): Define.
2485         (struct cp_gimplify_ctx, ctxp): Define.
2486         (push_context, pop_context): New static functions.
2487         (begin_bc_block, finish_bc_block): New static functions.
2488         (build_bc_goto): New static function.
2489         (gimplify_cp_loop, gimplify_for_stmt): New static functions.
2490         (gimplify_while_stmt, gimplify_do_stmt): Likewise.
2491         (gimplify_switch_stmt): Likewise.
2492         (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
2493         SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2494         (cp_genericize): Call push_context and pop_context.
2495         * semantics.c (finish_break_stmt): Just call build_stmt
2496         (BREAK_STMT) rather than build_break_stmt.
2497         (finish_continue_stmt): Corresponding change.
2498         * decl.c (pop_switch): Update call to c_do_switch_warnings for new
2499         parameters.
2500         * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
2501         WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
2502         * dump.c (cp_dump_tree): Likewise.
2503
2504 2005-04-08  Mark Mitchell  <mark@codesourcery.com>
2505
2506         PR c++/20905
2507         * parser.c (cp_parser_type_specifier_seq): Add is_condition
2508         parameter.
2509         (cp_parser_new_type_id): Pass it.
2510         (cp_parser_condition): Likewise.
2511         (cp_parser_conversion_type_id): Likewise.
2512         (cp_parser_type_id): Likewise.
2513         (cp_parser_type_specifier_seq): In a condition, do not allow
2514         invalid type-specifier combinations.
2515         (cp_parser_exception_declaration): Adjust call to
2516         cp_parser_type_specifier_seq.
2517
2518         * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
2519         * cp-tree.h (struct tinst_level): Add in_system_header_p.
2520         (TINST_IN_SYSTEM_HEADER_P): New macro.
2521         (make_tinst_level): Remove.
2522         * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
2523         the instantiated class.
2524         (push_tinst_level): Do not use make_tinst_level.  Set
2525         TINST_IN_SYSTEM_HEADER_P.
2526         (pop_tinst_level): Likewise.
2527         (instantiate_class_template): Set in_system_header.
2528         (instantiate_pending_templates): Likewise.
2529         * tree.c (make_tinst_level): Remove.
2530
2531 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
2532
2533         * decl.c (start_decl): Apply pending #pragma weak regardless of
2534         scope.
2535
2536 2005-04-06  Mark Mitchell  <mark@codesourcery.com>
2537
2538         PR c++/20212
2539         * pt.c (regenerate_decl_from_template): Copy attributes for
2540         parameters from the pattern to the instantiation.
2541
2542 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
2543
2544         PR c++/20734
2545         * cp-tree.def (OFFSET_REF): Correct comments.
2546         * init.c (build_offset_ref): Remove misleading comment.
2547         * typeck.c (build_unary_op): Handle pointer-to-member creation
2548         here, rather than ...
2549         (unary_complex_lvalue): ... here.
2550
2551 2005-04-06  Jason Merrill  <jason@redhat.com>
2552
2553         PR c++/19312
2554         * tree.c (stabilize_init): Don't bother trying to stabilize
2555         something with no side-effects.
2556
2557 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
2558
2559         PR c++/20763
2560         * decl.c (grokdeclarator): Correct attribute handling.
2561
2562 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
2563
2564         PR c++/19159
2565         * decl2.c (import_export_decl): Use non-COMDAT external linkage
2566         for virtual tables, typeinfo, etc. that will be emitted in only
2567         one translation unit on systems without weak symbols.
2568
2569 2005-04-04  Mark Mitchell  <mark@codesourcery.com>
2570
2571         PR c++/20679
2572         * parser.c (cp_parser_template_name): Fix thinko.
2573
2574 2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
2575
2576         PR c++/20746
2577         * method.c (use_thunk): Protect covariant pointer return
2578         adjustments from NULL pointers.
2579
2580 2005-04-04  Jan Hubicka  <jh@suse.cz>
2581
2582         * decl2.c (finish_objects): Revert my previous patch.
2583         (cp_finish_file): Likewise.
2584
2585 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587         * pt.c: Fix comment typos.
2588
2589 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
2590
2591         PR c++/20723
2592         * pt.c (more_specialized_fn): Member functions are unordered wrt
2593         non-members.  Conversion operators are unordered wrt other
2594         functions.
2595
2596 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2597
2598         * call.c (add_template_candidates_real): Remove length parameter
2599         from fn_type_unification call.
2600         * class.c (resolve_address_of_overloaded_function): Likewise
2601         * cp-tree.h (fn_type_unification): Remove length parameter.
2602         * pt.c (get_bindings_overload): Remove.
2603         (get_bindings_real): Rename to ...
2604         (get_bindings): ... here.  Remove length and strict
2605         parameters. Change return type flag to boolean.  Remove original
2606         forwarding function.
2607         (determine_specialization): Adjust get_bindings call.
2608         (fn_type_unification): Remove length parameter.  Adjust.
2609         (type_unification_real): Remove length parameter.  Adjust.
2610         (resolve_overloaded_unification): Adjust get_bindings call.
2611         (try_one_overload): Simplify confusing cascaded if control flow.
2612         (unify): Remove length paramter from type_unification_real call.
2613         (most_specialized_instantiation): Adjust get_bindings calls.
2614         (most_specialized): Likewise.
2615
2616 2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>
2617
2618         PR c++/19203, implement DR 214
2619         * call.c (joust): Use more_specialized_fn.
2620         * cp-tree.h (DEDUCE_ORDER): Remove.
2621         (more_specialized): Replace with ...
2622         (more_specialized_fn): ... this.
2623         * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
2624         case.
2625         (type_unification_real): Remove DEDUCE_ORDER case.
2626         (more_specialized): Replace with ...
2627         (more_specialized_fn): ... this.  Implement DR 214.
2628         (most_specialized_instantiation): Use get_bindings_real directly.
2629
2630 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2631
2632         PR c++/18644
2633         * call.c (build_new_op): Remove check for -Wsynth.
2634
2635 2005-03-31  Jan Hubicka  <jh@suse.cz>
2636
2637         * decl2.c (finish_objects): Mark ctor as needed.
2638         (cp_finish_file): Output variables only in nonunit-at-a-time.
2639
2640 2005-03-29  Richard Henderson  <rth@redhat.com>
2641
2642         PR c/20519
2643         * decl.c (cp_complete_array_type): Rename from complete_array_type.
2644         Use the new complete_array_type in c-common.c.  Update all callers.
2645         * cp-tree.h (cp_complete_array_type): Update to match.
2646
2647 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2648
2649         * typeck.c (build_static_cast_1): Allow scalar_cast between
2650         any integral, floating, or enumeration type.
2651
2652 2005-03-24  Steven Bosscher  <stevenb@suse.de>
2653
2654         * typeck.c (comptypes): First determine if the types are compatible
2655         from a target-independent point of view.  Check target attributes
2656         last.
2657
2658         * class.c (build_base_path):
2659         (build_vbase_offset_vtbl_entries):
2660         (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
2661         * error.c (dump_expr): Likewise.
2662         * init.c (build_zero_init, expand_cleanup_for_base,
2663         build_vec_delete_1): Likewise.
2664         * mangle.c (write_integer_cst): Likewise.
2665         * method.c (thunk_adjust): Likewise.
2666         * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
2667         * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
2668         * typeck.c (build_ptrmemfunc_access_expr,
2669         (get_member_function_from_ptrfunc): Likewise.
2670
2671 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2672
2673         * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2674
2675 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2676
2677         * cp-tree.h (perform_integral_promotions): Remove.
2678         (default_conversion): Add.
2679
2680 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
2681
2682         * parser.c (cp_parser_warn_min_max): New function.
2683         (cp_parser_binary_expression): Use it.
2684         (cp_parser_assignment_operator_opt): Likewise.
2685         (cp_parser_operator): Likewise.
2686
2687 2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2688
2689         PR c++/19980
2690         * decl.c (start_preparsed_function): Robustify.
2691
2692 2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2693
2694         PR c++/20499
2695         * parser.c (cp_parser_class_head): Return NULL_TREE when
2696         encountering a redefinition.
2697
2698 2005-03-22  Nathan Sidwell  <nathan@codesourcery.com>
2699
2700         PR c++/20465
2701         PR c++/20381
2702         * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
2703         template.
2704
2705 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
2706
2707         PR c++/20461
2708         PR c++/20536
2709         * init.c (emit_mem_initializers): Don't crash on undefined
2710         types.
2711
2712 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
2713
2714         PR c++/20147
2715         * semantics.c (finish_stmt_expr_expr): Return immediately
2716         if error_operand_p (expr).
2717
2718 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
2719
2720         * cp-tree.h (lvalue_or_else, lvalue_p): New.
2721         * typeck.c (lvalue_or_else): New.  Call lvalue_error.
2722
2723 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2724
2725         PR c++/20240
2726         * decl.c (decls_match): Compare context of VAR_DECL.
2727
2728 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2729
2730         PR c++/20333
2731         * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
2732         Check the return value of cp_parser_nested_name_specifier.
2733
2734 2005-03-18  Dale Johannesen <dalej@apple.com>
2735
2736         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2737
2738 2005-03-18  Paolo Carlini  <pcarlini@suse.de>
2739
2740         PR c++/20463
2741         * parser.c (cp_parser_diagnose_invalid_type_name):
2742         Check TYPE_BINFO (current_class_type) before attempting
2743         to emit inform messages.
2744
2745 2005-03-17  Paolo Carlini  <pcarlini@suse.de>
2746
2747         PR c++/19966
2748         * cp-tree.h (grok_op_properties): Change return type to void.
2749         * decl.c (grok_op_properties): Return early - don't check the
2750         arity - in case of a static member or an operator that cannot
2751         be non-member; tidy a bit.
2752
2753 2005-03-17  Nathan Sidwell  <nathan@codesourcery.com>
2754
2755         PR c++/20186
2756         * pt.c (contains_dependent_cast_p): Remove.
2757         (fold_non_dependent_expr): Don't use it.
2758         (value_dependent_expression_p): Use a switch statement.
2759         reference_exprs can be dependent.
2760
2761 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2762
2763         PR c++/4403
2764         PR c++/9783, DR433
2765         * name-lookup.c (pushtag): Skip template parameter scope when
2766         scope is ts_global.  Don't push tag into template parameter
2767         scope.
2768         * pt.c (instantiate_class_template): Reorder friend class
2769         template substitution to handle non-dependent friend class
2770         that hasn't been previously declared.
2771
2772 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2773
2774         Friend class name lookup 5/n
2775         PR c++/1016
2776         * cp-tree.h (pushtag): Adjust declaration.
2777         * decl.c (lookup_and_check_tag): Call lookup_type_scope if
2778         lookup_name fails.
2779         (xref_tag): Adjust call to pushtag.  Make hidden class visible.
2780         (start_enum): Adjust call to pushtag.
2781         * name-lookup.c (ambiguous_decl): Ignore hidden names.
2782         (qualify_lookup): Change return type to bool.
2783         (hidden_name_p): New function.
2784         (lookup_namespace_name, unqualified_namespace_lookup,
2785         lookup_name_real): Use it.
2786         (lookup_type_scope): Update comments.
2787         (maybe_process_template_type_declaration): Change parameter name
2788         from globalize to is_friend.
2789         (pushtag): Change globalize parameter of type int to tag_scope.
2790         Hide name if introduced by friend declaration.
2791         * name-lookup.h (hidden_name_p): Add declaration.
2792         * parser.c (cp_parser_lookup_name): Don't deal with hidden name
2793         here.
2794         * pt.c (push_template_decl_real): Make hidden class template
2795         visible.
2796         (lookup_template_class, instantiate_class_template): Adjust call
2797         to pushtag.
2798         * semantics.c (begin_class_definition): Likewise.
2799         * rtti.c (init_rtti_processing, build_dynamic_cast_1,
2800         tinfo_base_init, emit_support_tinfos): Use ts_current instead of
2801         ts_global.
2802
2803 2005-03-13  Mark Mitchell  <mark@codesourcery.com>
2804
2805         PR c++/20157
2806         * pt.c (determine_specialization): Reject non-specializations.
2807
2808 2005-03-11  Per Bothner  <per@bothner.com>
2809
2810         * cp-tree.h (struct cp_declarator): New id_loc field.
2811         * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
2812         location using c_lex_with_flags, instead of input_location.
2813         (cp_parser_direct_declarator): Set declarator's id_loc from
2814         cp_token's id_loc.
2815
2816 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2817
2818         PR c++/18384, c++/18327
2819         * decl.c (reshape_init_array): Use UHWI type for max_index_cst
2820         and index.  Convert max_index to size_type_node if it isn't
2821         host_integerp (, 1).
2822
2823 2005-03-09  Mark Mitchell  <mark@codesourcery.com>
2824
2825         PR c++/20208
2826         * pt.c (tsubst_decl): Apply array-to-pointer and
2827         function-to-pointer conversions to function arguments.
2828         (regenerate_decl_from_template): Likewise.
2829
2830 2005-03-09  Paolo Carlini  <pcarlini@suse.de>
2831
2832         PR c++/16859
2833         * decl.c (complete_array_type): In pedantic mode, return
2834         3 for an empty initializer list as the initializer for an
2835         array of unknown bound (8.5.1/4).
2836         (maybe_deduce_size_from_array_init): Fix final test to use
2837         the above.
2838
2839 2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>
2840
2841         PR c++/20186
2842         * pt.c (contains_dependent_cast_p): New.
2843         (fold_non_dependent_expr): Call it.
2844
2845 2005-03-08  Mark Mitchell  <mark@codesourcery.com>
2846
2847         PR c++/20142
2848         * cp-tree.h (target_type): Remove.
2849         * decl.c (layout_var_decl): Remove #if 0'd code.
2850         (cp_finish_decl): Remove dead code.
2851         * init.c (build_vec_init): When determining whether or not the
2852         element type has an asignment operator, look through all array
2853         dimensions.
2854         * typeck.c (target_type): Remove.
2855
2856 2005-03-07  Mark Mitchell  <mark@codesourcery.com>
2857
2858         * class.c (finish_struct_1): Do not warn about non-virtual
2859         destructors in Java classes.
2860
2861 2005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2862
2863         PR c++/19311
2864         * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
2865         * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
2866         for OFFSET_TYPE.
2867         * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
2868         Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
2869         (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
2870         template.
2871
2872 2005-03-02  Alexandre Oliva  <aoliva@redhat.com>
2873
2874         * name-lookup.c (push_overloaded_decl): Don't error if the new
2875         decl matches the old one.
2876         * decl.c (redeclaration_error_message): Likewise.
2877
2878 2005-03-01  Per Bothner  <per@bothner.com>
2879
2880         * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2881         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2882
2883 2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2884
2885         PR c++/20232
2886         * class.c (update_vtable_entry_for_fn): Don't crash on invalid
2887         covariancy.
2888
2889         * cp-tree.g (THUNK_TARGET): Expand comment.
2890         * method.c (use_thunk): Make sure we also use the target, if that
2891         is a thunk.
2892
2893 2005-02-27  Jakub Jelinek  <jakub@redhat.com>
2894
2895         PR c++/20206
2896         * decl.c (cxx_comdat_group): Put thunks for
2897         TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
2898         comdat group as the thunk target.
2899
2900 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2901
2902         * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
2903         parser.c: Fix comment typo(s).
2904
2905 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
2906
2907         PR c++/20175
2908         * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
2909         initializes a char/wchar_t array.
2910
2911 2005-02-23  Mark Mitchell  <mark@codesourcery.com>
2912
2913         PR c++/19878
2914         * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
2915         with internal linkage.
2916
2917 2005-02-23  Alexandre Oliva  <aoliva@redhat.com>
2918
2919         * decl.c (grokvardecl): Don't exempt anonymous types from having
2920         linkage for variables that have linkage other than "C".
2921
2922 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
2923
2924         * cp-objcp-common.h, error.c: Update copyright.
2925
2926 2005-02-22  Mark Mitchell  <mark@codesourcery.com>
2927
2928         PR c++/20073
2929         * decl.c (start_decl_1): Don't clear TREE_READONLY.
2930         (cp_finish_decl): Likewise.
2931         (complete_vars): Call cp_apply_type_quals_to_decl.
2932         * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
2933         cases where that's not valid.
2934
2935         PR c++/19991
2936         * init.c (integral_constant_value): Iterate if the value of a decl
2937         is itself a constant.
2938
2939         PR c++/20152
2940         * parser.c (cp_parser_class_head): Check for redefintions here.
2941         * semantics.c (begin_class_definition): Not here.
2942
2943         PR c++/20153
2944         * decl2.c (build_anon_union_vars): Add type parameter.
2945         (finish_anon_union): Pass it.
2946
2947         PR c++/20148
2948         * error.c (dump_expr): Do not print the body of a BIND_EXPR.
2949         Handle STATEMENT_LIST.
2950
2951         PR c++/19883
2952         * parser.c (cp_parser_direct_declarator): Always complain about
2953         non-constant array bounds when in a function scope.
2954         * semantics.c (finish_id_expression): Do not mark dependent names
2955         as non-constant.
2956
2957 2005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>
2958
2959         PR c++/19076
2960         PR c++/6628
2961         * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
2962         * decl.c (grokdeclarator): Pedwarn about qualifying a function
2963         type.
2964         Add qualifiers when declaring a typedef of a function type.
2965         Member function pointers pick up the qualifiers of the typedef
2966         used to declare them.
2967         Don't complain about creating cv-qualified function types.
2968         Complain about qualified function typedefs that are used to
2969         declare non-static member functions or free functions.
2970         Use cp_apply_type_quals_to_decl.
2971         (start_preparsed_function): Use cp_apply_type_quals_to_decl.
2972         (grokclassfn): Use cp_apply_type_quals_to_decl.
2973         * error.c (dump_type_suffix): Print qualifiers for function
2974         types.
2975         * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
2976         (tsubst): When substituting a function type into a member
2977         pointer type, pass along the qualifiers.
2978         (unify): Unify member pointers to member function pointers.
2979         * tree.c (cp_build_qualified_type_real): Function types may be
2980         qualified. This includes restrict qualifiers.
2981         * typeck.c (cp_apply_type_quals_to_decl): New function to replace
2982         use of c_apply_type_quals_to_decl. Drops qualifiers that are being
2983         added to function types.
2984
2985 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2986
2987         PR 18785
2988         * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2989         c_common_to_target_charset.  Delete bogus comment.
2990
2991 2005-02-18  Richard Henderson  <rth@redhat.com>
2992
2993         PR libstdc++/10606
2994         * except.c (do_get_exception_ptr): New.
2995         (expand_start_catch_block): Use it.
2996
2997 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
2998
2999         * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
3000         if type is not error_mark_node.
3001
3002 2005-01-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3003
3004         PR c++/19508
3005         * decl2.c (grokfield): Do not apply attributes to template parameters
3006         as they are ignored by tsubst anyway.
3007
3008 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
3009
3010         PR c++/19813
3011         * decl.c (start_decl_1): Clear TREE_READONLY flag if
3012         its type has TYPE_NEEDS_CONSTRUCTING.
3013         (complete_vars): Likewise.
3014
3015 2005-02-17  Alexandre Oliva  <aoliva@redhat.com>
3016
3017         PR c++/20028
3018         * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
3019         template along with TYPE_SIZE.
3020
3021         PR c++/20022
3022         * semantics.c (perform_deferred_access_checks): Use
3023         get_deferred_access_checks to get the top of the stack.
3024
3025 2005-02-15  Alexandre Oliva  <aoliva@redhat.com>
3026
3027         PR c++/17788
3028         * class.c (add_implicitly_declared_members, check_field_decl)
3029         (check_field_decls, check_bases): Remove arguments, tests and
3030         assignments of cant_have_default_ctor-related variables.
3031
3032 2005-02-15  Alexandre Oliva  <aoliva@redhat.com>
3033
3034         * decl2.c (mark_used): Set the source location of the used decl to
3035         the current input location here...
3036         * method.c (synthesize_method): ... not here.  Set input_location
3037         from the decl instead.
3038
3039 2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3040
3041         PR c++/19608
3042         * parser.c (cp_parser_late_parsing_for_member): Use
3043         current_function_decl as scope to push to and from.
3044
3045         PR c++/19884
3046         * pt.c (check_explicit_specialization): Make sure namespace
3047         binding lookup found an overloaded function.
3048         (lookup_template_function): Just assert FNS is an overloaded
3049         function.
3050
3051         PR c++/19895
3052         * decl.c (grokdeclarator): Check for error mark node in ptrmem
3053         construction.
3054
3055 2005-02-14  Alexandre Oliva  <aoliva@redhat.com>
3056
3057         PR c++/17816
3058         * decl.c (redeclaration_error_message): Report redefinition of
3059         pure virtual function.
3060
3061 2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3062
3063         PR c++/19891
3064         * class.c (build_simple_base_path): Build the component_ref
3065         directly.
3066         (update_vtable_entry_for_fn): Walk the covariant's binfo chain
3067         rather than using lookup_base.
3068         * search.c (dfs_walk_once): Add non-recursive assert check.
3069         * typeck.c (build_class_member_access_expr): It is possible for
3070         the member type to be both const and volatile.
3071
3072 2005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3073
3074         PR c++/14479
3075         PR c++/19487
3076         * pt.c (maybe_check_template_type): Remove.
3077         * cp-tree.h (maybe_check_template_type): Remove prototype.
3078         * name-lookup.c (maybe_process_template_type_declaration): Don't
3079         use maybe_check_template_type.
3080
3081 2005-02-11  Richard Henderson  <rth@redhat.com>
3082
3083         PR c++/19632
3084         * pt.c (get_mostly_instantiated_function_type): Save and restore
3085         flag_access_control instead of push/pop_access_scope.
3086
3087 2005-02-10  Mark Mitchell  <mark@codesourcery.com>
3088
3089         PR c++/19755
3090         * decl.c (reshape_init): Issue warnings about missing braces.
3091
3092 2005-02-11  Kazu Hirata  <kazu@cs.umass.edu>
3093
3094         * cp-tree.def, except.c, ptree.c: Update copyright.
3095
3096 2005-02-09  Mark Mitchell  <mark@codesourcery.com>
3097
3098         PR c++/19811
3099         * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
3100         attempting name lookup.
3101
3102         * parser.c (cp_parser_unqualified_id): Initialize type_decl.
3103
3104         PR c++/19787
3105         * call.c (initialize_reference): Robustify.
3106
3107         PR ++/19732
3108         * decl.c (grokdeclarator): Check for invalid use of destructor
3109         names.
3110
3111         PR c++/19762
3112         * parser.c (cp_parser_unqualified_id): Avoid creating destructor
3113         names with invalid types.
3114
3115         PR c++/19826
3116         * parser.c (cp_parser_direct_declarator): Allow type-dependent
3117         expressions as array bounds.
3118
3119         PR c++/19739
3120         * parser.c (cp_parser_attributes_list): Allow empty lists.
3121
3122 2005-02-08  Mark Mitchell  <mark@codesourcery.com>
3123
3124         PR c++/19733
3125         * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
3126         (check_bases): Give warnings about a base class with a
3127         non-virtual destructor, even if it is implicit.
3128         (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
3129         (maybe_warn_about_overly_private_class): Don't use
3130         TYPE_HAS_DESTRUCTOR.
3131         (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
3132         (check_for_override): Give it external linkage.
3133         (add_implicitly_declared_members): Generate destructors lazily.
3134         (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3135         TYPE_HAS_DESTRUCTOR.
3136         (check_bases_and_members): Call check_methods before
3137         check_field_decls.
3138         (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3139         TYPE_HAS_DESTRUCTOR.
3140         (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
3141         * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
3142         * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
3143         (lang_type_class): Add lazy_destructor.
3144         (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
3145         (CLASSTYPE_DESTRUCTORS): Robustify.
3146         (TYPE_HAS_DESTRUCTOR): Remove.
3147         (check_for_override): Declare.
3148         (build_vbase_delete): Remove.
3149         * cvt.c (convert_to_void): Issue errors about pseudo-destructor
3150         expressions.
3151         * decl.c (cxx_maybe_build_cleanup): Remove dead code.
3152         * except.c (dtor_nothrow): Lazily create destructors if necessary.
3153         (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
3154         * init.c (build_delete): Lazily create destructors, if necessary.
3155         (build_vbase_delete): Remove.
3156         * method.c (locate_dtor): Simplify.
3157         (implicitly_declare_fn): Add support for destructors.
3158         * parser.c (cp_parser_lookup_name): Lazily create destructors, if
3159         necessary.
3160         * pt.c (check_explicit_specialization): Don't use
3161         TYPE_HAS_DESTRUCTOR.
3162         (instantiate_class_template): Likewise.
3163         * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
3164         * rtti.c (emit_support_tinfos): Robustify.
3165         * search.c (lookup_fnfields_1): Lazily create destructors.
3166         * typeck.c (build_class_member_access_expr): Remove
3167         PSEUDO_DTOR_EXPR handling.
3168         (lookup_destructor): Likewise.
3169
3170 2005-02-08  Kazu Hirata  <kazu@cs.umass.edu>
3171
3172         * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
3173         copyright.
3174
3175 2005-02-07  Mark Mitchell  <mark@codesourcery.com>
3176
3177         * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
3178         on boolean variables.
3179         (cp_lexer_stop_debugging): Likewise.
3180
3181 2005-02-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3182
3183         PR c++/17401
3184         * parser.c (cp_parser_pure_specifier): Emit a specific error
3185         message with an invalid pure specifier.
3186         * decl2.c (grok_function_init): Remove.
3187         (grokfield): An initializer for a method is a always a pure
3188         specifier.
3189
3190 2005-02-02  Matt Austern  <austern@apple.com>
3191
3192         PR c++/19628
3193         * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
3194         * parser.c (cp_parser_postfix_expression): Accept function call in
3195         constant expression if builtin_valid_in_constant_expr_p is true
3196         for that function.
3197         * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
3198         * semantics.c (finish_id_expression): Accept function call in constant
3199         expression if builtin_valid_in_constant_expr_p is true for that
3200         function.
3201         * tree.c (builtin_valid_in_constant_expr_p): New.
3202
3203 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3204
3205         PR c++/17413
3206         * pt.c (check_instantiated_args): Improve error message.
3207         Fix logic when to print its second part.
3208
3209 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3210
3211         * cp-tree.h (complete_type_or_else): Remove macro.
3212         (complete_type_or_diagnostic): Rename to complete_type_or_else
3213         and remove last argument.
3214         * typeck.c (complete_type_or_diagnostic): Rename to
3215         complete_type_or_else and remove last argument.
3216
3217 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3218
3219         * cp-tree.h (commonparms): Remove prototype.
3220         (convert_arguments): Likewise.
3221         (PFN_FROM_PTRMEMFUNC): Remove.
3222         * typeck.c (commonparms): Make static.
3223         (convert_arguments): Add prototype. Make static.
3224         (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
3225
3226 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3227
3228         * parser.c (cp_parser_primary_expression): Don't complain about
3229         floating-point literals in integral constant expressions when
3230         !pedantic.
3231
3232 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3233
3234         * parser.c (cp_parser_template_id): Revert comment patch too.
3235
3236         PR c++/18757
3237         PR c++/19366
3238         PR c++/19499
3239         * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
3240         Issue an error when creating the template id.
3241         * pt.c (fn_type_unification): Return early if the explicit
3242         template arg list is an error_mark_node.
3243
3244 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3245
3246         * decl.c (build_enumerator): Do not issue duplicate error messages
3247         about invalid enumeration constants.
3248         * parser.c (cp_parser_non_integral_constant_expression): Always
3249         set parser->non_integral_constant_expression_p.
3250         (cp_parser_primary_expression): Add cast_p parameter.  Issue
3251         errors about invalid uses of floating-point literals in
3252         cast-expressions.
3253         (cp_parser_postfix_expression): Add cast_p parameter.
3254         (cp_parser_open_square_expression): Pass it.
3255         (cp_parser_parenthesized_expression_list): Add cast_p parameter.
3256         (cp_parser_unary_expression): Likewise.
3257         (cp_parser_new_placement): Pass it.
3258         (cp_parser_direct_new_declarator): Likewise.
3259         (cp_parser_new_initializer): Likewise.
3260         (cp_parser_cast_expression): Add cast_p parameter.
3261         (cp_parser_binary_expression): Likewise.
3262         (cp_parser_question_colon_clause): Likewise.
3263         (cp_parser_assignment_expression): Likewise.
3264         (cp_parser_expression): Likewise.
3265         (cp_parser_constant_expression): If an integral constant
3266         expression is invalid, return error_mark_node.
3267         (cp_parser_expression_statement): Pass cast_p.
3268         (cp_parser_condition): Likewise.
3269         (cp_parser_iteration_statement): Likewise.
3270         (cp_parser_jump_statement): Likewise.
3271         (cp_parser_mem_initializer): Likewise.
3272         (cp_parser_template_argument): Likewise.
3273         (cp_parser_parameter_declaration): Likewise.
3274         (cp_parser_initializer): Likewise.
3275         (cp_parser_throw_expression): Likewise.
3276         (cp_parser_attribute_list): Likewise.
3277         (cp_parser_simple_cast_expression): Likewise.
3278         (cp_parser_functional_cast): Likewise.
3279         (cp_parser_late_parsing_default_args): Likewise.
3280         (cp_parser_sizeof_operand): Save/restore
3281         non_integral_constant_expression_p.
3282
3283 2005-01-31  Mike Stump  <mrs@apple.com>
3284
3285         * parser.c (cp_lexer_new_main): Get the first token, first, before
3286         doing anything.
3287
3288 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3289
3290         * decl.c (start_decl): Add missing parentheses.
3291
3292 2005-01-30  Mark Mitchell  <mark@codesourcery.com>
3293
3294         PR c++/19555
3295         * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
3296         * decl.c (duplicate_decls): Do not discard
3297         DECL_IMPLICIT_INSTANTIATION when merging declarations.
3298         (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
3299         variables that do not have DECL_USE_TEMPLATE.
3300
3301         PR c++/19395
3302         * decl.c (grokdeclarator): Refactor code so that qualified names
3303         are never allowed as the declarator in a typedef.
3304
3305         PR c++/19367
3306         * name-lookup.c (do_nonmember_using_decl): Avoid overloading
3307         builtin declarations.
3308
3309         PR c++/19457
3310         * call.c (convert_like_real): Inline call to
3311         dubious_conversion_warnings here.
3312         * cp-tree.h (dubious_conversion_warnings): Remove.
3313         * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
3314         setting TREE_NEGATED_INT.
3315         * typeck.c (dubious_conversion_warnings): Remove.
3316
3317         PR c++/19349
3318         * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
3319         memory.
3320
3321 2005-01-28  Mark Mitchell  <mark@codesourcery.com>
3322
3323         PR c++/19253
3324         * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
3325         tentative parses.
3326
3327         PR c++/19667
3328         * pt.c (redeclare_class_template): Robustify.
3329
3330 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3331
3332         * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
3333         instead of SWITCH_EXPR ones.
3334         * pt.c (tsubst_expr): Likewise.
3335         * semantics.c (begin_switch_stmt, finish_switch_cond,
3336         finish_switch_stmt): Likewise.
3337
3338 2005-01-26  J"orn Rennecke <joern.rennecke@st.com>
3339
3340         PR c++/18370
3341         * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
3342
3343 2005-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
3344
3345         * class.c (abort_fndecl_addr): New variable.
3346         (build_vtbl_initializer): If we have a pure virtual function
3347         share the abort function's address.
3348         Include gt-cp-class.h at the end.
3349         * config-lang.in (gtfiles): Add cp/class.c.
3350
3351 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3352
3353         * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
3354         (pp_cxx_function_definition): Make static.
3355         * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
3356         (pp_cxx_function_definition): Likewise.
3357
3358 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3359
3360         * name-lookup.c (print_binding_level): Make static.
3361         (constructor_name_full): Make static inline.
3362         (current_decl_namespace): Make static.
3363         * name-lookup.h (constructor_name_full): Remove prototype.
3364         (print_binding_level): Likewise.
3365         (current_decl_namespace): Likewise.
3366
3367 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3368
3369         * decl.h (debug_bindings_indentation): Remove.
3370
3371 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3372
3373         * typeck.c: Fix a comment typo.
3374
3375 2005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3376
3377         PR c++/19208
3378         * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
3379         at least once.
3380         (tsubst): Use fold_decl_constant_value in place of a bare call to
3381         integral_constant_value.
3382
3383 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3384
3385         * typeck.c (more_qualified_p): Remove.
3386         * cp-tree.h: Remove the corresponding prototype.
3387
3388 2005-01-19  Matt Austern  <austern@apple.com>
3389
3390         * typeck.c (comptypes): Handle return code from objc_comptypes
3391         correctly.
3392
3393 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3394
3395         * cp-tree.h, name-lookup.h: Remove unused prototypes.
3396
3397 2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3398
3399         PR c++/19375
3400         * semantics.c (finish_id_expression): Disable access checking for
3401         already lookuped FIELD_DECL.
3402
3403 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3404
3405         * decl.c (delete_block): Remove.
3406         * cp-tree.h: Remove the corresponding prototype.
3407
3408         * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
3409         walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
3410         Remove.
3411         * cp-tree.h: Remove the corresponding prototypes.
3412
3413         * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
3414         cp_update_decl_after_saving, name_p): Remove.
3415         * cp-tree.h: Remove the corresponding prototypes.
3416
3417 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3418
3419         PR c/19472
3420         * semantics.c (finish_asm_stmt): Strip nops off
3421         input memory operands.
3422
3423 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3424
3425         * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
3426         typeck2.c: Update copyright.
3427
3428 2005-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3429
3430         * class.c (get_enclosing_class): Remove.
3431         * cp-tree.h: Remove the corresponding prototypes.
3432
3433         * cvt.c (convert_lvalue): Remove.
3434         * cp-tree.h: Remove the corresponding prototype.
3435
3436         * pt.c (tinst_for_decl): Remove.
3437         * cp-tree.h: Remove the corresponding prototypes.
3438
3439         * tree.c (hash_chainon): Remove.
3440         * cp-tree.h: Remove the corresponding prototypes.
3441
3442 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
3443
3444         PR c++/19263
3445         * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
3446         of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
3447
3448 2005-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3449
3450         * Make-lang.in (cp-warn): Don't append $(WERROR).
3451
3452 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
3453
3454         * cp-tree.h: Fix a comment typo.
3455
3456 2005-01-07  Nathan Sidwell  <nathan@codesourcery.com>
3457
3458         PR c++/19298
3459         * pt.c (tsubst_qualified_id): Call convert_from_reference.
3460
3461 2005-01-06  Mark Mitchell  <mark@codesourcery.com>
3462
3463         PR c++/19244
3464         * class.c (add_implicitly_declared_members): Remove dead code.
3465         * decl.c (grokfndecl): Add sfk parameter.  Use it do set
3466         DECL_CONSTRUCTOR_P.
3467         (grokdeclarator): Adjust calls to grokfndecl.
3468         * method.c (implicitly_declare_fn): Improve documentation.
3469         * parser.c (cp_parser_direct_declarator): Do not consider a
3470         function to be a constructor if the containing class was
3471         originally anonymous.
3472
3473 2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3474
3475         PR c++/17154
3476         * search.c (lookup_field_1): Handle using declaration in
3477         class template partial specialization.
3478
3479 2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3480
3481         PR c++/19258
3482         * pt.c (push_access_scope): Handle friend defined in class.
3483         (pop_access_scope): Likewise.
3484
3485 2005-01-06  Nathan Sidwell  <nathan@codesourcery.com>
3486
3487         PR c++/19270
3488         * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
3489         (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
3490         array-new handling code.  Use build_x_binary_op.
3491
3492 2005-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3493
3494         PR c++/19030
3495         * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
3496         * name-lookup.h (push_scope): Return pushed scope, not flag.
3497         * name-lookup.c (push_scope): Return scope that should be popped,
3498         not a flag.
3499         * decl.c (start_decl): Adjust.
3500         (grokfndecl): Adjust scope push and pop.
3501         * decl2.c (check_classfn): Likewise.
3502         * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
3503         cp_parser_init_declarator, cp_parser_direct_declarator,
3504         cp_parser_class_specifier, cp_parser_class_head,
3505         cp_parser_lookup_name,
3506         cp_parser_constructor_declarator_p): Likewise.
3507         * pt.c (instantiate_class_template,
3508         resolve_typename_type): Likewise.
3509
3510 2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3511
3512         PR c++/14136
3513         * parser.c (cp_parser_unqualified_id): Do not issue error message
3514         for typedef-name as destructor declarator when performing an
3515         uncommitted tentative parse.
3516
3517 2005-01-01  Steven Bosscher  <stevenb@suse.de>
3518
3519         PR middle-end/17544
3520         * decl.c (finish_function): Fix comment.  Annotate the compiler
3521         generated return with the current file name and line 0.
3522
3523 \f
3524 Copyright (C) 2005 Free Software Foundation, Inc.
3525
3526 Copying and distribution of this file, with or without modification,
3527 are permitted in any medium without royalty provided the copyright
3528 notice and this notice are preserved.