OSDN Git Service

* pt.c (convert_nontype_argument): Fix a typo in an error
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 6a1e2f1..03db715 100644 (file)
-2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
-       * Make-lang.in (C++): Remove
-       (.PHONY): Remove C++
+2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
+
+       * pt.c (convert_nontype_argument): Fix a typo in an error
+       message.
+
+2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
+
+       * decl.c, decl2.c, parser.c: Fix comment typos.  Follow
+       spelling conventions.
+
+2006-05-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20103
+       * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
+       error_mark_node to indicate an initialization is OK.
+       (start_decl): Likewise.  Adjust call to start_decl_1.
+       (start_decl_1): Add initialized parameter.  Simplify.
+       * except.c (initialize_handler_parm): Adjust call to
+       setart_decl_1.
+       (expand_start_catch_block): Let cp_finish_decl initialize catch
+       parameters.
+       * cp-tree.h (start_decl_1): Adjust prototype.
+       * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
+       (instantiate_decl): Let cp_finish_decl handle initialization.
+       * semantics.c (finish_compound_literal): Create a temporary
+       variable for the literal.
+       * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
+       cases.
+       * decl2.c (finish_static_data_member_decl): Don't set
+       DECL_INITIAL.
+       (grokfield): Do not try to initialize functions.
+
+2006-05-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20173
+       * pt.c (determine_specialization): Disallow partial
+       specializations of templates.
+
+2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27716
+       * typeck.c (build_modify_expr): Test arguments for error_operand_p.
+
+       * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
+
+2006-05-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27210
+       * cp-tree.h (cp_save_expr): New function.
+       * init.c (build_new): Correct logic for zero-element array
+       warning.  Use cp_save_expr.
+       * tree.c (cp_save_expr): New function.
+
+2006-05-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27398
+       * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
+       or void_type_node.
+
+2006-05-19  Mike Stump  <mrs@apple.com>
+
+       * typeck.c (default_conversion): Remove static.
+
+2006-05-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/26433
+       * cp-tree.h (begin_function_try_block): Change prototype.
+       (finish_function_handler_sequence): Likewise.
+       * parser.c (cp_parser_function_try_block): Adjust calls.
+       * pt.c (tsubst_expr): Adjust calls.
+       * semantics.c (begin_function_try_block): Create an artificial
+       outer scope.
+       (finish_function_handler_sequence): Close it.
+
+2006-05-18  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27471
+       PR c++/27506
+       * typeck.c (decay_conversion): Convert bitfields to their declared
+       types here.  Improve documentation.  Avoid use of cp_convert.
+       (default_conversion): Make it static.  Perform integral promotions
+       before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
+       conversions.
+       * init.c (build_init): Remove.
+       (expand_default_init): Do not call rvalue.
+       * call.c (null_ptr_cst_p): Robustify.
+       (build_conditional_expr): Tidy.
+       * except.c (build_throw): Do not perform lvalue-to-rvalue
+       conversion on operand before initializing temporary.
+       * tree.c (convert.h): Include it.
+       (convert_bitfield_to_declared_type): Use convert_to_integer, not
+       cp_convert.
+       (rvalue): Don't convert bitfields to their declared type here.
+       * cp-tree.h (build_init): Remove.
+       (default_conversion): Likewise.
+       * typeck2.c (build_m_component_ref): Do not perform
+       lvalue-to-rvalue, function-to-pointer, or array-to-pointer
+       conversions here.  Correct error message.
+
+2006-05-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/26122
+       * decl2.c (check_member_template): Remove checks for virtual
+       functions.
+       * parser.c (cp_parser_function_specifier_opt): Complain about
+       virtual templates.
+       (cp_parser_pure_specifier): Likewise.
+
+       PR c++/26068
+       * parser.c (cp_parser_set_storage_class): Check for 
+       invalid uses of storage classes on unbraced linkage
+       specifications.
+       (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
+       to cp_parser_set_storage_class.
+
+2006-05-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/27491
+       * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
+       on CONSTRUCTORs.
+
+       PR middle-end/27415
+       * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
+       on combined parallel workshare constructs.
+       * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
+
+2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR driver/26885
+       * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
+
+2006-05-15  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27339
+       * cp-tree.h (perform_access_checks): New function.
+       * semantics.c (perform_access_checks): New function.
+       (perform_deferred_access_checks): Use it.
+       * parser.c (cp_parser_simple_declaration): Adjust call to
+       cp_parser_init_declarator.
+       (cp_parser_type_parameter): Do not defer checks in default
+       arguments.
+       (cp_parser_explicit_specialization): Adjust call to
+       cp_parser_single_declaration.
+       (cp_parser_init_declarator): Perform template-parameter access
+       checks. 
+       (cp_parser_parameter_declaration): Do not defer checks for
+       template parameter default arguments.
+       (cp_parser_template_declaration_after_export): Gather access
+       checks for template parameters, and pass them to
+       cp_parser_single_declaration.
+       (cp_parser_template_parameter_access_checks): New function.
+       (cp_parser_single_declaration): Add checks parameter.
+
+       PR c++/27505
+       * call.c (convert_like_real): Convert bitfields to their declared
+       types when forming an rvalue.
+       * tree.c (convert_bitfield_to_declared_type): New function.
+       (rvalue): Use it.
+       * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
+
+2006-05-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27582
+       * pt.c (any_dependent_template_arguments_p): Return early on invalid
+       argument list.
+
+       PR c++/27581
+       * search.c (adjust_result_of_qualified_name_lookup): Skip on
+       invalid context_class.
+
+       PR c++/27315
+       * pt.c (do_decl_instantiation): Return early on invalid decl.
+
+       PR c++/27559
+       * pt.c (push_template_decl_real): Return error_mark_node instead
+       of broken decl.
+
+       PR c++/27496
+       * pt.c (tsubst_friend_class): Return early on invalid friend
+       declarations.
+
+2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
+       (cp/decl2.o): Likewise.
+       (cp/typeck.o): Likewise.
+       (cp/cvt.o): Likewise.
+       (cp/parser.o): Likewise.
+       (cp/call.o): Replace target.h with $(TARGET_H).
+
+2006-05-14  Alexandre Oliva  <aoliva@redhat.com>
+
+       * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
+       COMPONENT_REF alone.
+
+2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27547
+       * decl.c (copy_fn_p): Return early on non-member functions.
+
+2006-05-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27447
+       * decl2.c (build_memfn_type): Skip invalid functions and class types.
+
+2006-05-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27427
+       * pt.c (convert_nontype_argument): Return early on invalid arguments.
+
+       * pt.c (process_template_parm): Remove superfluous temporary.
+
+       PR c++/27430
+       * pt.c (process_template_parm): Handle erroneous non-type parameters.
+
+       PR c++/27423
+       * typeck.c (convert_for_initialization): Skip erroneous types.
+
+       PR c++/27422
+       * typeck.c (convert_arguments): Return early on args with
+       invalid types.
+
+2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR/21391
+       * typeck.c (build_static_cast_1): Save casted types in used types
+       hash table.
+       (build_reinterpret_cast_1): Same.
+       * rtti.c (build_dynamic_cast_1): Same.
+
+2006-05-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/27359
+       * parser.c (cp_parser_omp_for_loop): Only call
+       cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
+       called.
+
+2006-05-02  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27102
+       * decl.c (grokdeclarator): Robustify checks for defining members
+       of incomplete types.
+
+       PR c++/27309
+       * class.c (add_method): Call grok_special_member_properties.
+       * decl.c (grokdeclarator): Don't call it here.
+       (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
+       assignment operator.  Set TYPE_HAS_CONSTURCTOR if DECL is a
+       constructor.
+       (start_method): Don't call grok_special_member_properties.
+       * method.c (implicitly_declare_fn): Likewise.
+       * pt.c (instantiate_class_template): Likewise.
+       * decl2.c (grokfield): Likewise.
+
+2006-05-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/27337
+       * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
+       * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
+       * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
+
+2006-04-30  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27094
+       * pt.c (tsubst_default_argument): Increment function_depth around
+       call to tsubst_expr.
+       * parser.c (cp_parser_parameter_declaration): Likewise.
+       * decl2.c (mark_used): Tidy.
+
+2006-04-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27278
+       * decl.c (grok_op_properties): Skip operators with invalid args
+       when checking for class-type or enum-type args.
+
+2006-04-29  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27279
+       * decl.c (copy_fn_p): Skip functions with invalid first arg.
+
+2006-04-27  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27292
+       * tree.c (rvalue): Convert bitfields to their declared types.
+
+       PR c++/27102
+       * typeck2.c (cxx_incomplete_type_diagnostic): Handle
+       TYPENAME_TYPE.
+
+2006-04-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27292
+       * typeck.c (decay_conversion): Don't adjust bitfield types.
+       (perform_integral_promotions): Treat bitfield enums as enums, not
+       as short integer types.
+       * tree.c (rvalue): Convert bitfields to their correct types.
+
+2006-04-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/19963
+       * class.c (layout_class_type): Skip fields with invalid types.
+
+2006-04-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/26912
+       * cp-tree.h (build_this_parm): Declare.
+       (grok_method_quals): Remove.
+       (build_memfn_type): Declare.
+       (build_artificial_parm): Declare.
+       (do_friend): Remove quals parameter.
+       * decl.c (build_this_parm): New function.
+       (grokfndecl): Use it.  Do not pass quals to grokclassfn.
+       (grokdeclarator): Rename quals to memfn_quals.  Avoid allocating
+       unnecessary TYPE_DECLs.  Correct qualification of member function
+       types.  Tidy.
+       * method.c (implicitly_declare_fn): Use build_this_parm.
+       * friend.c (do_friend): Remove quals parameter.
+       * decl2.c (grok_method_quals): Remove.
+       (build_memfn_type): New function.
+       (build_artificial_parm): Give it external linkage.
+       (grokclassfn): Remove quals parameter.  Do not build "this"
+       PARM_DECL here.
+
+       PR c++/26534
+       * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
+       * typeck.c (is_bitfield_expr_with_lowered_type): New function.
+       (decay_conversion): Convert bitfield expressions to the correct
+       type.
+       (build_modify_expr): Remove spurious conversions.
+       * class.c (layout_class_type): Modify the type of bitfields to
+       indicate a limited range. 
+       * call.c (standard_conversion): Adjust the type of bitfield
+       expressions used in an rvalue context.
+       (build_conditional_expr): Likewise.
+       
+2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       * decl.c: Fix comment typos.
+
+2006-04-21  Eric Christopher  <echristo@apple.com>
+
+       * decl.c: Fix typo in function name.
+
+2006-04-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/26558
+       * parser.c (cp_parser_class_name): Check for invalid typenames.
+       Rearrange code.
+
+       PR c++/26739
+       * pt.c (tsubst_friend_function): Return early if
+       pushdecl_namespace_level fails.
+
+       PR c++/26036
+       * typeck.c (convert_arguments): Return error_mark_node instead of
+       error_mark_list.
+       * cp-tree.h (error_mark_list): Remove declaration.
+       * decl.c (error_mark_list): Remove definition.
+       (cxx_init_decl_processing): Do not initialize error_mark_list.
+
+       PR c++/10385
+       * rtti.c (build_dynamic_cast_1): Check for invalid conversions
+       before calling convert_to_reference.
+       * cvt.c (convert_to_reference): Assert that reftype is a
+       REFERENCE_TYPE.
+
+2006-04-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27102
+       * class.c (currently_open_class): Tidy.
+       * decl.c (grokdeclarator): If we encounter an erroneous
+       declarator, assume that we have already issued an error message
+       and return.  Return error_mark_node instead of NULL_TREE in more
+       places.  Issue errors about function definitions that do not have
+       a function declarator.  Check for complete types for all function
+       definitions.
+       * cp-tree.h (cp_error_declarator): Remove.
+       (currently_open_class): Change return type.
+       * parser.c (cp_parser_id_expression): Add optional_p parameter.
+       (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
+       (cp_parser_id_expression): Likewise.
+       (cp_parser_unqualified_id): If the name is optional, return
+       NULL_TREE.
+       (cp_parser_postfix_dot_deref_expression): Adjust calls.
+       (cp_parser_type_parameter): Likewise.
+       (cp_parser_unqualified_id): Likewise.
+       (cp_parser_direct_declarator): Likewise.
+       (cp_parser_declarator_id): Add optional_p parameter.
+       (cp_parser_function_definition_from_specifiers_and_declarator):
+       Assume that start_function indicates failure only if it has issued
+       an error.
+       (cp_parser_omp_var_list_no_open): Adjust calls.
+
+2006-04-17  Janis Johnson  <janis187@us.ibm.com>
+
+       PR c++/26114, c++/26115
+       * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
+       * class.c (check_field_decls): Ditto.
+
+2006-04-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * init.c (build_offset_ref): Remove superfluous temporary.
+
+2006-04-16  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/26365
+       * typeck.c (finish_class_member_access_expr): Robustify
+
+2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
+
+       * Make-lang.in (cp/pt.o): Depend on vecprim.h.
+       * pt.c: Include vecprim.h.
+       (inline_parm_levels): Change the type to VEC(int,heap) *.
+       (inline_parm_levels_used): Remove.
+       (maybe_begin_member_template_processing,
+       maybe_end_member_template_processing): Use VEC instead of
+       VARRAY.
+
+       * cp/call.c: Fix comment typos.
+
+2006-04-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * parser.c (cp_parser_init_declarator): Initialize local variables
+       aggressively.
+
+2006-04-12  Roger Sayle  <roger@eyesopen.com>
+
+       * parser.c (cp_parser_init_declarator): Initialise
+       is_parenthesized_init to false to avoid compiler warning.
+
+2006-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+       * cp-tree.h (build_operator_new_call): Adjust prototype.
+       (build_new_method_call): Likewise.
+       (build_op_delete_call): Likewise.
+       * init.c (build_raw_new_expr): New function.
+       (build_new_1): Pass information as parameters, rather than
+       bundling it into a NEW_EXPR.
+       (build_new): Adjust accordingly.
+       (build_vec_delete_1): Adjust for changes to build_op_delete_call.
+       (build_delete): Likewise.
+       * decl.c (finish_destructor_body): Likewise.
+       * call.c (build_operator_new_call): Return the allocation function
+       used.
+       (build_op_delete_call): Take allocation function as parameter.
+       (build_special_member_call): Adjust call to build_new_method_call.
+       (build_new_method_call): Return function called.
+       * pt.c (tsubst_copy_and_build): Adjust call to
+       build_new_method_call.
+       * semantics.c (finish_call_expr): Likewise.
+       * parser.c (cp_parser_postfix_expression): Likewise.
+       * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
+       "incomplete", not "undefined", types.
+
+       PR c++/26295
+       * decl.c (grokdeclarator): Remove namespace-handling code for
+       pointers-to-members.
+       * parser.c (cp_parser_ptr_operator): Check for qualified names
+       using namespaces.
+
+       PR c++/26122
+       * parser.c (cp_parser_init_declarator): Adjust logic for deciding
+       whether or not to look for a pure-specifier.
+       (cp_parser_member_declaration): Likewise.
+
+2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
+
+       * decl2.c, pt.c, semantics.c: Fix comment typos.
+
+2006-04-06  Roger Sayle  <roger@eyesopen.com>
+
+       * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
+
+2006-04-05  Jason Merrill  <jason@redhat.com>
+
+       * name-lookup.c (push_namespace_with_attribs): Temporarily disable
+       default hidden visibility for anonymous namespace.
+
+2006-03-29  Roger Sayle  <roger@eyesopen.com>
+
+       PR c++/22494
+       * init.c (build_vec_delete_1): Convert BASE pointer's type to
+       the base pointer type to avoid a type mismatch in the EQ_EXPR.
+
+2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * search.c (maybe_suppress_debug_info): If
+       flag_emit_class_debug_always then don't suppress.
+
+2006-03-22  Jason Merrill  <jason@redhat.com>
+
+        * name-lookup.c (push_namespace_with_attribs): Only apply hidden
+        visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
+
+2006-03-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/26691
+       * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
+
+2006-03-21  Jason Merrill  <jason@redhat.com>
+
+       PR c++/21581
+       * parser.c (cp_parser_declaration): Support attributes on
+       anonymous namespaces.
+       * name-lookup.c (push_namespace_with_attribs): Anonymous
+       namespaces default to hidden visibility.
+
+2006-03-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/21764, c++/19238
+       * decl.c (cp_finish_decl): Call determine_visibility later.
+       (start_preparsed_function): Likewise.
+       * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
+       (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
+       * name-lookup.h (struct cp_binding_level): Add has_visibility
+       bitfield.
+       * name-lookup.c: Include c-pragma.h.
+       (push_namespace_with_attribs): Split out from push_namespace.
+       Push visibility if appropriate.  Set TREE_PUBLIC on namespaces.
+       (leave_scope): Pop visibility if appropriate.
+       * decl2.c (determine_visibility_from_class): Split out from...
+       (determine_visibility): ...here.  Handle function scope and
+       nested classes.
+       (import_export_decl): Move visibility handling to
+       determine_visibility_from_class.
+       * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
+       attributes on namespace declarations.
+
+2006-03-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/6634
+       * decl.c (grokdeclarator): Do not accept long long double.
+       Reorganize checks for invalid (combinations of) type modifiers.
+       Quote modifiers in messages.
+
+2006-03-09  Jason Merrill  <jason@redhat.com>
+
+       PR c++/16387, c++/16389
+       * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
+       (cxx_sizeof_or_alignof_expr): Split out from here.
+
+2006-03-09  Diego Novillo  <dnovillo@redhat.com>
+
+       Merge from gomp-20050608-branch
+
+       2006-02-02  Diego Novillo  <dnovillo@redhat.com>
+
+               * decl.c (pop_labels_1): Use appropriate pointer casting.
+               (poplevel_named_label_1): Likewise.
+               (named_label_entry_hash): Likewise.
+               (named_label_entry_eq): Likewise.
+               (check_goto): Likewise.
+               (define_label): Likewise.
+
+       2006-01-26  Diego Novillo  <dnovillo@redhat.com>
+
+               * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
+               of TREE_BLOCK.
+               * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
+               instead of TREE_CODE/TREE_OPERAND.
+               * semantics.c: Likewise.
+               * parser.c: Likewise.
+
+       2005-11-10  Diego Novillo  <dnovillo@redhat.com>
+
+               * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
+               target does not support TLS.
+
+       2005-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+               * decl.c (redeclaration_error_message): Don't error about
+               DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
+               (olddecl).
+
+       2005-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+               PR c++/24735
+               * semantics.c (finish_omp_barrier, finish_omp_flush): New
+                 functions.
+               * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
+               (cp_parser_omp_flush): Call finish_omp_flush.
+               * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
+                 prototypes.
+
+               PR c++/24734
+               * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
+
+       2005-11-03  Jakub Jelinek  <jakub@redhat.com>
+
+               * semantics.c (finish_omp_threadprivate): Error on class-scope
+               variables.
+
+       2005-11-02  Jakub Jelinek  <jakub@redhat.com>
+
+               * parser.c (cp_parser_omp_all_clauses): If some clause
+               type is not allowed, don't remove just one of the
+               clauses, but all clauses added in that loop round.
+
+               * semantics.c (finish_omp_clauses): Fix function
+               comment. Don't handle non-const or mutable specially,
+               as const and not mutable is predetermined shared and
+               that leads to double error. Don't ICE if copyin var is
+               PARM_DECL.
+
+               PR c++/24613
+               * parser.c (cp_parser_pragma): Diagnose
+               PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
+               construct.
+
+               * semantics.c (finish_omp_threadprivate): Error if V
+                 is automatic variable or has incomplete type.
+
+       2005-11-01  Diego Novillo  <dnovillo@redhat.com>
+
+               * parser.c (cp_parser_omp_all_clauses): Use
+               OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
+
+       2005-11-01  Diego Novillo  <dnovillo@redhat.com>
+
+               * parser.c (cp_parser_omp_all_clauses): When emitting an
+               error message, remove the invalid clause from the list.
+
+       2005-10-31  Diego Novillo  <dnovillo@redhat.com>
+
+               * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
+               combined parallel+workshare directives.
+
+       2005-10-31  Richard Henderson  <rth@redhat.com>
+
+               * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
+               Use cxx_omp_clause_dtor.
+               * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
+               (cxx_omp_clause_dtor): New.
+               * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
+               (cxx_omp_clause_default_ctor): Use it.
+               (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
+               Likewise.
+               (cxx_omp_clause_dtor): New.
+               * semantics.c (finish_omp_clauses): Rewrite cdtor
+               checking to fill in CP_OMP_CLAUSE_INFO.  Don't
+               specialcase LASTPRIVATE for removal.
+               (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
+               cxx_omp_clause_assign_op): Move to cp-gimplify.c.
+
+       2005-10-28  Jakub Jelinek  <jakub@redhat.com>
+
+               * semantics.c (finish_omp_threadprivate): If
+                 DECL_RTL_SET_P, call make_decl_rtl again so that
+                 encode_section_info can update SYMBOL_REF's flags.
+
+       2005-10-26  Jakub Jelinek  <jakub@redhat.com>
+
+               * semantics.c (finish_omp_for): Don't segfault if COND
+               or INCR is NULL.  If not calling c_finish_omp_for
+               right away and one of COND and INCR is NULL, issue
+               error and don't expand anything.
+
+               PR c++/24512
+               * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
+               * semantics.c (finish_omp_for): Likewise.  Set
+               OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
+               into the current statement list if not processing
+               template decl or pass it to c_finish_omp_for.
+
+               * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
+               into PRE_BODY statement list.  Pass it to finish_omp_for.
+               * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
+               OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
+               finish_omp_for.  Put all the statements into sk_omp
+               scope.
+
+       2005-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+               PR c++/24516
+               * parser.c (struct cp_parser): Rename in_iteration_statement
+               field to in_statement.
+               (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
+               (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
+               (cp_parser_new, cp_parser_begin_omp_structured_block,
+               cp_parser_end_omp_structured_block,
+               cp_parser_omp_for_loop): Adjust for
+               in_iteration_statement renaming.
+               (cp_parser_selection_statement): Save
+               parser->in_iteration, or it temporarily with
+               IN_SWITCH_STMT for the
+               cp_parser_implicitly_scoped_statement call.
+               (cp_parser_iteration_statement): Adjust for
+               in_iteration_statement renaming.  Use
+               IN_ITERATION_STMT rather than true.
+               (cp_parser_jump_statement): Adjust for
+               in_iteration_statement renaming and new values.  Don't
+               error on break in a switch statement within OMP_FOR or
+               OpenMP structured block.
+
+               PR c++/24513
+               * parser.c (cp_parser_cache_group): Don't stop if next
+               token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
+               well.  If current token is CPP_PRAGMA, consume
+               everything until CPP_PRAGMA_EOL inclusive.
+
+       2005-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+               PR c++/24502
+               * semantics.c (finish_omp_for): Handle MODOP_EXPR in
+               addition to MODIFY_EXPR.
+
+       2005-10-23  Richard Henderson  <rth@redhat.com>
+
+               * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
+               (bc_label): New.
+               (begin_bc_block, finish_bc_block): Use it.
+               (push_context, pop_context): Remove.
+               (cp_genericize): Don't use them.  Assert bc_label is null.
+               * semantics.c (finish_omp_clauses): Create a fake data
+               element of TYPE for probing ctors.
+
+       2005-10-23  Richard Henderson  <rth@redhat.com>
+
+               * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
+               (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
+               (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
+               (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
+               * semantics.c (finish_omp_clauses): Look through
+               arrays when looking up special member calls.  Also
+               remove FIRSTPRIVATE when LASTPRIVATE fails.
+               (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
+               (cxx_omp_clause_assign_op): New.
+               * cp-tree.h: Declare them.
+
+       2005-10-21  Richard Henderson  <rth@redhat.com>
+
+               * decl.c (check_previous_goto_1): Return false if error.
+               (check_switch_goto): Likewise.
+               (finish_case_label): Don't emit the case label on error.
+               * parser.c (struct cp_parser): Revert
+               in_switch_statement_p changes.
+               (cp_parser_labeled_statement,
+               cp_parser_selection_statement): Likewise.
+               (cp_parser_begin_omp_structured_block): Don't save...
+               (cp_parser_end_omp_structured_block): or restore
+               in_switch_statement_p.
+
+       2005-10-21  Richard Henderson  <rth@redhat.com>
+
+               * semantics.c (finish_omp_threadprivate): Set
+               decl_flags.u2sel when necessary.
+
+       2005-10-21  Richard Henderson  <rth@redhat.com>
+
+               * decl.c (poplevel_named_label_1): Restore creation of the
+               bad_decls list.
+               (decl_jump_unsafe): Check for error_mark_node types.
+               (check_goto): Don't check cdtor_label.  Don't use identify_goto.
+                * semantics.c (finish_return_stmt): Do check_omp_return before
+               converting to cdtor_label goto.
+
+       2005-10-21  Richard Henderson  <rth@redhat.com>
+
+               PR c++/24451
+               * decl.c (check_omp_return): Return false on error.
+               * cp-tree.h (check_omp_return): Update decl.
+               * semantics.c (finish_return_stmt): Avoid adding
+               return on error.
+
+       2005-10-21  Richard Henderson  <rth@redhat.com>
+
+               * cp-tree.h (struct language_function): Remove
+               x_named_label_uses.
+               Change x_named_labels to a hashtable.
+               (check_omp_return): Declare.
+               * decl.c (struct named_label_use_entry): Rename from
+               named_label_use_list.  Remove label_decl.
+               (struct named_label_entry): Rename from
+               named_label_list.  Remove old_value and next.  Change
+               in_try_scope and in_catch_scope to bool. Add
+               in_omp_scope.
+               (pop_labels_1): New.
+               (pop_labels): Use it.
+               (pop_local_label, poplevel_named_label_1): New.
+               (poplevel): Use them.
+               (named_label_entry_hash, named_label_entry_eq): New.
+               (make_label_decl): Create named_labels.  Move label
+               creation bits from lookup_label.
+               (declare_local_label): Tidy.
+               (identify_goto): Split out from ...
+               (check_previous_goto_1): Add exited_omp argument.
+               Handle omp scopes.
+
+               (use_label): Merge into...
+               (check_goto): ... here.  Handle omp scopes.
+               (check_omp_return): New.
+               (check_previous_gotos): Merge into...
+               (define_label): ... here.
+               (save_function_data): Remove x_named_label_uses reference.
+               (finish_function): Likewise.
+               * name-lookup.h (sk_omp): New.
+               * name-lookup.c (begin_scope): Handle it.
+               * parser.c (cp_parser_omp_for): Don't create extra
+               compound stmt.
+
+               (cp_parser_omp_sections): Likewise.
+               * semantics.c (finish_return_stmt): Call check_omp_return.
+               (begin_omp_structured_block): Use sk_omp.
+               (finish_omp_structured_block): Use do_poplevel.  Don't build a
+               MUST_NOT_THROW expression here.
+               (begin_omp_parallel, finish_omp_parallel): Don't create extra
+               compound statements.
+
+       2005-10-21  Diego Novillo  <dnovillo@redhat.com>
+
+               PR 24455
+               * cp/cp-tree.h (struct lang_decl_flags): Add field
+               threadprivate_p.
+               (CP_DECL_IS_THREADPRIVATE): Define.
+               * cp/semantics.c (finish_omp_threadprivate): Set.  Do
+               not error out if CP_DECL_IS_THREADPRIVATE is set
+               already.
+               * cp/decl.c (duplicate_decls): Merge
+               CP_DECL_THREADPRIVATE_P.
+
+       2005-10-20  Richard Henderson  <rth@redhat.com>
+
+               * cp-gimplify.c (cp_gimplify_omp_for): New.
+               (cp_gimplify_expr): Call it.
+               * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
+               * parser.c (struct cp_parser): Rename
+               in_iteration_statement_p to in_iteration_statement and
+               change to unsigned char.  Similarly with
+               in_switch_statement.  Update all users.
+               (IN_OMP_BLOCK, IN_OMP_FOR): New.
+               (cp_parser_labeled_statement): Diagnose case labels
+               binding closer to an openmp block nested than the
+               switch.
+               (cp_parser_jump_statement): Diagnose break and
+               continue labels binding closer to an openmp block than
+               an iteration or switch.
+               (cp_parser_omp_for_loop): Mark in_iteration_statement
+               for an omp for.
+               (cp_parser_begin_omp_structured_block): New.
+               (cp_parser_end_omp_structured_block): New.
+               (cp_parser_omp_structured_block): Use them.
+               (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
+               (cp_parser_omp_parallel): Likewise.
+
+       2005-10-20  Richard Henderson  <rth@redhat.com>
+
+               * semantics.c (begin_omp_structured_block): New.
+               (finish_omp_structured_block): New.
+               (begin_omp_parallel, finish_omp_parallel): Use them.
+               * parser.c (cp_parser_omp_structured_block): Likewise.
+               (cp_parser_omp_for): Likewise.
+               (cp_parser_omp_sections_scope): Likewise.
+               * cp-tree.h: Declare them.
+
+       2005-10-20  Richard Henderson  <rth@redhat.com>
+
+               * parser.c (cp_parser_omp_master): Return the statement.
+               (cp_parser_omp_ordered): Likewise.
+               (cp_parser_omp_construct): Set the locus for them.
+
+       2005-10-19  Richard Henderson  <rth@redhat.com>
+
+               * semantics.c (finish_omp_atomic): Revert to
+               uses_template_parms.
+
+       2005-10-19  Richard Henderson  <rth@redhat.com>
+
+               * semantics.c (finish_omp_clauses): Avoid
+               DECL_THREAD_LOCAL_P on a PARM_DECL.  Remove some
+               stub asserts guaranteed to fail.
+
+       2005-10-19  Richard Henderson  <rth@redhat.com>
+
+               * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
+               (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
+               * parser.c (cp_parser_omp_clause_copyin): Remove.
+               (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.                Call finish_omp_clauses.
+               (cp_parser_omp_clause_if): Don't do error checking here.
+               (cp_parser_omp_clause_num_threads): Likewise.
+               (cp_parser_omp_clause_schedule): Likewise.
+               (cp_parser_omp_atomic): Use finish_omp_atomic.
+               (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
+               Don't decompose assignment statment here.  Use
+               finish_omp_for.
+
+               * pt.c (tsubst_omp_clauses): New.
+               (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
+               OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
+               * semantics.c (finish_omp_clauses): New.
+               (begin_omp_parallel, finish_omp_parallel): Know Less about the
+               internals of the stmt_list stack.
+               (finish_omp_for, finish_omp_atomic): New.
+
+       2005-10-18  Jakub Jelinek  <jakub@redhat.com>
+
+               * semantics.c (cxx_omp_predetermined_sharing): New function.
+               * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
+               * cp-objcp-common.h
+               (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
+
+       2005-10-18  Richard Henderson  <rth@redhat.com>
+
+               * parser.c (cp_parser_omp_single): Use make_node and accessors
+               instead of build.
+
+       2005-10-17  Richard Henderson  <rth@redhat.com>
+
+               * parser.c (cp_parser_omp_for_loop): Handle declarations.
+
+       2005-10-12  Richard Henderson  <rth@redhat.com>
+
+               * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
+               * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
+               (finish_omp_threadprivate): Declare.
+               * parser.c (struct cp_lexer): Add in_pragma.
+               (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
+               when in_pragma.
+               (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
+               (cp_parser_skip_to_end_of_statement): Likewise.
+               (cp_parser_skip_to_end_of_block_or_statement): Likewise.
+               (cp_parser_skip_to_closing_brace): Likewise.
+               (cp_parser_skip_to_pragma_eol): Reset in_pragma.
+               (cp_parser_require_pragma_eol): New.
+               (cp_parser_statement): Add in_compound argument;
+               update all callers.
+               Restart if a non-statement pragma seen outside a
+               compound.
+               (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
+               (cp_parser_declaration_seq_opt): Likewise.
+               (cp_parser_member_specification_opt): Likewise.
+               (cp_parser_function_definition_after_decl): Likewise.
+               (cp_parser_skip_until_found): Likewise.
+               (cp_parser_cache_group): Likewise.
+               (enum pragma_omp_clause, cp_parser_omp_clause_name,
+               check_no_duplicate_clause,
+               cp_parser_omp_var_list_no_open,
+               cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
+               cp_parser_omp_clause_default, cp_parser_omp_clause_if,
+               cp_parser_omp_clause_nowait,
+               cp_parser_omp_clause_num_threads,
+               cp_parser_omp_clause_ordered,
+               cp_parser_omp_clause_reduction,
+               cp_parser_omp_clause_schedule,
+               cp_parser_omp_all_clauses,
+               cp_parser_omp_structured_block, cp_parser_omp_atomic,
+               cp_parser_omp_barrier, cp_parser_omp_critical,
+               cp_parser_omp_flush, cp_parser_omp_for_loop,
+               cp_parser_omp_for, cp_parser_omp_master,
+               cp_parser_omp_ordered, cp_parser_omp_sections_scope,
+               cp_parser_omp_sections, cp_parser_omp_parallel,
+               cp_parser_omp_single, cp_parser_omp_threadprivate,
+               cp_parser_omp_construct): New.
+               (cp_parser_pragma): Handle OpenMP pragmas.
+               * semantics.c (finish_omp_threadprivate): New.
+               (begin_omp_parallel, finish_omp_parallel): New.
+
+       2005-10-11  Richard Henderson  <rth@redhat.com>
+
+               * parser.c (struct cp_token): Add pragma_kind.
+               (eof_token): Initialize it.
+               (cp_lexer_handle_pragma): Remove.
+               (cp_parser_initial_pragma): New.
+               (cp_lexer_new_main): Use it.
+               (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
+               (cp_lexer_print_token): Don't handle CPP_PRAGMA.
+               (cp_parser_skip_to_pragma_eol): New.
+               (cp_parser_error): Use it.
+               (pragma_lex): New.
+
+       2005-10-09  Richard Henderson  <rth@redhat.com>
+
+               * lex.c (parse_strconst_pragma): Update for c_lex name change.
+               (handle_pragma_java_exceptions): Likewise.
+               * parser.c (cp_lexer_new_main): Likewise.
+
+       2005-10-06  Richard Henderson  <rth@redhat.com>
+
+               * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
+               (cp_lexer_handle_pragma): Comment out
+               cpp_handle_deferred_pragma.
+
+       2005-10-01  Richard Henderson  <rth@redhat.com>
+
+               * name-lookup.c (lookup_name): Remove prefer_type argument.
+               (lookup_name_prefer_type): New function.
+               * name-lookup.h (lookup_name_prefer_type): Declare it.
+               * decl.c (lookup_and_check_tag): Use it.
+               * pt.c (tsubst_friend_class): Likewise. Update for
+               lookup_name change.
+               (lookup_template_class, tsubst_copy_and_build): Likewise.
+
+2006-03-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/15759
+       * tree.c (bot_manip): Don't call mark_used.
+
+2006-03-02  Mike Stump  <mrs@apple.com>
+
+       * decl2.c (import_export_decl): Remove redundant call to
+       targetm.cxx.key_method_may_be_inline ().
+
+2006-03-02  Richard Sandiford  <richard@codesourcery.com>
+
+       * decl.c (start_decl): Use have_global_bss_p when deciding
+       whether to make the decl common.
+
+2006-03-01  Mike Stump  <mrs@apple.com>
+
+       PR darwin/25908
+       * decl2.c (import_export_decl): Fix ABI breakage on darwin.
+
+2006-02-24  Geoffrey Keating  <geoffk@apple.com>
+
+       * except.c (expand_start_catch_block): Handle
+       flag_use_cxa_get_exception_ptr.
+
+2006-02-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/26291
+       * decl.c (grok_op_properties): Check for ellipsis in arguments of
+       operators.
+
+2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * Make-lang.in (C++): Remove.
+       (.PHONY): Remove C++.
 
 2006-02-18  Mark Mitchell  <mark@codesourcery.com>
 
 2006-02-12  Jason Merrill  <jason@redhat.com>
 
        PR c++/24996
-       * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the 
+       * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
        TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
 
 2006-02-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
        * repo.c (extract_string, afgets): Use cast when converting from
-       void *. 
+       void *.
 
 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
 2006-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        * call.c (joust): Pass option code to warning.  Use inform for
-       explanation. 
+       explanation.
        * class.c (check_bases): Likewise.
        (maybe_warn_about_overly_private_class): Likewise.
        (check_field_decls): Likewise.
        (pfn_from_ptrmemfunc): Add prototype, make static.
 
 2006-01-24  Dirk Mueller  <dmueller@suse.de>
-       
+
        * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
 
 2006-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR c++/10891
        * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
-       -fno-rtti. 
+       -fno-rtti.
 
 2006-01-21  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/25856
        * decl.c (begin_destructor_body): Robustify.
 
-       PR c++/25858 
+       PR c++/25858
        * parser.c (cp_parser_direct_declarator): Robustify.
-       
+
 2006-01-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        * parser.c (cp_lexer_next_token_is_keyword): Simplify.
 
 2006-01-20  Dirk Mueller  <dmueller@suse.com>
 
-        PR c++/5520
-        * semantics.c (finish_if_stmt): Call empty_body_warning.
-        * parser.c (cp_parser_implicitly_scoped_statement):
-        Mark empty statement with an empty stmt.
+       PR c++/5520
+       * semantics.c (finish_if_stmt): Call empty_body_warning.
+       * parser.c (cp_parser_implicitly_scoped_statement):
+       Mark empty statement with an empty stmt.
 
 2006-01-19  Mark Mitchell  <mark@codesourcery.com>
 
 
 2006-01-04  Chris Lattner  <sabre@gnu.org>
 
-        * typeck2.c: update copyright to 2006
-        (split_nonconstant_init_1):  Set TREE_CONSTANT to true.
+       * typeck2.c: update copyright to 2006
+       (split_nonconstant_init_1):  Set TREE_CONSTANT to true.
 
 2006-01-04  Mark Mitchell  <mark@codesourcery.com>
 
 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
 
        PR C++/24138
-        * decl.c (reshape_init_array_1): Handle max_index of -1.
+       * decl.c (reshape_init_array_1): Handle max_index of -1.
 
 2005-12-06  Roger Sayle  <roger@eyesopen.com>
 
 2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
            Mark Mitchell  <mark@codesourcery.com>
 
-        PR c++/23437
+       PR c++/23437
        * parser.c (cp_parser_template_argument_list): Do not treat
        contents of argument list as part of a constant expression.
 
 
 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
 
-        * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
-        * call.c (add_template_candidate_real): Pass down 'flags' to
-        fn_type_unification.
-        (can_convert_arg): New 'flags' argument. Pass it to call to
-        implicit_conversion instead of LOOKUP_NORMAL.
+       * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
+       * call.c (add_template_candidate_real): Pass down 'flags' to
+       fn_type_unification.
+       (can_convert_arg): New 'flags' argument. Pass it to call to
+       implicit_conversion instead of LOOKUP_NORMAL.
        (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
-        * class.c (resolve_address_of_overloaded_function): Ditto.
-        (resolve_address_of_overloaded_function): Ditto.
-        * decl.c (reshape_init, check_default_argument): Ditto.
-        * typeck.c (build_ptrmemfunc): Ditto.
-        * pt.c (type_unification_real): Add 'flags' argument.
-        (fn_type_unification): Pass 'flags' to type_unification_real.
-        (type_unification_real): Pass new 'flags' argument to call to
-        can_convert_arg.
+       * class.c (resolve_address_of_overloaded_function): Ditto.
+       (resolve_address_of_overloaded_function): Ditto.
+       * decl.c (reshape_init, check_default_argument): Ditto.
+       * typeck.c (build_ptrmemfunc): Ditto.
+       * pt.c (type_unification_real): Add 'flags' argument.
+       (fn_type_unification): Pass 'flags' to type_unification_real.
+       (type_unification_real): Pass new 'flags' argument to call to
+       can_convert_arg.
 
 2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
            Nathan Sidwell  <nathan@codesourcery.com>
 
        PR c++/21799
        PR c++/8271
-        * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
+       * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
        explicitly.
 
 2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>
        diagnostics.
 
 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
-            Joseph S. Myers  <joseph@codesourcery.com>
+           Joseph S. Myers  <joseph@codesourcery.com>
 
        * error.c (location_of): Add comment.
        (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
        * pt.c (instantiate_class_template,
        resolve_typename_type): Likewise.
 
-2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aaachen.de>
+2005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR c++/14136
        * parser.c (cp_parser_unqualified_id): Do not issue error message