OSDN Git Service

* error.c (dump_expr): Add 0x to printed hex numbers to make
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 61ed974..2dc2bb7 100644 (file)
@@ -1,3 +1,934 @@
+2003-03-28  Mike Stump  <mrs@apple.com>
+
+       * error.c (dump_expr): Add 0x to printed hex numbers to make
+       output match source code better.
+
+2003-03-28  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/10218
+       * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
+       definitions.
+
+       * decl2.c (generate_ctor_or_dtor_function): Tolerate a
+       non-existant ssdf_decls array.
+       (finish_file): Call generator_ctor_or_dtor_function when there are
+       static constructors or destructors and no other static
+       initializations.
+
+2003-03-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/10047
+       * decl2.c (finish_file): Don't warn about explicitly instantiated
+       inline decls.
+
+2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/10224
+       * pt.c (lookup_template_class): Only check instantiated args if
+       they do not contain template parameters.
+
+2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/10158
+       * parser.c (cp_parser_function_definition): Set
+       DECL_INITIALIZED_IN_CLASS for members.
+       * pt.c (instantiate_decl): Only reduce the template args for
+       friends that are not defined in class.
+
+2003-03-25  Jason Merrill  <jason@redhat.com>
+
+       * call.c (print_z_candidate): Change name of first arg to msgid.
+       (joust): Add comment for translators.
+
+2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
+       
+       PR c++/9898, PR c++/383, DR 322
+       * pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
+       through reference types on both PARM and ARG.
+
+2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/10119
+       * error.c (dump_expr) <BASELINK>: Use dump_expr.
+       * pt.c (maybe_fold_nontype_args): New function.
+       (tsubst_copy) <SCOPE_REF>: Subst any template_id args.
+       <TEMPLATE_ID_EXPR>: Break out folding code, call it.
+       (tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
+       maybe_fold_nontype_args.
+
+2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/10026
+       * decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.
+
+2003-03-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/7086
+       * typeck.c (cxx_mark_addressable):  Adjust call to
+       gen_mem_addressof or put_var_into_stack.
+
+2003-03-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/9978, c++/9708
+       * cp-tree.h (instantiate_template): Add tsubst_flags parameter.
+       * call.c (add_template_candidate_real): Adjust
+       instantiate_template call.
+       * class.c (resolve_address_of_overloaded_function): Likewise.
+       * decl.c (build_enumerator): Set TREE_CONSTANT.
+       * pt.c (check_instantiated_args): New.
+       (push_inline_template_parms_recursive): Set TREE_CONSTANT,
+       TREE_READONLY.
+       (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
+       (reduce_template_parm_level): Likewise.
+       (process_template_parm): Likewise.
+       (check_explicit_specialization): Adjust instantiate_template call.
+       (convert_template_argument): Don't check non-type argument here.
+       (lookup_template_class): Check them here.
+       (tsubst_friend_function): Adjust instantiate_template call.
+       (instantiate_template): Add tsubst_flags parameter, use it. Check
+       instantiated args.
+
+2003-03-21  Zack Weinberg  <zack@codesourcery.com>
+
+       * decl.c: Update calls to shadow_warning.
+
+2003-03-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/9898
+       * error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
+       (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
+
+2003-03-20  Mark Mitchell  <mark@codesourcery.com>
+
+       * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
+       friends.
+       * cp/pt.c (instantiate_class_template): Fix formatting.
+
+2003-03-14  Matt Austern  <austern@apple.com>
+
+       * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
+       (unemitted_tinfo_decl_p): Remove.
+       (emit_tinfo_decl): Change declaration to remove unused parameter.
+       * decl2.c (finish_file): Change tinfo emission to loop through
+       unemitted_tinfo_decls array instead of looping through all decls.
+       * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
+       unused second parameter.
+       (init_rtti_processing): initialize unemitted_tinfo_decls varray.
+       (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
+       (emit_tinfo_decl): remove unused second parameter, add assertion
+       that decl hasn't already been emitted.
+
+2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
+       type from 'int' to 'bool'. Replace 0 and 1 with true and false in
+       return statements.
+
+2003-03-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/8316, c++/9315, c++/10136
+       * call.c (print_z_candidate): Split out from...
+       (print_z_candidiates): ...here.
+       (joust): Use it.
+
+2003-03-17  Roger Sayle  <roger@eyesopen.com>
+
+       PR c++/10031
+       * decl.c (duplicate_decls): Use the new type when prototyping
+       anticipated decls, even when the types match.  This defines the
+       exception list for the built-in function.
+
+2003-03-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/10091
+       * typeck.c (build_class_member_access_expr): Compare
+       TYPE_MAIN_VARIANTs.
+
+2003-03-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9639
+       * parser.c (cp_parser_declarator_id): Clear parser->scope.
+
+2003-03-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9993
+       * decl.c (finish_function): Only allow the NRVO to use variables
+       declared at function scope.
+
+2003-03-17  Andreas Jaeger  <aj@suse.de>
+
+       * Make-lang.in (cp/TAGS): Remove.
+
+2003-03-16  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/9629
+       * cp-tree.h (struct language_function): Add in_base_initializer.
+       (in_base_initializer): define it.
+       (expand_member_init): Remove INIT param.
+       * init.c (expand_member_init): Remove INIT param, return the member.
+       (emit_mem_initializers): Set in_base_initializer.
+       * class.c (build_base_path): Check in_base_initializer.
+       * parser.c (cp_parser_mem_initializer): Set in_base_initializer.
+       * pt.c (tsubst_initializer_list): Likewise.
+
+2003-03-16   Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+       * decl.c (binding_for_name): Fix initialization thinko.
+
+2003-03-15  Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+       Compile-time improvement: 2/n.
+       * cp-tree.h (struct cxx_binding): New datatype;
+       (struct lang_identifier): Use it.
+       (LOCAL_BINDING_P): Adjust definition.
+       (INHERITED_VALUE_BINDING_P): Likewise.
+       (BINDING_SCOPE): Likewise.
+       (BINDING_HAS_LEVEL_P): Likewise.
+       (BINDING_VALUE): Likewise.
+       (BINDING_TYPE): Likewise.
+       (IDENTIFIER_VALUE): Likewise.
+       (struct tree_binding): Remove.
+       (TS_CP_BINDING): Likewise.
+       ((union lang_tree_node): Remove field "binding".
+       (cxx_binding_clear): New macro.
+       (binding_for_name): Adjust return type.
+       (qualified_lookup_using_namespace): Adjust prototype.
+       (lookup_using_namespace): Adjust prototype.
+       (cxx_scope_find_binding_for_name): Declare.
+       * cp-tree.def: Remove CPLUS_BINDING definition.
+       * decl.c (push_binding): Adjust local variable type.
+       (add_binding): Likewise.
+       (push_class_binding): Likewise.
+       (pop_binding): Likewise.
+       (poplevel): Likewise.
+       (poplevel_class): Likewise.
+       (free_bindings):  Adjust type.
+       (find_binding): Adjust return type, add a third parameter. Remove
+       non-useful assertion now that we use static typing.
+       (cxx_scope_find_binding_for_name): New function.
+       (binding_for_name): Use it.  Adjust local variable type. Simplify.
+       (namespace_binding):  Simplify.
+       (set_namespace_binding): Likewise.
+       (set_identifier_type_value_with_scope): Adjust local variable type.
+       (lookup_tag): Don't type-abuse of local variable 'old'.
+       (lookup_namespace_name): Likewise.  Allocate binding on stack.
+       (select_decl): Adjust prototype.
+       (unqualified_namespace_lookup):  Allocate binding on stack.
+       Don't type-abuse of local variable 'val'.
+       (lookup_name_real): Likewise.
+       (maybe_inject_for_scope_var): Adjust local variable type.
+       (cp_tree_node_structure): Remove CPLUS_BINDING case label.
+       (namespace_binding): Adjust logic, simplify.
+       (BINDING_LEVEL): Adjust definition.
+       (push_class_level_binding): Adjust local variable type.
+       (struct cxx_saved_binding): Adjust field 'binding' type.
+       * decl2.c (ambiguous_decl): Adjust prototype.
+       (lookup_using_namespace): Adjust local variable type.
+       (qualified_lookup_using_namespace): Catch type error and correct
+       ensueing logic error.
+       (do_nonmember_using_decl): Adjust local variable type.  Allocate
+       temporary cxx_binding on stack.
+       (do_toplevel_using_decl): Adjust local variable type.
+       * ptree.c (cxx_print_cxx_binding): New function.
+       (cxx_print_identifier): Use it.
+       (cxx_print_xnode): Delete CPLUS_BINDING case label.
+
+2003-03-15  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.c (count_functions): Fix whitespace.
+
+2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       * Make-lang.in: Update.
+
+2003-03-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/6440
+       * pt.c (maybe_process_partial_specialization): Handle
+       member class template when enclosing class template is
+       explicit specialized.
+       (most_general_template): Stop looking when DECL is already
+       specialized.
+
+2003-03-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9420
+       * search.c (lookup_conversions): Call complete_type here.
+       * call.c (implicit_conversion): Not here.
+
+2003-03-13  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl2.c (do_nonmember_using_decl): Correct handling of
+       simultaneous type/non-type bindings.
+
+       * call.c (initialize_reference): Remove bogus assertion.
+       * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
+
+2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
+
+       PR c++/7050
+       * expr.c (cxx_expand_expr): Return const0_rtx for throw
+       expressions.
+
+2003-03-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9474
+       * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
+       to merge old and new declarations.
+
+2003-03-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * g++.1: Remove.
+       * Make-lang.in (c++.generated-manpages): Build cp/g++.1.
+       (cp/g++.1): Build it from scratch in the build tree.
+       (c++.install-man): Depend on it.  Install it from the build tree.
+       (c++.mostlyclean): Clean it.
+
+2003-03-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9474
+       * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
+       to merge old and new declarations.
+
+       PR c++/9924
+       * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
+
+2003-03-11  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9820
+       * search.c (lookup_member): Fix handling of functions in a class
+       being defined.
+
+2003-03-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/8700
+       * call.c (convert_class_to_reference): Adjust usage of
+       splice_viable.
+       (any_viable): Remove.
+       (splice_viable): Combine with any_viable.
+       (print_z_candidates): Avoid printing duplicates.
+       (build_user_type_conversion_1): Adjust usage of splice_viable.
+       (build_new_function_call): Likewise.
+       (build_operator_new_call): Likewise.
+       (build_object_call): Likewise.
+       (build_conditional_expr): Likewise.
+       (build_new_op): Likewise.
+       (build_new_method_call): Likewise.
+       (joust): Remove spurious comment.
+       * cp-tree.h (DECL_FRIENDLIST): Correct documentation.
+       * decl2.c (arg_assoc_class): Simplify.
+       * friend.c (add_friend): Likewise.
+
+2003-03-11  Jason Merrill  <jason@redhat.com>
+
+       PR c++/8660
+       * decl2.c (check_classfn): A member template only matches a
+       member template.
+
+2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
+
+       * Make-lang.in (CXX_C_OBJS): Update.
+       * lang-specs.h: Don't define __GNUG__ here.
+
+2003-03-10  Mark Mitchell  <mark@codesourcery.com>
+
+       * call.c (perform_overload_resolution): New function.
+       (build_new_function_call): Use it.
+       (build_operator_new_call): Likewise.
+       (add_candidates): Add explicit_targs and template_only parameters.
+       (build_new_op): Adjust accordingly.
+       * cp-tree.h (build_operator_new_call): New function.
+       (build_function_call_real): Remove.
+       (build_function_call_maybe): Likewise.
+       * init.c (build_new_1): Use build_operator_new_call.
+       * typeck.c (build_function_call_real): Rename to ...
+       (build_function_call): ... this.
+
+2003-03-10  Devang Patel  <dpatel@apple.com>
+
+       PR c++/9394
+       * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
+
+2003-03-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9798
+       * decl.c (push_using_directive): Push before recursing.
+
+       PR c++/9868, c++/9524
+       * call.c (resolve_scoped_fn_name): Handle the case of a function
+       pointer member.
+
+       * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
+       argument in the pointer-to-member case.
+
+2003-03-09  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9373
+       * cp-lang.c (cxx_get_alias_set): Use alias set zero for
+       pointers to member functions.
+
+       PR c++/8534
+       * decl.c (build_ptrmemfunc_type): Do not allow default arugments
+       in pointer-to-member-function types.
+
+2003-03-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * expr.c (cplus_expand_constant): Use C90 prototype style.
+       (cxx_expand_expr): Likewise.
+
+2003-03-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/9970
+       * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
+       functions.
+
+2003-03-08  Geoffrey Keating  <geoffk@apple.com>
+
+       * lang-specs.h (c++-header): Change .pch to .gch.
+
+2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
+
+       * cp-tree.h (cxx_init): Update prototype.
+       * lex.c (cxx_init): Similarly.
+
+2003-03-08  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9823
+       * cp-tree.h (begin_mem_initializers): Remove.
+       * parser.c (cp_parser_mem_initializer_list): Inline it here.
+       Do not call finish_mem_initializers if not in a constructor.
+       (cp_parser_class_head): Fix typo in error message.
+       * semantics.c (begin_mem_initializers): Remove.
+       * testsuite/g++.dg/parser/constructor1.C: New test.
+
+       PR c++/9809
+       * call.c (add_function_candidate): Skip builtin fuctions that have
+       not yet been declared.
+
+       PR c++/9982
+       * init.c (build_new_1): Correct logic for determining whether or
+       not to use an array cookie.
+
+       PR c++/9524
+       * parser.c (cp_parser_postfix_expression): Call
+       finish_non_static_data_member, even when processing_template_decl.
+
+       PR c++/9912
+       * cp-tree.h (is_ancestor): New function.
+       (handle_class_head): Change prototype.
+       * decl2.c (is_namespace_ancestor): Rename to ...
+       (namespace_anecestor): ... this.
+       (set_decl_namespace): Adjust accordingly.
+       (handle_class_head): Remove unncessary parameters.
+       * parser.c (cp_parser_class_head): Check that
+       nested-name-specifiers are used appropriately.
+
+2003-03-07  Mark Mitchell  <mark@codesourcery.com>
+
+       * call.c (reference_binding): Remove REF_IS_VAR parameter.
+       (implicit_conversion): Adjust call to reference_binding.
+       (make_temporary_var_for_ref_to_type): Add TYPE parameter.
+       (initialize_reference): Adjust handling for references bound to
+       rvalues.
+       * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
+       prototype.
+       (real_non_cast_lvalue_p): New method.
+       * cvt.c (build_up_reference): Adjust use of
+       make_temporary_var_for_ref_to_temp.
+       * tree.c (real_non_cast_lvalue_p): New method.
+
+2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * except.c (init_exception_processing): Use C90 prototype style.
+       (cp_protect_cleanup_actions): Likewise.
+       (prepare_eh_type): Likewise.
+       (build_eh_type_type): Likewise.
+       (build_exc_ptr): Likewise.
+       (do_begin_catch): Likewise.
+       (dtor_nothrow): Likewise.
+       (do_end_catch): Likewise.
+       (push_eh_cleanup): Likewise.
+       (decl_is_java_type): Likewise.
+       (choose_personality_routine): Likewise.
+       (initialize_handler_parm): Likewise.
+       (expand_start_catch_block): Likewise.
+       (expand_end_catch_block): Likewise.
+       (begin_eh_spec_block): Likewise.
+       (finish_eh_spec_block): Likewise.
+       (do_allocate_exception): Likewise.
+       (do_free_exception): Likewise.
+       (wrap_cleanups_r): Likewise.
+       (stabilize_throw_expr): Likewise.
+       (build_throw): Likewise.
+       (complete_ptr_ref_or_void_ptr_p): Likewise.
+       (is_admissible_throw_operand): Likewise.
+       (nothrow_libfn_p): Likewise.
+       (can_convert_eh): Likewise.
+       (check_handlers_1): Likewise.
+       (check_handlers): Likewise.
+
+2003-03-06  Mark Mitchell  <mark@codesourcery.com>
+
+       * call.c (merge_conversion_sequences): New function.
+       (build_conv): Set ICS_USER_FLAG for USER_CONVs.
+       (convert_class_to_reference): Correct handling of second
+       standard conversion sequence in a user-defined conversion
+       sequence.
+       (build_user_type_conversion_1): Use merge_conversion_sequences.
+       * cp-tree.def: Add comments for CONV nodes.
+       * rtti.c (get_tinfo_decl): Use build_address/build_nop.
+
+2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * error.c (init_error): Use C90 prototype style.
+       (dump_scope): Likewise.
+       (dump_qualifiers): Likewise.
+       (dump_template_argument): Likewise.
+       (dump_template_argument_list): Likewise.
+       (dump_template_parameter): Likewise.
+       (dump_template_bindings): Likewise.
+       (dump_type): Likewise.
+       (dump_typename): Likewise.
+       (class_key_or_enum): Likewise.
+       (dump_aggr_type): Likewise.
+       (dump_type_prefix): Likewise.
+       (dump_type_suffix): Likewise.
+       (dump_global_iord): Likewise.
+       (dump_simple_decl): Likewise.
+       (dump_decl): Likewise.
+       (dump_template_decl): Likewise.
+       (dump_function_decl): Likewise.
+       (dump_parameters): Likewise.
+       (dump_exception_spec): Likewise.
+       (dump_function_name): Likewise.
+       (dump_template_parms): Likewise.
+       (dump_char): Likewise.
+       (dump_expr_list): Likewise.
+       (dump_expr): Likewise.
+       (dump_binary_op): Likewise.
+       (dump_unary_op): Likewise.
+       (type_as_string): Likewise.
+       (expr_as_string): Likewise.
+       (decl_as_string): Likewise.
+       (context_as_string): Likewise.
+       (lang_decl_name): Likewise.
+       (cp_file_of): Likewise.
+       (cp_line_of): Likewise.
+       (decl_to_string): Likewise.
+       (expr_to_string): Likewise.
+       (fndecl_to_string): Likewise.
+       (code_to_string): Likewise.
+       (language_to_string): Likewise.
+       (parm_to_string): Likewise.
+       (op_to_string): Likewise.
+       (type_to_string): Likewise.
+       (assop_to_string): Likewise.
+       (args_to_string): Likewise.
+       (cv_to_string): Likewise.
+       (cxx_print_error_function): Likewise.
+       (cp_diagnostic_starter): Likewise.
+       (cp_diagnostic_finalizer): Likewise.
+       (cp_print_error_function): Likewise.
+       (function_category): Likewise.
+       (print_instantiation_full_context): Likewise.
+       (print_instantiation_partial_context): Likewise.
+       (maybe_print_instantiation_context): Likewise.
+       (print_instantiation_context): Likewise.
+       (cp_printer): Likewise.
+       (print_integer): Likewise.
+       (print_non_consecutive_character): Likewise.
+       (locate_error): Likewise.
+
+2003-03-06  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9965
+       * call.c (reference_binding): Add ref_is_var parameter.
+       (implicit_conversion): Adjust call to reference_binding.
+       (initialize_reference): Likewise.
+
+       PR c++/9400
+       * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
+       PARM_DECLs.
+
+       PR c++/9791
+       * class.c (get_basefndecls): Use lookup_fnfields_1.
+
+2003-03-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/9188
+       * parser.c (cp_parser_type_parameter): Remove redundant `expect'
+       in error message.
+       (cp_parser_single_declaration): Likewise.
+
+2003-03-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9440
+       * call.c (build_conditional_expr): Use convert rather than an
+       explicit NOP_EXPR.
+
+2003-03-02  Matt Austern  <austern@apple.com>
+
+       * decl.c (cp_binding_level): Add static_decls varray member.
+       (add_decl_to_level): Add static/inline namespace scope
+       declarations to static_decls array.
+       (wrapup_global_for_namespace): Pass static_decls only, instead of
+       all decls, to wrapup_global_declarations/check_global_declarations.
+       (push_namespace): Initialize static_decls for ordinary namespaces.
+       (cxx_init_decl_processing): Initialize static_decls for global
+       namespace.
+
+2003-03-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (end_of_class): Correct thinko.
+
+2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config-lang.in: Replace ${libstdcxx_version} by its value.
+
+2003-03-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+       * cp-tree.h (cxx_saved_binding): Declare.
+       (struct saved_scope): Adjust type of field 'old_binding'.
+       * decl.c (cxx_saved_binding_make): New macro.
+       (struct cxx_saved_binding): Define.
+       (store_bindings): Adjust prototype.  Use cxx_saved_binding to save
+       C++ bindings.
+       (maybe_push_to_top_level): Adjust local variable type.
+       (pop_from_top_level): Likewise.
+
+2003-03-04  Tom Tromey  <tromey@redhat.com>
+
+       * Make-lang.in (c++.tags): New target.
+
+2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
+
+       * Make-lang.in: Update.
+
+2003-03-03  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (finish_enum): Do set the type in a template. Simplify.
+       * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
+
+2003-03-03  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9878
+       * call.c (convert_class_to_reference): Correct conversion
+       sequences.
+       (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
+       (implicit_conversion): Adjust call to reference_binding.
+       (add_candidate): Change type of candidates parameter.
+       (add_function_candidate): Likewise.
+       (add_conv_candidate): Likewise.
+       (build_builtin_candidate): Likewise.
+       (add_builtin_candidate): Likewise.
+       (add_builtin_candidates): Likewise.
+       (add_template_candidate_real): Likewise.
+       (add_template_candidate): Likewise.
+       (add_template_conv_candidate): Likewise.
+       (build_user_type_conversion_1): Adjust accordingly.
+       (build_object_call): Likewise.
+       (build_conditional_expr): Likewise.
+       (add_candidates): Likewise.
+       (build_new_op): Likewise.
+       (convert_like_real): Use USER_CONV_CAND.  Use build_nop.
+       (build_new_method_call): Adjust calls to add_function_candidate.
+       (make_temporary_var_for_ref_to_temp): New function.
+       (initialize_reference): Add decl parameter.
+       * class.c (build_rtti_vtbl_entries): Use build_address and
+       build_nop.
+       * cp-tree.h (initialize_reference): Change prototype.
+       (make_temporary_var_for_ref_to_temp): New function.
+       (build_type_conversion): Change prototype.
+       (build_address): New function.
+       (build_nop): Likewise.
+       * cvt.c (cp_convert_to_pointer): Adjust call to
+       build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
+       Use build_nop.
+       (convert_to_pointer_force): Use build_nop.
+       (build_up_reference): Use make_temporary_var_for_ref_to_temp.
+       (convert_to_reference): Adjust call to build_type_conversion.
+       (ocp_convert): Likewise.
+       (build_type_conversion): Remove for_sure parameter.
+       * decl.c (grok_reference_init): Use initialize_reference.
+       * typeck.c (build_address): New function.
+       (build_nop): Likewise.
+       (build_unary_op): Use them.
+       (build_ptrmemfunc): Tidy slightly.
+       (convert_for_initialization): Adjust call to
+       initialize_reference.
+       * typeck2.c (store_init_value): Remove #if 0'd code.
+
+2003-03-03  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (start_function): Clear DECL_NUM_STMTS.
+
+       * class.c (get_vtable_decl): Use vtbl_type_node.
+       (build_primary_vtable): Check for it.
+
+2003-03-02  Aldy Hernandez  <aldyh@redhat.com>
+
+       * decl.c (check_initializer): Check for vector_opaque_p.
+
+2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
+
+       * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
+         invoke an external cpp during compilation.
+
+2003-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * decl.c (duplicate_decls): Convert use of warning_with_decl() to
+       that of warning().
+       (start_decl): Likewise.
+       (start_function): Likewise.
+
+2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
+
+       * Make-lang.in (CXX_C_OBJS): Update.
+
+2003-02-28  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9892
+       * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
+       instantiating it.
+
+2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
+
+       * parser.c (cp_parser_init_declarator): Revert opaque
+       vector_opaque_p change.
+       Do not include target.h.
+
+2003-02-28  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9879
+       * cp-tree.h (build_zero_init): Add parameter.
+       * decl.c (cp_finish_decl): Adjust call.
+       * init.c (build_zero_init): Add nelts parameter.  Adjust recursive
+       calls.
+       (build_default_init): Add nelts parameter.  Adjust calls to
+       build_zero_init.
+       (build_new_1): Adjust call to build_default_init.
+       * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
+
+2003-02-26  Devang Patel  <dpatel@apple.com>
+
+       * decl.c (finish_enum): Merge two 'for' loops. Copy value node if
+       required.  Postpone enum setting for template decls.
+       (build_enumerator): Delay copying value node until finish_enum
+       (). Remove #if 0'ed code.
+       * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
+       (tsubst_copy): Add check for enum type.
+
+2003-02-25  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9683
+       * decl2.c (prune_vars_needing_no_initialization): Do not throw
+       away initializations for DECL_EXTERNAL VAR_DECLs.
+       (finish_file): Adjust accordingly.
+       * pt.c (instantiate_decl): Do not defer VAR_DECLs.
+
+2003-02-24 Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * decl.c (add_binding): Time TV_NAME_LOOKUP.
+       (push_class_binding): Likewise.
+       (set_namespace_binding): Likewise.
+
+2003-02-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9836
+       * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
+       specializations back to the main template.
+       * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
+       * pt.c (resolve_typename_type): Likewise.
+
+2003-02-24  Jeffrey D. Oldham  <oldham@codesourcery.com>
+
+       PR c++/9778
+       * pt.c (tsubst_copy_and_build): For a templated function inside a
+       scope, process template arguments.
+
+2003-02-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/9602
+       * typeck2.c (abstract_virtuals_error): Don't check when
+       TYPE is still template parameter dependent.
+
+2003-02-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/5333
+       * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
+       * parser.c (cp_parser_diagnose_invalid_type_name): Use it.
+       * pt.c (instantiate_class_template): Don't try to instantiate
+       dependent types.
+       (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
+
+2003-02-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9749
+       * decl.c (grokdeclarator): Do not allow parameters with variably
+       modified types.
+
+2003-02-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * search.c (grow_bfs_bases): Remove. Fold into ...
+       (bfs_walk): ... here, fix fencepost error. Fix merge lossage
+       in previous patch.
+
+2003-02-20  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9729
+       * mangle.c (mangle_conv_op_name_for_type): Issue an error message
+       when the G++ 3.2 ABI prevents correct compilation.
+
+2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Change base class access representation. Share virtual base
+       binfos.
+       * cp/call.c (build_special_member_call): Remove binfo_for_vbase
+       call.
+       * cp/class.c (build_base_path): Likewise.
+       (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
+       (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
+       (make_new_vtable): Adjust.
+       (force_canonical_binfo_r): Delete.
+       (force_canonical_binfo): Delete.
+       (mark_primary_virtual_base): Delete.
+       (dfs_unshared_virtual_bases): Delete.
+       (mark_primary_bases): Adjust.
+       (maybe_warn_about_overly_private_class): Adjust.
+       (dfs_base_derived_from): Delete.
+       (base_derived_from): Follow the inheritance chain.
+       (struct find_final_overrider_data): Add vpath member.
+       (dfs_find_final_overrider): Adjust.
+       (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
+       (find_final_overrider): Adjust.
+       (update_vtable_entry_for_fn): Adjust.
+       (modify_all_vtables): Adjust.
+       (walk_subobject_offsets): Adjust.
+       (layout_nonempty_base_or_field): Adjust.
+       (layout_empty_base): Remove last parameter. Adjust.
+       (build_base_field): Adjust.
+       (build_base_fields): Adjust.
+       (propagate_binfo_offsets): Remove last parameter. Adjust.
+       (dfs_set_offset_for_unshared_vbases): Delete.
+       (layout_virtual_bases): Adjust.
+       (finish_struct_1): Adjust.
+       (init_class_processing): Don't init access nodes.
+       (dfs_get_primary_binfo): Delete.
+       (get_primary_binfo): Adjust.
+       (dump_class_hierarchy_r): Remove most derived arg, add IGO
+       parameter. Adjust.
+       (dump_class_hierarchy): Adjust.
+       (finish_vtbls): Adjust.
+       (get_original_base): Delete.
+       (build_vtt_inits): Adjust.
+       (dfs_build_secondary_vptr_vtt_inits): Adjust.
+       (dfs_ctor_vtable_bases_queue_p): Adjust.
+       (build_ctor_vtbl_group): Adjust.
+       (dfs_accumulate_vtbl_inits): Adjust.
+       (build_vtbl_initializer): Adjust.
+       (build_vbase_offset_vtbl_entries): Adjust.
+       (add_vcall_offset_vtbl_entries_1): Adjust.
+       * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
+       (access_*_node): Remove.
+       (CANONICAL_BINFO): Delete.
+       (BINFO_UNSHARED_MARKED): Remove.
+       (BINFO_MARKED): Set LANG_FLAG_0 directly.
+       (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
+       (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
+       (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
+       Delete.
+       (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
+       (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
+       (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
+       Delete.
+       (BINFO_DEPENDENT_BASE_P): New.
+       (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
+       index.
+       (markedp, unmarkedp): Adjust.
+       (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
+       dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
+       find_vbase_instance, binfo_for_vbase): Delete.
+       (copied_binfo, original_binfo): Declare.
+       (finish_base_specifier): Add virtual_p arg.
+       (unshare_base_binfos): Delete.
+       (copy_base_binfos): Declare.
+       (reverse_path): Delete.
+       * cp/decl.c (xref_basetypes): Access and virtuality passed
+       differently. Don't copy direct base binfos here. Call
+       copy_base_binfos.
+       * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
+       (initialize_vtbl_ptrs): Adjust.
+       (expand_member_init): Adjust.
+       * cp/parser.c (cp_parser_base_specifier): Adjust.
+       * cp/pt.c (instantiate_class_template): Adjust.
+       (get_template_base_recursive): Adjust.
+       * cp/rtti.c (get_pseudo_ti_init): Adjust.
+       (get_pseudo_ti_desc): Adjust.
+       * cp/tree.c (unshare_base_binfos): Rename to ...
+       (copy_base_binfos): ... here, reimplement.
+       (make_binfo): Set BINFO_DEPENDENT_BASE_P.
+       (reverse_path): Remove.
+       * cp/typeck.c (get_delta_difference): Adjust error messages.
+       * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
+       * cp/search.c (lookup_base_r): Adjust.
+       (dynamic_cast_base_recurse): Adjust.
+       (canonical_binfo): Remove.
+       (dfs_canonical_queue): Remove.
+       (dfs_assert_unmarked_p): Remove.
+       (assert_canonical_unmarked): Remove.
+       (shared_marked_p, shared_unmarked_p): Remove.
+       (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
+       (dfs_access_in_type): Adjust.
+       (access_in_type): Adjust.
+       (dfs_accessible_queue_p): Adjust.
+       (dfs_accessible_p): Adjust.
+       (is_subobject_of_p_1, is_subobject_of_p): Remove.
+       (struct lookup_field_info): Remove from_dep_base_p field.
+       (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
+       (lookup_field_r): Remove dependent base code.
+       (lookup_member): Likewise.
+       (dfs_walk, dfs_walk_real): Add access arg to queue fn.
+       (dfs_unmarked_real_bases_queue_p): Remove.
+       (dfs_marked_real_bases_queue_p): Remove.
+       (dfs_skip_vbases): Remove.
+       (dfs_get_pure_virtuals): Adjust.
+       (markedp, unmarkedp): Adjust.
+       (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
+       (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
+       (dfs_unmark): Adjust.
+       (dfs_get_vbase_types):Remove.
+       (dfs_build_inheritance_graph_order): Remove.
+       (get_vbase_types): Remove
+       (dfs_find_vbase_instance): Remove.
+       (find_vbase_instance): Remove.
+       (dfs_debug_unmarkedp): Adjust.
+       (dependent_base_p): Remove.
+       (dfs_push_type_decls): Adjust.
+       (dfs_push_decls): Adjust.
+       (dfs_no_overlap_yet): Adjust.
+       (copied_binfo): New function.
+       (original_binfo): New function.
+       (binfo_for_vbase): Remove.
+
+2003-02-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
+       (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
+       vectors, for speed.
+
+2003-02-18  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/9704
+       * class.c (layout_class_type): In the 3.2 ABI, take into account
+       trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
+
+2003-02-18  Matt Austern <austern@apple.com>
+
+       * cp/cp-lang.c: Change lang hooks so that final_write_globals does
+       nothing for C++.
+       * cp/decl.c (wrapup_globals_for_namespace): Remove special
+       handling of global namespace.
+
 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
 
        * cp-tree.h (rid_to_yy): Delete.
        PR c++/9623
        * decl.c (reshape_init): Don't mess with initializer labels.
 
+       PR c++/9485
+       * parser.c (cp_parser_postfix_expression): Set idk properly for
+       object->scope::member.
+
 2003-02-18  Ben Elliston  <bje@redhat.com>
 
        PR other/7350
 
 2003-02-14   Andrew Pinski <pinskia@physics.uc.edu>
 
-        * decl.c: (define_label): Fix warning for return 0 instead of NULL.
-       
+       * decl.c: (define_label): Fix warning for return 0 instead of NULL.
+
 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        * decl.c: Include "timevar.h".
        (xref_tag): Likewise.
 
        * Make-lang.in (cp/decl.o): Add dependency on timevar.h
-       
+
 2003-02-12  Phil Edwards  <pme@gcc.gnu.org>
 
        * decl.c (build_enumerator):  Remove unneeded test.
        (build_modify_expr): Likewise.
        (build_x_modify_expr): Likewise.
        * typeck2.c (build_x_arrow): Likewise.
-       
+
 2003-01-29  Fariborz Jahanian  <fjahanian@apple.com>
 
-        * pt.c (last_pending_template) Declare GTY().
+       * pt.c (last_pending_template) Declare GTY().
 
 2003-01-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
 
        PR c++/9415
        * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
        already scoped.
-       
+
        PR c++/8545
        * parser.c (cp_parser_cast_expression): Be more tentative.
 
        (cp_parser_expression_statement): Use it.
        (cp_parser_explicit_instantiation): Likewise.
        * pt.c (do_decl_instantiation): Improve error handling logic.
-       
+
 2003-01-22  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/9384
        (dependent_template_arg_p): Likewise.
        (dependent_template_id_p): Likewise.
        (dependent_template_p): Likewise.
-       
+
        PR c++/9285
        PR c++/9294
        * parser.c (cp_parser_simple_declaration): Return quickly when
-        encountering errors.
+       encountering errors.
 
 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        PR c++/9272
        * parser.c (cp_parser_constructor_declarator_p): Do not assume
        that a constructor cannot be declared outside of its own class.
-       
+
        * parser.c (cp_parser_resolve_typename_type): If the scope cannot
        be resolved, neither can the qualified name.
 
 
 2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
 
-        * cfns.gperf: ANSIfy function declarations.
-        * cfns.h: Regenerate.
-        * cp-tree.h: ANSIfy function declarations.
-        * parser.c: ANSIfy function declarations & definitions.
+       * cfns.gperf: ANSIfy function declarations.
+       * cfns.h: Regenerate.
+       * cp-tree.h: ANSIfy function declarations.
+       * parser.c: ANSIfy function declarations & definitions.
 
        * decl.c (bad_specifiers): Fix parameter order error I introduced.
 
        2003-01-09  Geoffrey Keating  <geoffk@apple.com>
 
        Merge to tag pch-merge-20030102:
-       
+
        * semantics.c (finish_translation_unit): Don't call finish_file.
        * parser.c: Don't include ggc.h.
        (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
 
        * Make-lang.in: Remove $(GGC_H) from all dependencies.
        (CXX_TREE_H): Add $(GGC_H).
-       * class.c: Don't include ggc.h. 
+       * class.c: Don't include ggc.h.
        (field_decl_cmp): Make parameters be 'const void *' to match qsort.
        (method_name_cmp): Likewise.
        (resort_data): New variable.
        (register_local_specialization): Revert 2003-01-05 change.
        (instantiate_decl): Use hash_local_specialization when creating
        the local_specializations table.
-       
+
        * decl2.c (mark_used): Do not synthesize thunks.
 
        * class.c (layout_class_type): Correct handling of unnamed
        (register_local_specialization): Use htab_find_slot, not
        htab_find_slot_with_hash.
        (instantiate_decl): Pass a hash function to htab_create.
-       
+
 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * parser.c (cp_parser_binary_expression,
 
 2003-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
 
-       * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C 
+       * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
        front end.
 
 2003-01-03  Matt Austern  <austern@apple.com>
        (finish_file): iterate only through keyed_classes list when
        deciding whether to emit vtables, remove class from its list after
        we do the emission.
-       
+
 2003-01-02  Jason Merrill  <jason@redhat.com>
 
        * call.c (build_conditional_expr): Stabilize lvalues properly.
 
        * parser.c (struct cp_parser): Add access_checks_lists field
        (cp_parser_simple_declaration): Use.
-       (cp_parser_init_declarator): Likewise. 
+       (cp_parser_init_declarator): Likewise.
 
 2003-01-02  Mark Mitchell  <mark@codesourcery.com>