-2010-05-12 Jason Merrill <jason@redhat.com>
-
- 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
- PR c++/43680
- * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
- from the selected underlying type unless -fstrict-enums. Set
- ENUM_UNDERLYING_TYPE to have the restricted range.
- * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
- * class.c (check_bitfield_decl): Likewise.
-
-2010-05-01 H.J. Lu <hongjiu.lu@intel.com>
-
- PR c++/43951
- * init.c (build_new_1): Revert the accidental checkin in
- revision 158918.
-
-2010-04-30 Jason Merrill <jason@redhat.com>
-
- PR c++/43868
- * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
- (pp_cxx_type_specifier_seq): ...here.
-
-2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
-
- * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
- * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
-
-2010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
-
- PR c++/43779
- * typeck.c (warn_args_num): New function.
- (convert_arguments): Use warn_args_num to print the diagnostic
- messages.
-
-2010-04-29 Fabien Chêne <fabien.chene@gmail.com>
-
- PR c++/43890
- * init.c (diagnose_uninitialized_cst_or_ref_member): check for
- user-provided constructor while recursing.
-
-2010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c++/9335
- * error.c (print_instantiation_partial_context_line): Handle
- recursive instantiation.
- (print_instantiation_partial_context): Likewise.
-
-2010-04-27 Jason Merrill <jason@redhat.com>
-
- * init.c (perform_member_init): Check CLASS_TYPE_P.
-
-2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
-
- PR c++/29043
- * init.c (perform_member_init): check for uninitialized const or
- reference members, including array types.
-
-2010-04-24 Jason Merrill <jason@redhat.com>
-
- * tree.c (get_fns): Split out from get_first_fn.
- * cp-tree.h: Declare it.
- * search.c (shared_member_p): Use it.
- * semantics.c (finish_qualified_id_expr): Simplify.
- (finish_id_expression): Simplify.
-
- * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
- whenever object is NULL_TREE. Don't do 'this' capture here.
- (finish_qualified_id_expr): Pass NULL_TREE.
- (finish_id_expression): Likewise.
- (lambda_expr_this_capture): Likewise.
-
- * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
- rather than checking current_class_ref directly.
- (finish_call_expr): Likewise.
-
- PR c++/43856
- * name-lookup.c (qualify_lookup): Disqualify lambda op().
- * class.c (current_nonlambda_class_type): New fn.
- * semantics.c (nonlambda_method_basetype): New.
- * cp-tree.h: Declare them.
- * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
-
- * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
-
- PR c++/43875
- * semantics.c (lambda_return_type): Complain about
- braced-init-list.
-
- PR c++/43790
- * tree.c (cv_unqualified): Handle error_mark_node.
-
- PR c++/41468
- * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
- if we don't want errors.
-
- PR c++/41468
- * class.c (convert_to_base): Add complain parameter. Pass
- ba_quiet to lookup_base if we don't want errors.
- (build_vfield_ref): Pass complain to convert_to_base.
- * call.c (convert_like_real): Likewise.
- (initialize_reference): Likewise.
- (perform_direct_initialization_if_possible): Pass complain to
- convert_like_real.
- * cp-tree.h: Adjust.
-
-2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
- Jason Merrill <jason@redhat.com>
-
- PR c++/42844
- * decl.c (check_for_uninitialized_const_var): Handle classes that need
- constructing, too.
- (check_initializer): Call it for classes that need constructing, too.
- * class.c (in_class_defaulted_default_constructor): New.
- * cp-tree.h: Declare it.
-
-2010-04-20 Jason Merrill <jason@redhat.com>
-
- PR c++/9335
- * init.c (constant_value_1): Treat error_mark_node as a constant
- if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
- * cvt.c (ocp_convert): Handle getting error_mark_node from
- integral_constant_value.
- * decl.c (compute_array_index_type): Likewise.
-
-2010-04-20 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/43800
- PR c++/43704
- * typeck.c (incompatible_dependent_types_p): If one of the
- compared types if not a typedef then honour their main variant
- equivalence.
-
-2010-04-20 Jakub Jelinek <jakub@redhat.com>
-
- * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
-
-2010-04-19 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/43704
- * typeck.c (structural_comptypes): Test dependent typedefs
- incompatibility before testing for their main variant based
- equivalence.
-
-2010-04-19 Jakub Jelinek <jakub@redhat.com>
-
- * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
- ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
-
-2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * decl.c (cxx_init_decl_processing): Remove second argument in call to
- build_common_tree_nodes.
-
-2010-04-14 Jason Merrill <jason@redhat.com>
-
- PR c++/36625
- * parser.c (cp_parser_parenthesized_expression_list): Change
- is_attribute_list parm to int to indicate whether or not to
- handle initial identifier specially.
- (cp_parser_attribute_list): Use attribute_takes_identifier_p.
-
2010-04-13 Jason Merrill <jason@redhat.com>
* call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
* 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.
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.