+2010-11-02 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/45606
+ * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): Remove.
+ (struct template_parm_index_s)<num_siblings>: New field.
+ (TEMPLATE_PARM_NUM_SIBLINGS): New accessor.
+ (process_template_parm): Extend the API to accept the number of
+ template parms in argument.
+ (cp_set_underlying_type): Remove this.
+ * class.c (build_self_reference): Require canonical type equality
+ back on the self reference of class.
+ * decl2.c (grokfield): Require canonical type equality back on
+ typedef class fields.
+ * name-lookup.c (pushdecl_maybe_friend): Require canonical type
+ equality back on typedefs.
+ * parser.c (cp_parser_template_parameter_list): Do not require
+ canonical type equality on dependent types created during template
+ parameters parsing.
+ * pt.c (fixup_template_type_parm_type, fixup_template_parm_index)
+ (fixup_template_parm, fixup_template_parms): New private
+ functions.
+ (current_template_args): Declare this.
+ (process_template_parm): Pass the total number of template parms
+ to canonical_type_parameter.
+ (build_template_parm_index): Add a new argument to carry the total
+ number of template parms.
+ (reduce_template_parm_level, process_template_parm, make_auto):
+ Adjust.
+ (current_template_args): Fix this for template template
+ parameters.
+ (tsubst_template_parm): Split out of ...
+ (tsubst_template_parms): ... this.
+ (reduce_template_parm_level): Don't loose
+ TEMPLATE_PARM_NUM_SIBLINGS when cloning a TEMPLATE_PARM_INDEX.
+ (template_parm_to_arg): Extracted this function from
+ current_template_args. Make it represent invalid template parms
+ with an error_mark_node instead of a LIST_TREE containing an
+ error_mark_node.
+ (current_template_args): Use template_parm_to_arg.
+ (dependent_template_arg_p): Consider an invalid template argument
+ as dependent.
+ (end_template_parm_list): Do not update template sibling parms
+ here anymore. Use fixup_template_parms instead.
+ (process_template_parm): Pass the number of template parms to
+ canonical_type_parameter.
+ (make_auto): Require structural equality on auto
+ TEMPLATE_TYPE_PARM for now.
+ (unify)<BOUND_TEMPLATE_TEMPLATE_PARM>: Coerce template parameters
+ using all the arguments deduced so far.
+ (tsubst)<TEMPLATE_TYPE_PARM>: Pass the number of sibling parms to
+ canonical_type_parameter.
+ * tree.c (cp_set_underlying_type): Remove.
+ * typeck.c (get_template_parms_of_dependent_type)
+ (incompatible_dependent_types_p): Remove.
+ (structural_comptypes): Do not call incompatible_dependent_types_p
+ anymore.
+ (comp_template_parms_position): Re-organized. Take the length of
+ template parms list in account.
+
+2010-11-01 Jason Merrill <jason@redhat.com>
+
+ * semantics.c (call_stack, call_stack_tick, cx_error_context): New.
+ (last_cx_error_tick, push_cx_call_context, pop_cx_call_context): New.
+ (cxx_eval_call_expression): Call push/pop_cx_call_context instead
+ of giving follow-on errors.
+ * error.c (maybe_print_constexpr_context): New.
+ (cp_diagnostic_starter): Call it.
+ * cp-tree.h: Declare cx_error_context.
+
+ * semantics.c (cxx_eval_constant_expression): Explain
+ unacceptable use of variable better.
+
+2010-11-01 Gabriel Dos Reis <gdr@cse.tamu.edu>
+ Jason Merrill <jason@redhat.com>
+
+ * call.c (null_ptr_cst_p): Use maybe_constant_value.
+ (set_up_extended_ref_temp): Support constant initialization.
+ (initialize_reference): Adjust.
+ * class.c (check_bitfield_decl): Use cxx_constant_value.
+ * cvt.c (ocp_convert): Don't use integral_constant_value when
+ converting to class type.
+ * decl.c (finish_case_label): Use maybe_constant_value.
+ (build_init_list_var_init): Support constant initialization.
+ (check_initializer): Likewise. Reorganize.
+ (cp_finish_decl): Likewise.
+ (expand_static_init): Likewise.
+ (compute_array_index_type): Use maybe_constant_value.
+ Add complain parm.
+ (create_array_type_for_decl, grokdeclarator): Pass it.
+ (build_enumerator): Use cxx_constant_value.
+ * decl2.c (grokfield): Use maybe_constant_init.
+ * except.c (check_noexcept_r): Handle constexpr.
+ (build_noexcept_spec): Use maybe_constant_value.
+ * init.c (expand_default_init): Support constant initialization.
+ (build_vec_init): Likewise.
+ (constant_value_1): Adjust.
+ (build_new_1): Adjust.
+ * parser.c (cp_parser_constant_expression): Allow non-integral
+ in C++0x mode.
+ (cp_parser_direct_declarator): Don't fold yet in C++0x mode.
+ (cp_parser_initializer_clause): Toss folded result if non-constant.
+ * pt.c (fold_decl_constant_value): Remove.
+ (convert_nontype_argument): Use maybe_constant_value. Give clearer
+ error about overflow.
+ (tsubst): Move array bounds handling into compute_array_index_type.
+ (value_dependent_expression_p): Handle constant CALL_EXPR.
+ (tsubst_decl): Don't set
+ DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P yet.
+ (tsubst_expr) [DECL_EXPR]: Pass it into cp_finish_decl.
+ (instantiate_decl): Here too.
+ * semantics.c (finish_static_assert): Use maybe_constant_value.
+ (ensure_literal_type_for_constexpr_object): Make sure type is complete.
+ (potential_constant_expression): Use maybe_constant_value.
+ * tree.c (cast_valid_in_integral_constant_expression_p): Any cast
+ is potentially valid in C++0x.
+ * typeck2.c (store_init_value): Handle constant init.
+ (check_narrowing): Use maybe_constant_value.
+ (build_functional_cast): Set TREE_CONSTANT on literal T().
+ * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): Remove.
+ (LOOKUP_ALREADY_DIGESTED): New.
+ (compute_array_index_type): Adjust prototype.
+
+ * semantics.c (constexpr_call): New datatype.
+ (constexpr_call_table): New global table.
+ (constexpr_call_hash): New.
+ (constexpr_call_equal): Likewise.
+ (maybe_initialize_constexpr_call_table): Likewise.
+ (lookup_parameter_binding): Likewise.
+ (cxx_eval_builtin_function_call): Likewise.
+ (cxx_bind_parameters_in_call): Likewise.
+ (cxx_eval_call_expression): Likewise.
+ (cxx_eval_unary_expression): Likewise.
+ (cxx_eval_binary_expression): Likewise.
+ (cxx_eval_conditional_expression): Likewise.
+ (cxx_eval_array_reference): Likewise.
+ (cxx_eval_component_reference): Likewise.
+ (cxx_eval_logical_expression): Likewise.
+ (cxx_eval_object_construction): Likewise.
+ (cxx_eval_constant_expression): Likewise.
+ (cxx_eval_indirect_ref): Likewise.
+ (cxx_constant_value): Likewise.
+ (cxx_eval_bare_aggregate): Likewise.
+ (adjust_temp_type): New.
+ (reduced_constant_expression_p): New.
+ (verify_constant): New.
+ (cxx_eval_vec_init, cxx_eval_vec_init_1): New.
+ (cxx_eval_outermost_constant_expr): New.
+ (maybe_constant_value, maybe_constant_init): New.
+ (cxx_eval_constant_expression): Use them.
+ * pt.c (iterative_hash_template_arg): No longer static.
+ * cp-tree.h: Declare fns.
+
+ * cp-tree.h (register_constexpr_fundef): Declare.
+ * decl.c (maybe_save_function_definition): New.
+ (finish_function): Use it.
+ * semantics.c (constexpr_fundef): New datatype.
+ (constexpr_fundef_table): New global table.
+ (constexpr_fundef_equal): New.
+ (constexpr_fundef_hash): Likewise.
+ (retrieve_constexpr_fundef): Likewise.
+ (validate_constexpr_fundecl): Store in the table.
+ (build_data_member_initialization): New fn.
+ (build_constexpr_constructor_member_initializers): New.
+ (register_constexpr_fundef): Define.
+ (is_this_parameter): New.
+ (get_function_named_in_call): Likewise.
+ (get_nth_callarg): Likewise.
+ (check_automatic_or_tls): New.
+ (morally_constexpr_builtin_function_p): New.
+ (potential_constant_expression): New.
+
+2010-11-01 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (decl_constant_var_p): New fn.
+ (decl_maybe_constant_var_p): New fn.
+ (mark_used): Rework instantiation of things needed for constant
+ expressions.
+ * cp-tree.h: Declare new fns.
+ * pt.c (instantiate_decl): Handle cp_unevaluated_operand.
+ (always_instantiate_p): Use decl_maybe_constant_var_p.
+ (instantiate_decl): Don't defer constexpr functions.
+ * repo.c (repo_emit_p): Use decl_maybe_constant_var_p.
+ * semantics.c (finish_id_expression): Use decl_constant_var_p.
+ Check for valid name in constant expr after mark_used.
+
+2010-10-31 Jason Merrill <jason@redhat.com>
+
+ * class.c (is_really_empty_class): Work when type is not complete.
+ (synthesized_default_constructor_is_constexpr): New.
+ (add_implicitly_declared_members): Use it.
+ (type_has_constexpr_default_constructor): Likewise.
+ * cp-tree.h: Declare it.
+ * method.c (synthesized_method_walk): Use it.
+
+ * decl.c (pop_switch): Use EXPR_LOC_OR_HERE.
+ * typeck.c (convert_for_assignment): Likewise.
+
+ * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
+ message about constexpr without -std=c++0x.
+
+ * decl.c (grokdeclarator): Don't ICE on constexpr non-static data
+ member.
+
+2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
+
+ * class.c (layout_vtable_decl): Call build_array_of_n_type.
+ (build_vtt, build_ctor_vtabl_group): Likewise.
+
+2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
+ * parser.c (cp_parser_objc_at_property_declaration): Removed
+ parsing of RID_COPIES and RID_IVAR. Updated call to
+ objc_add_property_declaration.
+ * typecheck.c (finish_class_member_access_expr): Call
+ objc_maybe_build_component_ref instead of objc_build_setter_call.
+ (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
+ of objc_build_getter_call.
+
+2010-10-27 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (cp_trait_kind): Add CPTK_IS_LITERAL_TYPE.
+ * cxx-pretty-print.c (pp_cxx_trait_expression): Handle it.
+ * semantics.c (trait_expr_value, finish_trait_expr): Likewise.
+ * parser.c (cp_parser_primary_expression): Handle RID_IS_LITERAL_TYPE.
+ (cp_parser_trait_expr): Likewise.
+
+2010-10-27 Gabriel Dos Reis <gdr@cse.tamu.edu>
+ Jason Merrill <jason@redhat.com>
+
+ * decl.c (finish_case_label): Use decl_constant_value.
+
+ * method.c (synthesized_method_walk): Track constexprness too.
+ (process_subob_fn, walk_field_subobs): Likewise.
+ (implicitly_declare_fn): Set DECL_DECLARED_CONSTEXPR_P.
+ (defaulted_late_check): Handle DECL_DECLARED_CONSTEXPR_P.
+ * class.c (add_implicitly_declared_members): Handle
+ constexpr default ctor.
+
+ * parser.c (cp_parser_ctor_initializer_opt_and_function_body):
+ Make sure a constexpr ctor has an empty body.
+ * class.c (type_has_constexpr_default_constructor): New.
+ * cp-tree.h: Declare it.
+ * init.c (perform_member_init): Complain about uninitialized
+ member in constexpr ctor.
+ (emit_mem_initializers): And uninitialized base.
+ * decl.c (check_tag_decl): Fix typo.
+
+ * semantics.c (valid_type_in_constexpr_fundecl_p): New fn.
+ (is_valid_constexpr_fn): New fn.
+ (validate_constexpr_fundecl): Use it.
+ * decl.c (validate_constexpr_redeclaration): New.
+ (duplicate_decls): Use it.
+ (cp_finish_decl): Call validate_constexpr_fundecl and
+ ensure_literal_type_for_constexpr_object here.
+ (start_decl): Not here. Don't ICE on constexpr reference.
+ (check_for_uninitialized_const_var): Don't handle constexpr specially.
+ (grokfndecl): Set DECL_DECLARED_CONSTEXPR_P.
+ (check_static_variable_definition): Give friendly message about
+ missing constexpr.
+ (grokdeclarator): Complain about typedef and volatile with constexpr.
+ Reorganize. Give sorry about non-static data members in C++0x mode.
+ (start_preparsed_function): Check validate_constexpr_fundecl here.
+ (check_function_type): Not here.
+ * decl2.c (finish_static_data_member_decl): Don't complain about
+ in-class init.
+ * parser.c (CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR): New.
+ (cp_parser_condition): Pass it to cp_parser_decl_specifier_seq.
+ (cp_parser_decl_specifier_seq): Handle it.
+ (cp_parser_explicit_instantiation): Diagnose inline and constexpr.
+
+ * class.c (check_bases): Propagate non-literality.
+ (check_field_decls): Likewise.
+ (finalize_literal_type_property): New.
+ (check_bases_and_members): Call it.
+ * cp-tree.h (TYPE_HAS_CONSTEXPR_CTOR): New.
+ (lang_type_class): Add has_constexpr_ctor field.
+ (DECL_DECLARED_CONSTEXPR_P): Strip template.
+ * decl.c (grok_special_member_properties): Set
+ TYPE_HAS_CONSTEXPR_CTOR.
+
+2010-10-27 Jason Merrill <jason@redhat.com>
+
+ * call.c (build_integral_nontype_arg_conv): New.
+ * cp-tree.h: Declare it.
+ * pt.c (convert_nontype_argument): Use it.
+
+ * error.c (dump_simple_decl): Print constexpr.
+
+ * cvt.c (build_up_reference): Use target_type for the temporary var.
+
+ * except.c (build_throw): Set EXPR_LOCATION.
+
+ * tree.c (build_cplus_new): Handle CONSTRUCTOR.
+
+ * semantics.c (finish_compound_stmt): Avoid creating an
+ unnecessary BIND_EXPR.
+
+ * call.c (convert_like_real): Don't check narrowing if the element
+ is also an initializer-list.
+
+2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * parser.c (cp_parser_objc_at_property_declaration): Recognize
+ RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
+ Do not use objc_set_property_attr, but use local variables
+ instead. Detect repeated usage of setter, getter and ivar
+ attributes. Improved error processing when a setter name does not
+ end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
+ that the token is a keyword. Updated call to
+ objc_add_property_declaration.
+
+2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * parser.c (cp_parser_objc_property_decl): Renamed to
+ cp_parser_objc_struct_declaration. Return the parsed trees
+ instead of calling objc_add_property_variable directly. Detect
+ missing or invalid declspecs. Implemented attributes. Do not eat
+ the ';' at the end. Exit loop whenever a non-comma is parsed, not
+ just EOF.
+ (cp_parser_objc_at_property): Renamed to
+ cp_parser_objc_at_property_declaration. Updated calls to
+ objc_add_property_variable, now objc_add_property_declaration, and
+ to cp_parser_objc_property_decl, now
+ cp_parser_objc_struct_declaration. Rewritten all code to be more
+ robust in dealing with syntax errors, and almost identical to the
+ one in c_parser_objc_at_property_declaration.
+ (cp_parser_objc_property_attrlist): Removed.
+ (cp_parser_objc_method_prototype_list): Updated call to
+ cp_parser_objc_at_property.
+ (cp_parser_objc_method_definition_list): Same change.
+ (cp_parser_objc_class_ivars): Detect a number of invalid
+ declarations of instance variables and produce errors when they
+ are found.
+
+2010-10-26 Jason Merrill <jason@redhat.com>
+
+ * tree.c (build_vec_init_expr): Split out from...
+ (build_array_copy): ...here.
+ * init.c (perform_member_init): Use it.
+ * cp-tree.h: Declare it.
+ * cp-gimplify.c (cp_gimplify_init_expr): Don't gimplify the slot for
+ VEC_INIT_EXPR and AGGR_INIT_EXPR here. Drop pre/post parameters.
+ (cp_gimplify_expr): Handle array default-initialization via
+ VEC_INIT_EXPR.
+
+ * tree.c (stabilize_expr): Handle xvalues properly.
+
+ * call.c (build_over_call): Use argarray[0] for 'this' argument.
+
+ * decl.c (finish_function): Don't look at function_depth.
+
+2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
+
+ Implement opaque-enum-specifiers for C++0x.
+ * cp-tree.h (SET_OPAQUE_ENUM_P): New.
+ (OPAQUE_ENUM_P): New.
+ (ENUM_FIXED_UNDERLYING_TYPE_P): New.
+ (start_enum): Update prototype.
+ (finish_enum_value_list): New prototype.
+ * parser.c (cp_parser_elaborated_type_specifier): Issue a pedwarn if
+ "enum class" is used in an elaborated-type-specifier.
+ (cp_parser_enum_specifier): Rewrite to parse opaque-enum-specifiers.
+ * decl.c (copy_type_enum): New.
+ (finish_enum_value_list): New, with code from finish_enum.
+ (finish_enum): A lot of code removed. Added a gcc_assert.
+ (start_enum): Add parameters enumtype and is_new.
+ Rewrite to work with opaque-enum-specifiers.
+ * pt.c (maybe_process_partial_specialization): Allow for template
+ specialization of enumerations, with a pedwarn.
+ (lookup_template_class): Update call to start_enum. Call to
+ SET_OPAQUE_ENUM_P.
+ (tsubst_enum): Call to begin_scope, finish_scope and
+ finish_enum_value_list.
+
+2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Removed Objective-C++ specific replacement of cxx_printable_name.
+ * cp-objcp-common.h: Added LANG_HOOKS_DECL_PRINTABLE_NAME, set
+ to cxx_printable_name for both C++ and Objective-C++.
+ * cp-lang.h: Removed LANG_HOOKS_DECL_PRINTABLE_NAME.
+
+ * error.c (dump_decl): For Objective-C++, call
+ objc_maybe_printable_name here ...
+ * tree.c (cxx_printable_name_internal): ... instead of here.
+
+2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * tree.c (cxx_printable_name_internal): In Objective-C++, call
+ objc_maybe_printable_name.
+
+2010-10-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/46129
+ * pt.c (instantiate_class_template): Don't instantiate default
+ arguments.
+
+ PR c++/46103
+ * init.c (build_vec_init): Handle memberwise move.
+
+2010-10-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/46117
+ * call.c (add_function_candidate): Don't use TREE_VALUE on null
+ parmnode.
+
+2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * parser.c (cp_parser_objc_method_type): Mark inline. Return a
+ bool instead of calling objc_set_method_type.
+ (cp_parser_objc_method_signature): Updated calls to
+ cp_parser_objc_method_type and to objc_build_method_signature.
+ (cp_parser_objc_method_prototype_list): Updated calls to
+ objc_add_method_declaration. Use token->type to determine if it
+ is a class method or not.
+ (cp_parser_objc_method_definition_list): Same change.
+
+2010-10-20 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
+
+ PR c++/46056
+ * parser.c (cp_convert_range_for): Call cp_finish_decl
+ instead of finish_expr_stmt.
+
+2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * cp-lang.c (finish_file): Removed.
+ * decl2.c (cp_write_global_declarations): Call
+ objc_write_global_declarations when compiling Objective-C++.
+
+2010-10-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/46046
+ * pt.c (add_to_template_args): Check extra_args for error_mark_node.
+ (coerce_template_parms): Likewise for args.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Implemented parsing @synthesize and @dynamic for Objective-C++.
+ * parser.c (cp_parser_objc_method_definition_list): Recognize
+ RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
+ (cp_parser_objc_at_dynamic_declaration): New.
+ (cp_parser_objc_at_synthesize_declaration): New.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * parser.c (cp_parser_objc_identifier_list): Check the return
+ value of cp_parser_identifier and react if it is error_mark_node.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from apple/trunk branch on FSF servers.
+
+ 2005-03-01 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4451818
+ * call.c (standard_conversion, implicit_conversion): Ignore
+ 'volatile' attribute of artificially volatized type in objc when
+ evaluating various conversion weights.
+
+ 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4330422
+ * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the
+ artiificially 'volatized' type before doing pointer comparison.
+
+2010-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/46015
+ * semantics.c (finish_goto_stmt): Call mark_rvalue_use on computed
+ goto destination.
+
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from apple/trunk branch on FSF servers.
+
+ 2006-04-19 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4516785
+ * parser.c (cp_parser_simple_type_specifier): Don't lookup for
+ objc object types if type is scope qualified.
+
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from apple/trunk branch on FSF servers.
+
+ 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4133425
+ * lex.c (unqualified_name_lookup_error): Issue diagnostic
+ for private 'ivar' access.
+
+2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
+
+ * parser.c (cp_parser_objc_visibility_spec): Update to use visibility
+ enum, and handle @package.
+
+2010-10-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/45983
+ * tree.c (cp_build_qualified_type_real): Don't reuse a variant
+ with a different typedef variant of the element type.
+
+2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
+
+ merge from FSF apple 'trunk' branch.
+ 2006 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radars 4436866, 4505126, 4506903, 4517826
+ * typeck.c (finish_class_member_access_expr): Handle CLASS.property
+ syntax.
+ (cp_build_modify_expr): Likewise.
+ * parser.c (cp_parser_objc_method_prototype_list): Handle @property.
+ (cp_parser_objc_method_definition_list): Likewise.
+ (cp_parser_objc_property_decl): New.
+ (cp_parser_objc_property_attrlist): New.
+ (cp_parser_objc_at_property): New.
+
+2010-10-14 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44561
+ * cp-tree.h (NULLPTR_TYPE_P): Adjust.
+ * decl.c (cxx_init_decl_processing): Build a NULLPTR_TYPE node,
+ use build_int_cst.
+ * error.c (dump_type): Handle NULLPTR_TYPE.
+ (dump_type_prefix): Likewise.
+ (dump_type_suffix): Likewise.
+ * mangle.c (write_type): Likewise.
+ * name-lookup.c (arg_assoc_type): Likewise.
+ * rtti.c (typeinfo_in_lib_p): Likewise.
+ * pt.c (tsubst): Likewise.
+
+2010-10-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/45984
+ * class.c (fixup_attribute_variants): New fn.
+ * cp-tree.h: Declare it.
+ * pt.c (instantiate_class_template): Call it.
+ * semantics.c (begin_class_definition): Call it.
+
+2010-10-13 Richard Henderson <rth@redhat.com>
+
+ * cp-lang.c (cp_eh_personality): Update call to
+ build_personality_function.
+ * except.c (choose_personality_routine): Update function comment.
+
+2010-10-13 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (cp_free_lang_data): Free DECL_NAMESPACE_USERS and
+ clear DECL_CHAIN of NAMESPACE_DECLs.
+
+2010-10-11 Martin Jambor <mjambor@suse.cz>
+
+ PR c++/45562
+ * cp-tree.h (current_class_ref): Check that cp_function_chain is
+ non-NULL.
+ * call.c (build_cxx_call): Likewise.
+
+2010-10-10 Jason Merrill <jason@redhat.com>
+
+ * pt.c (tsubst_default_argument): Handle DEFAULT_ARG.
+ (tsubst_default_arguments): Only do this once for cloned fns.
+ (tsubst): Use typedef_variant_p. Handle LANG_TYPE. Don't
+ handle expressions.
+ (tsubst_expr): Avoid calling tsubst_expr for non-expressions.
+ (tsubst_copy_and_build): Likewise.
+ (tsubst_initializer_list): Likewise.
+ (tsubst_copy): Change default to gcc_unreachable. Handle
+ OVERLOAD and PTRMEM_CST.
+
+2010-10-10 Jason Merrill <jason@redhat.com>
+
+ PR lto/45959
+ PR lto/45960
+ * pt.c (tsubst_copy) [INTEGER_CST]: Instantiate the type.
+
+2010-10-07 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (c++_OBJS): Remove dummy-checksum.o.
+ (cc1plus-dummy): Remove.
+ (cc1plus-checksum): Change to run checksum over object files
+ and options only.
+
+2010-10-08 Joseph Myers <joseph@codesourcery.com>
+
+ * cp-objcp-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
+
+2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * cp-tree.def: Changed type of AT_ENCODE_EXPR from tcc_unary to
+ tcc_expression.
+ * cxx-pretty-print.c (pp_cxx_unary_expression): Added case for
+ AT_ENCODE_EXPR.
+ * error.c (dump_expr): Added case for AT_ENCODE_EXPR.
+ * pt.c (tsubst_copy): Added case for AT_ENCODE_EXPR.
+ (value_dependent_expression_p): Added case for AT_ENCODE_EXPR.
+ (type_dependent_expression_p): Added case for AT_ENCODE_EXPR.
+ * parser.c (cp_parser_objc_encode_expression): Updated comment.
+
+2010-10-07 Nicola Pero <nicola@nicola.brainstorm.co.uk>
+
+ Merge from apple/trunk branch on FSF servers.
+
+ 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4508851
+ * parser.c (cp_parser_objc_interstitial_code): Recognize
+ and parse RID_NAMESPACE keyword.
+
+2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
+
+ * parser.c (cp_parser_objc_method_tail_params_opt): Peek new token after
+ finding ellipsis, before checking for attributes.
+
+2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from apple/trunk branch on FSF servers.
+ * cp-tree.def: Added AT_ENCODE_EXPR here instead of to the no
+ longer existing gcc/c-common.def.
+
+ 2005-12-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4278774
+ * pt.c (tsubst_copy_and_build): Instantiate @endcode(T).
+ * parser.c (cp_parser_objc_encode_expression): Build a templatized
+ parse tree for @encode(T).
+
+ 2005-12-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4278774
+ * c-common.def: Add new expression code AT_ENCODE_EXPR.
+
+2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR c++/45908
+ * typeck.c (cp_build_addr_expr_1): Add check for incomplete types in
+ code folding offsetof-like computations.
+
+2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc++/31125
+ * parser.c (cp_parser_objc_class_interface): If no identifier
+ follows an @interface token, stop parsing the interface after
+ printing an error.
+ (cp_parser_objc_class_implementation): If no identifier follows an
+ @implementation token, stop parsing the implementation after
+ printing an error.
+
+2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc++/23707
+ * parser.c (cp_parser_objc_method_keyword_params): If the required
+ colon is not found while parsing parameters, stop parsing them.
+
+2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc++/31126
+ * parser.c (cp_parser_objc_class_ivars): Do not eat the EOF or
+ @end after detecting it. Print an error if @end is found without
+ a '}'.
+ (cp_parser_objc_method_prototype_list): Do not eat the EOF after
+ detecting it. Fixed reading the next token when continuing
+ because of an error in a method signature. Print an error if EOF
+ is found without an '@end'.
+ (cp_parser_objc_method_definition_list): Same change.
+
+2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from apple/trunk branch on FSF servers:
+
+ 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4290840
+ * parser.c (cp_parser_objc_method_keyword_params): Check for valid
+ method parameters and issue error.
+ (cp_parser_objc_method_definition_list): Check for invalid tokens
+ which cannot start a function definition.
+
+ 2005-10-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4294425
+ * parser.c (cp_parser_objc_message_args): Check for missing message
+ arguments and syntax error.
+
+ 2005-10-13 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4261146
+ * parser.c (cp_parser_objc_class_ivars): Check for @end/eof while
+ looking for '}'.
+
+ 2005-08-15 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4093475
+ * parser.c (cp_parser_objc_interstitial_code): Catch stray
+ '{' and '}' tokens and issue appropriate errors.
+
+ 2005-08-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4185810
+ (cp_parser_statement_seq_opt): In addition to '}' and
+ end-of-file, a statement sequence may also be terminated
+ by a stray '@end'.
+
+2010-10-05 Joseph Myers <joseph@codesourcery.com>
+
+ * cp-tree.h (cxx_print_error_function,
+ cxx_initialize_diagnostics): Declare using diagnostic_context
+ typedef.
+
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (g++, cc1plus): Add + to build rule.
+
+2010-10-04 Jason Merrill <jason@redhat.com>
+
+ * tree.c (decl_storage_duration): New.
+ * cp-tree.h: Declare it.
+ (duration_kind): Return values.
+
+2010-10-03 Jason Merrill <jason@redhat.com>
+
+ * typeck.c (require_complete_type_sfinae): Add complain parm to...
+ (require_complete_type): ...this function.
+ (cp_build_array_ref, convert_arguments): Use it.
+ (convert_for_initialization, cp_build_modify_expr): Likewise.
+ * cp-tree.h: Declare it.
+ * call.c (build_over_call): Use it.
+
+2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
+
+ merge from FSF 'apple/trunk' branch.
+ 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4386773
+ * cp/parser.c (cp_parser_objc_interstitial_code): For
+ @optional/@required set the optional/required flag.
+
+2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * parser.c (cp_lexer_get_preprocessor_token): Tidied up comments
+ and indentation when finding an Objective-C++ CPP_AT_NAME token.
+
+2010-09-29 Richard Guenther <rguenther@suse.de>
+
+ * cp-tree.h (CP_DECL_CONTEXT): Check DECL_FILE_SCOPE_P.
+ (CP_TYPE_CONTEXT): Similar.
+ (FROB_CONTEXT): Frob global_namespace to the global
+ TRANSLATION_UNIT_DECL.
+ * decl.c (cxx_init_decl_processing): Build a TRANSLATION_UNIT_DECL,
+ set DECL_CONTEXT of global_namespace to it.
+ (start_decl): Use CP_DECL_CONTEXT and test TYPE_P
+ instead of zeroing context.
+ (cp_finish_decl): Use DECL_FILE_SCOPE_P.
+ (grokfndecl): Likewise.
+ (start_preparsed_function): Likewise.
+ * name-lookup.c (maybe_push_decl): Use DECL_NAMESPACE_SCOPE_P.
+ (namespace_binding): Use SCOPE_FILE_SCOPE_P.
+ * pt.c (template_class_depth): Use CP_TYPE_CONTEXT.
+ (is_specialization_of_friend): Use CP_DECL_CONTEXT.
+ (push_template_decl_real): Likewise.
+ (tsubst_friend_class): Likewise. Adjust context comparisons.
+ (instantiate_class_template): Use CP_TYPE_CONTEXT.
+ (tsubst): Do not substitute into TRANSLATION_UNIT_DECL.
+ * cxx-pretty-print.c (pp_cxx_nested_name_specifier): Use
+ SCOPE_FILE_SCOPE_P.
+
+2010-09-29 Yao Qi <yao@codesourcery.com>
+
+ * decl.c (get_atexit_node): Fix typo.
+
+2010-09-28 Jason Merrill <jason@redhat.com>
+
+ * tree.c (lvalue_kind): Rename from lvalue_p_1, make nonstatic.
+ (real_lvalue_p): Take const_tree.
+ * cp-tree.h: Adjust.
+ * typeck.c (lvalue_or_else): Make temporary arg a permerror.
+ (cp_build_addr_expr_1): Likewise.
+
+2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
+
+ Partially merged from apple/trunk branch on FSF servers:
+ 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
+ Radar 3803157 (method attributes)
+
+ * parser.c (cp_parser_objc_method_keyword_params): Handle attributes.
+ (cp_parser_objc_method_tail_params_opt): Likewise.
+ (cp_parser_objc_method_signature): Likewise.
+ (cp_parser_objc_method_maybe_bad_prefix_attributes): New.
+ (cp_parser_objc_method_prototype_list): Handle attributes.
+ (cp_parser_objc_method_definition_list): Likewise.
+
+2010-09-28 Richard Henderson <rth@redhat.com>
+
+ * cp-lang.c: Include "target.h".
+ (cp_eh_personality): Use targetm.except_unwind_info.
+ * Make-lang.in (cp-lang.o): Update deps.
+
+2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
+
+ * parser.c (cp_parser_objc_valid_prefix_attributes): New.
+ (cp_parser_declaration): Parse prefix attributes for ObjC++.
+ (cp_parser_objc_protocol_declaration): Handle attributes.
+ (cp_parser_objc_class_interface): Likewise.
+ (cp_parser_objc_declaration): Likewise.
+
2010-09-27 Jason Merrill <jason@redhat.com>
Require lvalues as specified by the standard.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from apple/trunk branch on FSF servers:
-
+
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
Radar 4175534
* call.c (standard_conversion): Do not issue warnings when
comparing ObjC pointer types.
-
+
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
between any two ObjC pointer types.
* typeck.c (composite_pointer_type): Determine common type
for two ObjC pointer types.
-
+
2010-09-24 Jan Hubicka <jh@suse.cz>
* decl.c (finish_function): Use decl_replaceable_p
- * method.c (make_alias_for_thunk): Update call of cgraph_same_body_alias.
+ * method.c (make_alias_for_thunk): Update call of
+ cgraph_same_body_alias.
2010-09-24 Jason Merrill <jason@redhat.com>