OSDN Git Service

* emit-rtl.c (add_insn_before): Fix comment typo.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 83fac5a..b061e69 100644 (file)
@@ -1,3 +1,300 @@
+2005-01-01  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/17544
+       * decl.c (finish_function): Fix comment.  Annotate the compiler
+       generated return with the current file name and line 0.
+
+2004-12-31  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/17799
+       * call.c (make_temporary_var_for_ref_to_temp): Set DECL_IGNORED_P.
+       * class.c (build_vtable): Don't conditionallize setting it
+       based on DWARF2_DEBUG.
+       (layout_class_type): Set DECL_IGNORED_P.
+       * decl2.c (get_guard): Likewise.
+       * rtti.c (get_tinfo_decl, build_lang_decl): Likewise.
+       * tree.c (build_local_temp): Likewise.
+
+2004-12-30  Mark Mitchell  <mark@codesourcery.com>
+
+       * cp-tree.h (cp_declarator): Split "name" field into
+       qualifying_scope and unqualified_name.
+       * decl.c (get_scope_of_declarator): Adjust accordingly.
+       (grokdeclarator): Likewise.
+       * decl2.c (grokfield): Likewise, and adjust call to
+       do_class_using_decl.
+       * name-lookup.c (do_class_using_decl): Split "decl" into
+       "scope" and "name".  Remove unnecessary code.
+       * name-lookup.h (do_class_using_decl): Adjust declaration.
+       * parser.c (make_id_declarator): Split "id" into qualifying_scope
+       and unqualified_name.
+       (cp_parser_using_declaration): Adjust call to do_class_using_decl.
+       (cp_parser_direct_declarator): Adjust to handle the fact that
+       cp_parser_declarator_id no longer returns a SCOPE_REF.
+       (cp_parser_direct_declarator): Likewise.
+       (cp_parser_declarator_id): Do not create a SCOPE_REF for qualified
+       names.
+       (cp_parser_member_declaration): Adjust call to make_id_declarator.
+       (cp_parser_check_declarator_template_parameters): Do not expect a
+       SCOPE_REF. 
+       
+       * decl.c (duplicate_decls): Call ggc_free on declarations we will
+       not be needing any longer.
+
+       PR c++/19190
+       * cvt.c (convert_to_void): Do not use STRIP_NOPs.
+
+2004-12-28  Richard Henderson  <rth@redhat.com>
+
+       PR inline-asm/15740
+       * semantics.c (finish_asm_stmt): Resolve asm names.  Validate input
+       constraints.  Mark memory inputs addressable.
+
+2004-12-27  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (expand_static_init): Don't use shortcut if
+       targetm.relaxed_ordering.
+
+2004-12-27  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/19149
+       * decl.c (check_tag_decl): Robustify.
+
+2004-12-23  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17595
+       * parser.c (cp_parser_error): Issue better messages about
+       #pragma in locations where it is not permitted.
+
+       PR c++/17413
+       * pt.c (check_instantiated_args): Remove bogus SFINAE code.
+
+       * cvt.c (convert_to_void): Fix typo in comment.
+
+2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR c++/18962
+       * pt.c (check_explicit_specialization): Use the argument list from
+       the definition in a template function specialization definition.
+
+2004-12-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/18733
+       * pt.c (check_explicit_specialization): Use special logic to validate
+       befriended specializations.
+
+2004-12-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * rtti.c (emit_support_tinfos): Avoid using C99 semantics.
+
+       PR c++/18464
+       * call.c (build_this): In templates, do not bother with
+       build_unary_op.
+       * typeck.c (unary_complex_lvalue): In a template, always refuse
+       simplifications. 
+
+       PR c++/18492
+       * cp-gimplify.c (cp_genericize): Relax assertion.
+
+       PR c++/11224
+       * cvt.c (convert_to_void): Warn about unused values.
+
+       PR c++/18257
+       * rtti.c (emit_support_tinfos): On systems without weak symbols,
+       emit the runtime library type-info objects as non-COMDAT. 
+
+2004-12-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18378
+       * call.c (convert_like_real): Do not permit the use of a copy
+       constructor to copy a packed field.
+
+       PR c++/19063
+       * decl.c (grokdeclarator): Return error_mark_node, not
+       void_type_node, to indicate errors.
+       * parser.c (cp_parser_template_parameter_list): Robustify.
+       (cp_parser_template_parameter): Likewise.
+
+       PR c++/19034
+       * tree.c (cp_tree_equal): Handle OVERLOAD.
+
+2004-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * decl.c (define_label): Use POP_TIMEVAR_AND_RETURN.
+       * name-lookup.c (pushdecl_class_level): Likewise.
+
+2004-12-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * name-lookup.c (pushtag): Add missing POP_TIMEVAR_AND_RETURN.
+
+2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/18984
+       * cp-gimplify.c (cp_genericize_r): Don't insert first but instead
+       check to see if contains the pointer.  Insert the statement before
+       returning.
+
+2004-12-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/14075
+       * decl.c (check_initializer): Check string initializer of array is
+       not parenthesized.
+       * cp-tree.h (PAREN_STRING_LITERAL_P): New.
+       * semantics.c (finish_parenthesized_expr): Mark a STRING_CST.
+       * error.c (dump_expr): <STRING_CST case> Add parens, if needed.
+
+       * cp-tree.def (TEMPLATE_TYPE_PARM,
+       BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder 
+       for better code efficiency.
+       * cp-tree.h (CLASS_TYPE_P): Short circuit IS_AGGR_TYPE check.
+       (CAN_HAVE_FULL_LANG_DECL_P): Reorder for better optimization.
+       (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P,
+       INTEGRAL_OR_ENUMERATION_TYPE_P, SCALAR_TYPE_P,
+       CP_AGGREGATE_TYPE_P, TYPE_PTROB_P, TYPE_REF_OBJ_P,
+       TYPE_PTROBV_P): Likewise. 
+
+       PR c++/18975
+       * method.c (do_build_copy_constructor): Refactor. Don't const
+       qualify a mutable field.
+       (do_build_assign_ref): Likewise.
+
+2004-12-20  Matt Austern <austern@apple.com>
+
+       PR c++/19044
+       * decl.c (make_rtl_for_nonlocal_decl): Use
+       set_builtin_user_assembler_name.
+       
+2004-12-19  Mark Mitchell  <mark@codesourcery.com>
+
+       * cp-tree.h (note_decl_for_pch): New function.
+       * class.c (build_clone): Call note_decl_for_pch.
+       * semantics.c (finish_member_declaration): Likewise.
+       (note_decl_for_pch): New function.
+
+2004-12-17  Steven Bosscher  <stevenb@suse.de>
+
+       * init.c (build_zero_init): max_index is the number of
+       elements, minus 1.
+
+2004-12-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18721
+       * class.c (add_method): Do not push conversion operators into a
+       binding level.
+
+       * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE_TYPE): Reformat.
+       * error.c (dump_decl): <TYPE_DECL case> Remove extraneous braces.
+
+2004-12-16  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18905
+       * cp-tree.h (integral_constant_value): Declare.
+       * call.c (null_ptr_cst_p): Use integral_constant_value, not
+       decl_constant_value.
+       (convert_like_real): Likewise.
+       * class.c (check_bitfield_decl): Likewise.
+       * cvt.c (ocp_convert): Likewise.
+       (convert): Remove unnecessary decl_constant_value call.
+       * decl.c (compute_array_index_type): Use integral_constant_value,
+       not decl_constant_value.
+       (build_enumerator): Likewise.
+       * decl2.c (grokfield): Likewise.
+       * init.c (decl_constant_value): Simplify.
+       (integral_constant_value): New.
+       * pt.c (fold_decl_constant_value): Use integral_constant_value,
+       remove subsequent check.
+       (tsubst): Use integral_constant_value, not decl_constant_value.
+       (tsubst_copy, unify): Likewise.
+       * typeck.c (decay_conversion): Likewise.
+       (build_compound_expr): Remove unnecessary decl_constant_value
+       calls.
+       (build_static_cast_1, build_reinterpret_cast_1):
+       (convert_for_assignment): Remove comment about not calling
+       decl_constant_value.
+
+2004-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/18825
+       * pt.c (instantiate_class_template): Set input_location for
+       friend function.
+       (tsubst_friend_function): Don't set input_location here.
+       Make sure the context is complete if necessary.
+
+2004-12-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18981
+       * parser.c (cp_parser_lookup_name): Remove unneeded TYPENAME_TYPE
+       flag setting.
+
+2004-12-14  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18738
+       * decl.c (make_typename_type): Do not handle namespace-scoped
+       names here.
+       (tag_name): Handle typename_type.
+       (check_elaborated_type_specifier): Handle typenames.
+       * parser.c (cp_parser_diagnose_invalid_type_name): Improve
+       comment.
+       (cp_parser_elaborated_type_specifier): Use
+       cp_parser_diagnose_invalid_type_name.
+
+2004-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/18965
+       * init.c (build_zero_init): If the max_index is 0, there is no
+       need to create a RANGE_EXPR.
+
+2004-12-14  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18793
+       * cp-objcp-common.c (cp_expr_size): Loosen assertion.
+
+2004-12-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/18949
+       * pt.c (tsubst_copy_and_build): <INDIRECT_REF case> Check that a
+       REFERENCE_REF_P is dereferencing a reference type.
+       * typeck.c (build_static_cast): Convert from reference even in a
+       template.
+       (build_reinterpret_cast, build_const_cast, build_c_cast): Likewise.
+
+2004-12-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * parser.c (cp_parser_uncommitted_to_tentative_parse_p): New function.
+       (cp_parser_name_lookup_error): Use it.
+       (cp_parser_check_for_invalid_template_id): Likewise.
+       (cp_parser_skip_to_closing_parenthesis): Likewise.
+       (cp_parser_nested_name_specifier_opt): Likewise.
+       (cp_parser_simple_declaration, cp_parser_template_id): Likewise.
+       (cp_parser_parameter_declaration_list): Likewise.
+       (cp_parser_parameter_declaration): Likewise.
+       (cp_parser_template_name): Let cp_parser_simulate_error perform
+       the checking.
+       (cp_parser_committed_to_tentative_parse): Remove.
+
+2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/18968
+       * class.c (build_base_path): Convert the zero constant to the correct
+       type when comparing.
+
+2004-12-13  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/18925
+       * class.c (layout_class_type): Determine the visibility of static
+       data members.
+
+2004-12-12  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/12454
+       * cp-gimplify.c (gimplify_if_stmt): Optimize the case where the
+       condition is a constant and the unexecuted clause is empty.
+
+2004-12-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/18731
+       * parser.c (cp_parser_class_head): Reject typedef-name in class head.
+
 2004-12-09  Matt Austern  <austern@apple.com>
 
        PR c++/18514