OSDN Git Service

PR c++/41970
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 4a7b125..a6e6f3a 100644 (file)
@@ -1,3 +1,307 @@
+2010-04-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/41970
+       * decl.c (grokvardecl): Tweak warning message.
+       (grokfndecl): Likewise.
+
+2010-04-07  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42697
+       *pt.c (tsubst_decl): Get the arguments of a specialization from
+       the specialization template, not from the most general template.
+
+2010-04-07  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/40239
+       * typeck2.c (process_init_constructor_record):
+       value-initialize members that are are not explicitely
+       initialized.
+
+2010-04-07  Jie Zhang  <jie@codesourcery.com>
+
+       PR c++/42556
+       * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
+       when all of its elements are non-constant and have been split out.
+
+2010-04-06  Taras Glek  <taras@mozilla.com>
+           Jason Merrill  <jason@redhat.com>
+
+       * parser.c (cp_parser_class_specifier): Set class location to that
+       of IDENTIFIER_NODE instead of '{' when possible.
+       * semantics.c (begin_class_definition): Do not overide locations
+       with less precise ones.
+
+2010-04-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43648
+       * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
+
+       PR c++/43621
+       * pt.c (maybe_update_decl_type): Check the return value from
+       push_scope.
+
+2010-04-01  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (next_initializable_field): No longer static.
+       * cp-tree.h: Declare it.
+       * call.c (build_aggr_conv): Fail if there are more initializers
+       than initializable fields.
+
+       * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
+       instead of void_zero_node.
+
+2010-03-31  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/43558
+       * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
+       * pt.c (end_template_parm_list): Store sibling template parms of
+       each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
+       (push_template_decl_real): Don't store the containing template decl
+       into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
+       * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
+       of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
+       Simplify the logic.
+
+2010-03-30  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43076
+       * pt.c (push_template_decl_real): Deal better with running out of
+       scopes before running out of template parms.
+
+       PR c++/41185
+       PR c++/41786
+       * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
+       function parameter context.  Don't print an error if parsing
+       tentatively.
+
+       PR c++/43559
+       * pt.c (more_specialized_fn): Don't control cv-qualifier check
+       with same_type_p.
+
+2010-03-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43509
+       * parser.c (cp_parser_qualifying_entity): Do accept enum names in
+       c++0x mode, but not other type-names.
+
+2010-03-26  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/43327
+       * pt.c (add_to_template_args): Support NULL ARGS;
+       (most_specialized_class): call coerce_template_parms on
+       template arguments passed to get_class_bindings. Use
+       add_to_template_args.
+       (unify): Handle VAR_DECLs.
+
+2010-03-26  Dodji Seketeli  <dodji@redhat.com>
+
+       * cp-tree.h (get_template_parms_at_level): Change unsigned parm
+       into int.
+       * pt.c (get_template_parms_at_level): Adjust.
+
+2010-03-25  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/43206
+       * cp-tree.h (get_template_parms_at_level): Declare ...
+       * pt.c (get_template_parms_at_level): ... new function.
+       * typeck.c (get_template_parms_of_dependent_type): If a template
+       type parm's DECL_CONTEXT isn't yet set, get its siblings from
+       current_template_parms. Use get_template_parms_at_level. Remove
+       useless test.
+       (incompatible_dependent_types_p): If we get empty parms from just one
+       of the template type parms we are comparing then the template parms are
+       incompatible.
+
+2010-03-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43502
+       * parser.c (make_declarator): Initialize id_loc.
+       (cp_parser_lambda_declarator_opt): And set it.
+
+2010-03-23  Jason Merrill  <jason@redhat.com>
+
+       Make lambda conversion op and op() non-static.
+       * semantics.c (maybe_add_lambda_conv_op): Make non-static.
+       Also add the thunk function returned by the conversion op.
+       Mark the conversion deleted if the op() is variadic.
+       * decl2.c (mark_used): Give helpful message about deleted conversion.
+       * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
+       * semantics.c (finish_this_expr): Adjust.
+       * mangle.c (write_closure_type_name): Adjust.
+       * decl.c (grok_op_properties): Don't allow it.
+       * call.c (build_user_type_conversion_1): No static conversion ops.
+       (build_op_call): Or op().
+
+       * decl2.c (change_return_type): Fix 'this' quals.
+
+2010-03-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43333
+       * tree.c (pod_type_p): Use old meaning in C++98 mode.
+
+       PR c++/43281
+       * pt.c (contains_auto_r): New fn.
+       (do_auto_deduction): Use it.
+       (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
+
+2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
+
+       PR c++/43081:
+       * decl2.c (grokfield): Handle invalid initializers for member
+       functions.
+
+2010-03-20  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/43375
+       * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
+       is NULL.
+       * decl2.c (vague_linkage_p): Likewise.
+
+2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/43418
+       * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
+       false, in the cp_parser_expression_statement call.
+
+2010-03-05  Jason Merrill  <jason@redhat.com>
+
+       * mangle.c (mangle_decl): Give name collision error even without
+       ASM_OUTPUT_DEF.
+
+2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
+
+       * pt.c (process_partial_specialization): Use error_n instead of
+       error.
+
+2010-03-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/12909
+       * mangle.c (mangle_decl): Handle VAR_DECL, too.
+
+2010-03-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/12909
+       * mangle.c: Include cgraph.h.
+       (mangle_decl): If the mangled name will change in a later
+       ABI version, make the later mangled name an alias.
+       * method.c (make_alias_for): Copy DECL_ARGUMENTS.
+       * Make-lang.in (mangle.o): Depend on cgraph.h.
+       * method.c (make_alias_for): Handle VAR_DECL, too.
+       * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
+       * tree.c (no_linkage_check): Adjust.
+       * decl.c (maybe_commonize_var): Adjust.
+       * cp-tree.h: Adjust.
+
+2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
+
+       * pt.c (redeclare_class_template): Use error_n and inform_n.
+
+2010-02-27  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/42748
+       * cp-tree.h (push_tinst_level): Declare.
+       (pop_tinst_level): Likewise.
+       * pt.c (push_tinst_level): Give it external linkage.
+       (pop_tinst_level): Likewise.
+       * mangle.c (mangle_decl_string): Set the source location to that
+       of the decl while mangling.
+
+2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
+
+       PR c++/42054
+       * pt.c (redeclare_class_template): Return false if there are erroneous
+       template parameters.
+
+2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
+       -ftemplate-depth=.
+
+2010-02-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/12909
+       * mangle.c (write_type): Give -Wabi warning for old vector mangling.
+
+       * class.c (layout_class_type): Don't give -Wabi warning for a bug
+       in a previous ABI version.
+
+2010-02-23  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43143
+       * typeck2.c (digest_init_r): Accept value init of array.
+
+2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/43126
+       * typeck.c (convert_arguments): Update error message.
+
+2010-02-22  Mike Stump  <mikestump@comcast.net>
+
+       PR c++/43125
+       * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
+
+2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/23510
+       * error.c (print_instantiation_partial_context_line): New.
+       (print_instantiation_partial_context): Print at most 12 contexts,
+       skip the rest with a message.
+
+2010-02-21  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42824
+       * pt.c (lookup_template_class): Better support of specialization
+       of member of class template implicit instantiation.
+
+2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/35669
+       * call.c (conversion_null_warnings): Replace -Wconversion with
+       -Wconversion-null.
+       * cvt.c (build_expr_type_conversion): Likewise.
+
+2010-02-18  Jason Merrill  <jason@redhat.com>
+
+       PR c++/42837
+       * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
+
+       PR c++/43108
+       * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
+       C build_binary_op.
+       * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
+       * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
+
+       PR c++/43070
+       * semantics.c (finish_goto_stmt): Don't call decay_conversion.
+
+       PR c++/26261
+       PR c++/43101
+       * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
+       (maybe_update_decl_type): New fn.
+       * parser.c (cp_parser_init_declarator): Use it.
+
+       PR c++/43109
+       * semantics.c (begin_class_definition): Don't crash on unnamed ns.
+
+2010-02-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/43075
+       * call.c (build_over_call): Don't create zero-sized assignments.
+       * cp-gimplify.c (cp_genericize_r): Don't remove them here.
+       * cp-objcp-common.c (cp_expr_size): Remove.
+       * cp-tree.h: Remove prototype.
+
+       PR c++/43069
+       * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
+       decl we looked up doesn't match.
+
+       PR c++/43093
+       * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
+       have an INIT_EXPR anymore.
+
+       PR c++/43079
+       * pt.c (convert_nontype_argument): Change assert to test.
+
 2010-02-16  Jason Merrill  <jason@redhat.com>
 
        * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.