X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=81cc8e0f64623dbfee25bf5ec1ea18dd394aba5c;hb=c1c67b4f5041c4367842002c81ffe912ff97f2d8;hp=e3fe9c25b81d3603431f4cc02d705c6c911a044a;hpb=782086f81ca240ce44b6045716b9e75160a98ee8;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e3fe9c25b81..81cc8e0f646 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,163 @@ +2009-07-16 Jason Merrill + + 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 + Rafael Espindola + + * 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 + + 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 + + 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 + + PR C++/22154 + * parser.c (cp_parser_elaborated_type_specifier): Accept typename in + front of qualified names. + +2009-07-12 Jason Merrill + + 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 + + PR c++/40502 + * error.c (cp_print_error_function): Check for NULL block. + +2008-07-09 Simon Martin + Jason Merrill + + * 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 + + 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 + + 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 + + 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 + + * semantics.c (finalize_nrv_r): Replace EXPR_LOCUS by + EXPR_LOCATION. + +2009-07-07 Jason Merrill + + PR c++/37816 + * decl.c (build_enumerator): Don't add enumerators for a + scoped enum to the enclosing class. + + PR c++/40639 + * decl.c (start_enum): Allow dependent underlying type. + + PR c++/40633 + * decl.c (finish_enum): Finish scope even in a template. + +2009-07-07 Manuel López-Ibáñez + + * init.c: Replace %J by an explicit location. Update all calls. + * decl.c: Likewise. + * typeck2.c: Likewise. + * pt.c: Likewise. + * name-lookup.c: Likewise. + +2009-07-06 Manuel López-Ibáñez + + * decl.c: Replace %H by an explicit location. Update all calls. + * except.c: Likewise. + * semantics.c: Likewise. + * parser.c: Likewise. + +2009-07-06 Simon Martin + + PR c++/40557 + * pt.c (perform_typedefs_access_check, get_types_needing_access_check, + append_type_to_template_for_access_check_1): Use + RECORD_OR_UNION_CODE_P. + 2009-07-04 Jason Merrill * pt.c (retrieve_specialization): Don't get confused by a