PR rtl-optimization/82913
[official-gcc.git] / gcc / cp / ChangeLog-2005
blob3269fa7f4a2c6e1f657ce30a77d77d9d428369ef
1 2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
11 2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
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.
17 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
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.
29 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
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.
47 2005-12-23  Mark Mitchell  <mark@codesourcery.com>
49         PR c++/24671
50         * pt.c (instantiate_template): Handle SFINAE.
52 2005-12-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
54         * decl.c (grokdeclarator): Improve diagnostic for friend
55         declarations of class members.
57 2005-12-22  Mark Mitchell  <mark@codesourcery.com>
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.
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.
75 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
77         PR c++/23333
78         * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
79         identify a single '0'.
81 2005-12-20  Mark Mitchell  <mark@codesourcery.com>
83         PR c++/21228
84         * decl.c (use_eh_spec_block): New function.
85         (store_parm_decls): Use it.
86         (finish_function): Likewise.
88 2005-12-19  Mark Mitchell  <mark@codesourcery.com>
90         PR c++/24278
91         * init.c (expand_member_init): Print messages about baseclasses
92         using %T rather than %D.
94         PR c++/24915
95         * class.c (add_method): Do not treat templates as identical unless
96         their return types are the same.
98 2005-12-12  Mark Mitchell  <mark@codesourcery.com>
100         PR c++/25300
101         * tree.c (build_qualified_name): Return error_mark_node for
102         erroneous input.
104 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
106         PR c++/25337
107         * pt.c (tsubst_copy_and_build): Permit dependent types for the
108         object in a class member access expression.
110 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
112         PR java/9861
113         * mangle.c (write_bare_function_type): Mangle return type for
114         methods of Java classes
116 2005-12-08  Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
118         * call.c (build_conditional_expr): Print types in error messages.
120 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
122         * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
124 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
126         * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
128 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
130         * Make-lang.in (c++.all.build, c++.install-normal): Remove.
132 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
134         * Make-lang.in: Remove all dependencies on s-gtype.
136 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
138         PR C++/24138
139         * decl.c (reshape_init_array_1): Handle max_index of -1.
141 2005-12-06  Roger Sayle  <roger@eyesopen.com>
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.
147 2005-12-06  Roger Sayle  <roger@eyesopen.com>
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.
153 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
155         * ptree.c (cxx_print_decl): Update to check for decl_common
156         structure.
158 2005-12-02  Mark Mitchell  <mark@codesourcery.com>
160         PR c++/24173
161         * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
162         clobbering newdecl.
164 2005-12-02  Richard Guenther  <rguenther@suse.de>
166         * semantics.c (simplify_aggr_init_expr): Use buildN instead
167         of build.
169 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
177 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
193 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
204 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
206         * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
207         not RID_MAX.
209 2005-11-30  Jason Merrill  <jason@redhat.com>
211         PR c++/21123
212         * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
213         parms in a thunk.
215 2005-11-30  Ben Elliston  <bje@au.ibm.com>
217         * typeck.c (build_x_unary_op): Correct spelling in error message.
219 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
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.
225 2005-11-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
227         PR c++/24979
228         * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
230 2005-11-26  Richard Henderson  <rth@redhat.com>
232         * lex.c: Update for pragma_lex rename.
233         * parser.c: Likewise.
235 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
237         PR c++/9278
238         * decl.c (grokparms): Do not allow typedef-names in a '(void)'
239         parmlist.
241 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
243         * typeck2.c (process_init_constructor_union): Remove check for
244         unnamed union members.
246 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
248         * name-lookup.c (lookup_name_real): Merge two if's.
250 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
252         * pt.c (instantiate_class_template): Clean-up.
254 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
256         * pt.c (template_class_depth_real): Remove. Move functionality to ...
257         (template_class_depth): ... here, replacing count_specializations
258         with 0.  Adjust comment.
260 2005-11-24  Richard Guenther  <rguenther@suse.de>
261         Dirk Mueller <dmueller@suse.de>
263         PR c++/14024
264         * typeck.c (build_reinterpret_cast_1): Use
265         strict_aliasing_warning.
267 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
269         PR c++/24235
270         * pt.c (check_instantiated_args): Reword diagnostic message about
271         template argument involving local types.
273 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
279 2005-11-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
281         PR c++/22238
282         * error.c (resolve_virtual_fun_from_obj_type_ref): New.
283         (dump_expr): Use it in <case CALL_EXPR>.
285 2005-11-21  Richard Henderson  <rth@redhat.com>
287         * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
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.
298 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
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):
305 2005-11-18  Mike Stump  <mrs@apple.com>
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.
313 2005-11-15  Jason Merrill  <jason@redhat.com>
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.
321 2005-11-15  Mike Stump  <mrs@apple.com>
323         * name-lookup.c (lookup_name_two): Add.
324         * name-lookup.h: Likewise.
326 2005-11-15  Mark Mitchell  <mark@codesourcery.com>
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.
332 2005-11-14  Mark Mitchell  <mark@codesourcery.com>
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.
340         * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
341         field.
343 2005-11-14  Jason Merrill  <jason@redhat.com>
345         PR c++/24580
346         * method.c (locate_ctor): Skip all artificial parms, not just
347         'this'.
349 2005-11-14  Mark Mitchell  <mark@codesourcery.com>
351         * parser.c (eof_token): Add initializer for ambiguous_p.
353 2005-11-13  Mark Mitchell  <mark@codesourcery.com>
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.
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.
385 2005-11-12  Jakub Jelinek  <jakub@redhat.com>
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.
392         PR c++/24761
393         * pt.c (tsubst_copy_asm_operands): New function.
394         (tsubst_expr) <case ASM_EXPR>: Use it.
396 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
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.
403 2005-11-08  Jason Merrill  <jason@redhat.com>
405         PR c++/21123
406         * method.c (use_thunk): Use build_cplus_new instead of
407         force_target_expr.
409 2005-11-06  Jason Merrill  <jason@redhat.com>
410             James A. Morrison <phython@gcc.gnu.org>
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.
419 2005-11-06  Mark Mitchell  <mark@codesourcery.com>
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.
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.
435 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
437         * decl2.c, init.c, typeck.c: Fix comment typos.
439 2005-11-04  Richard Guenther  <rguenther@suse.de>
441         PR c++/22487
442         * init.c (build_vec_init): Build comparison of matching
443         types.
445 2005-11-03  Josh Conner  <jconner@apple.com>
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.
452 2005-11-04  Joseph S. Myers  <joseph@codesourcery.com>
454         * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
455         parameter.
457 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
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.
465 2005-11-03  Mark Mitchell  <mark@codesourcery.com>
467         PR c++/21627
468         * pt.c (register_specialization): Update inline flags on clones.y
470 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
472         PR c++/24582
473         * decl.c (declare_local_label): Return 0 for variables
474         with error_mark_node as their types.
476 2005-11-02  Mark Mitchell  <mark@codesourcery.com>
478         PR c++/22434
479         * call.c (build_conditional_expr): Do bad conversions, if there's
480         no other choice.
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.
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.
493         PR c++/24569
494         * pt.c (instantiate_decl): Use cp_finish_decl, not
495         finish_static_data_member_decl.
497 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
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.
504 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
506         PR C++/23229
507         * decl.c (grokfndecl): Create a new function type
508         after erroring out about main not returning int.
510 2005-10-28  Josh Conner  <jconner@apple.com>
512         PR c++/22153
513         * parser.c (cp_parser_member_declaration): Detect and handle
514         a template specialization.
516 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
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.
524 2005-10-21  Mark Mitchell  <mark@codesourcery.com>
526         PR c++/24260
527         * parser.c (cp_parser_init_declarator): Pass attributes to
528         grokfield.
530 2005-10-20  Mark Mitchell  <mark@codesourcery.com>
532         PR c++/22618
533         * search.c (accessible_p): Check access in the outermost set of
534         template parameters.
536 2005-10-20  Richard Guenther  <rguenther@suse.de>
538         * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
540 2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
542         PR c++/22293
543         * decl.c (grokdeclarator): Reject unqualified destructors in
544         friend declarations.
546 2005-10-18  Mark Mitchell  <mark@codesourcery.com>
548         PR c++/23293
549         * pt.c (convert_template_argument): Use canonical type variants in
550         template specializations.
552 2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
554         PR c++/21383
555         * name-lookup.c (arg_assoc): Template args can be null in a
556         template-id-expr.
558         PR c++/22604
559         * class.c (update_vtable_entry_for_fn): Don't process invalid
560         covariant overriders.
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.
568 2005-10-17  Mark Mitchell  <mark@codesourcery.com>
570         PR c++/21908
571         * call.c (build_new_method_call): Do not show VTT parameters to
572         the user.
574 2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
576         PR c++/23440
577         * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
578         only complain about missing statement.
580 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
595 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
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.
604 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
606         PR c++/22173
607         * typeck.c (check_template_keyword): Fix thinko.
609 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
611         PR c++/23959
612         * decl.c (pop_switch): Only call c_do_switch_warnings
613         when not processing templates.
615 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
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.
660 2005-10-15  Mark Mitchell  <mark@codesourcery.com>
662         PR c++/21347
663         * class.c (maybe_warn_about_overly_private_class): Lazy
664         constructors are public.
666 2005-10-14  Mark Mitchell  <mark@codesourcery.com>
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.
678 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
680         PR c++/17796
681         * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
682         (maybe_clone_body): Track the first clone.
684 2005-10-13  Nathan Sidwell  <nathan@codesourcery.com>
686         PR c++/23984
687         * class.c (build_base_path): The vtable is always the first thing
688         in the vtt.
690 2005-10-13  Mark Mitchell  <mark@codesourcery.com>
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.
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.
704         PR c++/23694
705         * decl.c (start_method): Return error_mark_node for errors.
707         PR c++/23307
708         * pt.c (push_template_decl_real): Complain about attempts to
709         declare template variables.
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.
717         PR c++/22405
718         * pt.c (most_specialized_instantiation): Robustify.
720         PR c++/22464
721         * semantics.c (finish_id_expression): Issue errors about uses of
722         local variables in containing functions even in templates.
724 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
726         PR target/21801
727         PR target/23589
728         * class.c (finish_struct_1): Call
729         targetm.cxx.adjust_class_at_definition.
732 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
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.
756 2005-10-12  David Edelsohn  <edelsohn@gnu.org>
758         PR c++/23730
759         * call.c (build_object_call): If BINFO is NULL, bypass
760         lookup_fnfields and set fns to NULL_TREE.
762 2005-10-12  Paolo Bonzini  <bonzini@gnu.org>
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 &&.
768 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
770         PR c++/19964
771         * class.c (walk_subobject_offsets): Don't walk error_mark_node.
773 2005-10-11  Ian Lance Taylor  <ian@airs.com>
775         PR c++/8057
776         * cvt.c (convert_to_void): Don't warn about unused values when
777         processing a template declaration.
779 2005-10-11  Mark Mitchell  <mark@codesourcery.com>
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.
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.
795 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
797         PR c++/24277
798         * pt.c (instantiate_decl): Call finish_static_data_member_decl for
799         static data members.
801 2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
802             Mark Mitchell  <mark@codesourcery.com>
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.
808 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
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.
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.
822 2005-10-08  James A. Morrison  <phython@gcc.gnu.org>
824         PR c++/22172
825         * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
826         scopes as nondependent.
828 2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
830         * call.c (resolve_args): Remove redundant test.
832 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
834         PR tree-optimization/21419
835         PR tree-optimization/24146
836         PR tree-optimization/24151
838         * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
839         read-only.  Set ASM_VOLATILE_P for asms without outputs.
841 2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>
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.
848 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
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.
854 2005-10-03  Alexandre Oliva  <aoliva@redhat.com>
856         * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
858 2005-10-03  Mark Mitchell  <mark@codesourcery.com>
860         PR c++/17775
861         * repo.c: Include flags.h.
862         (finish_repo): Add -frandom-seed to the arguments.
864 2005-10-02  Mark Mitchell  <mark@codesourcery.com>
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.
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.
875 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
877         PR c++/16782
878         * decl.c (grokdeclarator): Always pedwarn about overqualified
879         member names.
881 2005-09-27  Mark Mitchell  <mark@codesourcery.com>
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.
890 2005-09-26  Jason Merrill  <jason@redhat.com>
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.
900 2005-09-26  Richard Guenther  <rguenther@suse.de>
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.
915 2005-09-22  Jakub Jelinek  <jakub@redhat.com>
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.
922 2005-09-21  Mark Mitchell  <mark@codesourcery.com>
924         PR c++/23993
925         * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
927 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
929         PR c++/23965
930         * call.c (resolve_args): Return error_mark_node on arguments
931         whose TREE_TYPE is error_mark_node.
933 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
935         PR c++/23947
936         * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
937         get_tinfo_ptr calls.
939 2005-09-16  Mark Mitchell  <mark@codesourcery.com>
941         PR c++/23914
942         * parser.c (cp_parser_enclosed_template_argument_list): Make sure
943         skip_evaluation is false when processing template arguments.
945         PR c++/21514
946         * pt.c (check_instantiated_args): Treat uses of anonymous types as
947         causing type-deduction failure.
949 2005-09-15  Jason Merrill  <jason@redhat.com>
951         PR c++/23357
952         * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
953         tcc_expression.
955 2005-09-15  Mark Mitchell  <mark@codesourcery.com>
957         PR c++/23896
958         * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
959         processing template arguments.
961         * pt.c (check_explicit_instantiation_namespace): Fix typo.
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.
977 2005-09-15  Nathan Sidwell  <nathan@codesourcery.com>
979         PR c++/23725
980         * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
982 2005-09-13  Bastian Blank <waldi@debian.org>
984         PR c++/16171
985         * mangle.c (find_substitution): Do not use special substitutions
986         for identifiers not in std::.
988 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
990         PR c++/23839
991         * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
992         for VAR_DECLs.
994 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
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.
1000 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
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.
1007 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
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.
1014 2005-09-12  Ian Lance Taylor  <ian@airs.com>
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.
1065 2005-09-11  Richard Henderson  <rth@redhat.com>
1067         * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
1068         * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
1070 2005-09-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1072         * parser.c (cp_parser_translation_unit): Simplify.  The while-block
1073         was actually executed at most once.
1075 2005-09-09  Richard Henderson  <rth@redhat.com>
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.
1086 2005-09-09  Mark Mitchell  <mark@codesourcery.com>
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.
1098 2005-09-08  Richard Henderson  <rth@redhat.com>
1100         PR debug/23190
1101         * decl.c (wrapup_globals_for_namespace): Call
1102         emit_debug_global_declarations.
1103         * decl2.c (cp_finish_file): Likewise.
1105 2005-09-08  Mark Mitchell  <mark@codesourcery.com>
1107         PR c++/23691
1108         * decl2.c (mark_used): Instantiate static data members initialized
1109         by constants, even in a template.
1111 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
1113         PR obj-c++/16816
1114         * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
1115         two CPP_COLON.
1117 2005-09-07  Richard Guenther  <rguenther@suse.de>
1119         * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
1120         for EMPTY_CLASS_EXPR.
1122 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
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.
1132 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
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.
1142         PR c++/9782
1143         * init.c (build_new_1): Make sure the entire array type is
1144         complete, not just its element types.
1146 2005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1148         * decl.c (check_elaborated_type_specifier): Remove redundant check.
1150 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1152         PR c++/23056
1153         * typeck.c (ignore_overflows): New helper function.
1154         (build_static_cast_1): Use it.
1156 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
1158         * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
1159         Follow spelling conventions.
1161 2005-09-05  Mark Mitchell  <mark@codesourcery.com>
1163         PR c++/23667
1164         * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
1165         copying a VAR_DECL.
1167 2005-09-05  Mark Mitchell  <mark@codesourcery.com>
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.
1174 2005-09-03  Mark Mitchell  <mark@codesourcery.com>
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.
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.
1190 2005-09-02  Mark Mitchell  <mark@codesourcery.com>
1192         PR c++/21687
1193         * parser.c (cp_parser_class_specifier): Push/pop GC contexts
1194         around functions in local classes.
1196 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
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.
1202 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1204         PR c++/13377
1205         * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
1206         lookup_name_real on final parse.
1208 2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1210         PR c++/23639
1211         * semantics.c (qualified_name_lookup_error): Do not complain again
1212         on invalid scope.
1214 2005-08-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
1222 2005-08-28  Mark Mitchell  <mark@codesourcery.com>
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.
1241 2005-08-26  Mark Mitchell  <mark@codesourcery.com>
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.
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.
1257 2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1259         PR c++/20817
1260         * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
1261         ->*.
1263 2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1265         PR c++/22454
1266         * parser.c (cp_lexer_peek_nth_token): Relax assert.
1268 2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1270         PR c++/23044
1271         * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
1273 2005-08-22  James E Wilson  <wilson@specifix.com>
1275         PR tree-optimization/23426
1276         * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
1277         array size check.
1279 2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
1285 2005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1287         PR c++/23089
1288         * decl.c (require_complete_types_for_parms): Mark incomplete types
1289         as invalid.
1291 2005-08-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1293         * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
1294         Fix typo in leading comment.
1296 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1298         * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
1300 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
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.
1317 2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
1318             Nathan Sidwell  <nathan@codesourcery.com>
1320         PR c++/21799
1321         PR c++/8271
1322         * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
1323         explicitly.
1325 2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>
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.
1333 2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1335         PR c++/23266
1336         * decl2.c (grokfield): Check that method is not static before
1337         marking it as pure.
1339 2005-08-11  Nathan Sidwell  <nathan@codesourcery.com>
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.
1346 2005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1348         PR c++/20646
1349         * decl.c (grokdeclarator): Reset storage_class after error.
1351 2005-08-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1353         PR c++/22508
1354         * init.c (build_new_1): Check for empty candidate list.
1356 2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1358         PR c++/23191
1359         * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
1360         before calling build_exception_variant.
1362 2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
1368 2005-08-06  Michael Matz  <matz@suse.de>
1370         * method.c (use_thunk): Call init_insn_lengths.
1372 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
1374         PR c++/22514
1375         * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
1376         sorrycount or errorcount are nonzero.
1378 2005-08-05  Mark Mitchell  <mark@codesourcery.com>
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.
1388 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
1390         * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
1391         Fix comment typos.
1393 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
1395         * method.c: Fix a comment typo.
1397 2005-07-28  Mark Mitchell  <mark@codesourcery.com>
1399         PR c++/22545
1400         * call.c (add_builtin_candidate): Adjust for changes in
1401         representation of pointer-to-member types.
1403 2005-07-28  Mike Stump  <mrs@apple.com>
1405         * pt.c (check_explicit_specialization): Add visibility logic.
1406         (lookup_template_class): Likewise.
1407         (instantiate_class_template): Likewise.
1409 2005-07-27  Devang Patel  <dpatel@apple.com>
1411         * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
1413 2005-07-25  Ian Lance Taylor  <ian@airs.com>
1415         * ptree.c (cxx_print_identifier): Print a leading space if the
1416         indent level is 0.
1418 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1420         * call.c (convert_for_arg_passing): Check function pointers when
1421         -Wmissing-format-attribute is activated.
1422         * typeck.c (convert_for_assignment): Likewise.
1424 2005-07-22  Manfred Hollstein  <mh@suse.com>
1426         * parser.c (cp_parser_declaration): Fix unitialised warnings.
1428 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1430         * class.c (build_base_path): Fix typo.
1432 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1434         PR C++/22358
1435         * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
1437 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1439         * call.c: Fix comment typo(s).
1440         * cxx-pretty-print.h: Likewise.
1441         * name-lookup.c: Likewise.
1442         * parser.c: Likewise.
1444 2005-07-20  Douglas Gregor <doug.gregor@gmail.com>
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.
1454 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
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.
1505 2005-07-18  Mark Mitchell  <mark@codesourcery.com>
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.
1517 2005-07-17  Mark Mitchell  <mark@codesourcery.com>
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.
1525 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1527         * call.c (diagnostic_fn_t): New.
1528         (build_temp, convert_like_real): Use diagnostic_fn_t.
1530 2005-07-15  Mark Mitchell  <mark@codesourcery.com>
1532         PR c++/22204
1533         * repo.c (repo_emit_p): Robustify.
1535 2005-07-14  Daniel Berlin  <dberlin@dberlin.org>
1537         Fix PR c++/22452
1538         * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
1540 2005-07-15  Mark Mitchell  <mark@codesourcery.com>
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.
1558 2005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1559             Nathan Sidwell  <nathan@codesourcery.com>
1561         PR c++/20172
1562         * pt.c (tsubst_template_parms): Check for invalid non-type
1563         parameters.
1565 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
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.
1584 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
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.
1611 2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>
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.
1619 2005-07-07  Nathan Sidwell  <nathan@codesourcery.com>
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.
1626 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
1628         * Makefile.in (class.o, decl2.o): Adjust dependencies.
1629         * class.c: Include tree-dump.h.
1630         * decl2.c: Include tree-dump.h.
1632 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1634         * dump.c: Use dump_string_field.
1636 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
1638         * cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
1639         minimum GCC version for format checking to 4.1.
1641 2005-07-02  Kazu Hirata  <kazu@codesourcery.com>
1643         * Make-lang.in (cc1plus-checksum.c): Use
1644         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1646 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1648         * name-lookup.c, parser.c: Use %q, %< and %> to quote in
1649         diagnostics.
1651 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
1652             Joseph S. Myers  <joseph@codesourcery.com>
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_.
1662 2005-06-30  Daniel Berlin  <dberlin@dberlin.org>
1664         * decl.c (require_complete_types_for_parms): Call relayout_decl
1665         instead of layout_decl.
1667 2005-06-30  Zack Weinberg  <zack@codesourcery.com>
1668             Jakub Jelinek  <jakub@redhat.com>
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.
1677 2005-06-30  Steven Bosscher  <stevenb@suse.de>
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.
1684 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
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.
1690 2005-06-28  Paul Brook  <paul@codesourcery.com>
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
1697 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1699         * call.c (build_over_call): Pass in named argument list to
1700         `check_function_arguments'.
1701         * typeck.c (build_function_call): Likewise.
1703 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1705         * cp-tree.h (lang_check_failed): Add noreturn attribute.
1707 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1709         * all files: Update FSF address in copyright headers.
1711 2005-06-23  Jason Merrill  <jason@redhat.com>
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.
1717 2005-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1719         * pt.c (register_specialization): Remove superfluous assertion.
1721 2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
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.
1729 2005-06-17  Geoffrey Keating  <geoffk@apple.com>
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.
1736 2005-06-16  Nathan Sidwell  <nathan@codesourcery.com>
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.
1742 2005-06-15  Nathan Sidwell  <nathan@codesourcery.com>
1744         PR c++/20678
1745         * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
1746         null.
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.
1777 2005-06-14  Roger Sayle  <roger@eyesopen.com>
1779         * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
1781 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1783         * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
1784         (rule for installing g++.1 manpage): Does depend on installdirs.
1786 2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>
1788         PR c++/20789
1789         * decl.c (cp_finish_decl): Clear runtime runtime initialization if
1790         in-class decl's initializer is bad.
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.
1803         * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
1805 2005-06-12  Roger Sayle  <roger@eyesopen.com>
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.
1811 2005-06-10  Aldy Hernandez  <aldyh@redhat.com>
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.
1819 2005-06-08  Nathan Sidwell  <nathan@codesourcery.com>
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.
1837 2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1839         PR c++/19894
1840         * pt.c (tsubst): Reject pointer-to-member of type void.
1842         PR c++/20563
1843         * parser.c (cp_parser_label_declaration): Deal with invalid/missing
1844         identifiers.
1846 2005-06-07  Nathan Sidwell  <nathan@codesourcery.com>
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.
1855         * parser.c (cp_parser_late_parsing_default_args): Fix overeager
1856         assert in previous patch.
1858 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
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.
1864 2005-06-06  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
1882         * method.c (synthesize_method): Use inform, not warning.
1884 2005-06-06  Hans-Peter Nilsson  <hp@axis.se>
1886         * config-lang.in (target_libs): Remove target-gperf.
1888 2005-06-05  Mark Mitchell  <mark@codesourcery.com>
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.
1897 2005-06-03  Mark Mitchell  <mark@codesourcery.com>
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.
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.
1910 2005-06-02  Nathan Sidwell  <nathan@codesourcery.com>
1912         * method.c (synthesize_method): Add addtional arg to warning call.
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.
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.
1931         PR c++/20350
1932         * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
1934         PR c++/21151
1935         * name-lookup.c (pushtag): Push local class even in a template.
1937 2005-05-31  Nathan Sidwell  <nathan@codesourcery.com>
1939         PR c++/21165
1940         * init.c (integral_constant_value): Check the type of the
1941         initializer, not the decl.
1943 2005-05-30  Mark Mitchell  <mark@codesourcery.com>
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.
1949 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1951         * operators.def, optimize.c: Update copyright.
1953 2005-05-28  Mark Mitchell  <mark@codesourcery.com>
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.
1960         PR c++/21340
1961         * method.c (implicitly_declare_fn): Clear processing_template_decl
1962         when generating implicit declaration.
1964 2005-05-27  Mark Mitchell  <mark@codesourcery.com>
1966         PR c++/21614
1967         * typeck.c (get_member_function_from_ptrfunc): Do not attempt
1968         conversions to base classes of incomplete types.
1970 2005-05-27  Ian Lance Taylor  <ian@airs.com>
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.
1976 2005-05-27  Roger Sayle  <roger@eyesopen.com>
1977             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
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.
1996         * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
1997         (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
1999 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
2001         PR c++/21455
2002         * typeck.c (get_delta_difference): Cope with incomplete but equal
2003         classes.  Reorder if.
2005         PR c++/21681
2006         * parser.c (cp_parser_late_parsing_for_member): Disable access
2007         checking for template functions.
2009 2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2011         PR c++/21768
2012         * pt.c (redeclare_class_template): Change error message according
2013         to coding conventions.
2015 2005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2017         * call.c (build_op_delete_call): Fix quoting in error message.
2019 2005-05-25  Richard Henderson  <rth@redhat.com>
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.
2028 2005-05-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2030         PR c++/21686
2031         * semantics.c (finish_id_expression): Fix quoting in error message.
2033 2005-05-25  DJ Delorie  <dj@redhat.com>
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.
2042 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
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.
2060 2005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>
2062         PR C++/21645
2063         * optimize.c (update_cloned_parm): Copy the TYPE also from the
2064         original one.
2066 2005-05-19  Jakub Jelinek  <jakub@redhat.com>
2068         PR c++/21495
2069         * decl.c (grokdeclarator): Fix "storage class specified for"
2070         error reporting.
2072 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2074         * parser.c: Fix comment typos.
2076 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2078         * Make-lang.in (cc1plus-dummy): New.
2079         (cc1plus-checksum.c): New.
2080         (cc1plus-checksum.o): New.
2081         (cc1plus): Add cc1plus-checksum.o.
2083 2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2085         PR C++/19664
2086         * decl2.c (determine_visibility): Don't set visibility to
2087         hidden if it has been set explicitly by user.
2089 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2090             Mike Stump  <mrs@apple.com>
2092         Yet more Objective-C++...
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.
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.
2167         * Make-lang.in (cp/tree.o): Add debug.h.
2168         * tree.c (lvalue_p_1, case CONST_DECL): Add.
2170 2005-05-18  Jan Hubicka  <jh@suse.cz>
2172         * method.c: Include tree-pass.h
2173         (use_thunk): Lower body before expanding.
2175 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
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.
2181 2005-05-16  Richard Henderson  <rth@redhat.com>
2183         * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
2184         (build_library_fn): ... here.
2186 2005-05-12  Ian Lance Taylor  <ian@airs.com>
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.
2196 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
2198         * typeck.c (build_unary_op): Do not resort to address arithmetic
2199         when taking the address of a COMPONENT_REF.
2201 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
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.
2208 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2210         * mangle.c: Remove a reference to the MIPS -mint64 option.
2212 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
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)*.
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.
2226 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2228         * decl2.c (spew_debug): Remove.
2230         * decl2.c (ssdf_decls, start_static_storage_duration_function,
2231         generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
2233         * decl2.c (pending_statics, note_vague_linkage_var,
2234         cp_finish_file): Use VEC instead of VARRAY.
2235         (pending_statics_used): Remove.
2237 2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2239         * decl2.c (deferred_fns, note_vague_linkage_fn,
2240         cp_finish_file): Use VEC instead of VARRAY.
2242 2005-05-05  Mark Mitchell  <mark@codesourcery.com>
2244         PR c++/21352
2245         * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
2247 2005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2249         * pt.c: Fix a comment typo.
2251 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
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.
2257 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2259         * friend.c, lex.c, mangle.c, repo.c: Update copyright.
2261 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
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.
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.
2276 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2278         * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
2279         for BUILT_IN_MD built-ins.
2281 2005-05-02  Michael Matz  <matz@suse.de>
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.
2289 2005-04-25  Ian Lance Taylor  <ian@airs.com>
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.
2304 2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>
2306         PR C++/21188
2307         * rtti.c (ifnonnull): Cast the zero comparison operand
2308         to the correct type.
2310 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
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).
2317 2005-04-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
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".
2323 2005-04-24  Ian Lance Taylor  <ian@airs.com>
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.
2330 2005-04-23  DJ Delorie  <dj@redhat.com>
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.
2337 2005-04-22  Per Bothner  <per@bothner.com>
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__.
2342 2005-04-22  Alexandre Oliva  <aoliva@redhat.com>
2344         PR c++/21087
2345         * name-lookup.c (push_overloaded_decl): Do not overload with
2346         non-duplicate anticipated built-in.
2348 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2350         * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
2351         VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
2353 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
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.
2392 2005-04-20  Ian Lance Taylor  <ian@airs.com>
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.
2403 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2405         * decl.c (expand_static_init): Call build2 and build3 instead
2406         of build.
2408         * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
2410 2005-04-17  Ian Lance Taylor  <ian@airs.com>
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.
2421 2005-04-16  Mark Mitchell  <mark@codesourcery.com>
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.
2428 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
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.
2436 2005-04-15  Richard Henderson  <rth@redhat.com>
2438         PR middle-end/14311
2439         * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
2441 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
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.
2448 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2450         * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
2451         CLASSTYPE_TEMPLATE_LEVEL): Remove.
2453 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
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.
2459 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
2461         * cp-tree.h (cxx_alignof): Remove.
2463         * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
2465         * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
2466         CONV_STATIC_CAST): Remove.
2468         * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
2470         * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
2472         * cp-tree.h (cp_deprecated): Remove.
2474 2005-04-08  Ian Lance Taylor  <ian@airs.com>
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.
2504 2005-04-08  Mark Mitchell  <mark@codesourcery.com>
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.
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.
2531 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
2533         * decl.c (start_decl): Apply pending #pragma weak regardless of
2534         scope.
2536 2005-04-06  Mark Mitchell  <mark@codesourcery.com>
2538         PR c++/20212
2539         * pt.c (regenerate_decl_from_template): Copy attributes for
2540         parameters from the pattern to the instantiation.
2542 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
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.
2551 2005-04-06  Jason Merrill  <jason@redhat.com>
2553         PR c++/19312
2554         * tree.c (stabilize_init): Don't bother trying to stabilize
2555         something with no side-effects.
2557 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
2559         PR c++/20763
2560         * decl.c (grokdeclarator): Correct attribute handling.
2562 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
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.
2569 2005-04-04  Mark Mitchell  <mark@codesourcery.com>
2571         PR c++/20679
2572         * parser.c (cp_parser_template_name): Fix thinko.
2574 2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
2576         PR c++/20746
2577         * method.c (use_thunk): Protect covariant pointer return
2578         adjustments from NULL pointers.
2580 2005-04-04  Jan Hubicka  <jh@suse.cz>
2582         * decl2.c (finish_objects): Revert my previous patch.
2583         (cp_finish_file): Likewise.
2585 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2587         * pt.c: Fix comment typos.
2589 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
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.
2596 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
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.
2616 2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>
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.
2630 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2632         PR c++/18644
2633         * call.c (build_new_op): Remove check for -Wsynth.
2635 2005-03-31  Jan Hubicka  <jh@suse.cz>
2637         * decl2.c (finish_objects): Mark ctor as needed.
2638         (cp_finish_file): Output variables only in nonunit-at-a-time.
2640 2005-03-29  Richard Henderson  <rth@redhat.com>
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.
2647 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2649         * typeck.c (build_static_cast_1): Allow scalar_cast between
2650         any integral, floating, or enumeration type.
2652 2005-03-24  Steven Bosscher  <stevenb@suse.de>
2654         * typeck.c (comptypes): First determine if the types are compatible
2655         from a target-independent point of view.  Check target attributes
2656         last.
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.
2671 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2673         * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2675 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2677         * cp-tree.h (perform_integral_promotions): Remove.
2678         (default_conversion): Add.
2680 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
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.
2687 2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2689         PR c++/19980
2690         * decl.c (start_preparsed_function): Robustify.
2692 2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2694         PR c++/20499
2695         * parser.c (cp_parser_class_head): Return NULL_TREE when
2696         encountering a redefinition.
2698 2005-03-22  Nathan Sidwell  <nathan@codesourcery.com>
2700         PR c++/20465
2701         PR c++/20381
2702         * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
2703         template.
2705 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
2707         PR c++/20461
2708         PR c++/20536
2709         * init.c (emit_mem_initializers): Don't crash on undefined
2710         types.
2712 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
2714         PR c++/20147
2715         * semantics.c (finish_stmt_expr_expr): Return immediately
2716         if error_operand_p (expr).
2718 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
2720         * cp-tree.h (lvalue_or_else, lvalue_p): New.
2721         * typeck.c (lvalue_or_else): New.  Call lvalue_error.
2723 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2725         PR c++/20240
2726         * decl.c (decls_match): Compare context of VAR_DECL.
2728 2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
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.
2734 2005-03-18  Dale Johannesen <dalej@apple.com>
2736         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2738 2005-03-18  Paolo Carlini  <pcarlini@suse.de>
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.
2745 2005-03-17  Paolo Carlini  <pcarlini@suse.de>
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.
2753 2005-03-17  Nathan Sidwell  <nathan@codesourcery.com>
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.
2761 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
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.
2772 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
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.
2803 2005-03-13  Mark Mitchell  <mark@codesourcery.com>
2805         PR c++/20157
2806         * pt.c (determine_specialization): Reject non-specializations.
2808 2005-03-11  Per Bothner  <per@bothner.com>
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.
2816 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
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).
2823 2005-03-09  Mark Mitchell  <mark@codesourcery.com>
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.
2830 2005-03-09  Paolo Carlini  <pcarlini@suse.de>
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.
2839 2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>
2841         PR c++/20186
2842         * pt.c (contains_dependent_cast_p): New.
2843         (fold_non_dependent_expr): Call it.
2845 2005-03-08  Mark Mitchell  <mark@codesourcery.com>
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.
2856 2005-03-07  Mark Mitchell  <mark@codesourcery.com>
2858         * class.c (finish_struct_1): Do not warn about non-virtual
2859         destructors in Java classes.
2861 2005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
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.
2872 2005-03-02  Alexandre Oliva  <aoliva@redhat.com>
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.
2878 2005-03-01  Per Bothner  <per@bothner.com>
2880         * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2881         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2883 2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2885         PR c++/20232
2886         * class.c (update_vtable_entry_for_fn): Don't crash on invalid
2887         covariancy.
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.
2893 2005-02-27  Jakub Jelinek  <jakub@redhat.com>
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.
2900 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2902         * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
2903         parser.c: Fix comment typo(s).
2905 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
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.
2911 2005-02-23  Mark Mitchell  <mark@codesourcery.com>
2913         PR c++/19878
2914         * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
2915         with internal linkage.
2917 2005-02-23  Alexandre Oliva  <aoliva@redhat.com>
2919         * decl.c (grokvardecl): Don't exempt anonymous types from having
2920         linkage for variables that have linkage other than "C".
2922 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
2924         * cp-objcp-common.h, error.c: Update copyright.
2926 2005-02-22  Mark Mitchell  <mark@codesourcery.com>
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.
2935         PR c++/19991
2936         * init.c (integral_constant_value): Iterate if the value of a decl
2937         is itself a constant.
2939         PR c++/20152
2940         * parser.c (cp_parser_class_head): Check for redefintions here.
2941         * semantics.c (begin_class_definition): Not here.
2943         PR c++/20153
2944         * decl2.c (build_anon_union_vars): Add type parameter.
2945         (finish_anon_union): Pass it.
2947         PR c++/20148
2948         * error.c (dump_expr): Do not print the body of a BIND_EXPR.
2949         Handle STATEMENT_LIST.
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.
2957 2005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>
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.
2985 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2987         PR 18785
2988         * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2989         c_common_to_target_charset.  Delete bogus comment.
2991 2005-02-18  Richard Henderson  <rth@redhat.com>
2993         PR libstdc++/10606
2994         * except.c (do_get_exception_ptr): New.
2995         (expand_start_catch_block): Use it.
2997 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
2999         * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
3000         if type is not error_mark_node.
3002 2005-01-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3004         PR c++/19508
3005         * decl2.c (grokfield): Do not apply attributes to template parameters
3006         as they are ignored by tsubst anyway.
3008 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
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.
3015 2005-02-17  Alexandre Oliva  <aoliva@redhat.com>
3017         PR c++/20028
3018         * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
3019         template along with TYPE_SIZE.
3021         PR c++/20022
3022         * semantics.c (perform_deferred_access_checks): Use
3023         get_deferred_access_checks to get the top of the stack.
3025 2005-02-15  Alexandre Oliva  <aoliva@redhat.com>
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.
3032 2005-02-15  Alexandre Oliva  <aoliva@redhat.com>
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.
3039 2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
3051         PR c++/19895
3052         * decl.c (grokdeclarator): Check for error mark node in ptrmem
3053         construction.
3055 2005-02-14  Alexandre Oliva  <aoliva@redhat.com>
3057         PR c++/17816
3058         * decl.c (redeclaration_error_message): Report redefinition of
3059         pure virtual function.
3061 2005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
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.
3072 2005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
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.
3081 2005-02-11  Richard Henderson  <rth@redhat.com>
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.
3087 2005-02-10  Mark Mitchell  <mark@codesourcery.com>
3089         PR c++/19755
3090         * decl.c (reshape_init): Issue warnings about missing braces.
3092 2005-02-11  Kazu Hirata  <kazu@cs.umass.edu>
3094         * cp-tree.def, except.c, ptree.c: Update copyright.
3096 2005-02-09  Mark Mitchell  <mark@codesourcery.com>
3098         PR c++/19811
3099         * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
3100         attempting name lookup.
3102         * parser.c (cp_parser_unqualified_id): Initialize type_decl.
3104         PR c++/19787
3105         * call.c (initialize_reference): Robustify.
3107         PR ++/19732
3108         * decl.c (grokdeclarator): Check for invalid use of destructor
3109         names.
3111         PR c++/19762
3112         * parser.c (cp_parser_unqualified_id): Avoid creating destructor
3113         names with invalid types.
3115         PR c++/19826
3116         * parser.c (cp_parser_direct_declarator): Allow type-dependent
3117         expressions as array bounds.
3119         PR c++/19739
3120         * parser.c (cp_parser_attributes_list): Allow empty lists.
3122 2005-02-08  Mark Mitchell  <mark@codesourcery.com>
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.
3170 2005-02-08  Kazu Hirata  <kazu@cs.umass.edu>
3172         * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
3173         copyright.
3175 2005-02-07  Mark Mitchell  <mark@codesourcery.com>
3177         * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
3178         on boolean variables.
3179         (cp_lexer_stop_debugging): Likewise.
3181 2005-02-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
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.
3190 2005-02-02  Matt Austern  <austern@apple.com>
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.
3203 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3205         PR c++/17413
3206         * pt.c (check_instantiated_args): Improve error message.
3207         Fix logic when to print its second part.
3209 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
3217 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
3226 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3228         * parser.c (cp_parser_primary_expression): Don't complain about
3229         floating-point literals in integral constant expressions when
3230         !pedantic.
3232 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3234         * parser.c (cp_parser_template_id): Revert comment patch too.
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.
3244 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
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.
3283 2005-01-31  Mike Stump  <mrs@apple.com>
3285         * parser.c (cp_lexer_new_main): Get the first token, first, before
3286         doing anything.
3288 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3290         * decl.c (start_decl): Add missing parentheses.
3292 2005-01-30  Mark Mitchell  <mark@codesourcery.com>
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.
3301         PR c++/19395
3302         * decl.c (grokdeclarator): Refactor code so that qualified names
3303         are never allowed as the declarator in a typedef.
3305         PR c++/19367
3306         * name-lookup.c (do_nonmember_using_decl): Avoid overloading
3307         builtin declarations.
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.
3317         PR c++/19349
3318         * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
3319         memory.
3321 2005-01-28  Mark Mitchell  <mark@codesourcery.com>
3323         PR c++/19253
3324         * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
3325         tentative parses.
3327         PR c++/19667
3328         * pt.c (redeclare_class_template): Robustify.
3330 2005-01-27  Steven Bosscher  <stevenb@suse.de>
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.
3338 2005-01-26  J"orn Rennecke <joern.rennecke@st.com>
3340         PR c++/18370
3341         * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
3343 2005-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
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.
3351 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
3358 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
3367 2005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3369         * decl.h (debug_bindings_indentation): Remove.
3371 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3373         * typeck.c: Fix a comment typo.
3375 2005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
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.
3383 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3385         * typeck.c (more_qualified_p): Remove.
3386         * cp-tree.h: Remove the corresponding prototype.
3388 2005-01-19  Matt Austern  <austern@apple.com>
3390         * typeck.c (comptypes): Handle return code from objc_comptypes
3391         correctly.
3393 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3395         * cp-tree.h, name-lookup.h: Remove unused prototypes.
3397 2005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3399         PR c++/19375
3400         * semantics.c (finish_id_expression): Disable access checking for
3401         already lookuped FIELD_DECL.
3403 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3405         * decl.c (delete_block): Remove.
3406         * cp-tree.h: Remove the corresponding prototype.
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.
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.
3417 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3419         PR c/19472
3420         * semantics.c (finish_asm_stmt): Strip nops off
3421         input memory operands.
3423 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3425         * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
3426         typeck2.c: Update copyright.
3428 2005-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3430         * class.c (get_enclosing_class): Remove.
3431         * cp-tree.h: Remove the corresponding prototypes.
3433         * cvt.c (convert_lvalue): Remove.
3434         * cp-tree.h: Remove the corresponding prototype.
3436         * pt.c (tinst_for_decl): Remove.
3437         * cp-tree.h: Remove the corresponding prototypes.
3439         * tree.c (hash_chainon): Remove.
3440         * cp-tree.h: Remove the corresponding prototypes.
3442 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
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.
3448 2005-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3450         * Make-lang.in (cp-warn): Don't append $(WERROR).
3452 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
3454         * cp-tree.h: Fix a comment typo.
3456 2005-01-07  Nathan Sidwell  <nathan@codesourcery.com>
3458         PR c++/19298
3459         * pt.c (tsubst_qualified_id): Call convert_from_reference.
3461 2005-01-06  Mark Mitchell  <mark@codesourcery.com>
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.
3473 2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3475         PR c++/17154
3476         * search.c (lookup_field_1): Handle using declaration in
3477         class template partial specialization.
3479 2005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3481         PR c++/19258
3482         * pt.c (push_access_scope): Handle friend defined in class.
3483         (pop_access_scope): Likewise.
3485 2005-01-06  Nathan Sidwell  <nathan@codesourcery.com>
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.
3492 2005-01-05  Nathan Sidwell  <nathan@codesourcery.com>
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.
3510 2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
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.
3517 2005-01-01  Steven Bosscher  <stevenb@suse.de>
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.
3524 Copyright (C) 2005 Free Software Foundation, Inc.
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.