1 2006-03-05 Release Manager
5 2006-02-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8 * decl.c (grok_op_properties): Check for ellipsis in arguments of
11 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14 * decl.c (grokdeclarator): Clear RID_STATIC together with staticp.
16 2006-02-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
19 2005-12-22 Mark Mitchell <mark@codesourcery.com>
22 * pt.c (tsubst_copy): Call mark_used on the member referenced by an
24 * decl2.c (mark_used): Accept BASELINKs.
26 2006-02-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
29 2005-12-19 Mark Mitchell <mark@codesourcery.com>
32 * class.c (add_method): Do not treat templates as identical unless
33 their return types are the same.
35 2006-02-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
38 2005-12-19 Mark Mitchell <mark@codesourcery.com>
41 * init.c (expand_member_init): Print messages about baseclasses
42 using %T rather than %D.
44 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
47 * decl.c (start_preparsed_function): Check default arguments
49 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
50 of all functions and function templates.
51 * parser.c (cp_parser_late_parsing_default_args): Check default
53 * decl2.c (check_default_args): Set missing default arguments to
56 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
59 * pt.c (maybe_process_partial_specialization): Return early on
62 2005-12-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
66 2004-03-08 Mark Mitchell <mark@codesourcery.com>
68 * decl.c (duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
70 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
75 * parser.c (cp_parser_declarator_id): Check for error_mark_node
76 before building a SCOPE_REF.
78 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
81 2005-10-20 Mark Mitchell <mark@codesourcery.com>
84 * search.c (accessible_p): Check access in the outermost set of
87 2005-12-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
90 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
93 * name-lookup.c (arg_assoc): Template args can be null in a
96 2005-12-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
99 2005-10-13 Mark Mitchell <mark@codesourcery.com>
102 * pt.c (tsubst_template_parms): Set processing_template_decl while
103 processing the parameters.
104 (tsubst_decl): Set processing_template_decl when substituting into
107 2005-12-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
110 2005-10-13 Mark Mitchell <mark@codesourcery.com>
113 * semantics.c (finish_id_expression): Issue errors about uses of
114 local variables in containing functions even in templates.
116 2005-12-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
119 2005-10-13 Mark Mitchell <mark@codesourcery.com>
122 * pt.c (push_template_decl_real): Complain about attempts to
123 declare template variables.
125 2005-11-30 Release Manager
127 * GCC 3.4.5 released.
129 2005-11-23 Jakub Jelinek <jakub@redhat.com>
132 * class.c (find_final_overrider): Move diagnostic about no unique final
134 (update_vtable_entry_for_fn): ... here.
136 2005-11-15 Jason Merrill <jason@redhat.com>
139 * method.c (locate_copy): Also use skip_artificial_parms here.
140 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
143 2005-11-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
145 Backport from mainline:
146 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
149 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
150 TYPE_DECL. Use dependent_type_p to check type.
151 * pt.c (uses_template_parms_p): Use dependent_type_p for a
153 (type_dependent_expression_p): Assert we've not been given a
156 2005-11-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
160 Backport from mainline:
161 2005-11-02 Mark Mitchell <mark@codesourcery.com>
163 * parser.c (cp_parser_postfix_expression): Use
164 cp_parser_elaborated_type_specifier to handle typename-types in
166 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
167 template argument list if the closing ">" is not found.
169 2005-11-14 Jason Merrill <jason@redhat.com>
172 * method.c (locate_ctor): Skip all artificial parms, not just
175 2005-10-28 Josh Conner <jconner@apple.com>
178 * parser.c (cp_parser_member_declaration): Detect and handle
179 a template specialization.
181 2005-10-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
184 * init.c (build_new_1): Remove misleading comment.
186 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
189 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
190 an ADDR_EXPR of a LABEL_DECL as &&.
192 2005-10-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
195 2004-09-23 Andrew Pinski <pinskia@physics.uc.edu>
197 * cvt.c (cp_convert_to_pointer): Return early when the type is
200 2004-05-22 Roger Sayle <roger@eyesopen.com>
201 * name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by
202 returning when TREE_TYPE is error_mark_node.
203 * typeck.c (require_complete_type): Return error_mark_node if
204 value's type is an error_mark_node.
206 2004-11-02 Mark Mitchell <mark@codesourcery.com>
208 * typeck.c (build_const_cast): Use error_operand_p.
210 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
212 * call.c (resolve_args): Remove redundant test.
214 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
217 * call.c (resolve_args): Return error_mark_node on arguments
218 whose TREE_TYPE is error_mark_node.
220 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
225 2004-03-08 Mark Mitchell <mark@codesourcery.com>
226 * lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
227 in the innermost scope, rather than at namespace scope.
228 * name-lookup.c (push_local_binding): Give it external linkage.
229 * name-lookup.h (push_local_binding): Declare it.
231 2005-09-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
235 2004-11-27 Mark Mitchell <mark@codesourcery.com>
237 * parser.c (cp_parser_check_for_definition_in_return_type): Take
238 the defined type as a parameter, and inform the user about the
239 possibility of a missing semicolon.
240 (cp_parser_explicit_instantiation): Adjust call to
241 cp_parser_check_for_definition_in_return_type.
242 (cp_parser_init_declarator): Likewise.
243 (cp_parser_member_declaration): Likewise.
245 2005-09-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
250 2005-09-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
252 * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
253 unknown_type as non matching.
254 * pt.c (build_non_dependent_expr): Do not build a
255 NON_DEPENDENT_EXPR for a VAR_DECL.
257 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
261 2004-12-14 Mark Mitchell <mark@codesourcery.com>
263 * decl.c (make_typename_type): Do not handle namespace-scoped
265 (tag_name): Handle typename_type.
266 (check_elaborated_type_specifier): Handle typenames.
267 * parser.c (cp_parser_diagnose_invalid_type_name): Do not call
268 make_typename_type for namespace-scoped names here.
269 (cp_parser_elaborated_type_specifier): Use
270 cp_parser_diagnose_invalid_type_name.
272 2005-09-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
276 2005-08-26 Mark Mitchell <mark@codesourcery.com>
278 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
279 (type_dependent_expression_p): Allow BASELINKs whose associated
280 functions are simply a FUNCTION_DECL.
282 2005-09-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
285 * pt.c (push_template_decl_real): Return error_mark_node if the
286 number of template parameters does not match previous definition.
287 * decl.c (start_function): Handle error_mark_node returned by
290 2005-09-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
294 2004-11-25 Mark Mitchell <mark@codesourcery.com>
296 * decl.c (grokvardecl): Keep track of whether or not a there was
297 explicit qualification.
298 * name-lookup.c (set_decl_namespace): Complain about explicit
299 qualification of a name within its own namespace.
301 2005-09-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
305 2004-11-25 Mark Mitchell <mark@codesourcery.com>
307 * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
308 unknown_type as non matching.
309 * pt.c (build_non_dependent_expr): Do not build a
310 NON_DEPENDENT_EXPR for a VAR_DECL.
312 2005-09-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
316 2004-11-27 Mark Mitchell <mark@codesourcery.com>
318 * parser.c (cp_parser_postfix_expression): Robustify.
320 2005-09-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
324 2004-11-25 Mark Mitchell <mark@codesourcery.com>
326 * typeck.c (check_return_expr): Robustify.
328 2005-09-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
332 2005-02-22 Mark Mitchell <mark@codesourcery.com>
334 * decl2.c (build_anon_union_vars): Add type parameter.
335 (finish_anon_union): Pass it.
337 2005-07-28 Mark Mitchell <mark@codesourcery.com>
339 * call.c (add_builtin_candidate): Adjust for changes in
340 representation of pointer-to-member types.
342 2005-09-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
345 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
346 lookup_name_real on final parse.
348 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
351 * parser.c (cp_parser_namespace_name): Move diagnostic for
352 invalid namespace-name to here from ...
353 * name-lookup.c (do_namespace_alias): ... here and ...
354 (do_using_directive): ... here. Remove dead code.
356 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
359 * semantics.c (qualified_name_lookup_error): Do not complain again
362 2005-07-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
366 2004-09-16 Mark Mitchell <mark@codesourcery.com>
368 * parser.c (cp_parser_simple_declaration): Commit to tentative
369 parses after seeing a decl-specifier.
370 (cp_parser_simple_declaration): Eliminate spurious message.
371 (cp_parser_init_declarator): Adjust error message.
373 2005-06-17 Geoffrey Keating <geoffk@apple.com>
375 * pt.c (type_unification_real): Apply template type deduction even
376 to procedure parameters that are not dependent on a template
379 2004-11-02 Mark Mitchell <mark@codesourcery.com>
381 * parser.c (cp_parser_type_parameter): Robustify.
383 * parser.c (cp_parser_single_declaration): Disallow template
385 (cp_parser_typedef_p): New function.
387 2004-12-21 Mark Mitchell <mark@codesourcery.com>
389 * call.c (convert_like_real): Do not permit the use of a copy
390 constructor to copy a packed field.
392 2005-07-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
395 * pt.c (tsubst): Use fold_non_dependent_expr to fold array domains.
397 2005-06-14 Mark Mitchell <mark@codesourcery.com>
400 * decl.c (grok_op_properties): Add missing warn_conversion check.
402 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
405 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
406 in-class decl's initializer is bad.
408 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
411 * cvt.c (build_expr_type_conversion): Same.
412 * typeck.c (build_binary_op): Handle vectors.
414 (type_after_usual_arithmetic_conversions): Same.
415 * testsuite/g++.dg/conversion/simd2.C: New.
417 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
420 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
421 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
422 argument to any early instantiations.
423 * pt.c (tsubst_arg_types): Chain early instantiation of default
427 * pt.c (check_explicit_specialization): Make sure namespace
428 binding lookup found an overloaded function.
429 (lookup_template_function): Just assert FNS is an overloaded
433 * parser.c (cp_parser_late_parsing_for_member): Use
434 current_function_decl as scope to push to and from.
437 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
440 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
443 2005-06-03 Mark Mitchell <mark@codesourcery.com>
446 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
447 the pointed-to type for a pointer-to-member.
449 2005-06-03 Mark Mitchell <mark@codesourcery.com>
452 * cp-tree.h (grok_op_properties): Remove friendp parameter.
453 * decl.c (grokfndecl): Adjust call.
454 (grok_op_properties): Determine the class of which the function is
455 a member by looking at its DECL_CONTEXT, not current_class_type.
456 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
458 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
461 * pt.c (redeclare_class_template): Change error message according
462 to coding conventions.
464 2005-05-19 Release Manager
466 * GCC 3.4.4 released.
468 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
471 Backport 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
472 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
475 * cp-tree.h (THUNK_TARGET): Expand comment.
476 * method.c (use_thunk): Make sure we also use the target, if that
479 Backport 2005-02-11 Nathan Sidwell <nathan@codesourcery.com>
480 * class.c (update_vtable_entry_for_fn): Walk the covariant's binfo
481 chain rather than using lookup_base.
483 2005-05-04 Mark Mitchell <mark@codesourcery.com>
486 2004-12-21 Mark Mitchell <mark@codesourcery.com>
488 * tree.c (cp_tree_equal): Handle OVERLOAD.
490 2005-05-02 Mark Mitchell <mark@codesourcery.com>
493 2005-05-01 Mark Mitchell <mark@codesourcery.com>
494 * typeck.c (unary_complex_lvalue): In a template, always refuse
497 2005-05-01 Mark Mitchell <mark@codesourcery.com>
500 2005-02-22 Mark Mitchell <mark@codesourcery.com>
502 * init.c (decl_constant_value): Iterate if the value of a decl
503 is itself a constant.
505 2005-05-01 Mark Mitchell <mark@codesourcery.com>
508 2004-12-22 Mark Mitchell <mark@codesourcery.com>
510 * call.c (build_this): In templates, do not bother with
512 * typeck.c (unary_complex_lvalue): In a template, always refuse
515 2005-04-25 Roger Sayle <roger@eyesopen.com>
516 Mark Mitchell <mark@codesourcery.com>
519 Partial backport from mainline.
520 2004-09-27 Mark Mitchell <mark@codesourcery.com>
521 * tree.c (fold_if_not_in_template): New function.
522 * cp-tree.h (fold_if_not_in_template): Prototype here.
523 * call.c (build_conditional_expr): Use fold_if_not_in_template.
524 * typeck.c (build_binary_op): Likewise.
526 2005-04-16 Mark Mitchell <mark@codesourcery.com>
529 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
530 which sizeof/alignof is dependent, rather than just whether we are
531 processing_template_decl.
533 2005-04-06 Jason Merrill <jason@redhat.com>
536 * tree.c (stabilize_init): Don't bother trying to stabilize
537 something with no side-effects.
539 2005-04-04 Mark Mitchell <mark@codesourcery.com>
542 * parser.c (cp_parser_template_name): Fix thinko.
544 2005-04-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
547 * call.c (build_new_op): Remove check for -Wsynth.
549 2005-03-21 Paolo Carlini <pcarlini@suse.de>
552 * semantics.c (finish_stmt_expr_expr): Return immediately
553 if error_operand_p (expr).
555 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
558 * decl.c (decls_match): Compare context of VAR_DECL.
560 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
563 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
564 Check the return value of cp_parser_nested_name_specifier.
566 2005-03-08 Mark Mitchell <mark@codesourcery.com>
569 * init.c (build_vec_init): When determining whether or not the
570 element type has an asignment operator, look through all array
573 2005-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
576 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
577 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
579 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
580 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
581 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
584 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
586 * name-lookup.c (push_overloaded_decl): Don't error if the new
587 decl matches the old one.
588 * decl.c (redeclaration_error_message): Likewise.
590 2005-02-24 Jakub Jelinek <jakub@redhat.com>
593 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
594 initializes a char/wchar_t array.
596 2005-02-21 Alexandre Oliva <aoliva@redhat.com>
599 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
600 template along with TYPE_SIZE.
602 2005-02-14 Mark Mitchell <mark@codesourcery.com>
604 * decl.c (reshape_init): Use explicit quotes in error message
607 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
611 * pt.c (maybe_check_template_type): Remove.
612 * cp-tree.h (maybe_check_template_type): Remove prototype.
613 * name-lookup.c (maybe_process_template_type_declaration): Don't
614 use maybe_check_template_type.
616 2005-02-10 Mark Mitchell <mark@codesourcery.com>
619 * decl.c (reshape_init): Issue warnings about missing braces.
621 2005-02-09 Mark Mitchell <mark@codesourcery.com>
623 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
626 * call.c (initialize_reference): Robustify.
629 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
630 names with invalid types.
633 * parser.c (cp_parser_attributes_list): Allow empty lists.
635 2005-02-08 Mark Mitchell <mark@codesourcery.com>
638 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
641 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
646 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
647 Issue an error when creating the template id.
648 * pt.c (fn_type_unification): Return early if the explicit
649 template arg list is an error_mark_node.
651 2005-01-27 J"orn Rennecke <joern.rennecke@st.com>
654 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
656 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
659 * semantics.c (finish_id_expression): Disable access checking for
660 already lookuped FIELD_DECL.
662 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
665 * parser.c (cp_parser_late_parsing_default_args): Handle friend
667 * pt.c (push_access_scope, pop_access_scope): Likewise.
669 2005-01-15 Jakub Jelinek <jakub@redhat.com>
672 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
673 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
674 Store code to *pcode.
676 2004-12-28 Jakub Jelinek <jakub@redhat.com>
678 PR c++/18384, c++/18327
679 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
680 and index. Convert max_index to size_type_node if it isn't
683 2004-12-23 Alexandre Oliva <aoliva@redhat.com>
686 * pt.c (check_explicit_specialization): Use the argument list from
687 the definition in a template function specialization definition.
689 2004-12-23 Alexandre Oliva <aoliva@redhat.com>
692 * parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
695 2004-12-17 Nathan Sidwell <nathan@codesourcery.com>
698 * method.c (do_build_copy_constructor): Refactor. Don't const
699 qualify a mutable field.
700 (do_build_assign_ref): Likewise.
702 2004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
705 * parser.c (cp_parser_class_head): Reject typedef-name in class head.
707 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
710 * init.c (build_zero_init): Build a RANGE_EXPR for an array
713 2004-12-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
716 * name-lookup.c (push_class_level_binding): Diagnose nested
717 class template with the same name as enclosing class.
719 2004-12-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
721 PR c++/17011, c++/17971
722 * pt.c (tsubst_copy) <FIELD_DECL case>: Check and diagnose
724 (tsubst_copy_and_build) <COMPONENT_REF case>: Check
725 error_mark_node after member substitution.
726 * semantics.c (finish_id_expression): Call
727 finish_non_static_data_member for dependent FIELD_DECL.
729 2004-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
732 * parser.c (cp_parser_type_specifier): Don't create new enum
733 type if it is not in the form 'enum [identifier] { [...] };'.
734 Catch template declaration of enum.
736 2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
739 * call.c (standard_conversion): Add FLAGS parameter. Do not allow
740 derived to base conversion when checking constructor
742 (implicit_conversion): Pass FLAGS to standard_conversion.
743 (check_constructir_callable): Disallow conversion functions.
745 2004-11-12 Mark Mitchell <mark@codesourcery.com>
748 * decl.c (start_decl): Make sure to set *pop_scope_p. Return
749 error_mark_node to indicate errors.
752 * pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
753 unqualified name resolves to a member function.
756 * pt.c (tsubst_copy_and_build): Handle qualified names used from a
757 derived class correctly.
759 2004-11-04 Release Manager
761 * GCC 3.4.3 released.
763 2004-10-31 Mark Mitchell <mark@codesourcery.com>
766 * typeck2.c (store_init_value): Use split_nonconstant_init even
767 for types that require construction.
769 2004-10-28 Mark Mitchell <mark@codesourcery.com>
772 * pt.c (instantiate_class_template): Increment
773 processing_template_decl when substituting into a member class
776 2004-10-27 Mark Mitchell <mark@codesourcery.com>
779 * parser.c (cp_parser_next_token_ends_template_argument_p): Do not
782 2004-10-27 Andrew Pinski <pinskia@physics.uc.edu>
785 * error.c (cp_error_at): Output the context as it might be
786 different file as the other location.
788 2004-10-26 Mark Mitchell <mark@codesourcery.com>
791 * search.c (current_scope): Return the innermost non-block scope,
792 not the innermost non-block, non-namespace scope.
793 (at_namespace_scope_p): Adjust accordingly.
794 (dfs_accessible_post): Do not pass namespaces to is_friend.
795 (dfs_walk_once_accessible_r): Likewise.
796 * decl.c (grokvardecl): Adjust call to current_scope.
797 (build_enumerator): Likewise.
798 * parser.c (cp_parser_using_declaration): Likewise.
799 (cp_parser_direct_declarator): Use at_namespace_scope_p instead of
801 (cp_parser_class_head): Adjust call to current_scope.
802 * name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
806 * pt.c (tusbst_copy_and_build): Resolve enumeration constants to
807 their underlying values.
809 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
812 * name-lookup.c (parse_using_directive): If we have a
813 error_mark_node, do not set the decl namespace associations
816 2004-10-14 Mark Mitchell <mark@codesourcery.com>
819 * decl.c (cp_finish_decl): Do not call expand_static_init more
820 than once for a single variable.
822 2004-10-11 Mark Mitchell <mark@codesourcery.com>
825 * parser.c (cp_parser_declarator): Add member_p parameter.
826 (cp_parser_condition): Adjust calls to cp_parser_declarator.
827 (cp_parser_explicit_instantiation): Likewise.
828 (cp_parser_init_declarator): Likewise.
829 (cp_parser_direct_declarator): Add member_p parameter. Do not
830 parse tentatively when parsing the parameters to a member.
831 (cp_parser_type_id): Adjust calls to cp_parser_declarator.
832 (cp_parser_parameter_declaration): Likewise.
833 (cp_parser_member_declaration): Likewise.
834 (cp_parser_exception_declaration): Likewise.
836 2004-10-11 Mark Mitchell <mark@codesourcery.com>
838 * decl2.c (finish_anon_union): Robustify.
840 2004-10-10 Mark Mitchell <mark@codesourcery.com>
843 * decl.c (grokdeclarator): Robustify error-recovery on invalid
846 2004-10-09 Mark Mitchell <mark@codesourcery.com>
849 * parser.c (cp_parser_postfix_dot_deref_expression): If the
850 pseduo-destructor-name production does not work, fall back to the
854 * tree.c (cp_tree_equal): Handle a BASELINK.
856 2004-10-09 Mark Mitchell <mark@codesourcery.com>
859 * cp-tree.h (check_var_type): New function.
860 * decl.c (check_var_type): New function, split out from ...
861 (grokdeclarator): ... here.
862 * pt.c (tsubst_decl): Use check_var_type.
865 * decl.c (grokdeclarator): Disallow declarations of operators as
868 2004-10-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
871 * error.c (dump_expr): Add missing case for RDIV_EXPR.
873 2004-10-08 Nathan Sidwell <nathan@codesourcery.com>
876 * parser.c (cp_parser_postfix_expression): Inhibit Koenig when
877 unqualified lookup finds a member function.
879 2004-09-28 Roger Sayle <roger@eyesopen.com>
882 * g++spec.c (lang_specific_driver): Unrecognized libraries, other
883 than -lc and -lm, may require linking against libstc++.
885 2004-09-27 Mark Mitchell <mark@codesourcery.com>
888 * cp-tree.h (shared_member_p): Declare.
889 * search.c (shared_member_p): Give it external linkage.
890 * semantics.c (finish_qualified_id_expr): Use it.
891 (finish_id_expression): Likewise.
893 2004-09-22 Giovanni Bajo <giovannibajo@gcc.gnu.org>
896 * parser.c (cp_parser_initializer): Speed up parsing of simple
897 literals as initializers.
899 2004-09-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
902 * decl.c (reshape_init): Extract array handling into...
903 (reshape_init_array): New function. Use integers instead of trees
904 for indices. Handle out-of-range designated initializers.
906 2004-09-16 Mark Mitchell <mark@codesourcery.com>
909 * parser.c (cp_parser_nested_name_specifier): Do not resolve
910 typename types if the user explicitly said "typename".
912 2004-09-13 Mark Mitchell <mark@codesourcery.com>
915 * parser.c (cp_parser_id_expression): Correct value for
917 (cp_parser_nested_name_specifier_opt): Look through typenames as
919 (cp_parser_template_name): Honor check_dependency_p.
921 2004-09-13 Mark Mitchell <mark@codesourcery.com>
924 * pt.c (unify): Add ENUMERAL_TYPE case. Replace sorry with
927 2004-09-06 Release Manager
929 * GCC 3.4.2 released.
931 2004-08-25 Roger Sayle <roger@eyesopen.com>
934 PR tree-optimization/16372
935 * decl.c (finish_enum): Make the precision of the enumerated type
936 the same width as the underlying integer type.
938 2004-08-24 Jason Merrill <jason@redhat.com>
941 * tree.c (stabilize_init): See through a COMPOUND_EXPR.
944 * semantics.c (nullify_returns_r): Replace a DECL_STMT
945 for the NRV with an INIT_EXPR.
947 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
950 * (is_subobject_of_p): Resurrect & optimize.
951 (lookup_field_r): Use it.
953 2004-08-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
956 * search.c (friend_accessible_p): Increment processing_template_decl
957 when deal with TEMPLATE_DECL of SCOPE.
959 2004-08-23 Janis Johnson <janis187@us.ibm.com>
961 Backports from mainline:
963 2004-02-27 Ziemowit Laski <zlaski@apple.com>
964 2004-03-24 Ziemowit Laski <zlaski@apple.com>
966 * Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
967 * mangle.c (write_type): Add call to 'mangle_fundamental_type'
969 * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
971 2004-08-19 Mark Mitchell <mark@codesourcery.com>
974 * pt.c (push_template_decl_real): Disallow template allocation
975 functions with fewer than two parameters.
977 2004-08-18 Mark Mitchell <mark@codesourcery.com>
980 * pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
983 2004-08-17 Mark Mitchell <mark@codesourcery.com>
986 * pt.c (unify): Make sure that non-type arguments have the same
987 type as the corresponding parameter.
989 2004-08-12 Mark Mitchell <mark@codesourcery.com>
992 * class.c (count_depth_data): New type.
993 (dfs_depth_post): New function.
994 (dfs_depth_q): Likewise.
995 (find_final_overrider_data_s): Change type of vpath.
997 (dfs_find_final_overrider_1): New function.
998 (dfs_find_final_overrider): Use it.
999 (dfs_find_final_overrider_q): Adjust use of vpath.
1000 (dfs_find_final_overrider_post): Likewise.
1001 (find_final_overrider): Use dfs_depth. Allocate and deallocate
1004 2004-08-12 Jan Beulich <jbeulich@novell.com>
1006 * parser.c (cp_parser_asm_definition): Properly consume scope operator
1007 tokens preceding the clobbers. Don't check for scope operator
1008 following inputs. Simplify inputs handling to match that now used for
1011 2004-08-11 Mark Mitchell <mark@codesourcery.com>
1014 * except.c (build_throw): Allocate cleanup_type and the function
1015 for __cxa_throw separately.
1017 2004-08-11 Mark Mitchell <mark@codesourcery.com>
1020 * semantics.c (expand_body): Do not update static_ctors and
1022 (expand_or_defer_fn): Do it here, instead.
1025 * call.c (standard_conversion): Do not accept conversions between
1026 pointers to members if the class types are unrelated.
1029 * pt.c (tsubst): Just return the unknown_type_node.
1032 * parser.c (cp_parser_class_specifier): Robustify.
1035 * pt.c (tsubst_copy_and_build): Complain about invalid
1039 * pt.c (tsubst_default_argument): Clear out current_class_ptr and
1040 current_class_ref while tsubsting.
1042 2004-08-01 Mark Mitchell <mark@codesourcery.com>
1045 * name-lookup.c (decl_namespace): Remove.
1046 (current_decl_namespace): Use decl_namespace_context instead of
1048 (push_decl_namespace): Likewise.
1049 (arg_assoc_class): Likewise.
1050 (arg_assoc_type): Likewise.
1051 * pt.c (check_specialization_namespace): New function.
1052 (maybe_process_partial_specialization): Use it.
1053 (register_specialization): Likewise.
1055 2004-08-01 Mark Mitchell <mark@codesourcery.com>
1058 * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
1059 * call.c (null_ptr_cst_p): Handle variables with constant
1061 * pt.c (convert_nontype_argument): Use
1062 DECL_INTEGRAL_CONSTANT_VAR_P.
1063 * semantics.c (finish_id_expression): Likewise.
1066 * decl.c (duplicate_decls): Reject duplicate namespace
1070 * typeck.c (build_ptrmemfunc): Loosen assertion.
1072 2004-07-28 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1075 * init.c (build_offset_ref): Build SCOPE_REF with non-null
1076 TREE_TYPE for non-dependent names.
1077 * typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
1078 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1079 unknown_type_node as its TREE_TYPE.
1080 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1081 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1082 (dump_expr) <SCOPE_REF case>: Likewise.
1084 2004-07-21 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1087 * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
1090 2004-07-20 Mark Mitchell <mark@codesourcery.com>
1092 (cp_parser_simple_type_specifier): Fix typo.
1095 * parser.c (cp_parser_simple_type_specifier): Do not record usage
1096 of globally-qualified names.
1098 2004-07-12 Andrew Pinski <apinski@apple.com>
1102 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
1104 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
1108 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
1111 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
1114 2004-07-01 Release Manager
1116 * GCC 3.4.1 released.
1118 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
1121 * call.c (build_temp): Declare.
1122 (check_constructor_callable): New.
1123 (reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
1124 CONSTRUCTOR_CALLABLE.
1125 (convert_like_real, initialize_reference): Use
1126 check_constructor_callable.
1127 * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
1128 (LOOKUP_*): Renumber.
1130 2004-06-25 Jan Hubicka <jh@suse.cz>
1133 * decl2.c (maybe_emit_vtables): Always import_export_vtable for the
1134 reachability analysis.
1136 2004-06-22 Jan Hubicka <jh@suse.cz>
1139 * pt.c (instantiate_decl): Clean TI_PENDING_TEMPLATE_FLAG before
1140 expanding the function.
1142 2004-06-21 Nathan Sidwell <nathan@codesourcery.com>
1145 * pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
1149 * pt.c (check_cv_quals_for_unify): Correct logic for disallowed
1150 cv-qualifier unification.
1151 * tree.c (cp_build_qualified_type_real): Renable DR295 logic.
1153 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1156 * search.c (build_new_1): Robustify.
1158 2004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1161 * parser.c (cp_parser_template_name): Ctors/dtors never need a
1162 template keyword to disambiguate.
1164 2004-06-14 Mark Mitchell <mark@codesourcery.com>
1167 * decl.c (grokdeclarator): Ignore pointer-to-members when
1168 computing template depth.
1171 * name-lookup.c (pushtag): Do not try to put class declarations in
1172 explicit specialization scopes.
1174 i2004-06-11 Mark Mitchell <mark@codesourcery.com>
1177 * name-lookup.c (unqualified_namespace_lookup): Do not ignore type
1178 bindings for undeclared built-ins.
1180 2004-06-10 Jason Merrill <jason@redhat.com>
1184 2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1185 * init.c (build_offset_ref): Build SCOPE_REF with non-null
1186 TREE_TYPE for non-dependent names.
1187 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1188 unknown_type_node as its TREE_TYPE.
1189 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1190 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1191 (dump_expr) <SCOPE_REF case>: Likewise.
1193 2004-06-10 Mark Mitchell <mark@codesourcery.com>
1196 * parser.c (cp_parser_direct_declarator): Robustify.
1199 * pt.c (tsubst_copy): Use decl_constant_value on enumeration
1200 constants in non-dependent contexts.
1204 * typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
1207 2004-06-09 Mark Mitchell <mark@codesourcery.com>
1211 2004-06-07 Mark Mitchell <mark@codesourcery.com>
1212 * lex.c (handle_pragma_interface): Deprecate.
1213 (handle_pragma_implementation): Likewise.
1215 2004-06-07 Dan Kegel <dank@kegel.com>
1218 * method.c (make_alias_for_thunk, use_thunk): Use TARGET_IS_PE_COFF
1219 instead of __CYWGIN__ and __MINGW32__.
1221 2004-06-07 Mark Mitchell <mark@codesourcery.com>
1224 * lex.c (handle_pragma_interface): Deprecate.
1225 (handle_pragma_implementation): Likewise.
1228 * parser.c (cp_parser_iteration_statement): Fix typo in error
1232 * pt.c (tsubst_default_argument): Do not defer access checks
1233 while substituting into the default argument.
1236 * pt.c (tsubst_copy): Do not try to substitute for an enumeration
1237 constant in a non-dependent context.
1240 * except.c (build_throw): Ensure that temp_expr has been
1243 2004-06-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1246 * parser.c (cp_parser_mem_initializer_id): Gracefully reject
1247 'typename', and accept 'template'.
1249 2004-06-01 Jason Merrill <jason@redhat.com>
1252 * call.c (call_builtin_trap): Remove type parm.
1253 (convert_arg_to_ellipsis): Change a non-POD argument to integer type.
1254 (build_x_va_arg): Dereference a null pointer for a non-POD argument.
1256 2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1259 * init.c (build_offset_ref): Build SCOPE_REF with non-null
1260 TREE_TYPE for non-dependent names.
1261 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
1262 unknown_type_node as its TREE_TYPE.
1263 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
1264 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
1265 (dump_expr) <SCOPE_REF case>: Likewise.
1267 2004-06-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1270 * parser.c (cp_parser_postfix_expression): Allow subscript
1271 operator in offsetof.
1273 2004-05-31 Mark Mitchell <mark@codesourcery.com>
1276 * friend.c (add_friend): Do not try to perform access checks for
1277 functions from dependent classes.
1280 * call.c (build_over_call): Set
1281 current_function_returns_abnormally even in template functions.
1284 * cp-tree.h (invalid_nonstatic_memfn_p): New function.
1285 * cvt.c (convert_to_void): Use it.
1286 * typeck.c (invalid_nonstatic_memfn_p): New function.
1287 (decay_conversion): Use it.
1290 * pt.c (tsubst_decl): Set DECL_FRIEND_CONTEXT for instantiated
1294 * name-lookup.c (arg_assoc_class): Do not find template
1298 * tree.c (lvalue_p_1): Only consider the right-hand side of "."
1299 expressions when determining whether or not an express is packed.
1301 2004-05-28 Mark Mitchell <mark@codesourcery.com>
1304 * decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
1306 * init.c (build_new): Likewise.
1309 * name-lookup.c (arg_assoc): Robustify.
1312 * typeck.c (unary_complex_lvalue): Use context_for_name_lookup
1313 when determining the scope to use for a pointer to member.
1314 (lookup_anon_field): Give it external linkage.
1315 * cp-tree.h (lookup_anon_field): Declare it.
1316 * expr.c (cplus_expand_constant): Use it.
1319 * parser.c (cp_parser_simple_type_specifier): Call
1320 maybe_note_name_used_in_class.
1322 2004-05-23 Mark Mitchell <mark@codesourcery.com>
1325 * parser.c (cp_parser_class_head): Robustify.
1328 * parser.c (cp_parser_decl_specifier_seq): Correct error in
1330 (cp_parser_constructor_declarator_p): Treat attributes
1334 * typeck.c (build_unary_op): Do not attempt to resolve casts to
1335 base classes in templates.
1338 * pt.c (instantiate_template): Robustify.
1341 * decl.c (xref_tag): Issue errors about redeclaring template
1342 classes as non-template classes.
1345 * name-lookup.c (supplement_binding): Allow redefinitions of
1349 * parser.c (cp_parser_template_argument): Robustify.
1351 2004-05-22 Mark Mitchell <mark@codesourcery.com>
1355 * pt.c (build_non_dependent_expr): Expand the set of tree nodes
1356 recognized as overloaded functions.
1359 * class.c (layout_nonempty_base_or_field): Do not try to avoid
1360 layout conflicts for unions.
1363 * typeck.c (build_x_unary_op): Instantiate template class
1364 specializations before looking for "operator &".
1367 * typeck.c (complete_type): Layout non-dependent array types, even
1371 * typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
1374 2004-04-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1377 * parser.c (cp_parser_postfix_expression): typeid operator cannot be
1378 used in integral constant expressions.
1380 2004-04-18 Release Manager
1382 * GCC 3.4.0 released.
1384 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
1387 * method.c (make_alias_for_thunk): Just return function decl
1388 for one_only functions if __CYGWIN__ or __MINGW32__
1389 (use_thunk): Don't put function and thunk in same one_only
1390 section if __CYGWIN__ or __MINGW32__.
1392 2004-04-08 Jakub Jelinek <jakub@redhat.com>
1394 * decl2.c (mark_used): Don't segfault if cfun != NULL but
1395 current_function_decl == NULL.
1397 2004-04-01 Mark Mitchell <mark@codesourcery.com>
1400 * typeck.c (get_delta_difference): Call fold before returning the
1403 2004-04-01 Richard Henderson <rth@redhat.com>
1406 * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
1407 * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
1409 2004-04-01 Mark Mitchell <mark@codesourcery.com>
1412 * name-lookup.c (maybe_push_cleanup_level): Robustify.
1414 2004-03-30 Mark Mitchell <mark@codesourcery.com>
1417 * decl.c (start_decl_1): Do not decide whether or not to create a
1418 new cleanup level until after the type has been completed.
1421 * pt.c (tsubst_default_argument): Clear current_function_decl.
1423 2004-03-28 Jan Hubicka <jh@suse.cz>
1426 * method.c (use_think): Do not mark thunk as referenced.
1428 2004-03-21 Mark Mitchell <mark@codesourcery.com>
1431 * decl.c (cp_finish_decl): Compute the size of arrays declared in
1432 templates, if their type is non-dependent.
1434 2004-03-19 Mark Mitchell <mark@codesourcery.com>
1436 * call.c (build_op_delete_call): Do not forget the placement
1437 arguments when iterating through mutiple delete operators.
1439 * cp-tree.h (svaed_scope): Remove last_parms.
1440 (NEW_DELETE_OPNAME_P): New macro.
1441 (last_function_parms): Remove.
1442 (do_friend): Adjust prototype.
1443 * decl.c (grokparms): Return the PARM_DECLs directly, rather than
1444 using last_function_parms.
1445 (grokfndecl): Take the PARM_DECLs as an argument, rather than
1446 using last_function_parms.
1447 (grokdeclarator): Adjust accordingly. Do not form METHOD_TYPEs
1448 for class-specific operator new and operator delete.
1449 (grok_op_properties): Do not look for allocation functions with
1451 (start_function): Use DECL_ARGUMENTS instead of
1452 last_function_parms.
1453 * decl.h (last_function_parms): Do not declare.
1454 * decl2.c (grokclassfn): Do not use last_function_parms.
1455 * friend.c (do_friend): Remove parmdecls parameter.
1456 * name-lookup.c (push_to_top_level): Do not save last_function_parms.
1457 (pop_from_top_level): Do not restore it.
1458 * pt.c (check_explicit_specialization): Do not adjust
1459 last_function_parms.
1461 * name-lookup.c (do_local_using_decl): Create a local binding for
1462 types brought in via using declarations.
1464 * name-lookup.c (lookup_arg_dependent): Handle block-scope
1465 function declarations correctly.
1467 * semantics.c (finish_id_expression): Correct handling of
1468 conversion operators to dependent types.
1470 * typeck.c (lookup_destructor): Allow the use of destructors from
1473 2004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1476 * parser.c (cp_parser_functional_cast): A cast to anything
1477 but integral or enumaration type is not an integral constant
1479 * pt.c (value_dependent_expression_p): Handle cast expressions
1480 without operands (such as "int()").
1482 2004-03-18 Mark Mitchell <mark@codesourcery.com>
1484 * semantics.c (finish_pseudo_destructor_expr): Allow differing
1485 cv-qualification between the type named by the
1486 pseudo-destructor-name and the object-type.
1488 * search.c (accessible_base_p): Handle non-proper bases.
1490 * name-lookup.c (do_nonmember_using_decl): If a using declaration
1491 refers to a single overloaded function, set the type of the
1493 * tree.c (lvalue_type): Simplify.
1494 * typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
1496 (build_unary_op): Handle OVERLOADs with known types.
1498 * decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
1501 * parser.c (cp_parser_postfix_expression): Handle the use of
1502 "typename" in non-dependent contexts. Convert appropriately when
1503 when using a qualified name after "->" or ".".
1505 * call.c (conditional_conversion): Honor the requirement that some
1506 conversions refer to the original object.
1508 * call.c (build_conditional_expr): Do not call force_rvalue for
1509 operands of void_type when the conditional expression itself has
1511 * name-lookup.c (pushdecl): Don't consider a declaration of a
1512 function named "main" to be an overload of a type named "main".
1513 * parser.c (cp_parser_template_name): Perform name lookup when the
1514 template name is proceeded by "template" if the qualifying scope
1516 * typeck.c (composite_pointer_type_r): Correctly handle
1517 pointer-to-member types.
1518 (build_const_cast): Likewise.
1520 2004-03-16 Mark Mitchell <mark@codesourcery.com>
1523 * cp-tree.h (build_new_op): Change prototype.
1524 (build_x_binary_op): Likewise.
1525 * call.c (build_new_op): Add overloaded_p parameter.
1526 * decl2.c (grok_array_decl): Adjust call to build_new_op.
1527 * parser.c (cp_parser_binary_expression): Note that uses of
1528 overloaded operators prevents an expression from being considered
1529 an integral constant.
1530 * pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
1532 * semantics.c (finish_call_expr): Likewise.
1533 * typeck.c (rationalize_conditional_expr): Likewise.
1534 (build_x_indirect_ref): Likewise.
1535 (build_x_binary_op): Likewise.
1536 (build_x_unary_op): Likewise.
1537 (build_x_compound_expr): Likewise.
1538 (build_modify_expr): Likewise.
1539 * typeck2.c (build_x_arrow): Likewise.
1541 2004-03-13 Mark Mitchell <mark@codesourcery.com>
1544 * parser.c (cp_parser_non_integral_constant_expression): Encode
1545 more of the idiom that surrounded calls to this function within
1547 (cp_parser_primary_expression): Adjust accordingly.
1548 (cp_parser_postfix_expression): Likewise.
1549 (cp_parser_unary_expression): Likewise.
1550 (cp_parser_cast_expression): Likewise.
1551 (cp_parser_assignment_expression): Likewise.
1552 (cp_parser_expression): Likewise.
1553 (cp_parser_new_expression): Note that new-expressions are not
1554 allowed in integral constant expressions.
1555 (cp_parser_delete_expression): Likewise.
1557 2004-03-11 Mark Mitchell <mark@codesourcery.com>
1560 * decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
1562 2004-03-10 Mark Mitchell <mark@codesourcery.com>
1565 * decl.c (xref_tag): Disregard non-type declarations when
1566 looking up a tagged type.
1568 2004-03-10 Jason Merrill <jason@redhat.com>
1571 * tree.c (stabilize_init): Return whether or not it worked.
1572 * init.c (build_new_1): If not, use a sentry.
1573 * cp-tree.h: Adjust prototype.
1575 2004-03-09 Nathan Sidwell <nathan@garibaldi.home>
1578 * call.c (convert_like_real): Build a const qualified temporary,
1579 when testing ctor access.
1581 2004-03-09 Mark Mitchell <mark@codesourcery.com>
1583 * call.c (initialize_reference): Fix typo.
1585 2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1588 * pt.c (determine_specialization): For member templates, match also
1592 * parser.c (cp_parser_initializer_clause): Fold initializer if it is
1594 * pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
1596 2004-03-09 Mark Mitchell <mark@codesourcery.com>
1599 * call.c (initialize_reference): Handle initializers that are
1600 class-member access expressions applies to rvalues.
1603 * name-lookup.c (supplement_binding): Ignore functions that are
1604 marked DECL_ANTICIPATED.
1606 2004-03-08 Mark Mitchell <mark@codesourcery.com>
1609 * class.c (check_field_decls): Complain about non-static data
1610 members of reference type in unions. Propagate
1611 CLASSTYPE_REF_FIELDS_NEED_INIT and
1612 CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
1614 * init.c (perform_member_init): Complain about mbmers with const
1615 type that are not explicitly initialized.
1617 2004-03-08 Jason Merrill <jason@redhat.com>
1620 * decl.c (xref_tag): Remove attribute handling.
1621 * cp-tree.h: Adjust prototype.
1622 * decl.c, parser.c, rtti.c: Adjust callers.
1623 * parser.c (cp_parser_class_head): Pass back attributes in the
1625 (cp_parser_class_specifier): Adjust.
1627 2004-03-08 Matt Austern <austern@apple.com>
1630 * name-lookup.c (add_decl_to_level): Add extern variables, as well
1631 as static, to static_decls array.
1633 2004-03-01 Jason Merrill <jason@redhat.com>
1636 * except.c (do_free_exception): Remove #if 0 wrapper.
1637 (build_throw): Use it if we elide a copy into the
1640 * tree.c (stabilize_call): Fix thinko.
1642 * init.c (build_new_1): Preevaluate initializer. Simplify EH code.
1643 (build_init): Call a constructor rather than call build_aggr_init
1645 * except.c (stabilize_throw_expr): Remove.
1646 (build_throw): Use stabilize_init instead of stabilize_throw_expr.
1647 * tree.c (stabilize_call, stabilize_init): New fns.
1648 * call.c (build_over_call): A constructor no longer returns the
1649 address of the object.
1651 2004-03-01 Mark Mitchell <mark@codesourcery.com>
1654 * lex.c (retrofit_lang_decl): Treat entities with no linkage as
1655 having C++ linkage for name-mangling purposes.
1658 * parser.c (cp_parser_direct_declarator): Recognize constructor
1659 declarators that use a template-id to name the class being
1663 * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
1664 (tsubst_expr): Do not call tsubst_copy, even when
1665 processing_template_decl.
1667 2004-03-01 Mark Mitchell <mark@codesourcery.com>
1670 * pt.c (build_non_dependent_expr): Do not create a
1671 NON_DEPENDENT_EXPR for a THROW_EXPR.
1674 * parser.c (cp_parser_postfix_expression): Do not perform Koenig
1675 lookup if ordinary name-lookup finds a non-function.
1676 * pt.c (tsubst_copy_and_build): Likewise.
1679 * parser.c (cp_parser_late_parsing_default_args): Check that there
1680 are no extra tokens after the end of the default-argument
1684 Backport 2004-02-12 Mark Mitchell <mark@codesourcery.com>
1685 * decl.c (redeclaration_error_message): Correct handling of
1687 * pt.c (tsubst_friend_declaration): Adjust code to determine
1688 whether or not a friend template is a definition.
1689 (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
1691 2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
1694 * error.c (dump_expr): Handle THROW_EXPR.
1696 2004-02-29 Mark Mitchell <mark@codesourcery.com>
1699 * name-lookup.h (push_scope): Change prototype.
1700 * name-lookup.c (push_scope): Do not reenter the current class
1702 * decl.c (grokfndecl): Check return code from push_scope before
1704 * decl2.c (check_classfn): Likewise.
1705 * parser.c (cp_parser_conversion_function_id): Likewise.
1706 (cp_parser_init_declarator): Likewise.
1707 (cp_parser_direct_declarator): Likewise.
1708 (cp_parser_class_specifier): Likewise.
1709 (cp_parser_class_head): Likewise.
1710 (cp_parser_lookup_name): Likewise.
1711 (cp_parser_constructor_declarator_p): Likewise.
1712 * pt.c (instantiate_class_template): Likewise.
1713 (resolve_typename_type): Likewise.
1715 2004-02-27 Mark Mitchell <mark@codesourcery.com>
1718 * class.c (update_vtable_entry_for_fn): Do not go through
1719 covariance machinery if the type returned by an overrider is the
1720 same as the original.
1722 2004-02-27 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1725 * pt.c (dependent_type_p_r): A template template parameter is a
1728 2004-02-26 Mark Mitchell <mark@codesourcery.com>
1731 * parser.c (cp_parser_parameter_declaration_list): Commit
1732 to fewer tentative parses.
1734 2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1737 * mangle.c (write_template_arg_literal): Don't rely on identity for
1740 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1743 * cvt.c (build_expr_type_conversion): Type must be complete before
1744 looking up for conversions.
1746 2004-02-20 Mark Mitchell <mark@codesourcery.com>
1749 * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
1752 * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
1753 for all type variants.
1755 2004-02-19 Mark Mitchell <mark@codesourcery.com>
1758 * name-lookup.c (push_class_level_binding): Do not complain about
1759 adding a binding for a member whose name is the same as the
1760 enclosing class if the member is located in a base class of the
1763 2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1766 * parser.c (cp_parser_new_expression): Parse an ill-formed
1767 direct-new-declarator after a parenthesized type-id to emit good
1770 2004-02-17 Mark Mitchell <mark@codesourcery.com>
1773 * cp-tree.h (abi_version_at_least): Remove.
1774 * mangle.c: Include flags.h.
1776 2004-02-15 Mark Mitchell <mark@codesourcery.com>
1779 * call.c (build_conditional_expr): Handle conversions between
1780 class types which result in differently cv-qualified type
1784 * class.c (delete_duplicate_fields_1): Remove.
1785 (delete_duplicate_fields): Likewise.
1786 (finish_struct_anon): Remove check for members with the same name
1787 as their enclosing class.
1788 (check_field_decls): Do not call duplicate_fields.
1789 * decl.c (grokdeclarator): Remove check for static data members
1790 with the same name as their enclosing class.
1791 * name-lookup.c (push_class_level_binding): Check for members with
1792 the same name as their enclosing class.
1794 2004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
1797 * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
1799 2004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1802 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
1803 has full set of arguments.
1805 2004-02-13 Mark Mitchell <mark@codesourcery.com>
1808 * cp-tree.h (delete_sanity): Change prototype.
1809 * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
1810 Remove dead code. Adjust code to warn about deleting an array.
1811 * typekc.c (decay_conversion): Use build_address and build_nop.
1814 * search.c (accessible_p): Do not check access in thunks.
1816 2004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1819 * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
1821 2004-02-13 Mark Mitchell <mark@codesourcery.com>
1824 * call.c (build_conditional_expr): Call force_rvalue on the
1825 non-void operand in the case that one result is a throw-expression
1826 and the other is not.
1828 2004-02-13 Ian Lance Taylor <ian@wasabisystems.com>
1831 * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
1832 the type name and look ahead for ::~, and bail out early with a
1833 better error message if the parse is going to fail.
1835 2004-02-10 Mark Mitchell <mark@codesourcery.com>
1837 * typeck.c (lookup_destructor): Fix typo in error message.
1839 2004-02-07 Zack Weinberg <zack@codesourcery.com>
1842 * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
1843 * decl.c (duplicate_decls, start_function): Likewise.
1845 2004-02-07 Zack Weinberg <zack@codesourcery.com>
1847 * name-lookup.c (pushdecl): Issue shadow warnings directly.
1848 * parser.c (free_parser_stacks): Delete.
1850 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
1852 * rtti.c, tree.c: Update copyright.
1854 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1857 * decl.c (require_complete_types_for_parms): Do not insert
1858 error_mark_node in the parameter list.
1860 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1863 * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
1864 error when terminator can not be found.
1866 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
1868 Make-lang.in (po-generated): Delete.
1870 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1874 2004-01-15 Geoffrey Keating <geoffk@apple.com>
1876 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1877 (handle_pragma_implementation): Likewise.
1879 2004-02-05 Mark Mitchell <mark@codesourcery.com>
1882 * typeck.c (lookup_destructor): Tweak error message.
1884 2004-02-05 Paul Brook <paul@codesourcery.com>
1886 Backport from mainline.
1888 2003-11-05 Mark Mitchell <mark@codesourcery.com>
1890 * decl.c (cxx_push_function_context): Do not set
1891 current_function_is_thunk.
1892 * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
1895 2004-02-04 Mark Mitchell <mark@codesourcery.com>
1898 * call.c (convert_like_real): Use "converting" rather than
1899 "argument" as the descriptive keyword to
1900 dubious_conversion_warnings.
1901 * typeck.c (convert_for_assignment): Do not call
1902 dubious_conversion_warnings.
1904 2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1907 * init.c (build_delete): Emit a more informative error message in
1908 case of an incomplete type, and on the correct source line.
1910 2004-02-04 Mark Mitchell <mark@codesourcery.com>
1913 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
1914 linkage for the typeinfo name string.
1917 * cp-tree.h (fold_non_dependent_expr): New function.
1918 * parser.c (cp_parser_fold_non_dependent_expr): Remove.
1919 (cp_parser_template_argument): Use fold_non_dependent_expr.
1920 (cp_parser_direct_declarator): Likewise.
1921 * pt.c (fold_non_dependent_expr): New function.
1922 (convert_nontype_argument): Use it.
1923 (tsubst_qualified_id): Simplify.
1924 (tsubst_copy_and_build): Likewise.
1926 2003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1929 * pt.c (more_specialized_class): Increase processing_template_decl
1930 while partial ordering.
1932 2004-02-03 Mark Mitchell <mark@codesourcery.com>
1935 * parser.c (cp_parser_class_name): Robustify.
1938 * parser.c (cp_parser_cache_group): Do not consume the EOF token.
1940 2004-02-03 Mark Mitchell <mark@codesourcery.com>
1943 * decl.c (start_function): Do not call pushdecl for any
1944 instantiation or specialization of a primary template.
1947 * semantics.c (finish_id_expression): Do not return an
1948 IDENTIFIER_NODE when lookup finds a PARM_DECL.
1951 * pt.c (build_non_dependent_expr): Do not build
1952 NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
1955 * semantics.c (finish_id_expression): Do not return an
1956 IDENTIFIER_NODE when lookup finds a VAR_DECL.
1959 * parser.c (cp_parser_simple_declaration): When skipping to the
1960 end of the statement swallow the terminating semicolon.
1962 2004-02-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1966 * decl.c (grokdeclarator): Check immediatly type completeness for
1967 non-dependent types.
1969 2004-01-30 Mark Mitchell <mark@codesourcery.com>
1972 * init.c (build_offset_ref): Improve error recovery for invalid
1973 uses of non-static member functions.
1976 * cp-tree.h (cp_build_type_attribute_variant): New function.
1977 * class.c (build_clone): Use cp_build_type_attribute_variant.
1978 * decl.c (duplicate_decls): Likewise.
1979 * pt.c (copy_default_args_to_explicit_spec): Likewise.
1980 (tsubst_function_type): Likewise.
1981 * tree.c (build_exception_variant): Check attributes before
1982 concluding that two types are the same.
1983 (cp_build_type-attribute_variant): New method.
1984 * typeck.c (merge_types): Use cp_build_type_attribute_variant.
1987 * call.c (convert_class_to_reference): Keep better track of
1988 pedantically invalid user-defined conversions.
1990 2004-02-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1993 * pt.c (tsubst_qualified_id): Improved error message when a type
1994 is expected but not found.
1996 2004-01-30 Michael Matz <matz@suse.de>
1998 * parser.c (cp_parser_labeled_statement): Accept case ranges.
2000 2004-01-28 Jan Hubicka <jh@suse.czi
2002 * semantics.c (expand_body) Do emit_associated_thunks before
2005 2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2008 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
2009 a sizeof expression.block
2011 2004-01-29 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2013 * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
2014 template name as it was `<::' (digraph typo).
2015 (cp_parser_nth_token_starts_template_argument_list_p): New function.
2016 (cp_parser_id_expression): Use it.
2017 (cp_parser_nested_name_specifier_opt): Likewise.
2018 (cp_parser_template_name): Likewise.
2019 (cp_parser_class_name): Likewise.
2020 (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
2022 2004-01-29 Mark Mitchell <mark@codesourcery.com>
2025 * mangle.c (write_encoding): Correct encoding of member template
2028 2004-01-28 Mark Mitchell <mark@codesourcery.com>
2031 * typeck.c (merge_types): Do not merge attributes into
2034 2004-01-28 Mark Mitchell <mark@codesourcery.com>
2037 * parser.c (cp_parser_direct_declarator): Do not prevent
2038 backtracking inside a parenthesized declarator.
2039 (cp_parser_parameter_declaration): Fix typo in comment.
2041 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2043 * cp-tree.h (language_function, lang_type_header): Use
2045 * name-lookup.h (cp_binding_level): Likewise.
2047 2004-01-26 Mark Mitchell <mark@codesourcery.com>
2050 * semantics.c (finish_for_expr): Check for unresolved overloaded
2053 2004-01-26 Mark Mitchell <mark@codesourcery.com>
2055 * class.c (add_method): Just check processing_template_decl to
2056 determine whether or not we are within a template.
2057 * decl2.c (maybe_retrofit_in_chrg): Likewise.
2058 * init.c (decl_constant_value): Check the type of the declaration,
2060 * name-lookup.c (maybe_push_to_top_level): Rename to ...
2061 (push_to_top_level): ... this.
2062 * name-lookup.h (maybe_push_to_top_level): Do not declare it.
2063 * pt.c (push_template_decl_real): Reorder condition for speed.
2064 (convert_template_argument): Use dependency-checking functions in
2065 place of uses_template_parms.
2066 (lookup_template_class): Avoid calling uses_template_parms more
2068 (uses_template_parms): Reimplement, using dependency-checking
2070 (instantiate_class_template): Use push_to_top_level, not
2071 maybe_push_to_top_level.
2072 (type_unification_real): Simplify.
2073 (type_dependent_expression_p): Handle OFFSET_REFs and
2075 (any_dependent_template_arguments_p): Handle multiple levels of
2077 * semantics.c (expand_or_defer_fn): Do not check
2078 uses_template_parms for template instantiations.
2079 * typeck.c (comptypes): Avoid calling cp_type_quals.
2081 2004-01-25 Mark Mitchell <mark@codesourcery.com>
2084 * call.c (build_over_call): Do not convert arguments when
2085 processing a template.
2086 * pt.c (build_non_dependent_expr): Do not build a
2087 NON_DEPENDENT_EXPR for arithmetic constants.
2089 2004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2092 * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
2093 returns a TYPE_DECL. no further lookup is required.
2094 * semantics.c (check_template_template_default_arg): A TYPE_DECL
2095 is invalid. Rework to give better diagnostics.
2097 2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2100 * pt.c (instantiate_class_template): Add an error_mark_node
2102 (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
2104 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
2106 * call.c: Update copyright.
2107 * class.c: Likewise.
2108 * decl2.c: Likewise.
2109 * except.c: Likewise.
2112 * mangle.c: Likewise.
2113 * optimize.c: Likewise.
2114 * typeck.c: Likewise.
2115 * typeck2.c: Likewise.
2117 2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
2120 * decl.c (finish_function): Move the call to
2121 finish_fname_decls below the call to
2122 finish_eh_spec_block.
2124 2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2126 * parser.c (cp_parser_class_specifier): Prevent garbage collection.
2128 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
2130 * Make-lang.in: Replace $(docdir) with doc.
2131 (c++.info, c++.srcinfo): Dummy entry.
2132 (c++.man, c++.srcman): New rules.
2133 (c++.install-man): Revamp rule.
2135 2004-01-19 Kelley Cook <kcook@gcc.gnu.org>
2137 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
2138 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
2139 immediate $(shell) instead of deferred backquote.
2141 2004-01-19 Mark Mitchell <mark@codesourcery.com>
2144 * parser.c (cp_parser_postfix_expression): When encountering
2145 incomplete type on left-hand side of "->" or ".", treat the entire
2146 expression as erroneous.
2148 2004-01-19 Mark Mitchell <mark@codesourcery.com>
2151 * call.c (build_field_call): Remove.
2152 (n_build_method_call): Likewise.
2153 (build_method_call): Likewise.
2154 (build_new_method_call): Do not call build_field_call.
2155 * class.c (n_build_method_call): Remove.
2156 (print_class_statistics): Do not print it.
2157 * cp-tree.h (build_method_call): Remove declaration.
2158 (finish_object_call_expr): Likewise.
2159 (build_new_1): Do not use build_method_call.
2160 * parser.c (cp_parser_postfix_expression): Use finish_call_expr
2161 when the function appearing on the right-hand-side of "." or "->"
2162 is not actually a function.
2163 * pt.c (tsubst_copy_and_build): Likewise.
2164 * semantics.c (finish_object_call_expr): Remove.
2166 2004-01-18 Mark Mitchell <mark@codesourcery.com>
2169 * pt.c (tsubst): Use finish_typeof.
2171 2004-01-18 Jason Merrill <jason@redhat.com>
2174 * except.c (build_throw): In a template, set
2175 current_function_returns_abnormally.
2177 2004-01-17 Fred Fish <fnf@intrinsity.com>
2180 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
2181 except don't call array_type_nelts() with a VECTOR_TYPE.
2183 2004-01-16 Jan Hubicka <jh@suse.cz>
2185 * mangle.c (write_mangled_name): Remove inline modifier.
2187 2004-01-16 Mark Mitchell <mark@codesourcery.com>
2190 * decl.c (compute_array_index_type): Fix grammar in comment.
2191 * init.c (build_zero_init): Handle zero-sized arrays correctly.
2194 * call.c (name_as_c_string): Print conversion operator names
2198 * call.c (initialize_reference): Pass -1 for inner parameter to
2201 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2204 * parser.c (cp_parser_base_specifier): Check for an invalid
2205 keyword `typename' and emit an user-friendly error message.
2207 2004-01-15 Geoffrey Keating <geoffk@apple.com>
2210 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
2211 (handle_pragma_implementation): Likewise.
2213 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2216 * typeck.c (build_class_member_access_expr): Allow to access members
2217 of the currently open class.
2218 (finish_class_member_access_expr): Likewise.
2220 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
2223 * name-lookup.c (validate_nonmember_using_decl): Take scope and
2224 name by value, instead of computing them.
2225 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
2226 arguments. Pass them to validate_nonmember_using_decl.
2227 * name-lookup.h (do_local_using_decl): Adjust.
2228 (do_toplevel_using_decl): Likewise.
2229 * parser.c (cp_parser_using_declaration): Likewise.
2230 * pt.c (tsubst_expr): Likewise.
2232 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
2236 * name-lookup.c (qualified_lookup_using_namespace): Search
2237 strongly-associated namespaces first, and only then try other
2240 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
2242 * Make-lang.in (c++.srcextra): Dummy entry.
2244 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2247 * parser.c (cp_parser_template_name): Don't try to parse a
2248 conversion-function-id, as it cannot be a template-name.
2249 (cp_parser_simple_type_specifier): Check for invalid template-ids
2250 even after a built-in type.
2252 2004-01-14 Jan Hubicka <jh@suse.cz>
2255 * pt.c (instantiate_decl): Do not increase function_depth.
2257 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
2261 * parser.c (cp_parser_elaborated_type_specifier): Warn about
2262 attributes and discard.
2263 * decl.c (xref_tag): Don't overwite existing attributes with
2266 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2269 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
2270 is no destructor while looking up a BIT_NOT_EXPR.
2272 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
2274 * cxxfilt.c: Remove unused file.
2276 2004-01-14 Jan Hubicka <jh@suse.cz>
2278 Partial fix to PR c++/12850
2279 * decl2.c (mark_used): Do not proactively instantiate templates
2280 when compiling in unit-at-a-time or not optimizing.
2281 * optimize.c (maybe_clone_body): Do not increase function depth.
2283 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2286 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
2288 2003-01-12 Steven Bosscher <stevenb@suse.de>
2291 * parser.c (cp_parser_member_declaration): Any non-type is also
2292 not a class or a function.
2294 2004-01-12 Jason Merrill <jason@redhat.com>
2297 * class.c (build_base_path): Do not mark vtable references as
2299 (build_vtbl_ref_1): Likewise.
2301 2004-01-12 Richard Henderson <rth@redhat.com>
2304 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
2305 (store_init_value): Use it.
2306 * decl.c (check_initializer): Expect full initialization code
2307 from store_init_value.
2308 * init.c (expand_aggr_init_1): Likewise.
2309 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
2311 2004-01-12 Mark Mitchell <mark@codesourcery.com>
2313 * class.c (layout_class_type): For non-POD class types, also copy
2314 the DECL_SIZE and DECL_MODE of fields to the base class type.
2316 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2319 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
2320 calling regenerate_decl_from_template.
2322 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
2325 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
2326 decl-specifier occurring along with a class definition.
2328 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
2330 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
2331 clauses to comments describing declares_class_or_enum.
2332 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
2335 2004-01-12 Jan Hubicka <jh@suse.cz>
2337 * pt.c (for_each_template_parm): Do not check for duplicates.
2338 (for_each_template_parm): Use walk_tree duplicate checking code.
2340 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
2343 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
2344 is error_mark_node, don't add any more decl_specs.
2345 (cp_parser_init_declarator): After committing to a declaration, if
2346 the decl_specifiers start with error_mark_node, issue an error and
2347 change the type to "int".
2349 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
2352 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
2354 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2358 * pt.c (tsubst): Substitution must fail if we are attempting to
2359 create an array with element type that is an abstract class type.
2360 * decl.c (cp_finish_decl): Strip pointers and array types recursively
2361 before calling abstract_virtuals_error.
2363 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
2365 * name-lookup.c (qualified_lookup_using_namespace): Consider
2366 strong using directives even if we've already found a binding.
2368 2004-01-09 Mark Mitchell <mark@codesourcery.com>
2370 * cp-tree.h (cxx_expand_expr): Change prototype.
2371 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
2373 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2376 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
2377 looking into them recursively. They can be there because of the
2378 new __offsetof__ extension.
2380 2004-01-07 Zack Weinberg <zack@codesourcery.com>
2382 * parser.c (cp_parser_save_member_function_body): Mark the
2385 2004-01-05 Mark Mitchell <mark@codesourcery.com>
2388 * class.c (build_clone): Copy type attributes from the original
2389 function to the clone.
2392 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
2393 references as constant.
2396 * parser.c (cp_parser_explicit_instantiation): Improve error
2398 (cp_parser_require): Improve indication of the error location.
2401 * parser.c (cp_parser_class_head): Reorder logic to check for
2402 invalid qualification.
2404 2004-01-04 Mark Mitchell <mark@codesourcery.com>
2407 * name-lookup.c (lookup_using_namespace): Remove spacesp
2409 (unqualified_namespace_lookup): Likewise.
2410 (lookup_qualified_name): Adjust accordingly.
2411 (lookup_name_real): Likewise.
2412 (lookup_arg_dependent): Do not eliminate the namespace of the
2413 functions found by unqualified name lookup unless that is the
2416 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
2418 * semantics.c (push_deferring_access_checks): Fix format.
2419 (resume_deferring_access_checks): Likewise.
2420 (stop_deferring_access_checks): Likewise.
2421 (pop_deferring_access_checks): Likewise.
2422 (get_deferred_access_checks): Likewise.
2423 (pop_to_parent_deferring_access_checks): Likewise.
2424 (perform_deferred_access_checks): Likewise.
2425 (perform_or_defer_access_check): Likewise.
2427 2004-01-04 Richard Henderson <rth@redhat.com>
2429 * call.c (build_over_call): Don't create a save_expr of an
2430 aggregate, but rather its address.
2432 2004-01-04 Mark Mitchell <mark@codesourcery.com>
2435 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
2436 an offsetof expression.
2438 * parser.c (cp_parser_parameter_declaration): Fix comment.
2441 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
2442 (reference_binding): Set it when appropriate.
2443 (build_temp): New function, split out from ...
2444 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
2445 (initialize_reference): Likewise.
2448 * parser.c (cp_parser): Add in_type_id_in_expr_p.
2449 (cp_parser_new): Initialize it.
2450 (cp_parser_postfix_expression): Set it.
2451 (cp_parser_sizeof_operand): Likewise.
2452 (cp_parser_parameteR_declaration): Do not commit early to tenative
2453 parsers when in_type_id_in_expr_p is set.
2455 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2458 * parser.c (cp_parser_template_argument): Don't call
2459 make_unbound_class_template directly.
2460 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
2461 UNBOUND_CLASS_TEMPLATE tree node.
2463 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
2466 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
2468 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2471 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
2472 (DECL_FUNCTION_TEMPLATE_P): Use it.
2473 (DECL_CLASS_TEMPLATE_P): Likewise.
2474 * parser.c (cp_parser_lookup_name): Add is_template parameter.
2475 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
2476 (cp_parser_template_name): Likewise.
2477 (cp_parser_elaborated_type_specifier): Likewise.
2478 (cp_parser_namespace_name): Likewise.
2479 (cp_parser_class_name): Likewise.
2480 (cp_parser_lookup_name_simple): Likewise.
2482 See ChangeLog.3 for earlier changes.