OSDN Git Service

PR c++/48994
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index d6241cd..a425e75 100644 (file)
@@ -1,5 +1,63 @@
+2011-05-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       PR c++/48994
+       * parser.c (cp_parser_perform_range_for_lookup): Call complete_type.
+
+2011-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Implement final on class.
+       * class.c (check_bases): Diagnose derivation from a final class.
+       * cp-tree.h (lang_type_class): Add is_final and adjust dummy.
+       (CLASSTYPE_FINAL): New.
+       * parser.c (cp_parser_class_head): Parse class-virt-specifier, set
+       CLASSTYPE_FINAL.
+       * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.
+
+2011-05-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48969
+       * pt.c (deduction_tsubst_fntype): New.
+       (fn_type_unification): Use it.
+       (init_template_processing): Initialize hash table.
+       (print_template_statistics): Print hash table stats.
+
+       * call.c (build_op_call): Use timevar_cond_start/stop.
+       (build_user_type_conversion): Likewise.
+
+2011-05-12  Jason Merrill  <jason@redhat.com>
+
+       * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
+       * semantics.c (validate_constexpr_fundecl): Set it.
+       (check_deferred_constexpr_decls): Clear it.
+       (register_constexpr_fundef): Make sure it isn't set.
+       * decl.c (grok_special_member_properties): Check it.
+
 2011-05-11  Jason Merrill  <jason@redhat.com>
 
+       PR c++/48948
+       * semantics.c (validate_constexpr_fundecl): Defer checking if
+       an argument type is being defined.
+       (is_valid_constexpr_fn): Add defer_ok parm.
+       (cxx_eval_call_expression): Adjust.
+       (check_deferred_constexpr_decls): New.
+       (literal_type_p): Make sure type isn't being defined.
+       (ensure_literal_type_for_constexpr_object): Handle type being defined.
+       * cp-tree.h: Declare check_deferred_constexpr_decls.
+       * decl.c (grokfndecl): Call validate_constexpr_fundecl here.
+       (start_preparsed_function, cp_finish_decl): Not here.
+       * class.c (finalize_literal_type_property): Don't call
+       validate_constexpr_fundecl.
+       (finish_struct): Call check_deferred_constexpr_decls.
+       * pt.c (tsubst_decl): Call validate_constexpr_fundecl.
+       (instantiate_class_template): Call check_deferred_constexpr_decls.
+
+       * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
+       rather than DECL_TEMPLATE_INSTANTIATION.
+       (cxx_eval_call_expression): Likewise.
+
+       * semantics.c (register_constexpr_fundef): Add to hash table here.
+       (validate_constexpr_fundecl): Not here.
+
        * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
 
        * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,