OSDN Git Service

* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 2d99992..3019b86 100644 (file)
@@ -1,3 +1,354 @@
+2005-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl2.c (determine_visibility): Don't use export_class_data.
+       (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
+       TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY. 
+
+2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cp-tree.h (cxx_alignof): Remove.
+
+       * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
+
+       * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
+       CONV_STATIC_CAST): Remove.
+
+       * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
+
+       * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
+
+       * cp-tree.h (cp_deprecated): Remove.
+
+2005-04-08  Ian Lance Taylor  <ian@airs.com>
+
+       * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
+       CONTINUE_STMT, SWITCH_STMT.
+       * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
+       BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
+       (WHILE_COND, WHILE_BODY): Define.
+       (DO_COND, DO_BODY): Define.
+       (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
+       (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
+       * cp-gimplify.c (enum bc_t): Define.
+       (struct cp_gimplify_ctx, ctxp): Define.
+       (push_context, pop_context): New static functions.
+       (begin_bc_block, finish_bc_block): New static functions.
+       (build_bc_goto): New static function.
+       (gimplify_cp_loop, gimplify_for_stmt): New static functions.
+       (gimplify_while_stmt, gimplify_do_stmt): Likewise.
+       (gimplify_switch_stmt): Likewise.
+       (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
+       SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
+       (cp_genericize): Call push_context and pop_context.
+       * semantics.c (finish_break_stmt): Just call build_stmt
+       (BREAK_STMT) rather than build_break_stmt.
+       (finish_continue_stmt): Corresponding change.
+       * decl.c (pop_switch): Update call to c_do_switch_warnings for new
+       parameters.
+       * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
+       WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
+       * dump.c (cp_dump_tree): Likewise.
+
+2005-04-08  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20905
+       * parser.c (cp_parser_type_specifier_seq): Add is_condition
+       parameter.
+       (cp_parser_new_type_id): Pass it.
+       (cp_parser_condition): Likewise.
+       (cp_parser_conversion_type_id): Likewise.
+       (cp_parser_type_id): Likewise.
+       (cp_parser_type_specifier_seq): In a condition, do not allow
+       invalid type-specifier combinations.
+       (cp_parser_exception_declaration): Adjust call to
+       cp_parser_type_specifier_seq. 
+
+       * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
+       * cp-tree.h (struct tinst_level): Add in_system_header_p.
+       (TINST_IN_SYSTEM_HEADER_P): New macro.
+       (make_tinst_level): Remove.
+       * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
+       the instantiated class.
+       (push_tinst_level): Do not use make_tinst_level.  Set
+       TINST_IN_SYSTEM_HEADER_P.
+       (pop_tinst_level): Likewise.
+       (instantiate_class_template): Set in_system_header.
+       (instantiate_pending_templates): Likewise.
+       * tree.c (make_tinst_level): Remove.
+
+2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * decl.c (start_decl): Apply pending #pragma weak regardless of
+       scope.
+
+2005-04-06  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20212
+       * pt.c (regenerate_decl_from_template): Copy attributes for
+       parameters from the pattern to the instantiation.
+
+2005-04-05  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20734
+       * cp-tree.def (OFFSET_REF): Correct comments.
+       * init.c (build_offset_ref): Remove misleading comment.
+       * typeck.c (build_unary_op): Handle pointer-to-member creation
+       here, rather than ...
+       (unary_complex_lvalue): ... here.
+
+2005-04-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/19312
+       * tree.c (stabilize_init): Don't bother trying to stabilize
+       something with no side-effects.
+
+2005-04-05  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20763
+       * decl.c (grokdeclarator): Correct attribute handling.
+
+2005-04-05  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/19159
+       * decl2.c (import_export_decl): Use non-COMDAT external linkage
+       for virtual tables, typeinfo, etc. that will be emitted in only
+       one translation unit on systems without weak symbols.
+
+2005-04-04  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20679
+       * parser.c (cp_parser_template_name): Fix thinko.
+
+2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/20746
+       * method.c (use_thunk): Protect covariant pointer return
+       adjustments from NULL pointers.
+
+2005-04-04  Jan Hubicka  <jh@suse.cz>
+
+       * decl2.c (finish_objects): Revert my previous patch.
+       (cp_finish_file): Likewise.
+
+2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * pt.c: Fix comment typos.
+
+2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/20723
+       * pt.c (more_specialized_fn): Member functions are unordered wrt
+       non-members.  Conversion operators are unordered wrt other
+       functions.
+
+2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * call.c (add_template_candidates_real): Remove length parameter
+       from fn_type_unification call.
+       * class.c (resolve_address_of_overloaded_function): Likewise
+       * cp-tree.h (fn_type_unification): Remove length parameter.
+       * pt.c (get_bindings_overload): Remove.
+       (get_bindings_real): Rename to ...
+       (get_bindings): ... here.  Remove length and strict
+       parameters. Change return type flag to boolean.  Remove original
+       forwarding function.
+       (determine_specialization): Adjust get_bindings call.
+       (fn_type_unification): Remove length parameter.  Adjust.
+       (type_unification_real): Remove length parameter.  Adjust.
+       (resolve_overloaded_unification): Adjust get_bindings call.
+       (try_one_overload): Simplify confusing cascaded if control flow.
+       (unify): Remove length paramter from type_unification_real call.
+       (most_specialized_instantiation): Adjust get_bindings calls.
+       (most_specialized): Likewise.
+
+2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/19203, implement DR 214
+       * call.c (joust): Use more_specialized_fn.
+       * cp-tree.h (DEDUCE_ORDER): Remove.
+       (more_specialized): Replace with ...
+       (more_specialized_fn): ... this.
+       * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
+       case.
+       (type_unification_real): Remove DEDUCE_ORDER case.
+       (more_specialized): Replace with ...
+       (more_specialized_fn): ... this.  Implement DR 214.
+       (most_specialized_instantiation): Use get_bindings_real directly.
+
+2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c++/18644
+       * call.c (build_new_op): Remove check for -Wsynth.
+
+2005-03-31  Jan Hubicka  <jh@suse.cz>
+
+       * decl2.c (finish_objects): Mark ctor as needed.
+       (cp_finish_file): Output variables only in nonunit-at-a-time.
+
+2005-03-29  Richard Henderson  <rth@redhat.com>
+
+       PR c/20519
+       * decl.c (cp_complete_array_type): Rename from complete_array_type.
+       Use the new complete_array_type in c-common.c.  Update all callers.
+       * cp-tree.h (cp_complete_array_type): Update to match.
+
+2005-03-24  Geoffrey Keating  <geoffk@apple.com>
+
+       * typeck.c (build_static_cast_1): Allow scalar_cast between
+       any integral, floating, or enumeration type.
+
+2005-03-24  Steven Bosscher  <stevenb@suse.de>
+
+       * typeck.c (comptypes): First determine if the types are compatible
+       from a target-independent point of view.  Check target attributes
+       last.
+
+       * class.c (build_base_path):
+       (build_vbase_offset_vtbl_entries):
+       (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
+       * error.c (dump_expr): Likewise.
+       * init.c (build_zero_init, expand_cleanup_for_base,
+       build_vec_delete_1): Likewise.
+       * mangle.c (write_integer_cst): Likewise.
+       * method.c (thunk_adjust): Likewise.
+       * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
+       * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
+       * typeck.c (build_ptrmemfunc_access_expr,
+       (get_member_function_from_ptrfunc): Likewise.
+
+2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
+
+2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * cp-tree.h (perform_integral_promotions): Remove.
+       (default_conversion): Add.
+
+2005-03-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * parser.c (cp_parser_warn_min_max): New function.
+       (cp_parser_binary_expression): Use it.
+       (cp_parser_assignment_operator_opt): Likewise.
+       (cp_parser_operator): Likewise.
+
+2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/19980
+       * decl.c (start_preparsed_function): Robustify.
+
+2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/20499
+       * parser.c (cp_parser_class_head): Return NULL_TREE when
+       encountering a redefinition.
+
+2005-03-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/20465
+       PR c++/20381
+       * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
+       template.
+
+2005-03-21  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/20461
+       PR c++/20536
+       * init.c (emit_mem_initializers): Don't crash on undefined
+       types.
+
+2005-03-21  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/20147
+       * semantics.c (finish_stmt_expr_expr): Return immediately
+       if error_operand_p (expr).
+
+2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * cp-tree.h (lvalue_or_else, lvalue_p): New.
+       * typeck.c (lvalue_or_else): New.  Call lvalue_error.
+
+2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/20240
+       * decl.c (decls_match): Compare context of VAR_DECL.
+
+2005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/20333
+       * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
+       Check the return value of cp_parser_nested_name_specifier.
+
+2005-03-18  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/20463
+       * parser.c (cp_parser_diagnose_invalid_type_name):
+       Check TYPE_BINFO (current_class_type) before attempting
+       to emit inform messages.
+
+2005-03-17  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/19966
+       * cp-tree.h (grok_op_properties): Change return type to void.
+       * decl.c (grok_op_properties): Return early - don't check the
+       arity - in case of a static member or an operator that cannot
+       be non-member; tidy a bit.
+
+2005-03-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/20186
+       * pt.c (contains_dependent_cast_p): Remove.
+       (fold_non_dependent_expr): Don't use it.
+       (value_dependent_expression_p): Use a switch statement.
+       reference_exprs can be dependent.
+
+2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/4403
+       PR c++/9783, DR433
+       * name-lookup.c (pushtag): Skip template parameter scope when
+       scope is ts_global.  Don't push tag into template parameter
+       scope.
+       * pt.c (instantiate_class_template): Reorder friend class
+       template substitution to handle non-dependent friend class
+       that hasn't been previously declared.
+
+2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       Friend class name lookup 5/n
+       PR c++/1016
+       * cp-tree.h (pushtag): Adjust declaration.
+       * decl.c (lookup_and_check_tag): Call lookup_type_scope if
+       lookup_name fails.
+       (xref_tag): Adjust call to pushtag.  Make hidden class visible.
+       (start_enum): Adjust call to pushtag.
+       * name-lookup.c (ambiguous_decl): Ignore hidden names.
+       (qualify_lookup): Change return type to bool.
+       (hidden_name_p): New function.
+       (lookup_namespace_name, unqualified_namespace_lookup,
+       lookup_name_real): Use it.
+       (lookup_type_scope): Update comments.
+       (maybe_process_template_type_declaration): Change parameter name
+       from globalize to is_friend.
+       (pushtag): Change globalize parameter of type int to tag_scope.
+       Hide name if introduced by friend declaration.
+       * name-lookup.h (hidden_name_p): Add declaration.
+       * parser.c (cp_parser_lookup_name): Don't deal with hidden name
+       here.
+       * pt.c (push_template_decl_real): Make hidden class template
+       visible.
+       (lookup_template_class, instantiate_class_template): Adjust call
+       to pushtag.
+       * semantics.c (begin_class_definition): Likewise.
+       * rtti.c (init_rtti_processing, build_dynamic_cast_1, 
+       tinfo_base_init, emit_support_tinfos): Use ts_current instead of
+       ts_global.
+
+2005-03-13  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20157
+       * pt.c (determine_specialization): Reject non-specializations. 
+
 2005-03-11  Per Bothner  <per@bothner.com>
 
        * cp-tree.h (struct cp_declarator): New id_loc field.
        Add qualifiers when declaring a typedef of a function type.
        Member function pointers pick up the qualifiers of the typedef
        used to declare them.
-        Don't complain about creating cv-qualified function types.
+       Don't complain about creating cv-qualified function types.
        Complain about qualified function typedefs that are used to
        declare non-static member functions or free functions.
        Use cp_apply_type_quals_to_decl.