OSDN Git Service

PR c++/24260
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 789fcfb..dee7410 100644 (file)
@@ -1,3 +1,343 @@
+2005-10-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/24260
+       * parser.c (cp_parser_init_declarator): Pass attributes to
+       grokfield. 
+
+2005-10-20  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/22618
+       * search.c (accessible_p): Check access in the outermost set of
+       template parameters.
+
+2005-10-20  Richard Guenther  <rguenther@suse.de>
+
+       * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
+
+2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/22293
+       * decl.c (grokdeclarator): Reject unqualified destructors in
+       friend declarations.
+
+2005-10-18  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/23293
+       * pt.c (convert_template_argument): Use canonical type variants in
+       template specializations.
+
+2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/21383
+       * name-lookup.c (arg_assoc): Template args can be null in a
+       template-id-expr.
+
+       PR c++/22604
+       * class.c (update_vtable_entry_for_fn): Don't process invalid
+       covariant overriders.
+
+       PR c++/23118
+       * cp-tree.h (add_method): Add return value.
+       * class.c (add_method): Return success indicator.
+       * semantics.c (finish_member_declaration): Don't add an invalid
+       method to the method list.
+
+2005-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/21908
+       * call.c (build_new_method_call): Do not show VTT parameters to
+       the user.
+
+2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/23440
+       * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
+       only complain about missing statement.
+
+2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/24386
+       * cp-tree.h (BASELINK_QUALIFIED_P): New.
+       * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
+       * typeck.c (finish_class_member_access_expr): Set it.
+
+       PR c++/21353
+       * decl.c (check_default_argument): Don't check
+       processing_template_decl or uses_template_parms here.
+       (grokparms): Only call check_default_argument when not processing
+       a template decl.
+       * parser.c (cp_parser_late_parsing_default_arg): Call
+       check_default_argument when not processing a template decl.
+
+2005-10-16  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/24389
+       * decl2.c (mark_used): Use uses_template_parms instead of
+       dependent_type_p.
+       * init.c (constant_value_1): Handle uninstantiated templates
+       specially.
+       * pt.c (instantiate_decl): Add sanity check.
+
+2005-10-16  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/22173
+       * typeck.c (check_template_keyword): Fix thinko.
+               
+2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/23959
+       * decl.c (pop_switch): Only call c_do_switch_warnings
+       when not processing templates.
+
+2005-10-16  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/22173
+       * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
+       (check_template_keyword): New function.
+       (finish_id_expression): Change prototoype.
+       (finish_qualified_id_expr): Change prototype.
+       (build_qualified_name): New function.
+       (finish_class_member_access_expr): Change prototype.
+       * init.c (build_offset_ref): Use build_qualified_name.
+       * mangle.c (write_expression): Likewise.
+       * parser.c (cp_parser_primary_expression): Remove qualifying_class
+       parameter.  Add address_p and template_arg_p.  Use
+       build_qualified_name.
+       (cp_parser_id_expression): Default *template_p to
+       template_keyword_p.  Check for invalid uses of the template
+       keyword.  
+       (cp_parser_postfix_expression): Eliminate special handling for
+       qualified names.  Adjust call to cp_parser_primary_expression.
+       (cp_parser_postfix_dot_deref_expression): Adjust call to
+       cp_parser_id_expression and finish_class_member_access_expr.
+       (cp_parser_template_argument_list): Add comment.
+       (cp_parser_template_argument): Adjust use of
+       cp_parser_primary_expression.  Remove call to
+       finish_qualified_id_expr.
+       (cp_parser_lookup_name): Use build_qualified_name. 
+       * pt.c (tsubst): Use build_qualified_name.
+       (tsubst_qualified_id): Likewise.  Adjust call to
+       finish_qualified_id_expr.
+       (tsubst_copy): Use build_qualified_name.
+       (tsubst_copy_and_build): Adjusts call to finish_id_expression and
+       finish_class_member_access_expr. 
+       * semantics.c (finish_non_static_data_member): Use
+       build_qualified_name.
+       (finish_qualified_id_expr): Add template_p and template_arg_p
+       parameters. 
+       (finish_id_expression): Remove qualifiying_class parameter.  Add
+       template_p, done, address_p, and template_arg_p.  Use
+       build_qualified_name.  Adjust calls to
+       finish_class_member_acess_expr.  
+       * tree.c (build_qualified_name): New function.
+       * typeck.c (check_template_keyword): New function.
+       (finish_class_member_access_expr): Add template_p argument.  Check
+       for invalid uses of the template keyword.
+
+2005-10-15  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/21347
+       * class.c (maybe_warn_about_overly_private_class): Lazy
+       constructors are public.
+
+2005-10-14  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/19565
+       * call.c (convert_like_real): Rely on convert_and_check to issue
+       warnings about overflow and conversion to unsigned.
+       * decl.c (finish_enum): Use the location of the enumerators, not
+       the closing brace of the enumeration, when reporting warnings
+       about conversions.
+       (build_enumerator): Use error_mark_node for erroneous values.
+       * typeck2.c (digest_init): Remove reference to "signature pointer"
+       from comment.
+
+2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/17796
+       * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
+       (maybe_clone_body): Track the first clone.
+
+2005-10-13  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/23984
+       * class.c (build_base_path): The vtable is always the first thing
+       in the vtt.
+
+2005-10-13  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/20721
+       * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
+       * decl.c (duplicate_decls): Merge it into new declarations.
+       (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
+       (cp_finish_decl): Set it, when appropriate.
+
+       PR c++/22180
+       * call.c (build_new_method_call): Correct pretty-printing of
+       destructor names.
+       * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
+       identifier. 
+
+       PR c++/23694
+       * decl.c (start_method): Return error_mark_node for errors.
+
+       PR c++/23307
+       * pt.c (push_template_decl_real): Complain about attempts to
+       declare template variables.
+
+       PR c++/22352
+       * pt.c (tsubst_template_parms): Set processing_template_decl while
+       processing the parameters.
+       (tsubst_decl): Set processing_template_decl when substituting into
+       a TEMPLATE_DECL.
+
+       PR c++/22405
+       * pt.c (most_specialized_instantiation): Robustify.
+
+       PR c++/22464
+       * semantics.c (finish_id_expression): Issue errors about uses of
+       local variables in containing functions even in templates.
+
+2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/21801
+       PR target/23589
+       * class.c (finish_struct_1): Call
+       targetm.cxx.adjust_class_at_definition.
+
+
+2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/21592
+       * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
+       with already looked up member functions.  Assert we're not
+       returning a NON_DEPENDENT_EXPR with unknown type.
+       * typeck.c (finish_class_member_access_expr):  We can get
+       non-template-id-expr baselinks.  If the lookup finds a baselink,
+       remember it even inside templates.
+
+       PR c++/23797
+       * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
+       TYPE_DECL.  Use dependent_type_p to check type.
+       * pt.c (uses_template_parms_p): Use dependent_type_p for a
+       TYPE_DECL.
+       (type_dependent_expression_p): Assert we've not been given a
+       TYPE_DECL.
+
+       PR c++/21117
+       * decl.c (check_function_type): Correctly overwrite incomplete
+       return type with void type.
+       * typeck.c (check_return_expr): If the function's return type is
+       void, don't try and convert a return expr.
+
+2005-10-12  David Edelsohn  <edelsohn@gnu.org>
+
+       PR c++/23730
+       * call.c (build_object_call): If BINFO is NULL, bypass
+       lookup_fnfields and set fns to NULL_TREE.
+
+2005-10-12  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR c++/24052
+       * error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
+       an ADDR_EXPR of a LABEL_DECL as &&. 
+
+2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/19964
+       * class.c (walk_subobject_offsets): Don't walk error_mark_node.
+
+2005-10-11  Ian Lance Taylor  <ian@airs.com>
+
+       PR c++/8057
+       * cvt.c (convert_to_void): Don't warn about unused values when
+       processing a template declaration.
+
+2005-10-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/21089
+       * call.c (convert_like_real): Use decl_constant_value, not
+       integral_constant_value.
+       * init.c (constant_value_1): New function.
+       (integral_constant_value): Use it.
+       (decl_constant_value): Likewise.
+       * typeck.c (decay_conversion): Use decl_constant_value, not
+       integral_constant_value.
+
+       PR c++/21369
+       * parser.c (cp_parser_elaborated_type_specifier): Don't treat
+       class types as templates if the type is not appearing as part of a
+       type definition or declaration.
+
+2005-10-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/24277
+       * pt.c (instantiate_decl): Call finish_static_data_member_decl for
+       static data members.
+
+2005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+           Mark Mitchell  <mark@codesourcery.com>
+
+        PR c++/23437
+       * parser.c (cp_parser_template_argument_list): Do not treat
+       contents of argument list as part of a constant expression.
+
+2005-10-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/24139
+       * decl.c (grokdeclarator): Do not require template parameter lists
+       for explicitly specialized class.
+       * error.c (dump_aggr_type): Do not dump template arguments for
+       non-primary specializations.
+       (dump_function_name): Likewise.
+
+       PR c++/24275
+       * pt.c (instantiate_decl): Instantiate the initializer of
+       a static data member in the namespace containing the class
+       containing the static data member.
+
+2005-10-08  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR c++/22172
+       * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
+       scopes as nondependent.
+
+2005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * call.c (resolve_args): Remove redundant test.
+
+2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR tree-optimization/21419
+       PR tree-optimization/24146
+       PR tree-optimization/24151
+
+       * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
+       read-only.  Set ASM_VOLATILE_P for asms without outputs.
+
+2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/23513
+       * call.c (joust): Adjust length count to more_specialized_fn.
+       * pt.c (more_specialized_fn): Cope with non-static member vs
+       non-member.
+
+2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/23125
+       * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
+       instead of change_decl_assembler_name.
+
+2005-10-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
+
+2005-10-03  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/17775
+       * repo.c: Include flags.h.
+       (finish_repo): Add -frandom-seed to the arguments.
+
 2005-10-02  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/22621
@@ -6,7 +346,7 @@
        * pt.c (convert_nontype_argument): Remove ??? comment.
 
        PR c++/23840
-       * tree.c (lvalue_p1): A VA_ARG_EXPR with class type is an lvalue,
+       * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
        when class rvalues are lvalues.
 
 2005-09-28  Mark Mitchell  <mark@codesourcery.com>