+2010-05-13 Jason Merrill <jason@redhat.com>
+
+ * typeck.c (cp_build_array_ref): Factor out from...
+ (build_array_ref): ...here. Drop complain parm.
+ (build_new_op): Adjust.
+ * class.c (build_vtbl_ref_1): Adjust.
+ * decl2.c (grok_array_decl): Adjust.
+ * cp-tree.h: Adjust prototypes.
+
+2010-05-13 Jan Hubicka <jh@suse.cz>
+
+ * decl.c (cp_finish_decl): Do not worry about used attribute.
+
+2010-05-12 Jason Merrill <jason@redhat.com>
+
+ * typeck.c (build_array_ref): Take complain parm.
+ * cp-tree.h: Add it to prototype.
+ * call.c (build_new_op): Pass it.
+ * class.c (build_vtbl_ref): Pass it.
+ * decl2.c (grok_array_decl): Pass it.
+
+ PR bootstrap/44048
+ PR target/44099
+ * cp-tree.def (NULLPTR_TYPE): Remove.
+ * cp-tree.h (NULLPTR_TYPE_P): New.
+ (SCALAR_TYPE_P): Use it.
+ (nullptr_type_node): New.
+ (cp_tree_index): Add CPTI_NULLPTR_TYPE.
+ * decl.c (cxx_init_decl_processing): Call record_builtin_type on
+ nullptr_type_node.
+ * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
+ * cxx-pretty-print.c (pp_cxx_constant): Likewise.
+ * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
+ * mangle.c (write_type): Likewise.
+ * name-lookup.c (arg_assoc_type): Likewise.
+ * typeck.c (build_reinterpret_cast_1): Likewise.
+ * rtti.c (typeinfo_in_lib_p): Likewise.
+ (emit_support_tinfos): Remove local nullptr_type_node.
+
+ * cp-tree.h (UNKNOWN_TYPE): Remove.
+ * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
+ * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
+ * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
+ * class.c (instantiate_type): Check unknown_type_node rather than
+ UNKNOWN_TYPE.
+ * name-lookup.c (maybe_push_decl): Likewise.
+ * rtti.c (get_tinfo_decl_dynamic): Likewise.
+ (get_typeid): Likewise.
+ * semantics.c (finish_offsetof): Likewise.
+
+ PR c++/20669
+ * call.c (add_template_candidate_real): If deduction fails, still
+ add the template as a non-viable candidate.
+ (equal_functions): Handle template candidates.
+ (print_z_candidate): Likewise.
+ (print_z_candidates): Likewise.
+ (build_new_function_call): Likewise.
+
+ * cp-tree.h (LOOKUP_LIST_ONLY): New.
+ * call.c (add_candidates): Enforce it.
+ (build_new_method_call): Try non-list ctor if no viable list ctor.
+ (build_user_type_conversion_1): Likewise.
+
+ * call.c (add_candidates): Distinguish between type(x) and
+ x.operator type().
+ (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
+ (build_new_method_call): Give better error for conversion op.
+
+ * call.c (add_candidates): Add first_arg and return_type parms.
+ Add special constructor/conversion op handling.
+ (convert_class_to_reference): Use it.
+ (build_user_type_conversion_1): Likewise.
+ (build_op_call): Likewise.
+ (build_new_method_call): Likewise.
+ (build_new_op): Adjust.
+ (perform_overload_resolution): Adjust.
+
+2010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/34272
+ PR c++/43630
+ PR c++/34491
+ * pt.c (process_partial_specialization): Return error_mark_node
+ in case of unused template parameters in partial specialization.
+
+2010-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/44062
+ * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
+ * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
+ look at its second operand.
+
+2010-05-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/44017
+ * semantics.c (baselink_for_fns): Revert earlier change.
+
+ PR c++/44045
+ * typeck.c (cp_build_modify_expr): Complain about assignment to
+ array from init list.
+
+2010-05-10 Fabien ChĂȘne <fabien.chene@gmail.com>
+
+ PR c++/43719
+ * decl.c (check_initializer): strip array type before checking for
+ uninitialized const or ref members.
+
+2010-05-07 Fabien ChĂȘne <fabien.chene@gmail.com>
+
+ PR c++/43951
+ * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
+ error count. Emit errors only if compain is true.
+ (build_new_1): Do not return error_mark_node if
+ diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
+ errors. Delay the check for user-provided constructor.
+ (perform_member_init): Adjust.
+ * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
+ prototype.
+
+2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
+ Jason Merrill <jason@redhat.com>
+
+ Add support for C++0x nullptr.
+ * cp-tree.def: Add NULLPTR_TYPE.
+ * cp-tree.h: Add nullptr_node.
+ (cp_tree_index): Add CPTI_NULLPTR.
+ (SCALAR_TYPE_P): Add NULLPTR_TYPE.
+ * call.c (null_ptr_cst_p): Handle nullptr.
+ (standard_conversion): Likewise.
+ (convert_arg_to_ellipsis): Likewise.
+ * mangle.c (write_type): Likewise.
+ * name-lookup.c (arg_assoc_type): Likewise.
+ * parser.c (cp_parser_primary_expression): Likewise.
+ * typeck.c (cp_build_binary_op): Likewise.
+ (build_reinterpret_cast_1): Likewise.
+ * error.c (dump_type): Likewise.
+ (dump_type_prefix, dump_type_suffix): Likewise.
+ * decl.c (cxx_init_decl_processing): Likewise.
+ * cxx-pretty-print.c (pp_cxx_constant): Likewise.
+ * cvt.c (ocp_convert): Likewise.
+ * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
+ nullptr_t tinfo in libsupc++.
+
+2010-05-06 Jason Merrill <jason@redhat.com>
+
+ * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
+
+2010-04-22 Jakub Jelinek <jakub@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ PR c/18624
+ * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
+ Declare ...
+ * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
+ * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
+ (decay_conversion, perform_integral_promotions): Call rvalue_use.
+ (cp_build_unary_op): Call lvalue_use.
+ * decl.c (unused_but_set_errorcount): New variable.
+ (poplevel): Issue -Wunused-but-set-variable diagnostics.
+ (duplicate_decls): Merge DECL_READ_P flags.
+ (start_cleanup_fn): Set DECL_READ_P flag.
+ (finish_function): Issue -Wunused-but-set-parameter diagnostics.
+ * tree.c (rvalue): Call rvalue_use.
+ * pt.c (convert_nontype_argument): Likewise.
+ * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
+ finish_decltype_type): Likewise.
+ * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
+ (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
+ or rvalue_use depending on the expr.
+ * init.c (build_new, build_delete): Likewise.
+ * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
+
+2010-05-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/43787
+ * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
+ * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
+
+2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/43028
+ * pt.c (unify): Check each elt for error_mark_node.
+
+2010-05-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/38064
+ * typeck.c (cp_build_binary_op): Allow enums for <> as well.
+
+2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/43705
+ * call.c (build_new_method_call): Return error_mark_node if fns is
+ NULL_TREE.
+
+2010-05-03 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/43953
+ * pt.c (most_specialized_class): Pretend we are processing
+ a template decl during the call to coerce_template_parms.
+
2010-05-03 Jason Merrill <jason@redhat.com>
PR c++/42810
* typeck.c (cxx_sizeof_expr): Likewise.
(strip_array_domain): New.
+ PR c++/43145
* name-lookup.c (current_decl_namespace): Non-static.
(pop_nested_namespace): Sanity check.
* cp-tree.h: Declare current_decl_namespace.