OSDN Git Service

Fix PR c++/44188
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 3d77501..2350ae6 100644 (file)
@@ -1,3 +1,96 @@
+2010-05-25  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/44188
+       * cp-tree.h (typedef_variant_p): Move this declaration to
+       gcc/tree.h.
+       * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
+       * decl.c (grokdeclarator): Do not rename debug info of an
+       anonymous tagged type named by a typedef.
+
+2010-06-05  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+       
+       PR c++/44086
+       * class.c (check_field_decls): Move the call to
+       check_bitfield_decl before trying to set the
+       CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
+
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * typeck.c: Update include path for moved files.
+       * decl.c: Likewise.
+       * rtti.c: Likewise.
+       * cp-gimplify.c: Likewise.
+       * cp-lang.c: Likewise.
+       * pt.c: Likewise.
+       * semantics.c: Likewise.
+       * cxx-pretty-print.h: Likewise.
+       * decl2.c: Likewise.
+       * parser.c: Likewise.
+       * cp-objcp-common.c: Likewise.
+       * cp-tree.h: Likewise.
+       * name-lookup.c: Likewise.
+       * lex.c: Likewise.
+       * name-lookup.h: Likewise.
+       * config-lang.in: Update paths in gtfiles for files in c-family/.
+       * Make-lang.in: Likewise.
+
+2010-06-04  Magnus Fromreide  <magfr@lysator.liu.se>
+
+       * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
+       * typeck.c (build_ptrmemfunc): Likewise.
+
+2010-06-04  Jason Merrill  <jason@redhat.com>
+
+       * typeck2.c (merge_exception_specifiers): Adjust merging of
+       throw() and noexcept(true).
+
+       * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
+       using an uninitialized variable.
+
+       * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
+       (pp_cxx_expression): Likewise.
+
+       Implement noexcept-specification (15.4)
+       * parser.c (cp_parser_exception_specification_opt): Parse it.
+       Give -Wdeprecated warning about throw() specs.
+       * pt.c (tsubst_exception_specification): Handle it.
+       * error.c (dump_exception_spec): Handle it.
+       (dump_expr): Handle NOEXCEPT_EXPR.
+       * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
+       * typeck.c (comp_except_specs): Handle compatibility rules.
+       Change exact parm to take an enum.
+       * typeck2.c (merge_exception_specifiers): Handle noexcept.
+       * except.c (nothrow_spec_p, type_noexcept_p): New fns.
+       (type_throw_all_p, build_noexcept_spec): New fns.
+       * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
+       (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
+       (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
+       (noexcept_true_spec, noexcept_false_spec): New macros.
+       * name-lookup.c (pushdecl_maybe_friend): Adjust.
+       * search.c (check_final_overrider): Adjust.
+       * decl.c (check_redeclaration_exception_specification): Adjust.
+       (use_eh_spec_block): Use type_throw_all_p.
+       (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
+       Give operator new a noexcept-specification in C++0x mode.
+       * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
+       (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
+
+       Implement noexcept operator (5.3.7)
+       * cp-tree.def (NOEXCEPT_EXPR): New.
+       * except.c (check_noexcept_r, finish_noexcept_expr): New.
+       * cp-tree.h: Declare finish_noexcept_expr.
+       * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
+       * pt.c (tsubst_copy_and_build): And tsubst it.
+       (type_dependent_expression_p): Handle it.
+       (value_dependent_expression_p): Handle it.
+
+       * call.c (build_conditional_expr): Never fold in unevaluated context.
+       * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
+       * semantics.c (simplify_aggr_init_expr): Likewise.
+       * typeck.c (merge_types): Call merge_exception_specifiers.
+       * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
+       DECL_ANTICIPATED for preferring new type.
+
 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
 
        * g++spec.c (lang_specific_driver): Use GCC-specific formats in