OSDN Git Service

* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 8b104c7..1b89a1d 100644 (file)
@@ -1,3 +1,822 @@
+2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * g++spec.c, lex.c: Avoid ` as left quote in diagnostics.
+
+2004-11-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17473
+       * name-lookup.c (supplement_binding): Do not allow typedefs to be
+       redefined in class scope.
+
+       PR c++/18285
+       * parser.c (cp_parser_set_decl_type_spec): Do not try to allow
+       redefinitions of builtin types other that "bool" or "wchar_t".
+
+2004-11-24  Steven Bosscher  <stevenb@suse.de>
+
+       * decl.c (cxx_init_decl_processing): Don't clear
+       flag_inline_functions.
+
+2004-11-24  Mark Mitchell  <mark@codesourcery.com>
+
+       * pt.c (tsubst_function_type): Do not permit function types which
+       return arrays or functions.
+
+       PR c++/18586
+       * parser.c (cp_parser_init_declarator): Do not pop scope twice.
+
+       PR c++/18530
+       * cp-tree.h (CTOR_NAME): Remove.
+       (DTOR_NAME): Remove.
+       * decl.c (initialize_predefined_identifiers): Add spaces to the
+       end of constructor and destructor names.
+
+2004-11-24  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/8929
+       * decl.c (start_decl): Check for invalid specialization headers.
+
+2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR c++/16882
+
+       * call.c (standard_conversion): Move check for conversions between
+       vector pointers...
+       * typeck.c (ptr_reasonably_similar): ... here.
+
+2004-11-23  Ben Elliston  <bje@au.ibm.com>
+
+       * cp-tree.h (context_as_string): Remove extern.
+       * error.c (context_as_string): Remove.
+
+       * cp-tree.h (cp_type_qual_from_rid): Remove extern.
+       * lex.c (cp_type_qual_from_rid): Remove.
+
+       * cp-tree.h (do_poplevel): Remove extern.
+       (check_multiple_declarators): Likewise.
+       * semantics.c (do_poplevel): Make static.
+       (check_multiple_declarators): Remove.
+
+       * cp-tree.h (check_final_overrider): Remove extern.
+       * search.c (check_final_overrider): Make static.
+
+       * cp-tree.h (build_artificial_parm): Remove extern.
+       * decl2.c (build_artificial_parm): Make static.
+
+2004-11-22  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/18354
+       * typeck.c (build_unary_op) <CONVERT_EXPR, NEGATE_EXPR>: Unify code.
+       Make sure the result is always a rvalue.
+
+2004-11-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       * decl.c (start_preparsed_function): Call check_function_type even
+       in templates.
+       (require_complete_types_for_parms): Skip dependent types.
+       (check_function_type): Likewise.
+
+2004-11-16  Steven Bosscher  <stevenb@suse.de>
+
+       * Make-lang.in (cp/decl.o, cp/search.o): Don't depend on stack.h.
+       * search.c: Don't include it.
+
+2004-11-15  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * cp-gimplify.c: Include pointer-set.h
+       (cp_genericize_r): Use pointer_sets instead of a hashtable.
+       Also instert the new statement for CLEANUP_STMT.
+       (cp_genericize): Use pointer_sets instead of a hashtable.
+       * Make-lang.in (cp-gimplify.o): Depend on pointer-set.h.
+
+2004-11-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       Friend class name lookup 1/n, PR c++/18471
+       * decl.c (lookup_and_check_tag): New function.
+       (xref_tag, start_enum): Use it.
+       (check_elaborated_type_specifier): Move TEMPLATE_TYPE_PARM check
+       before !DECL_IMPLICIT_TYPEDEF_P.  Also display previously declared
+       location.
+       * name-lookup.c (lookup_name_current_level): Rename to ...
+       (lookup_name_innermost_nonclass_level): ... this.
+       (lookup_type_scope): New function.
+       * name-lookup.h (lookup_name_current_level): Rename to ...
+       (lookup_name_innermost_nonclass_level): ... this.
+       (lookup_type_scope): Add declaration.
+
+2004-11-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/17344
+       * pt.c (coerce_template_parms): Only emit error message about
+       invalid template argument when TF_ERROR.
+
+2004-11-12  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18389
+       * decl.c (start_decl): Make sure to set *pop_scope_p.  Return
+       error_mark_node to indicate errors.
+
+       PR c++/18429
+       * parser.c (cp_parser_direct_declarator): Disallow non-constant
+       array bounds when not inside a function.
+
+       PR c++/18436
+       * pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
+       unqualified name resolves to a member function.
+
+       PR c++/18407
+       * pt.c (tsubst_copy_and_build): Handle qualified names used from a
+       derived class correctly.
+       
+       * decl2.c (import_export_decl): Fix typo in comment.
+       * tree.c (pod_type_p): Likewise.
+
+2004-11-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * typeck.c (cxx_mark_addressable): Add braces around the first if.
+
+2004-11-10  Adam Nemet  <anemet@lnxw.com>
+
+       PR middle-end/18160  
+       * typeck.c (cxx_mark_addressable): Issue an error if address of an
+       explicit register variable is requested.
+
+2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18143
+       * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New.
+       (struct lang_decl_flags): Add thunk_p flag.
+       (struct lang_decl): Remove separate fixed_offset. Place
+       cloned_function and fixed_offset into union.
+       (DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust.
+       (DECL_THUNK_P, SET_DECL_THUNK_P): Adjust.
+       (THUNK_FIXED_OFFSET): Adjust.
+       * method.c (make_thunk): Adjust.
+
+2004-11-09  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18369
+       * init.c (build_new_1): Handle parenthesized type-ids that name an
+       array type.  Tidy.
+
+2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
+       pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
+       quoting in diagnostics.
+       * parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
+       quoting in printf format.
+       * decl.c (duplicate_decls, start_decl): Use %qD instead of
+       unquoted %D.
+
+2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * class.c, decl.c, lex.c, name-lookup.c, parser.c, pt.c,
+       search.c, typeck2.c: Fix comment formatting.
+
+2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
+       
+       PR tree-optimization/18184
+       * cp-objcp-common.c (cxx_types_compatible_p): Do not treat pointers
+       of different modes or alias-all flags as equivalent.
+       * typeck.c (comptypes): Likewise.
+
+2004-11-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       DR 49, 100
+       * cp-tree.h (TYPE_REF_OBJ_P): New macro.
+       (TYPE_PTR_P, TYPE_PTROB_P, TYPE_PTROBV_P, TYPE_PTRFN_P,
+       TYPE_REFFN_P): Document.
+       (fold_decl_constant_value): New prototype.
+       * pt.c (convert_nontype_argument_function): Rewrite and extract
+       parts into...
+       (fold_decl_constant_value, convert_nontype_argument_function): New.
+       (lookup_template_class): Add comment about useless double call.
+       * mangle.c (write_expression): Strip conversions before lowering
+       pointer to members.
+       * cvt.c (ocp_convert): Check LOOKUP_COMPLAIN for a pedwarn. Disallow
+       enum to enum conversion.
+
+2004-11-02  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18124
+       * parser.c (cp_parser_type_parameter): Robustify.
+
+       PR c++/18155
+       * parser.c (cp_parser_single_declaration): Disallow template
+       typedefs.
+
+       PR c++/18177
+       * typeck.c (build_const_cast): Use error_operand_p.
+
+2004-11-02  Ziemowit Laski  <zlaski@apple.com>
+
+       * cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
+       (LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
+       * cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
+       from cp-lang.c.
+       * cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
+       from cp-lang.c.
+       (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.
+
+2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18064
+       * search.c (check_final_overrider): Deprecate gnu covariant extension.
+
+2004-10-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       Convert diagnostics to use quoting flag q 9/n
+       * typeck.c (build_x_unary_op, convert_member_func_to_ptr, 
+       get_delta_difference):  Use new quotation style.
+       * repo.c (reopen_repo_file_for_write): Likewise.
+       * pt.c (do_type_instantiation): Likewise.
+       * parser.c (cp_parser_diagnose_invalid_type_name): 
+       * name-lookup.c (push_overloaded_decl, set_decl_namespace): 
+       * error.c (cp_print_error_function,
+       print_instantiation_full_context): Likewise.
+       * decl.c (define_label, grok_reference_init, 
+       maybe_deduce_size_from_array_init, revert_static_member_fn): 
+       * decl2.c (check_classfn): Likewise.
+       * class.c (add_method, check_field_decls, layout_class_type, 
+       resolve_address_of_overloaded_function): Likewise.
+       * call.c (build_x_va_arg, build_over_call): Likewise.
+
+2004-10-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       Convert diagnostics to use quoting flag q 8/n
+       * cvt.c (cp_convert_to_pointer, warn_ref_binding, 
+       convert_to_reference, ocp_convert, convert_to_void 
+       cp_convert_to_pointer): Use new quotation style.
+
+2004-10-31  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/15172
+       * typeck2.c (store_init_value): Use split_nonconstant_init even
+       for types that require construction.
+       
+1004-10-28  Matt Austern  <austern@apple.com>
+
+       PR c++/17542
+       * cp-tree.h (class_key_or_enum_as_string): Declare.
+       * error.c (class_key_or_enum): Rename to class_key_or_enum_as_string
+       and remove static qualifier.
+       * decl.c (shadow_tag): Warn about ignored attributes in class/struct/
+       union/enum declaration.
+       
+2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * pt.c: Fix a comment typo.
+
+2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * typeck.c (composite_pointer_type): Remove comment about DR 195.
+       (build_reinterpret_cast_1): Revert DR195 patch. Only emit a
+       warning when being pedantic.
+       (build_reinterpet_cast, build_c_cast): Adjust.
+
+2004-10-29  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17695
+       * decl.c (grokdeclarator): Mark TYPE_DECLs as abstract when they
+       appear in a constructor/destructor that will be cloned.
+
+1004-10-28  Matt Austern  <austern@apple.com>
+
+       PR c++/14124
+       * decl.c (finish_enum): Handle packed attribute.
+       * parser.c (cp_parser_enum_specifier): Process trailing attributes.
+       
+2004-10-28  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17132
+       * pt.c (instantiate_class_template): Increment
+       processing_template_decl when substituting into a member class
+       template.
+
+2004-10-27  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17435
+       * call.c (convert_like_real): Fix formatting.
+       (initialize_reference): When binding a temporary to a base class,
+       ensure that the nominal copy made is to the derived class, not the
+       base class.
+
+       PR c++/18140
+       * parser.c (cp_parser_next_token_ends_template_argument_p): Do not
+       include ">>".
+
+2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * decl.c (bad_specifiers): Move the q after the %.
+
+2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * parser.c (cp_parser_diagnose_invalid_type_name): Move the q after
+       the %.
+
+2004-10-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * name-lookup.c (do_namespace_alias): Use FROB_CONTEXT.
+       * search.c (current_scope): Fix prototype.
+
+       PR c++/18093
+       * search.c (current_scope): Return the innermost non-block scope,
+       not the innermost non-block, non-namespace scope.
+       (at_namespace_scope_p): Adjust accordingly.
+       (dfs_accessible_post): Do not pass namespaces to is_friend.
+       (dfs_walk_once_accessible_r): Likewise.
+       * decl.c (grokvardecl): Adjust call to current_scope.
+       (build_enumerator): Likewise.
+       * parser.c (cp_parser_using_declaration): Likewise.
+       (cp_parser_direct_declarator): Use at_namespace_scope_p instead of
+       current_scope.
+       (cp_parser_class_head): Adjust call to current_scope.
+       * name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
+       alias.
+
+       PR c++/18020
+       * pt.c (tusbst_copy_and_build): Resolve enumeration constants to
+       their underlying values.
+
+       PR c++/18161
+       * typeck.c (build_binary_op): Honor build_type, even when in a
+       template.
+
+2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * parser.c (cp_lexer_get_preprocessor_token): Remove unneeded
+       padding token checking.
+
+2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/18121
+       * decl.c (grokdeclarator) <case cdk_array>: Remove the call
+       layout_type as it is already done by create_array_type_for_decl.
+
+2004-10-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18095
+       * parser.c (eof_token): Make const, correctly initialize rid and
+       location fields.
+       (struct cp_lexer): Replace buffer_end pointer with buffer_length
+       count. Adjust.
+       (cp_lexer_new_main): Directly grow lexer's buffer here.  Don't
+       zero it out.
+       (cp_lexer_new_from_tokens): Adjust.
+       (cp_lexer_grow_buffer): Remove.
+       (cp_lexer_peek_nth_token, cp_lexer_consume_token,
+       cp_lexer_purge_token): Add const casts.
+
+2004-10-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18073
+       PR c++/10841
+       * cp-tree.h (convert_to_base): Change prototype.
+       (build_ptrmemfunc): Likewise.
+       (convert_ptrmem): New function.
+       * call.c (struct conversion): Adjust documentation for base_p.
+       (standard_conversion): Set base_p for ck_pmem conversions as
+       appropriate.
+       (convert_like_real): Use convert_to_base for ck_pmem and ck_ptr
+       conversions.
+       * class.c (convert_to_base): Handle both pointers and objects.
+       Add nonnull parameter.
+       (build_vfield_ref): Adjust call to convert_to_base.
+       * cvt.c (cp_convert_to_pointer): Adjust call to build_ptrmemfunc.
+       (convert_force): Likewise.
+       * typeck.c (build_unary_op): Likewise.
+       (convert_ptrmem): New function.
+       (build_static_cast_1): Use it.
+       (build_reinterpret_cast): Allow conversions to vector types.
+       (get_delta_difference): Add c_cast_p parameter.
+       (build_ptrmemfunc): Likewise.  Adjust calls to
+       get_delta_difference.
+
+2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/13560
+       * error.c (cp_error_at): Output the context as it might be
+       different file as the other location.
+
+2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * typeck.c: Fix a comment typo.
+
+2004-10-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/13495
+       * decl.c (make_unbound_class_template): Add PARM_LIST parameter.
+       * cp-tree.h (make_unbound_class_template): Adjust prototype.
+       * parser.c (cp_parser_lookup_name): Adjust call to
+       make_unbound_class_template.
+       (cp_parser_single_declaration): Handle member class of class
+       template as template friend parsing correctly.
+       * friend.c (is_friend): Call is_specialization_of_friend for
+       template friend class.
+       (make_friend_class): Handle member class of class template as
+       template friend.
+       * pt.c (is_specialization_of_friend): Likewise.
+       (instantiate_class_template): Likewise.
+       (tsubst): Adjust call to make_unbound_class_template.
+
+2004-10-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * typeck.c (composite_pointer_type): Add comment about DR 195
+       (build_reinterpret_cast_1): Add for_reinterpret_cast_p parameter.
+       Allow function pointer conversions that DR195 suggests.
+       (build_reinterpret_cast, build_c_cast): Update
+       build_reinterpret_cast_1 calls. 
+
+2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * call.c, typeck.c: Fix comment typos.
+
+2004-10-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * parser.c (cp_token_position): New typedef. Define VEC thereof.
+       (struct cp_lexer): Allow buffer and buffer_end to be NULL. Make
+       next_token and last_token cp_token_position. Make saved_tokens a
+       VEC(cp_token_position).
+       (eof_token): New static variable.
+       (CP_SAVED_TOKENS_SIZE): Rename to ...
+       (CP_SAVED_TOKEN_STACK): ... here.
+       (cp_lexer_new_main): Adjust main lexer creation and buffer
+       filling.
+       (cp_lexer_new_from_tokens): Do not copy the tokens, merely point
+       to the parent buffer.  Do not append eof token.
+       (cp_lexer_destroy): Only free buffer if non-NULL. Free token
+       stack.
+       (cp_lexer_next_token, cp_lexer_prev_token): Remove.
+       (cp_lexer_token_position, cp_lexer_token_at): New.
+       (cp_lexer_saving_tokens): Adjust. Make inline.
+       (cp_lexer_advance_token, cp_lexer_token_difference): Remove.
+       (cp_lexer_peek_token_emit_debug_info): Fold into ...
+       (cp_lexer_peek_token): ... here.
+       (cp_lexer_peek_nth_token): Don't peek past EOF.
+       (cp_lexer_consume_token): Set next_token to eof_token, if reaching
+       EOF.
+       (cp_lexer_purge_token): Adjust eof setting.
+       (cp_lexer_purge_tokens_after): Likewise.
+       (cp_lexer_save_tokens): Push next_token directly.
+       (cp_lexer_commit_tokens): Adjust.
+       (cp_lexer_rollback_tokens): Pop next_token directly.
+       (cp_parser_check_for_invalid_template_id): Adjust token purging.
+       (cp_parser_translation_unit): Do not consume the EOF.
+       (cp_parser_nested_name_specifier_opt): Adjust token purging.
+       (cp_parser_template_id, cp_parser_template_name): Likewise.
+
+2004-10-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/14035
+       * call.c (struct conversion): Add base_p.
+       (convert_like): Add c_cast_p argument.
+       (convert_like_with_conversion): Likewise.
+       (build_conv): Clear base_p.
+       (standard_conversion): Set it, for derived-to-base conversions.
+       (convert_like_real): Add c_cast_p parameter.  Handle pointer
+       conversions directly rather than relying on ocp_convert.
+       (perform_direct_initialization_if_possible): Add c_cast_p
+       parameter.
+       * cp-tree.h (perform_direct_initialization_if_possible): Change
+       prototype.
+       (convert_member_func_to_ptr): New function.
+       * typeck.c (check_for_casting_away_constness): Add diag_fn
+       parameter.
+       (build_static_cast_1): New function, split out from ...
+       (build_static_cast): ... here.  Use build_static_cast_1.
+       (build_reinterpret_cast_1): New function, split out from ...
+       (build_reinterpret_cast): ... here.  Use build_reinterpret_cast_1.
+       (build_const_cast_1): New function, split out from ...
+       (build_const_cast): ... here.  Use build_const_cast_1.
+       (build_c_cast): Rewrite to use build_const_cast_1,
+       build_static_cast_1, and build_reinterpret_cast_1.
+       (convert_member_func_to_ptr): New function.
+
+2004-10-19  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR c++/18047
+       * parser.c (enum cp_parser_prec): Give relational expressions
+       a higher precedence than equality expressions.
+
+2004-10-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Adjust lookup_base call.
+       (ACCESSIBLY_UNIQUELY_DERIVED_P): Remove.
+       (PUBLICLY_UNIQUELY_DERIVED_P): Adjust lookup_base call.
+       (enum base_access): Reorganize.
+       (accessible_base_p, accessible_p): Add consider_local_p parameter.
+       * call.c (standard_conversion): Update comment about
+       DERIVED_FROM_P.
+       (enforce_access): Adjust accessible_p call.
+       (build_over_call): Adjust accessible_base_p call.
+       * class.c (convert_to_base): Adjust lookup_base call.
+       (build_vtbl_ref_1): Likewise.
+       (warn_about_ambiguous_bases): Likewise. Add early exit.
+       * cvt.c (convert_to_pointer_force) Adjust lookup_base call.
+       * search.c (accessible_base_p): Add consider_local_p parameter.
+       (lookup_base): Pass consider_local_p to accessible_base_p call.
+       (friend_accessible_p): Check whether scope is a class member.
+       Remove unnecessary class template check.
+       (accessible_p): Add consider_local_p parameter. Use it.
+       (adjust_result_of_qualified_name_lookup): Adjust lookup_base call.
+       * tree.c (maybe_dummy_object): Likewise.
+       * typeck.c (comp_except_type): Use PUBLICLY_UNIQUELY_DERIVED_P.
+       (build_class_member_access_expr): Adjust lookup_base call.
+       * typeck2.c (binfo_or_else): Likewise.
+       * rtti.c (build_dynamic_cast_1): Access can consider friendship
+       and current scope.
+
+2004-10-17  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/17743
+       * decl2.c (grokfield): Apply attributes also to TYPE_DECLs.
+
+2004-10-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/10479
+       * parser.c (cp_parser_parenthesized_expression_list): Fold
+       non-dependent expressions in attribute lists.
+
+2004-10-15  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17042
+       * decl.c (declare_global_var): Use the return value from pushdecl.
+
+       PR c++/14667
+       * parser.c (cp_parser_simple_declaration): Do not diagnose invalid
+       type names if we have already found a valid type.
+       (cp_parser_member_declaration): Likewise.
+       
+       PR c++/17916
+       * parser.c (cp_parser_member_specification_opt): Handle
+       CPP_PRAGMA.
+
+2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * dump.c, g++spec.c, repo.c: Update copyright.
+
+2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * decl.c: Fix a comment typo.
+
+2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/16301
+       * name-lookup.c (parse_using_directive): If we have a
+       error_mark_node, do not set the decl namespace associations
+       on it.
+
+2004-10-14  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17976
+       * decl.c (cp_finish_decl): Do not call expand_static_init more
+       than once for a single variable.
+
+2004-10-14  Matt Austern  <austern@apple.com>
+
+       * Make-lang.in (pt.o): depends on pointer-set.h
+       * cp-tree.h (cp_walk_subtrees): Last argument is pointer_set_t* now.
+       * pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t
+       (for_each_template_parm): Convert from htab_t to pointer_set_t.
+       * tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now.
+       
+2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/17661
+       * semantics.c (finish_for_expr): Convert expression to void
+       so that we don't create temporaries for a?b:c.
+
+2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * search.c: Fix a comment typo.
+
+2004-10-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * class.c (dfs_modify_vtables): Simplify condition. Return
+       dfs_skip_bases as appropriate.
+       (modify_all_vtables): Walk in pre-order.
+       * search.c (dfs_walk_all, dfs_walk_once_r,
+       dfs_walk_once_accessible_r): Assert post order function never
+       returns dfs_skip_bases.
+
+       * search.c (struct lookup_base_data_s): New.
+       (lookup_base_r): Replace with ...
+       (dfs_lookup_base): ... this.
+       (lookup_base): Use dfs_walk_all.
+
+2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * search.c: Fix comment typos.
+
+2004-10-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/15786
+       * parser.c (cp_parser_declarator): Add member_p parameter. 
+       (cp_parser_condition): Adjust calls to cp_parser_declarator.
+       (cp_parser_explicit_instantiation): Likewise.
+       (cp_parser_init_declarator): Likewise.
+       (cp_parser_direct_declarator): Add member_p parameter.  Do not
+       parse tentatively when parsing the parameters to a member.
+       (cp_parser_type_id): Adjust calls to cp_parser_declarator.
+       (cp_parser_parameter_declaration): Likewise.
+       (cp_parser_member_declaration): Likewise.
+       (cp_parser_exception_declaration): Likewise.
+
+       PR c++/17936
+       * cp-tree.h (CLASSTYPE_TEMPLATE_SPECIALIZATION): Add a comment.
+       * pt.c (optimize_specialization_lookup_p): Do not optimize lookups
+       for members of partial or explicit specializations.
+
+       PR c++/17929
+       * decl2.c (finish_anon_union): Robustify.
+
+2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (get_dynamic_cast_base_type): Rename to ...
+       (dcast_base_hint): ... here.
+       * rtti.c (build_dynamic_cast_1): Use dcast_base_hint.
+       * search.c (struct dcast_data_s): New.
+       (dynamic_cast_base_recurse): Remove. Replace with ...
+       (dfs_dcast_hint_pre, dfs_dcast_base_post): ... these. New.
+       (get_dynamic_cast_base_type): Rename to ...
+       (dcast_base_hint): ... here.  Use dfs_walk_once_accessible.
+       (accessible_r): Remove.
+       (dfs_accessible_post): New, broken out of accessible_r.
+       (accessible_p): Use dfs_walk_once_accessible.
+       (dfs_walk_once_accessible_r): New. From accessible_r.
+       (dfs_walk_once_accessible): New. From acessible_p.
+
+       * cp-tree.h (SAME_BINFO_TYPE_P): New.
+       * class.c (build_base_path): Use SAME_BINFO_TYPE_P to compare
+       binfo types.
+       (convert_to_base_statically, determine_primary_bases,
+       update_vtable_entry_for_fn, dfs_modify_vtables, build_vtt_inits,
+       dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
+       accumulate_vtbl_inits, dfs_accumulate_vtbl_inits,
+       build_vtbl_initializer, add_vcall_offset_vtbl_entries_1): Likewise.
+       * init.c (expand_member_init): Likewise.
+       * search.c (lookup_base_r, dynamic_cast_base_recurse,
+       binfo_via_virtual, copied_binfo, binfo_for_vbase,
+       original_binfo): Likewise.
+       * tree.c (copy_binfo): Likewise.
+
+2004-10-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * semantics.c: Fix comment typos.
+
+2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/17554
+       part of c++/17657
+       middle-end/17703
+       * semantics.c (maybe_cleanup_point_expr): Call
+       fold_build_cleanup_point_expr.
+       (maybe_cleanup_point_expr_void): New function.
+       (add_decl_expr): Call maybe_cleanup_point_expr_void.
+       (finish_expr_stmt): Likewise.
+       (finish_return_stmt): Likewise.
+       (finish_for_expr): Likewise.
+       (finish_asm_stmt): Likewise.
+       * typeck.c (condition_conversion): Call
+       fold_build_cleanup_point_expr.
+
+2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/17907
+       * semantics.c (add_decl_expr): If the decl has a size which
+       has side effects then the decl expression needs a cleanup point.
+
+2004-10-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17393
+       * decl.c (grokdeclarator): Robustify error-recovery on invalid
+       declarations.
+
+2004-10-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       Convert diagnostics to use quoting flag q 7/n
+       * typeck.c (composite_pointer_type_r, composite_pointer_type, 
+       cxx_sizeof_or_alignof_type, cxx_sizeof_or_alignof_expr, 
+       string_conv_p, build_class_member_access_expr, 
+       build_class_member_access_expr, lookup_destructor, 
+       finish_class_member_access_expr, build_indirect_ref, 
+       get_member_function_from_ptrfunc, build_function_call, 
+       convert_arguments, build_binary_op, pointer_diff, build_unary_op, 
+       check_for_casting_away_constness, build_static_cast, 
+       build_reinterpret_cast, build_const_cast, build_c_cast, 
+       build_modify_expr, get_delta_difference, build_ptrmemfunc, 
+       dubious_conversion_warnings, convert_for_assignment, 
+       convert_for_initialization, 
+       maybe_warn_about_returning_address_of_local, check_return_expr): 
+       Use quoting marks.
+
+       * typeck2.c (error_not_base_type, readonly_error, 
+       abstract_virtuals_error, cxx_incomplete_type_diagnostic, 
+       store_init_value, digest_init, build_x_arrow, 
+       build_m_component_ref, require_complete_eh_spec_types): Likewise.
+
+       * tree.c (cp_build_qualified_type_real, 
+       handle_java_interface_attribute, handle_init_priority_attribute):
+       Likewise.
+
+       * semantics.c (finish_asm_stmt, finish_non_static_data_member, 
+       finish_pseudo_destructor_expr, 
+       check_template_template_default_arg, begin_class_definition, 
+       finish_base_specifier, qualified_name_lookup_error, 
+       finish_id_expression, finish_typeof): Likewise.
+
+       * search.c (lookup_base, check_final_overrider,
+       look_for_overrides_r): Likewise.
+
+       * rtti.c (get_tinfo_decl, build_dynamic_cast_1): Likewise.
+
+2004-10-09  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17867
+       * error.c (dump_expr): Correct handling of AGGR_INIT_EXPRs using a
+       constructor.
+
+       PR c++/17670
+       * init.c (build_new): Correct comments.
+       * parser.c (cp_parser_new_expression): Use NULL_TREE for nelts in
+       the non-array case.
+
+       PR c++/17821
+       * parser.c (cp_parser_postfix_dot_deref_expression): If the
+       pseduo-destructor-name production does not work, fall back to the
+       ordinary production.
+
+       PR c++/17826
+       * tree.c (cp_tree_equal): Handle a BASELINK.
+
+       PR c++/17524
+       * cp-tree.h (check_var_type): New function.
+       * decl.c (check_var_type): New function, split out from ...
+       (grokdeclarator): ... here.
+       * pt.c (tsubst_decl): Use check_var_type.
+
+       PR c++/17685
+       * decl.c (grokdeclarator): Disallow declarations of operators as
+       non-functions.
+       
+2004-10-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/17868
+       * error.c (dump_expr): Add missing case for RDIV_EXPR.
+
+2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * pt.c, search.c: Fix comment typos.
+
+2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cp-tree.h (dfs_walk, dfs_walk_real, dfs_unmark, markedp,
+       unmarkedp): Remove.
+       (dfs_skip_bases, dfs_walk_all, dfs_walk_once): New.
+       * class.c (struct find_final_overrider_data): Remove most_derived,
+       vpath_list and vpath fields.  Add path field.
+       (dfs_find_final_ocerrider_1): Add DEPTH parameter. Adjust.
+       (dfs_find_final_overrider): Rename to ...
+       (dfs_find_final_overrider_pre): ... here. Adjust.
+       (dfs_find_final_overrider_post): Adjust.
+       (dfs_find_final_overrider_q): Fold into
+       dfs_find_final_overrider_pre.
+       (find_final_overrider): Adjust dfs searching.
+       (dfs_modify_vtables): Don't mark binfo here.
+       (modify_all_vtables): Use dfs_walk_once.
+       (build_vtt_inits): Likwise. Use dfs_walk_all.
+       (dfs_build_secondary_vptr_vtt_inits): Don't mark binfo here.
+       Return dfs_skip_bases as appropriate.
+       (dfs_fixup_binfo_vtbls): Return dfs_skip_bases as appropriate.
+       * init.c (dfs_initialized_vtbl_ptrs): Return dfs_skip_bases as
+       appropriate. Don't mark binfo here.
+       (initialize_vtbl_ptrs): Use dfs_walk_once.
+       * search.c (struct vbase_info): Remove unused struct.
+       (access_in_type): Use dfs_walk_once.
+       (dfs_access_in_type): Don't mark binfo here.
+       (dfs_accessible_queue_p, dfs_accessible_p) Remove.
+       Fold into ...
+       (accessible_r): ... here. New. Specialize dfs_walk_once.
+       (accessible_p): Use accessible_r.
+       (lookup_field_queue_p): Remove. Fold into ...
+       (lookup_field_r): ... here. Adjust.
+       (lookup_member): Use dfs_walk_all.
+       (dfs_walk_real, dfs_walk): Replace with ...
+       (dfs_walk_all, dfs_walk_once): ... these.
+       (dfs_walk_once_r, dfs_unmark_r): Workers for dfs_walk_once.
+       (dfs_unmark, unmarkedp, markedp): Remove.
+       (dfs_get_pure_virtuals): Don't mark binfo here.
+       (get_pure_virtuals): Use dfs_walk_once.
+       (dfs_debug_unmarked_p): Remove. Fold into ...
+       (dfs_debug_mark): ... here.
+       (note_debug_info_needed): Use dfs_walk_all.
+
+2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * pt.c (tsubst_expr) <case ASM_EXPR>: Look passed the
+       CLEANUP_POINT_EXPR to get the asm expression.
+
 2004-10-07  Mark Mitchell  <mark@codesourcery.com>
 
        * cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.