X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=d6787157f0e84b1cdb31ee4f7103b9454a1925aa;hp=6f612621e28a4b9ef6e92f94fbec2bba43478a49;hb=dfecde36dddd77b80db5b9848187ad3f982960ba;hpb=45b44d0a8af9fe510bbacb40a7f9b0eaec9557fd diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6f612621e28..d6787157f0e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,756 @@ +2008-05-21 Tom Tromey + + * mangle.c (save_partially_mangled_name): Remove. + (restore_partially_mangled_name): Likewise. + (write_encoding): Update. + (write_unqualified_name): Likewise. + (start_mangling): Always use name_obstack. Remove 'ident_p' + argument. + (get_identifier_nocopy): Remove. + (finish_mangling_internal): Rename from finish_mangling. + (finish_mangling): New function. + (finish_mangling_get_identifier): Likewise. + (partially_mangled_name, partially_mangled_name_len): Remove. + (mangle_decl_string): Change return type. Update. + (mangle_decl, mangle_type_string, mangle_special_for_type, + mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable, + mangle_ref_init_variable): Update. + +2008-05-12 Paolo Carlini + + PR c++/35331 + * semantics.c (begin_class_definition): Extend checks on the first + argument. + +2008-05-12 Tomas Bily + + * typeck2.c (digest_init): Use CONVERT_EXPR_P. + * call.c (build_over_call): Likewise. + * error.c (dump_expr): Use CASE_CONVERT. + * class.c (fixed_type_or_null): Likewise. + +2008-05-11 Volker Reichelt + + * parser.c (cp_parser_omp_clause_reduction): Add missing "expected" + in error message. + (cp_parser_omp_clause_schedule): Remove superfluous "expected" + in error message. + +2008-05-07 Kenneth Zadeck + + * decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY, + DECL_LOOPING_CONST_OR_PURE_P attributes. + * rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to + DECL_PURE_P. + +2008-05-02 Simon Baldwin + + PR bootstrap/36108 + * typeck.c (build_array_ref): Remove warn_array_subscript_range. + +2008-05-01 Simon Baldwin + + * typeck.c (build_array_ref): Call warn_array_subscript_range. + +2008-04-30 Jakub Jelinek + + PR c++/35986 + * pt.c (more_specialized_fn): Stop the loop even if there are no + arguments before ellipsis. + +2008-04-29 Jakub Jelinek + + PR c++/35650 + * parser.c (cp_parser_lookup_name): Look through single function + OVERLOAD. + + PR c++/35987 + * typeck.c (cp_build_modify_expr) : Don't build + COMPOUND_EXPR if the second argument would be error_mark_node. + +2008-04-28 Jason Merrill + Liu Guanwei + + PR c++/57 + * parser.c (cp_parser_parameter_declaration): Handle < ambiguity + in default arguments. + +2008-04-25 Jan Hubicka + + * typeck.c (check_return_expr): Update. + * decl.c (start_preparsed_function): Update. + * method.c (use_thunk): Update. + +2008-04-24 Jakub Jelinek + + PR c++/35758 + * cp-tree.h (cp_reconstruct_complex_type): New prototype. + * cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define. + * decl2.c (is_late_template_attribute): Only make vector_size + late tmpl attribute if argument is type or value dependent. + (cp_reconstruct_complex_type): New function. + +2008-04-24 Richard Guenther + + * typeck.c (cp_build_function_call): Call + check_builtin_function_arguments. + +2008-04-23 Paolo Bonzini + + * typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT. + (build_ptrmemfunc1): Don't set TREE_INVARIANT. + * init.c (build_zero_init): Don't set TREE_INVARIANT. + * class.c (build_base_path): Don't set TREE_INVARIANT. + (build_vtbl_ref_1): Don't set TREE_INVARIANT. + (build_vtbl_initializer): Don't set TREE_INVARIANT. + * decl.c (build_enumerator): Don't set TREE_INVARIANT. + * rtti.c (tinfo_base_init): Don't set TREE_INVARIANT. + (generic_initializer): Don't set TREE_INVARIANT. + (ptr_initializer): Don't set TREE_INVARIANT. + (ptm_initializer): Don't set TREE_INVARIANT. + (class_initializer): Don't set TREE_INVARIANT. + * typeck2.c (process_init_constructor): Don't set TREE_INVARIANT. + * pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT. + (build_template_parm_index): Don't set TREE_INVARIANT. + (reduce_template_parm_level): Don't set TREE_INVARIANT. + (process_template_parm): Don't set TREE_INVARIANT. + +2008-04-22 Jason Merrill + + PR c++/35316 + * semantics.c (finish_decltype_type): Check DECL_BIT_FIELD_TYPE + to see if DECL_BIT_FIELD_TYPE should be used, not some other flag. + * typeck.c (is_bitfield_expr_with_lowered_type): Likewise. + +2008-04-22 Jakub Jelinek + + PR c++/35747 + * semantics.c (finish_stmt_expr): Call pop_stmt_list even if the stmt + expression is errorneous. + +2008-04-21 Jason Merrill + + PR c++/35325 + * tree.c (cp_tree_equal): Handle FIXED_CST. + + PR c++/35678 + * pt.c (template_template_parm_bindings_ok_p): Set + processing_template_decl while in this function. + +2008-04-18 Kris Van Hees + + * cvt.c (type_promotes_to): Support char16_t and char32_t. + * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on + char16_t and char32_t. + * lex.c (reswords): Add char16_t and char32_t (for c++0x). + * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor + extended builtin type "u8char{16,32}_t". + * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support + RID_CHAR{16,32}. + (cp_lexer_print_token): Support CPP_STRING{16,32}. + (cp_parser_is_string_literal): Idem. + (cp_parser_string_literal): Idem. + (cp_parser_primary_expression): Support CPP_CHAR{16,32} and + CPP_STRING{16,32}. + (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. + * tree.c (char_type_p): Support char16_t and char32_t as char types. + * typeck.c (string_conv_p): Support char16_t and char32_t. + +2008-04-17 Jason Merrill + + PR c++/35773 + * call.c (build_user_type_conversion_1): Represent second step of + copy-init with an rvalue conversion. + (convert_like_real) [ck_user]: Don't implicitly add it here. + +2008-04-15 Jakub Jelinek + + PR c/35751 + * decl.c (layout_var_decl): If extern or static var has variable + size, set TREE_TYPE (decl) to error_mark_node. + +2008-04-16 Danny Smith + + PR target/35921 + * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag + to clone. + +2008-04-09 Jason Merrill + + PR c++/35708 + * semantics.c (finish_compound_literal): Return a TARGET_EXPR, + not a pushed variable. + +2008-04-09 Volker Reichelt + + * call.c (build_op_delete_call): Fix quotation in warning message. + * decl.c (grokdeclarator): Quote keyword in error message. + * pt.c (check_for_bare_parameter_packs): Fix quotation in error + message. + + * parser.c (cp_parser_check_type_definition): Print error string + directly rather than using "%s". + (cp_parser_postfix_expression): Fix quotation. + (cp_parser_decltype): Likewise. + (cp_parser_sizeof_operand): Fix quotation. Simplify. + + * parser.c (cp_parser_non_integral_constant_expression): Build error + message with CONCAT rather than using "%s". + (cp_parser_primary_expression): Fix quotation. + (cp_parser_postfix_expression): Likewise. + (cp_parser_postfix_dot_deref_expression): Likewise. + (cp_parser_unary_expression): Likewise. + (cp_parser_new_expression): Likewise. + (cp_parser_delete_expression): Likewise. + + * parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PAREN + as `)', not as `('. Fix quotation. + (cp_parser_consume_semicolon_at_end_of_statement): Fix quotation. + (cp_parser_primary_expression): Likewise. + (cp_parser_nested_name_specifier_opt): Likewise. + (cp_parser_postfix_expression): Likewise. + (cp_parser_postfix_open_square_expression): Likewise. + (cp_parser_parenthesized_expression_list): Likewise. + (cp_parser_pseudo_destructor_name): Likewise. + (cp_parser_new_expression): Likewise. + (cp_parser_direct_new_declarator): Likewise. + (cp_parser_delete_expression): Likewise. + (cp_parser_cast_expression): Likewise. + (cp_parser_question_colon_clause): Likewise. + (cp_parser_builtin_offsetof): Likewise. + (cp_parser_trait_expr): Likewise. + (cp_parser_label_for_labeled_statement): Likewise. + (cp_parser_compound_statement): Likewise. + (cp_parser_selection_statement): Likewise. + (cp_parser_condition): Likewise. + (cp_parser_iteration_statement): Likewise. + (cp_parser_already_scoped_statement): Likewise. + (cp_parser_simple_declaration): Likewise. + (cp_parser_linkage_specification): Likewise. + (cp_parser_static_assert): Likewise. + (cp_parser_decltype): Likewise. + (cp_parser_conversion_function_id): Likewise. + (cp_parser_operator_function_id): Likewise. + (cp_parser_operator): Likewise. + (cp_parser_type_parameter): Likewise. + (cp_parser_template_id): Likewise. + (cp_parser_explicit_instantiation): Likewise. + (cp_parser_explicit_specialization): Likewise. + (cp_parser_enum_specifier): Likewise. + (cp_parser_namespace_definition): Likewise. + (cp_parser_namespace_alias_definition): Likewise. + (cp_parser_using_declaration): Likewise. + (cp_parser_using_directive): Likewise. + (cp_parser_asm_definition): Likewise. + (cp_parser_direct_declarator): Likewise. + (cp_parser_ptr_operator): Likewise. + (cp_parser_parameter_declaration_clause): Likewise. + (cp_parser_initializer_clause): Likewise. + (cp_parser_class_specifier): Likewise. + (cp_parser_member_specification_opt): Likewise. + (cp_parser_member_declaration): Likewise. + (cp_parser_pure_specifier): Likewise. + (cp_parser_constant_initializer): Likewise. + (cp_parser_base_clause): Likewise. + (cp_parser_exception_specification_opt): Likewise. + (cp_parser_try_block): Likewise. + (cp_parser_function_try_block): Likewise. + (cp_parser_handler): Likewise. + (cp_parser_throw_expression): Likewise. + (cp_parser_asm_operand_list): Likewise. + (cp_parser_attributes_opt): Likewise. + (cp_parser_label_declaration): Likewise. + (cp_parser_constructor_declarator_p): Likewise. + (cp_parser_template_declaration_after_export): Likewise. + (cp_parser_single_declaration): Likewise. + (cp_parser_objc_message_expression): Likewise. + (cp_parser_objc_message_args): Likewise. + (cp_parser_objc_encode_expression): Likewise. + (cp_parser_objc_defs_expression): Likewise. + (cp_parser_objc_protocol_expression): Likewise. + (cp_parser_objc_selector_expression): Likewise. + (cp_parser_objc_protocol_refs_opt): Likewise. + (cp_parser_objc_typename): Likewise. + (cp_parser_objc_method_keyword_params): Likewise. + (cp_parser_objc_superclass_or_category): Likewise. + (cp_parser_objc_try_catch_finally_statement): Likewise. + (cp_parser_objc_synchronized_statement): Likewise. + (cp_parser_objc_throw_statement): Likewise. + (cp_parser_omp_var_list_no_open): Likewise. + (cp_parser_omp_clause_default): Likewise. + (cp_parser_omp_clause_if): Likewise. + (cp_parser_omp_clause_num_threads): Likewise. + (cp_parser_omp_clause_reduction): Likewise. + (cp_parser_omp_clause_schedule): Likewise. + (cp_parser_omp_critical): Likewise. + (cp_parser_omp_for_loop): Likewise. + (cp_parser_omp_sections_scope): Likewise. + + * parser.c (cp_parser_template_parameter_list): Simplify. + +2008-04-07 James E. Wilson + + * pt.c (tsubst_copy, case SIZEOF_EXPR): Initialize len. + +2008-04-07 Jason Merrill + + PR c++/35734 + * class.c (type_has_user_nondefault_constructor): A template + counts as a nondefault constructor. + +2008-04-04 Paolo Bonzini + + * decl.c (cxx_push_function_context): Delete. + (cxx_pop_function_context): Delete. + (start_preparsed_function): Merge cxx_push_function_context (!f->decl + code only). + * cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT, + LANG_HOOKS_FUNCTION_FINAL): Delete. + (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to + LANG_HOOKS_MISSING_NORETURN_OK_P. + * cp-tree.h (cxx_push_function_context, cxx_pop_function_context): + Delete prototype. + * semantics.c (current_stmt_tree): Fix comment. + +2008-04-03 Jakub Jelinek + + PR c++/35741 + * semantics.c (finish_offsetof): Undo effect of convert_from_reference + before calling fold_offsetof. + +2008-04-03 Tom Tromey + + * Make-lang.in (c++_OBJS): New variable. + +2008-04-03 Paolo Bonzini + + * optimize.c (clone_body): New, from tree-inline.c. + +2008-04-03 Paolo Bonzini + + * method.c (synthesize_method): Use {push,pop}_function_context. + * name-lookup.c (push_to_top_level): Likewise. + * parser.c (cp_parser_late_parsing_for_member): Likewise. + +2008-03-30 Volker Reichelt + + PR c++/35578 + * parser.c (cp_parser_decl_specifier_seq): Add location to error + message. + +2008-03-27 Tom Tromey + + * Make-lang.in: Revert automatic dependency patch. + +2008-03-27 Douglas Gregor + + PR obj-c++/35704 + * typeck.c (build_x_compound_expr): Use cp_build_compound_expr. + (build_compound_expr): New, for compatibility with C + build_compound_expr. + (cp_build_compound_expr): Renamed from build_compound_expr. + (build_c_cast): New, for compatibility with C build_c_cast. + (cp_build_c_cast): Renamed from build_c_cast. + * init.c (build_vec_delete_1): Fix calls to build_compound_expr. + * decl.c (cxx_maybe_build_cleanup): Ditto. + * cp-tree.h (build_compound_expr): Add C-compatibile prototype. + (cp_build_compound_expr): Renamed from build_compound_expr. + (build_c_cast): Add C-compatible prototype. + (cp_build_c_cast): Renamed from build_c_cast. + * typeck2.c (build_functional_cast): Use cp_build_c_cast. + * parser.c (cp_parser_cast_expression): Fix call to build_c_cast. + +2008-03-27 Douglas Gregor + + * pt.c (tsubst_copy) : Cope with + tsubst_pack_expansion returning a pack expansion, or a TREE_VEC + ending in a pack expansion, both of which can occur when + substituting into a nested template. + (tsubst_copy_and_build) : When we're + instantiating the sizeof...(X) form, make tsubst_copy do the work. + * parser.c (cp_parser_template_parameter): Deal with unnamed + non-type template parameter packs identified by pack expansions in + the parameter type. + +2008-03-26 Jakub Jelinek + + PR c++/35546 + * pt.c (apply_late_template_attributes): Don't call tsubst on + first attribute argument if it is IDENTIFIER_NODE. + + PR c++/35332 + * error.c (dump_expr): Pass {,UN}ORDERED_EXPR, UN{LT,LE,GT,GE,EQ}_EXPR + and LTGT_EXPR to pp_expression. + +2008-03-26 Douglas Gregor + + * pt.c (coerce_template_template_parm): Moved the body of the loop + of coerce_template_template_parms here, to make iteration over a + template argument pack simpler. + Also, allow matching of a template parameter pack in the template + template parameter to a template parameter in the template + template argument. + (coerce_template_template_parms): Deal with variadic template + template parameters. Use coerce_template_template_parm. + (unify): Make sure we coerce the template template argument's + template arguments to the template template parameter's template + parameters, not the other way around. + +2008-03-25 Tom Tromey + + * Make-lang.in: Remove .o targets. + (cp/g++spec.o): Moved to cp/. Reduce to variable setting. + (GXX_OBJS): Update. + (c++_OBJS): New variable. + (CXX_TREE_H, CXX_PRETTY_PRINT_H): Remove. + +2008-03-25 Douglas Gregor + + * typeck.c (composite_pointer_type_r): Add SFINAE support. + (composite_pointer_type): Ditto. + (common_type): Fix call to composite_pointer_type. + (cxx_sizeof_nowarn): New; used to be a macro. + (cxx_sizeof_expr): Add SFINAE support. + (cxx_alignof_expr): Ditto. + (decay_conversion): Fix calls for SFINAE support. + (rationalize_conditional_expr): Add SFINAE support. + (build_class_member_access_expr): Ditto. + (finish_class_member_access_expr): Ditto. + (build_x_indirect_ref): Ditto. + (build_indirect_ref): Original version renamed to + cp_build_indirect_ref; new version provides a bridge from + c-common. + (cp_build_indirect_ref): Was build_indirect_ref; added SFINAE + support. + (get_member_function_from_ptrfunc): Fix calls for SFINAE support. + (build_function_call): Original version renamed to + cp_build_function_call; new version provides a bridge from + c-common. + (cp_build_function_call): Was build_function_call; added SFINAE + support. + (convert_arguments): Add SFINAE support. + (build_x_binary_op): Ditto. + (build_binary_op): Original version renamed to cp_build_binary_op; + new version provides a bridge from c-common. + (cp_build_binary_op): Was build_binary_op; added SFINAE support. + (pointer_diff): Fix calls for SFINAE. + (build_x_unary_op): Add SFINAE support. + (condition_conversion): Fix calls for SFINAE. + (build_unary_op): Original version renamed to cp_build_unary_op; + new version provides a bridge from c-common. + (cp_build_unary_op): Was build_unary_op; added SFINAE support. + (unary_complex_lvalue): Fix calls for SFINAE. + (build_x_conditional_expr): Add SFINAE support. + (build_x_compound_expr_from_list): Fix calls for SFINAE. + (build_x_compound_expr): Add SFINAE support. + (convert_ptrmem): Fix calls for SFINAE. + (build_static_cast_1): Add SFINAE support. + (build_static_cast): Ditto. + (build_reinterpret_cast_1): Ditto. + (build_reinterpret_cast): Ditto. + (build_const_cast_1): Ditto. + (build_const_cast): Ditto. + (build_c_cast): Ditto. + (build_modify_expr): Original version renamed to + cp_build_modify_expr; new version provides a bridge from c-common. + (cp_build_modify_expr): Was build_modify_expr; added SFINAE + support. + (build_x_modify_expr): Add SFINAE support. + (build_ptrmemfunc): Fix calls for SFINAE. + (convert_for_assignment): Add SFINAE support. + (convert_for_initialization): Ditto. + (check_return_expr): Fix calls for SFINAE. + (lvalue_or_else): Add SFINAE support. + * init.c (perform_member_init): Fix calls for SFINAE. + (emit_mem_initializers): Ditto. + (expand_virtual_init): Ditto. + (expand_cleanup_for_base): Ditto. + (build_aggr_init): Add SFINAE support. + (expand_default_init): Ditto. + (expand_aggr_init_1): Fix calls for SFINAE. + (build_offset_ref): Ditto. + (build_new_1): Add SFINAE support. + (build_new): Ditto. + (build_vec_delete_1): Fix calls for SFINAE. + (get_temp_regvar): Ditto. + (build_vec_init): Add SFINAE support. + (build_dtor_call): Fix calls for SFINAE. + (build_delete): Ditto. + (push_base_cleanups): Ditto. + (build_vec_delete_1): Ditto. + * class.c (build_base_path): Fix calls for SFINAE. + (build_simple_base_path): Ditto. + (convert_to_base_statically): Ditto. + (build_vfn_ref): Ditto. + (resolve_address_of_overloaded_function): Ditto. + * decl.c (check_initializer): Fix calls for SFINAE. + (register_dtor_fn): Ditto. + (compute_array_index_type): Ditto. + (finish_enum): Ditto. + (start_preparsed_function): Ditto. + (cxx_maybe_build_cleanup): Ditto. + * call.c (convert_like): Add COMPLAIN argument. + (convert_like_with_context): Ditto. + (build_this): Fix calls for SFINAE. + (build_user_type_conversion): Ditto. + (resolve_args): Ditto. + (build_new_function_call): Add SFINAE support. + (build_operator_new_call): Fix calls for SFINAE. + (build_object_call): Add SFINAE support. + (build_conditional_expr): Ditto. + (build_new_op): Ditto. + (build_op_delete_call): Fix calls for SFINAE. + (build_temp): Ditto. + (convert_like_real): Add SFINAE support. + (build_x_va_arg): Fix calls for SFINAE. + (convert_default_arg): Ditto. + (build_over_call): Add SFINAE support. + (build_java_interface_fn_ref): Fix calls for SFINAE. + (build_special_member_call): Add SFINAE support. + (build_new_method_call): Ditto. + (perform_implicit_conversion): Ditto. + (perform_direct_initialization_if_possible): Ditto. + (initialize_reference): Fix calls for SFINAE. + * method.c (do_build_assign_ref): Fix calls for SFINAE. + * rtti.c (build_headof): Fix calls for SFINAE. + (get_tinfo_decl_dynamic): Ditto. + (get_typeid): Ditto. + (build_dynamic_cast_1): Add SFINAE support. + (build_dynamic_cast): Ditto. + (tinfo_base_init): Fix calls for SFINAE. + * except.c (do_get_exception_ptr): Fix calls for SFINAE. + (do_end_catch): Ditto. + (initialize_handler_parm): Ditto. + (expand_start_catch_block): Ditto. + (do_allocate_exception): Ditto. + (do_free_exception): Ditto. + (build_throw): Ditto. + * cvt.c (build_up_reference): Fix calls for SFINAE. + (convert_to_reference): Ditto. + (ocp_convert): Ditto. + (convert_to_void): Add SFINAE support. + * tree.c (build_dummy_object): Fix calls for SFINAE. + (stabilize_expr): Ditto. + * cp-tree.h (build_conditional_expr): Add tsubst_flags_t + parameter. + (build_new_method_call): Ditto. + (build_special_member_call): Ditto. + (build_new_op): Ditto. + (perform_implicit_conversion): Ditto. + (perform_direct_initialization_if_possible): Ditto. + (convert_to_void): Ditto. + (build_aggr_init): Ditto. + (build_new): Ditto. + (build_vec_init): Ditto. + (build_dynamic_cast): Ditto. + (finish_call_expr): Ditto + (cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter. + (cxx_sizeof_nowarn): Remove macro; add function declaration. + (build_class_member_access_expr): Add tsubst_flags_t parameter. + (finish_class_member_access_expr): Ditto. + (build_x_indirect_ref): Ditto. + (cp_build_indirect_ref): New. + (cp_build_function_call): Add tsubst_flags_t parameter. + (build_x_unary_op): Ditto. + (cp_build_unary_op): New. + (build_x_conditional_expr): Add tsubst_flags_t parameter. + (build_x_compound_expr): Ditto. + (build_compound_expr): Ditto. + (build_static_cast): Ditto. + (build_reinterpret_cast): Ditto. + (build_const_cast): Ditto. + (build_c_cast): Ditto. + (build_x_modify_expr): Ditto. + (cp_build_modify_expr): New. + (convert_for_initialization): Add tsubst_flags_t parameter. + (cp_build_binary_op): Remove macro; add function declaration. + (invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter. + (lvalue_or_else): Ditto. + (build_functional_cast): Ditto. + * typeck2.c (digest_init): Fix calls for SFINAE. + (process_init_constructor_array): Ditto. + (process_init_constructor_record): Ditto. + (build_x_arrow): Ditto. + (build_m_component_ref): Ditto. + (build_functional_cast): Add SFINAE support. + * pt.c (tsubst_copy_and_build): Add (more) SFINAE support. + * semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE. + (finish_expr_stmt): Ditto. + (finish_for_expr): Ditto. + (finish_asm_stmt): Ditto. + (finish_non_static_data_member): Ditto. + (finish_qualified_id_expr): Ditto. + (finish_call_expr): Add SFINAE support. + (finish_increment_expr): Fix calls for SFINAE. + (finish_unary_op_expr): Ditto. + (simplify_aggr_init_expr): Ditto. + (finish_omp_clauses): Ditto. + (finish_omp_for): Ditto. + (finish_omp_barrier): Ditto. + (finish_omo_flush): Ditto. + * decl2.c (grok_array_decl): Fix calls or SFINAE. + (build_anon_union_vars): Ditto. + (get_guard_cond): Ditto. + (set_guard): Ditto. + (one_static_initialization_or_destruction): Ditto. + (do_static_initialization_or_destruction): Ditto. + (generate_ctor_or_dtor_function): Ditto. + (build_offset_ref_call_from_tree): Ditto. + * parser.c (cp_parser_postfix_expression): Fix calls for SFINAE. + (cp_parser_postfix_dot_deref_expression): Ditto. + (cp_parser_unary_expression): Ditto. + (cp_parser_new_expression): Ditto. + (cp_parser_cast_expression): Ditto. + (cp_parser_binary_expression): Ditto. + (cp_parser_question_colon_clause): Ditto. + (cp_parser_assignment_expression): Ditto. + (cp_parser_expression): Ditto. + (cp_parser_builtin_offsetof): Ditto. + (cp_parser_template_argument): Ditto. + (cp_parser_functional_cast): Ditto. + +2008-03-24 Tom Tromey + + * lex.c (handle_pragma_interface): Don't copy the filename. + (handle_pragma_implementation): Copy filename using xstrdup. + +2008-03-21 Paolo Carlini + + * cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P. + (SET_IS_AGGR_TYPE): Rename to SET_CLASS_TYPE_P. + (IS_AGGR_TYPE_CODE): Rename to RECORD_OR_UNION_CODE_P. + (PROMOTES_TO_AGGR_TYPE): Remove. + (CLASS_TYPE_P, TYPE_NON_AGGREGATE_CLASS): Adjust. + * typeck.c (unary_complex_lvalue, build_modify_expr, + convert_for_initialization): Adjust. + * init.c (is_aggr_type): Remove. + (is_class_type): Add. + (build_offset_ref, build_new_1, build_vec_delete_1, build_vec_init, + build_delete): Adjust. + * lex.c (make_aggr_type): Remove. + (make_class_type): Add. + (cxx_make_type): Adjust. + * class.c (finish_struct_1, fixed_type_or_null, is_empty_class): + Adjust. + * decl.c (build_typename_type, make_typename_type, + make_unbound_class_template, cxx_init_decl_processing, + check_tag_decl, groktypename, start_decl_1, layout_var_decl, + check_initializer, cp_finish_decl, build_ptrmemfunc_type, grokparms, + grok_op_properties, xref_tag, check_function_type): Adjust. + * call.c (check_dtor_name, standard_conversion, implicit_conversion, + add_builtin_candidate, add_builtin_candidates, + build_user_type_conversion_1, convert_like_real, build_cxx_call, + is_subseq, compare_ics): Adjust. + * method.c (use_thunk): Adjust. + * rtti.c (build_dynamic_cast_1, create_pseudo_type_info, + create_tinfo_types): Adjust. + * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, + build_up_reference, convert_to_reference, convert_from_reference, + ocp_convert, build_expr_type_conversion): Adjust. + * tree.c (bind_template_template_parm, error_type): Adjust. + * dump.c (cp_dump_tree): Adjust. + * search.c (lookup_member): Adjust. + * friend.c (make_friend_class, do_friend): Adjust. + * typeck2.c (store_init_value, process_init_constructor_array, + process_init_constructor_record, build_x_arrow, build_m_component_ref, + build_functional_cast): Adjust. + * pt.c (finish_member_template_decl, process_template_parm, + lookup_template_class, tsubst_function_type, tsubst, + tsubst_copy_and_build, get_template_base, bt_instantiate_type_proc): + Adjust. + * semantics.c (begin_class_definition, finish_base_specifier, + finish_typeof, cxx_omp_predetermined_sharing, finish_decltype_type): + Adjust. + * name-lookup.c (constructor_name_p, push_overloaded_decl, + do_class_using_decl, lookup_qualified_name, + maybe_process_template_type_declaration): Adjust. + * decl2.c (grok_array_decl, check_member_template, + constrain_class_visibility): Adjust. + * parser.c (cp_parser_class_name): Adjust. + +2008-03-18 Paolo Bonzini + + * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. + +2008-03-17 Jason Merrill + + PR c++/35548 + * call.c (reference_binding): Check LOOKUP_NO_TEMP_BIND when binding + a temp directly to a reference as per DR391. + +2008-03-12 Richard Guenther + + PR c++/35469 + Revert: + 2008-02-04 Richard Guenther + + PR java/35035 + * decl.c (record_builtin_java_type): Make jboolean a + integer type again where its mode doesn't match that of bool. + + 2008-01-25 Richard Guenther + + PR c++/33887 + * decl.c (record_builtin_java_type): Make __java_boolean + a variant of bool. + * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check + after TYPE_MAIN_VARIANT check. + +2008-03-10 Jakub Jelinek + + PR c++/35328 + * semantics.c (finish_omp_clauses): Look through NOP_EXPR even + if errorcount. + + PR c++/35337 + * semantics.c (finish_omp_clauses): Use %qD instead of %qE for + DECL_P in not a variable and appears more than once error messages. + +2008-03-07 Paolo Bonzini + + Revert: + + 2008-02-06 Douglas Gregor + + PR c++/35049 + PR c++/35096 + * typeck.c (structural_comptypes): Call cp_comptypes. + (comptypes): New; called from the C/C++ common bits to perform + strict checks. + (cp_comptypes): Renamed from comptypes, which is already used, + with a different signature, by the C++ front end. + (build_reinterpret_cast_1): Call cp_comptypes. + (ptr_reasonably_similar): Ditto. + * decl.c (decls_match): Ditto. + * cvt.c (convert_to_reference): Ditto. + * cp-tree.h (same_type_p): Ditto. + (same_or_base_type_p): Ditto. + (comptypes): Rename to cp_comptypes. + * pt.c (canonical_type_parameter): Call cp_comptypes. + +2008-03-07 Paolo Bonzini + + * cp-objcp-common.c (cxx_types_compatible_p): Remove obsolete + test for equivalence between pointer and references. + +2008-03-02 Manuel Lopez-Ibanez + + PR 24924 + * class.c (finish_struct_anon): Use permerror instead of pedwarn. + (check_field_decls): Likewise. + (note_name_declared_in_class): Likewise. + * call.c (build_new_op): Likewise. + (convert_like_real): Likewise. + (build_over_call): Likewise. + * lex.c (unqualified_fn_lookup_error): Likewise. + * parser.c (cp_parser_template_id): Likewise. + * cvt.c (warn_ref_binding): Likewise. + (convert_to_reference): Likewise. + (ocp_convert): Likewise. + (convert_to_void): Use error instead of pedwarn. + * error.c (cp_cpp_error): Use pedantic_warning_kind. + * decl.c (compute_array_index_type): Use constant_expression_error. + 2008-03-01 Douglas Gregor * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Note @@ -1752,7 +2505,7 @@ 2007-09-05 Jan Hubicka - * cp/sematics.c (expand_body): Remove unnecesary import_export_decl + * sematics.c (expand_body): Remove unnecesary import_export_decl call, DECL_EXTERNAL checks and current_function_decl saving. 2007-09-05 Paolo Carlini @@ -2179,7 +2932,7 @@ * cp-objcp-common.c (cxx_get_alias_set): Change return type to alias_set_type. - * cp/cp-tree.h (cxx_get_alias_set): Update declaration. + * cp-tree.h (cxx_get_alias_set): Update declaration. 2007-08-10 Ollie Wild @@ -2852,7 +3605,7 @@ 2007-05-11 Silvius Rus - * cp/typeck.c (build_indirect_ref): Add call to + * typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. (build_reinterpret_cast_1): Condition call to strict_aliasing_warning. @@ -2942,7 +3695,7 @@ 2007-04-23 Jan Hubicka - * cp/decl2.c (finish_objects): Do not call target constructor/destructor + * decl2.c (finish_objects): Do not call target constructor/destructor bits dirrectly. 2007-04-21 Andrew Pinski @@ -2964,7 +3717,7 @@ 2007-04-16 Seongbae Park PR c++/29365 - * cp/decl2.c (constrain_class_visibility): + * decl2.c (constrain_class_visibility): Do not warn about the use of anonymous namespace in the main input file. 2007-04-15 Mark Mitchell @@ -2983,7 +3736,7 @@ 2007-04-11 Jan Hubicka - * cp/class.c (convert_to_base_statically): Fold produced tree; verify + * class.c (convert_to_base_statically): Fold produced tree; verify that we are not processing template_decl. 2007-04-09 Mark Mitchell @@ -3238,7 +3991,7 @@ 2007-03-14 Dirk Mueller - * cp/semantics.c (c_finish_if_stmt): Call empty_if_body_warning. + * semantics.c (c_finish_if_stmt): Call empty_if_body_warning. (finish_do_body): Warn about empty body in do/while statement. 2007-03-14 Manuel Lopez-Ibanez @@ -3253,7 +4006,7 @@ 2007-03-13 Alexandre Oliva - * cp/repo.c (init_repo): Initialize random_seed saved options. + * repo.c (init_repo): Initialize random_seed saved options. (finish_repo): Adjust. 2007-03-13 Mark Mitchell @@ -3507,7 +4260,7 @@ 2007-03-09 Dirk Mueller - * cp/call.c (build_new_op): Call warn_logical_operator. + * call.c (build_new_op): Call warn_logical_operator. 2007-03-08 Volker Reichelt