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
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
17 2005-12-26 Mark Mitchell <mark@codesourcery.com>
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
25 (cp_parser_declarator_id): Simplify BASELINKs here.
26 (cp_parser_member_declaration): Adjust calls to
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
40 * call.c (make_temporary_var_for_ref_to_temp): Use
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>
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>
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
64 * semantics.c (finish_qualified_id_expr): Simplify.
65 * decl2.c (mark_used): Accept BASELINKs.
68 * typeck.c (build_unary_op): Pass DECLs not names to
70 * init.c (build_offset_ref): Do not do name lookup. Do not call
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>
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>
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>
91 * init.c (expand_member_init): Print messages about baseclasses
92 using %T rather than %D.
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>
101 * tree.c (build_qualified_name): Return error_mark_node for
104 2005-12-10 Mark Mitchell <mark@codesourcery.com>
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>
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>
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>
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
158 2005-12-02 Mark Mitchell <mark@codesourcery.com>
161 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
164 2005-12-02 Richard Guenther <rguenther@suse.de>
166 * semantics.c (simplify_aggr_init_expr): Use buildN instead
169 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
171 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
173 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
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,
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,
209 2005-11-30 Jason Merrill <jason@redhat.com>
212 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
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>
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>
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>
238 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
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>
264 * typeck.c (build_reinterpret_cast_1): Use
265 strict_aliasing_warning.
267 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
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>
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>
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>
301 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
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>
316 * method.c (locate_copy): Also use skip_artificial_parms here.
317 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
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>
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>
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
343 2005-11-14 Jason Merrill <jason@redhat.com>
346 * method.c (locate_ctor): Skip all artificial parms, not just
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>
356 * decl.c (check_redeclaration_exception_specification): New
358 (duplicate_decls): Use it.
359 * error.c (fndecl_to_string): Print the template parameter list.
362 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
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>
388 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
389 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
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>
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>
406 * method.c (use_thunk): Use build_cplus_new instead of
409 2005-11-06 Jason Merrill <jason@redhat.com>
410 James A. Morrison <phython@gcc.gnu.org>
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
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.
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>
442 * init.c (build_vec_init): Build comparison of matching
445 2005-11-03 Josh Conner <jconner@apple.com>
448 pt.c (tsubst): Accept zero-length array if tf_error is set
449 in complain flags. Change error message for negative-
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*
457 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
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>
468 * pt.c (register_specialization): Update inline flags on clones.y
470 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
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>
479 * call.c (build_conditional_expr): Do bad conversions, if there's
483 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
484 message for use of overloaded functions on LHS of "." operator.
487 * parser.c (cp_parser_postfix_expression): Use
488 cp_parser_elaborated_type_specifier to handle typename-types in
490 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
491 template argument list if the closing ">" is not found.
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
504 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
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>
513 * parser.c (cp_parser_member_declaration): Detect and handle
514 a template specialization.
516 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
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
524 2005-10-21 Mark Mitchell <mark@codesourcery.com>
527 * parser.c (cp_parser_init_declarator): Pass attributes to
530 2005-10-20 Mark Mitchell <mark@codesourcery.com>
533 * search.c (accessible_p): Check access in the outermost set of
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>
543 * decl.c (grokdeclarator): Reject unqualified destructors in
546 2005-10-18 Mark Mitchell <mark@codesourcery.com>
549 * pt.c (convert_template_argument): Use canonical type variants in
550 template specializations.
552 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
555 * name-lookup.c (arg_assoc): Template args can be null in a
559 * class.c (update_vtable_entry_for_fn): Don't process invalid
560 covariant overriders.
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>
571 * call.c (build_new_method_call): Do not show VTT parameters to
574 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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>
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.
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
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>
598 * decl2.c (mark_used): Use uses_template_parms instead of
600 * init.c (constant_value_1): Handle uninstantiated templates
602 * pt.c (instantiate_decl): Add sanity check.
604 2005-10-16 Mark Mitchell <mark@codesourcery.com>
607 * typeck.c (check_template_keyword): Fix thinko.
609 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
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>
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
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
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>
663 * class.c (maybe_warn_about_overly_private_class): Lazy
664 constructors are public.
666 2005-10-14 Mark Mitchell <mark@codesourcery.com>
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
674 (build_enumerator): Use error_mark_node for erroneous values.
675 * typeck2.c (digest_init): Remove reference to "signature pointer"
678 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
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>
687 * class.c (build_base_path): The vtable is always the first thing
690 2005-10-13 Mark Mitchell <mark@codesourcery.com>
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.
699 * call.c (build_new_method_call): Correct pretty-printing of
701 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
705 * decl.c (start_method): Return error_mark_node for errors.
708 * pt.c (push_template_decl_real): Complain about attempts to
709 declare template variables.
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
718 * pt.c (most_specialized_instantiation): Robustify.
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>
728 * class.c (finish_struct_1): Call
729 targetm.cxx.adjust_class_at_definition.
732 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
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.
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
747 (type_dependent_expression_p): Assert we've not been given a
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>
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>
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>
771 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
773 2005-10-11 Ian Lance Taylor <ian@airs.com>
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>
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.
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>
798 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
801 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
802 Mark Mitchell <mark@codesourcery.com>
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>
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.
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>
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>
844 * call.c (joust): Adjust length count to more_specialized_fn.
845 * pt.c (more_specialized_fn): Cope with non-static member vs
848 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
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>
861 * repo.c: Include flags.h.
862 (finish_repo): Add -frandom-seed to the arguments.
864 2005-10-02 Mark Mitchell <mark@codesourcery.com>
867 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
869 * pt.c (convert_nontype_argument): Remove ??? comment.
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>
878 * decl.c (grokdeclarator): Always pedwarn about overqualified
881 2005-09-27 Mark Mitchell <mark@codesourcery.com>
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
890 2005-09-26 Jason Merrill <jason@redhat.com>
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>
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>
918 * class.c (find_final_overrider): Move diagnostic about no unique final
920 (update_vtable_entry_for_fn): ... here.
922 2005-09-21 Mark Mitchell <mark@codesourcery.com>
925 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
927 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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>
936 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
939 2005-09-16 Mark Mitchell <mark@codesourcery.com>
942 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
943 skip_evaluation is false when processing template arguments.
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>
952 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
955 2005-09-15 Mark Mitchell <mark@codesourcery.com>
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.
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>
980 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
982 2005-09-13 Bastian Blank <waldi@debian.org>
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>
991 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
994 2005-09-13 Mark Mitchell <mark@codesourcery.com>
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>
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>
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>
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
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
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
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
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
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>
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>
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
1098 2005-09-08 Richard Henderson <rth@redhat.com>
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>
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>
1114 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
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>
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.
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>
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>
1164 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
1167 2005-09-05 Mark Mitchell <mark@codesourcery.com>
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>
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.
1183 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
1184 finishing processing for a template function in a local class.
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>
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>
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>
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>
1211 * semantics.c (qualified_name_lookup_error): Do not complain again
1214 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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>
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
1241 2005-08-26 Mark Mitchell <mark@codesourcery.com>
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.
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>
1260 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
1263 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
1266 * parser.c (cp_lexer_peek_nth_token): Relax assert.
1268 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
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
1279 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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>
1288 * decl.c (require_complete_types_for_parms): Mark incomplete types
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
1317 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
1318 Nathan Sidwell <nathan@codesourcery.com>
1322 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
1325 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
1328 Revert my 2005-07-08 patch
1329 * pt.c (type_unification_real): Remove is_method_argument and
1331 (fn_type_unification, unify): Adjust type_unification_real calls.
1333 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1336 * decl2.c (grokfield): Check that method is not static before
1339 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
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>
1349 * decl.c (grokdeclarator): Reset storage_class after error.
1351 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1354 * init.c (build_new_1): Check for empty candidate list.
1356 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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>
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>
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>
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:
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>
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
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>
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>
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
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
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
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
1490 * typeck.c (build_ptrmemfunc1): Likewise.
1491 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
1493 (store_init_value): Use build_constructor_from_list and update call
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):
1500 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
1502 (build_functional_cast): Use build_constructor_from_list instead of
1505 2005-07-18 Mark Mitchell <mark@codesourcery.com>
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>
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>
1533 * repo.c (repo_emit_p): Robustify.
1535 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
1538 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
1540 2005-07-15 Mark Mitchell <mark@codesourcery.com>
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
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.
1558 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1559 Nathan Sidwell <nathan@codesourcery.com>
1562 * pt.c (tsubst_template_parms): Check for invalid non-type
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
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.
1588 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
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
1607 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
1609 * tree.c (handle_init_priority_attribute): Handle priority.
1611 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
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.
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.
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
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
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>
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):
1729 2005-06-17 Geoffrey Keating <geoffk@apple.com>
1732 * pt.c (type_unification_real): Apply template type deduction even
1733 to procedure parameters that are not dependent on a template
1736 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
1738 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
1740 (create_pseudo_type_info): First parameter is an int.
1742 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
1745 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
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.
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>
1789 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
1790 in-class decl's initializer is bad.
1793 * parser.c (struct cp_parser): Document that scope could be
1795 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
1797 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
1798 (cp_parser_postfix_expression): Deal with null or error_mark
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>
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>
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>
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
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>
1840 * pt.c (tsubst): Reject pointer-to-member of type void.
1843 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
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
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
1862 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
1864 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
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.
1873 * cp-tree.h (add_method): Add using_decl parameter.
1874 * class.c (add_method): Add using_decl parameter. Adjust error
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>
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>
1900 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
1901 the pointed-to type for a pointer-to-member.
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.
1915 * Make-lang.in (method.o): Add diagnostic.h
1916 * decl.c (start_preparsed_function): Use decl's location for file
1918 * decl2.c (cp_finish_file): Set input_location before synthesizing
1920 (mark_used): When deferring a synthesized function, save current
1921 location. Do not set function's location when actually
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.
1932 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
1935 * name-lookup.c (pushtag): Push local class even in a template.
1937 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
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>
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>
1956 * call.c (standard_conversion): Permit conversions to complex
1957 types if conversion to the corresponding scalar type would be
1961 * method.c (implicitly_declare_fn): Clear processing_template_decl
1962 when generating implicit declaration.
1964 2005-05-27 Mark Mitchell <mark@codesourcery.com>
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
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>
2002 * typeck.c (get_delta_difference): Cope with incomplete but equal
2003 classes. Reorder if.
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>
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>
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>
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
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
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
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
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>
2063 * optimize.c (update_cloned_parm): Copy the TYPE also from the
2066 2005-05-19 Jakub Jelinek <jakub@redhat.com>
2069 * decl.c (grokdeclarator): Fix "storage class specified for"
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>
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
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.
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
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>
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
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
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
2222 (dump_substitution_candidates, add_substitution,
2223 find_substitution, finish_mangling, init_mangle): Use VEC
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>
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
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
2273 * name-lookup.c (push_to_top_level): Use VEC instead of
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>
2284 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
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
2304 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
2307 * rtti.c (ifnonnull): Cast the zero comparison operand
2308 to the correct type.
2310 2005-04-24 Jakub Jelinek <jakub@redhat.com>
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()
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>
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
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
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
2415 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
2416 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
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>
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
2436 2005-04-15 Richard Henderson <rth@redhat.com>
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
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
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>
2507 * parser.c (cp_parser_type_specifier_seq): Add is_condition
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
2536 2005-04-06 Mark Mitchell <mark@codesourcery.com>
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>
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>
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>
2560 * decl.c (grokdeclarator): Correct attribute handling.
2562 2005-04-05 Mark Mitchell <mark@codesourcery.com>
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>
2572 * parser.c (cp_parser_template_name): Fix thinko.
2574 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
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>
2592 * pt.c (more_specialized_fn): Member functions are unordered wrt
2593 non-members. Conversion operators are unordered wrt other
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
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>
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>
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
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>
2690 * decl.c (start_preparsed_function): Robustify.
2692 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2695 * parser.c (cp_parser_class_head): Return NULL_TREE when
2696 encountering a redefinition.
2698 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
2702 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
2705 2005-03-21 Paolo Carlini <pcarlini@suse.de>
2709 * init.c (emit_mem_initializers): Don't crash on undefined
2712 2005-03-21 Paolo Carlini <pcarlini@suse.de>
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>
2726 * decl.c (decls_match): Compare context of VAR_DECL.
2728 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
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>
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>
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>
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>
2765 * name-lookup.c (pushtag): Skip template parameter scope when
2766 scope is ts_global. Don't push tag into template parameter
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
2776 * cp-tree.h (pushtag): Adjust declaration.
2777 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
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
2794 * pt.c (push_template_decl_real): Make hidden class template
2796 (lookup_template_class, instantiate_class_template): Adjust call
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
2803 2005-03-13 Mark Mitchell <mark@codesourcery.com>
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
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>
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>
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
2839 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
2842 * pt.c (contains_dependent_cast_p): New.
2843 (fold_non_dependent_expr): Call it.
2845 2005-03-08 Mark Mitchell <mark@codesourcery.com>
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
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>
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
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
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>
2886 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
2889 * cp-tree.g (THUNK_TARGET): Expand comment.
2890 * method.c (use_thunk): Make sure we also use the target, if that
2893 2005-02-27 Jakub Jelinek <jakub@redhat.com>
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>
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>
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>
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.
2936 * init.c (integral_constant_value): Iterate if the value of a decl
2937 is itself a constant.
2940 * parser.c (cp_parser_class_head): Check for redefintions here.
2941 * semantics.c (begin_class_definition): Not here.
2944 * decl2.c (build_anon_union_vars): Add type parameter.
2945 (finish_anon_union): Pass it.
2948 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
2949 Handle STATEMENT_LIST.
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
2957 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
2961 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
2962 * decl.c (grokdeclarator): Pedwarn about qualifying a function
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
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>
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>
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>
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>
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>
3018 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
3019 template along with TYPE_SIZE.
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>
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>
3042 * parser.c (cp_parser_late_parsing_for_member): Use
3043 current_function_decl as scope to push to and from.
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
3052 * decl.c (grokdeclarator): Check for error mark node in ptrmem
3055 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
3058 * decl.c (redeclaration_error_message): Report redefinition of
3059 pure virtual function.
3061 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
3064 * class.c (build_simple_base_path): Build the component_ref
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>
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>
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>
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>
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.
3105 * call.c (initialize_reference): Robustify.
3108 * decl.c (grokdeclarator): Check for invalid use of destructor
3112 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
3113 names with invalid types.
3116 * parser.c (cp_parser_direct_declarator): Allow type-dependent
3117 expressions as array bounds.
3120 * parser.c (cp_parser_attributes_list): Allow empty lists.
3122 2005-02-08 Mark Mitchell <mark@codesourcery.com>
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
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
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
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
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>
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
3190 2005-02-02 Matt Austern <austern@apple.com>
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
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
3201 * tree.c (builtin_valid_in_constant_expr_p): New.
3203 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
3232 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
3234 * parser.c (cp_parser_template_id): Revert comment patch too.
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
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
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>
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.
3302 * decl.c (grokdeclarator): Refactor code so that qualified names
3303 are never allowed as the declarator in a typedef.
3306 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
3307 builtin declarations.
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.
3318 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
3321 2005-01-28 Mark Mitchell <mark@codesourcery.com>
3324 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
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>
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>
3378 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
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
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>
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):
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>
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>
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>
3459 * pt.c (tsubst_qualified_id): Call convert_from_reference.
3461 2005-01-06 Mark Mitchell <mark@codesourcery.com>
3464 * class.c (add_implicitly_declared_members): Remove dead code.
3465 * decl.c (grokfndecl): Add sfk parameter. Use it do set
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>
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>
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>
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>
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,
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>
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>
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.