OSDN Git Service

2010-06-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 9a031f9..45ddad5 100644 (file)
@@ -1,3 +1,340 @@
+2010-06-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/44486
+       * error.c (dump_decl): Better wording for anonymous namespace.
+
+2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * class.c (build_vtbl_initializer): Adjust computation of new_position
+       and which entry to add padding for.
+
+2010-06-16  Jason Merrill  <jason@redhat.com>
+
+       * except.c (check_noexcept_r): Return the problematic function.
+       (finish_noexcept_expr): Give -Wnoexcept warning.  Add complain parm.
+       * pt.c (tsubst_copy_and_build): Pass it.
+       * parser.c (cp_parser_unary_expression): Likewise.
+       * cp-tree.h: Adjust prototype.
+
+       * method.c (defaulted_late_check): Give the defaulted method
+       the same exception specification as the implicit declaration.
+
+2010-06-15  Jason Merrill  <jason@redhat.com>
+
+       * class.c (add_implicitly_declared_members): Implicit assignment
+       operators can also be virtual overriders.
+       * method.c (lazily_declare_fn): Likewise.
+
+       * call.c (convert_like_real): Give "initializing argument of"
+       information for ambiguous conversion.  Give source position
+       of function.
+
+       * call.c (print_z_candidates): Do print viable deleted candidates.
+       (joust): Don't choose a deleted function just because its worst
+       conversion is better than another candidate's worst.
+
+       * call.c (convert_like_real): Don't complain about
+       list-value-initialization from an explicit constructor.
+
+       * decl.c (duplicate_decls): Use DECL_IS_BUILTIN rather than test
+       DECL_SOURCE_LOCATION directly.
+
+       * class.c (type_has_user_provided_default_constructor): Use
+       sufficient_parms_p.
+
+       * call.c (is_subseq): Handle ck_aggr, ck_list.
+       (compare_ics): Treat an aggregate or ambiguous conversion to the
+       same type as involving the same function.
+
+2010-06-13  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       * typeck.c (convert_for_assignment): Fix comment. Change message
+       format from %d to %qP.
+       (convert_for_initialization): Fix comment. 
+
+2010-06-11  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       * cp-tree.h (expr_list_kind): New type.
+       (impl_conv_rhs): New type.
+       (build_x_compound_expr_from_list, convert_for_initialization): Adjust
+       prototype.
+       (typeck.c (convert_arguments): Use impl_conv_rhs and emit the
+       diagnostics for easy translation. Change caller.
+       (convert_for_initialization): Use impl_conv_rhs and change caller.
+       (build_x_compound_expr_from_list): Use expr_list_kind and emit the
+       diagnostics for easy translation. Change caller.
+       * decl.c (bad_spec_place): New enum.
+       (bad_specifiers): Use it and emit the diagnostics for easy
+       translation. Change caller.
+       * pt.c (coerce_template_parms): Put the diagnostics in full sentence.
+
+2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * cp-tree.h (struct saved_scope): Change decl_ns_list field type
+       to a VEC.
+       * decl2.c (cp_write_global_declarations): Adjust for new type of
+       decl_namespace_list.
+       * name-lookup.c (current_decl_namespace): Likewise.
+       (push_decl_namespace): Likewise.
+       (pop_decl_namespace): Likewise.
+
+2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * call.c (build_java_interface_fn_ref): Call build_function_type_list
+       instead of build_function_type.
+       * decl.c (cxx_init_decl_processing): Likewise.
+       (declare_global_var): Likewise.
+       (get_atexit_node): Likewise.
+       (expand_static_init): Likewise.
+       * decl2.c (start_objects): Likewise.
+       (start_static_storage_duration_function): Likewise.
+       * except.c (init_exception_processing): Likewise.
+       (build_exc_ptr): Likewise.
+       (build_throw): Likewise.
+       * rtti.c (throw_bad_cast): Likewise.
+       (throw_bad_typeid): Likewise.
+       (build_dynamic_cast_1): Likewise.
+
+2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * call.c (build_call_n): Call XALLOCAVEC instead of alloca.
+       (build_op_delete_call): Likewise.
+       (build_over_call): Likewise.
+       * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
+       * pt.c (process_partial_specialization): Likewise.
+       (tsubst_template_args): Likewise.
+       * semantics.c (finish_asm_stmt): Likewise.
+
+2010-06-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * decl.c (record_key_method_defined): New, broken out of ...
+       (finish_function): ... here.  Call it.  
+       (start_decl): Treat aliases as definitions.
+
+2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
+
+       * pt.c (maybe_process_partial_specialization): Likewise.
+       (register_specialization): Likewise.
+       (add_pending_template): Likewise.
+       (lookup_template_class): Likewise.
+       (push_tinst_level): Likewise.
+
+       * parser.c (cp_lexer_new_main): Likewise.
+       (cp_lexer_new_from_tokens): Likewise.
+       (cp_token_cache_new): Likewise.
+       (cp_parser_context_new): Likewise.
+       (cp_parser_new): Likewise.
+       (cp_parser_nested_name_specifier_opt): Likewise.
+       (cp_parser_template_id): Likewise.
+
+       * name-lookup.c (binding_entry_make): Likewise.
+       (binding_table_construct): Likewise.
+       (binding_table_new): Likewise.
+       (cxx_binding_make): Likewise.
+       (pushdecl_maybe_friend): Likewise.
+       (begin_scope): Likewise.
+       (push_to_top_level): Likewise.
+
+       * lex.c (init_reswords): Likewise.
+       (retrofit_lang_decl): Likewise.
+       (cxx_dup_lang_specific_decl): Likewise.
+       (copy_lang_type): Likewise.
+       (cxx_make_type): Likewise.
+
+       * decl.c (make_label_decl): Likewise.
+       (check_goto): Likewise.
+       (start_preparsed_function): Likewise.
+       (save_function_data): Likewise.
+
+       * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
+
+       * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
+
+       * class.c (finish_struct_1): Likewise.
+
+       * cp-tree.h (struct lang_type): Add variable_size GTY option.
+       (struct lang_decl): Likewise.
+
+       * parser.c (cp_parser_new): Update comment to not reference
+       ggc_alloc.
+
+2010-06-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/44366
+       * error.c (dump_parameters): Mask out TFF_SCOPE.
+       (dump_simple_decl): Don't print the scope of a PARM_DECL.
+       (dump_scope): Remove no-op mask.
+
+       PR c++/44401
+       * parser.c (cp_parser_lookup_name): Fix naming the constructor.
+
+       * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
+       * init.c (build_offset_ref): Use it.
+       * pt.c (maybe_process_partial_specialization): Use it.
+       (instantiate_class_template): Use it.
+       * search.c (lookup_base): Use it.
+
+2010-06-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/44444
+       * expr.c (mark_exp_read): Handle INDIRECT_REF.
+       * cvt.c (convert_to_void): Handle INDIRECT_REF like
+       handled_component_p.
+
+       PR c++/44443
+       * decl.c (initialize_local_var): If TREE_USED is set on the type,
+       set also DECL_READ_P on the decl.
+
+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
+       diagnostics.
+
+2010-06-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/44412
+       * typeck.c (build_class_member_access_expr): Call mark_exp_read
+       on object for static data members.
+
+2010-06-04  Jakub Jelinek  <jakub@redhat.com>
+           Jason Merrill  <jason@redhat.com>
+
+       PR c++/44362
+       * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
+       with the same type, call mark_lvalue_use on both.
+
+2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * class.c (struct vtbl_init_data_s): Remove last_init field.
+       (struct secondary_vptr_vtt_init_data_s): Change type of inits field
+       to a VEC.
+       (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
+       initializers.
+       (build_vtt): Likewise.
+       (initialize_vtable): Take a VEC instead of a tree.
+       (build_vtt_inits): Change return type to void.  Take a VEC **
+       instead of a tree *; accumulate results into said VEC.
+       (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
+       accumulated initializers.  Pass the vtable to accumulate_vtbl_inits.
+       (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
+       instead of a tree.
+       (dfs_accumulate_vtbl_inits): Likewise.  Change return type to void.
+       (build_vtbl_initializer): Add VEC parameter; accumulate initializers
+       into it.
+       (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
+       rather than tree_cons.
+       (build_vbase_offset_vtbl_entries): Likewise.
+       (add_vcall_offset): Likewise.
+       (build_rtti_vtbl_entries): Likewise.
+       * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
+       * decl.c (initialize_artificial_var): Use build_constructor instead
+       of build_constructor_from_list.
+
+2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR c++/44294
+       * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
+       bit-field.
+
+2010-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * parser.c (cp_parser_mem_initializer_list): Change error text.
+
 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
 
        * cp-objcp-common.c (shadowed_var_for_decl): Change into
        (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
        (init_shadowed_var_for_decl): Adjust initialization.
 
+       PR c++/44361
+       * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
+       instead of calling mark_exp_read only when not an assignment.
+
        PR debug/44367
        * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
        DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
@@ -1465,3 +1806,4 @@ Copyright (C) 2010 Free Software Foundation, Inc.
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved.
+