+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.