OSDN Git Service

PR libstdc++/37907
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index aa28747..81cc8e0 100644 (file)
@@ -1,3 +1,124 @@
+2009-07-16  Jason Merrill  <jason@redhat.com>
+
+       PR libstdc++/37907
+       Split POD into "standard-layout" and "trivial" as per N2230,
+       Support std::is_standard_layout and std::is_trivial traits.
+       * cp-tree.h (enum cp_trait_kind): Add CPTK_IS_STD_LAYOUT,
+       CPTK_IS_TRIVIAL.
+       (struct lang_type_class): Add non_std_layout.
+       (CLASSTYPE_NON_STD_LAYOUT): New.
+       * class.c (check_bases): Set it.
+       (check_field_decls): Likewise.
+       (check_bases_and_members): Likewise.
+       * parser.c (cp_parser_primary_expression): Handle RID_IS_STD_LAYOUT,
+       RID_IS_TRIVIAL.
+       (cp_parser_trait_expr): Likewise.
+       * semantics.c (trait_expr_value): Handle CPTK_IS_STD_LAYOUT,
+       CPTK_IS_TRIVIAL.
+       (finish_trait_expr): Likewise.
+       * tree.c (scalarish_type_p, trivial_type_p, std_layout_type_p): New.
+       (pod_type_p): Use them.
+       (type_has_nontrivial_copy_init, type_has_nontrivial_default_init): New.
+
+       Adjust bits of the language that no longer refer to POD types.
+       * call.c (convert_arg_to_ellipsis): Use type_has_nontrivial_copy_init
+       and TYPE_HAS_NONTRIVIAL_DESTRUCTOR rather than pod_type_p.
+       (build_x_va_arg): Likewise.
+       (call_builtin_trap): Remove.
+       * decl.c (declare_local_label): Use type_has_nontrivial_default_init
+       and TYPE_HAS_NONTRIVIAL_DESTRUCTOR rather than pod_type_p.
+       (cp_finish_decl): Likewise.
+       (check_previous_goto_1, check_goto): Adjust error.
+       * typeck.c (build_class_member_access_expr): Check
+       CLASSTYPE_NON_STD_LAYOUT rather than CLASSTYPE_NON_POD_P.
+
+2009-07-14  Taras Glek  <tglek@mozilla.com>
+           Rafael Espindola  <espindola@google.com>
+
+       * Make-lang.in: Added CP_PLUGIN_HEADERS and
+       c.install-target to export cp-tree.h cxx-pretty-print.h
+       name-lookup.h headers for plugins.
+
+2009-07-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/37276
+       * decl.c (decls_match): A non-extern-C declaration doesn't match
+       a builtin extern-C declaration.
+
+       PR c++/40746
+       * name-lookup.c (qualified_lookup_using_namespace): Don't stop
+       looking in used namespaces just because we found something on
+       another branch.
+
+       PR c++/40740
+       * semantics.c (perform_koenig_lookup): Handle empty template args.
+
+       * call.c (build_over_call): Use can_trust_pointer_alignment.
+
+2009-07-14  Dodji Seketeli  <dodji@redhat.com>
+
+       PR debug/40705
+       PR c++/403057
+       * decl2.c (grokfield): Don't call set_underlying_type on typedef
+       decls that are type names.
+
+2009-07-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR C++/22154
+       * parser.c (cp_parser_elaborated_type_specifier): Accept typename in
+       front of qualified names.
+
+2009-07-12  Jason Merrill  <jason@redhat.com>
+
+       PR c++/36628
+       * tree.c (rvalue): Use lvalue_or_rvalue_with_address_p.
+
+       PR c++/37206
+       * cp-tree.h (enum cp_lvalue_kind_flags): Add clk_rvalueref.
+       * tree.c (lvalue_p_1): Return it.  Remove
+       treat_class_rvalues_as_lvalues parm.
+       (real_lvalue_p): Disallow pseudo-lvalues here.
+       (lvalue_or_rvalue_with_address_p): New fn.
+       * call.c (initialize_reference): Use it instead of real_lvalue_p.
+
+       PR c++/40689
+       * init.c (build_new_1): Handle initializer list as array initializer.
+       (build_vec_init): Likewise.
+       * typeck.c (cp_build_modify_expr): Likewise.
+       * typeck2.c (process_init_constructor_array): Error rather than abort
+       if too many initializers.
+
+2009-07-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/40502
+       * error.c (cp_print_error_function): Check for NULL block.
+
+2008-07-09  Simon Martin  <simartin@users.sourceforge.net>
+           Jason Merrill  <jason@redhat.com>
+
+       * pt.c (perform_typedefs_access_check, get_types_needing_access_check,
+       append_type_to_template_for_access_check_1): Use CLASS_TYPE_P.
+
+2009-07-09  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/40684
+       * pt.c (type_unification_real): Use tsubst_template_arg instead
+       of tsubst to substitute default template arguments.
+
+2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/31246
+       * init.c (build_new_1): Set TREE_NO_WARNING for compiler-generated
+       code.
+       * cp-gimplify.c (genericize_eh_spec_block): Likewise.
+       
+
+2009-07-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/35828
+       * pt.c (tsubst_decl): Don't abort if we didn't change anything
+       in a TEMPLATE_DECL's args.
+
 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        * semantics.c (finalize_nrv_r): Replace EXPR_LOCUS by