+2010-04-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/43016
+ * decl.c (start_preparsed_function): Do defer nested functions.
+
+ PR c++/11094, DR 408
+ * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
+ * decl2.c (finish_static_data_member_decl): Set it.
+ * decl.c (duplicate_decls): Propagate it.
+ * pt.c (tsubst_decl): Don't substitute the domain of an array
+ VAR_DECL if it's set.
+ (regenerate_decl_from_template): Substitute it here.
+ (type_dependent_expression_p): Return true if it's set.
+ * semantics.c (finish_decltype_type): Instantiate such a variable.
+ * typeck.c (cxx_sizeof_expr): Likewise.
+ (strip_array_domain): New.
+
+ * name-lookup.c (current_decl_namespace): Non-static.
+ (pop_nested_namespace): Sanity check.
+ * cp-tree.h: Declare current_decl_namespace.
+ * decl.c (grokvardecl): Use it instead of current_namespace.
+ (grokfndecl): Likewise.
+
+ PR c++/38392
+ * pt.c (tsubst_friend_function): Instatiate a friend that has already
+ been used.
+
+ * pt.c (print_template_statistics): New.
+ * cp-tree.h: Declare it.
+ * tree.c (cxx_print_statistics): Call it.
+
+ 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.
+
+ PR c++/43031
+ * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
+ VIEW_CONVERT_EXPR for conversions between structural equality types
+ that the back end can't tell are the same.
+
+ PR c++/43036
+ * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
+ cv-quals from element here.
+ (cp_build_qualified_type_real): Not here. Preserve typedef name.
+
+2010-02-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/41997
+ * semantics.c (finish_compound_literal): Use
+ cp_apply_type_quals_to_decl when creating a static variable.
+
+2010-02-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/43024
+ * name-lookup.h (current_binding_level): Check for null
+ cp_function_chain.
+
+2010-02-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/43054
+ * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
+
+2010-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/43033
+ * name-lookup.c (pushdecl_maybe_friend): Check default args of t
+ instead of x.
+
+2010-02-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/41896
+ * semantics.c (outer_lambda_capture_p): Revert.
+ (add_capture): Only finish_member_declaration if
+ we're in the lambda class.
+ (register_capture_members): New.
+ * cp-tree.h: Declare it.
+ * parser.c (cp_parser_lambda_expression): Call it.
+
+2010-02-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/41896
+ * semantics.c (outer_lambda_capture_p): Use current_function_decl
+ instead of current_class_type.
+
+2010-02-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/42983, core issue 906
+ * method.c (defaultable_fn_check): Check virtualness.
+
+2010-02-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/43016
+ * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
+
+2010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
+
+ * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
+ * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
+ translation.
+ * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
+ (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
+ (cp_parser_parameter_declaration)
+ (cp_parser_exception_specification_opt)
+ (cp_parser_exception_declaration): Likewise.
+ * pt.c (check_default_tmpl_args): Likewise.
+ * search.c (lookup_field_r): Likewise.
+
+2010-02-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/42399
+ * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
+
+2010-02-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/42370
+ * decl2.c (change_return_type): New fn.
+ * semantics.c (apply_lambda_return_type): Use it.
+ * cp-tree.h: Declare it.
+
+2010-02-05 Richard Guenther <rguenther@suse.de>
+
+ * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
+ * cp-lang.c: Include gt-cp-cp-lang.h.
+ * config-lang.in (gtfiles): Add cp/cp-lang.c.
+
+2010-02-05 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/42915
+ * typeck.c (get_template_parms_of_dependent_type): Try getting
+ the template parameters fromt the type itself first.
+
+2010-02-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/4926
+ PR c++/38600
+ * mangle.c (write_unqualified_id): Split out from write_expression.
+ (write_unqualified_name): Call it.
+ (write_member_name): Likewise.
+ (write_expression): Support TEMPLATE_ID_EXPR.
+ Disambiguate operator names.
+
+ PR c++/12909
+ * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
+ -fabi-version=4.
+
2010-02-02 Jason Merrill <jason@redhat.com>
PR c++/41090