URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [cp/] [ChangeLog-2003] - Rev 778
Go to most recent revision | Compare with Previous | Blame | View Log
2003-12-30 Nathan Sidwell <nathan@codesourcery.com>PR c++/13507* decl.c (duplicate_decls): Use build_type_attribute_variant tomerge attributes.PR c++/13494* tree.c (build_cplus_array_type_1): Only build a minimal arraytype for dependent types or domains.2003-12-29 Nathan Sidwell <nathan@codesourcery.com>PR c++/12774* typeck.c (comp_array_types): Fold non-dependent domains forABI-1.2003-12-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/13289* semantics.c (finish_id_expression): Only check if the type ofa template argument is integral or enumeration when it is notdependent.2003-12-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/12403* parser.c (cp_parser_template_declaration_after_export): Set uptemplate specialization scope in case of explicit specialization.2003-12-28 Mark Mitchell <mark@codesourcery.com>PR c++/13081* decl.c (duplicate_decls): Preserve inline-ness when redeclaringa function template.PR c++/12613* decl.c (reshape_init): Reject GNU colon-style designatedinitializers in arrays.PR c++/13009* call.c (build_special_member_call): Do not assume that we have apointer to the complete object in an assignment operator.2003-12-28 Roger Sayle <roger@eyesopen.com>PR c++/13070* decl.c (duplicate_decls): When setting the type of an anticipateddeclaration, merge the existing type attributes.2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>PR c++/13268, c++/13339* class.c (add_method): Return early when method is error_mark_node.* pt.c (tsubst_friend_function): Return early when new_friend iserror_mark_node.2003-12-23 Mark Mitchell <mark@codesourcery.com>* cp-lang.c (cp_expr_size): Return zero for empty classes.* cp-tree.h (warn_if_uknown_interface): Remove unused function.* decl2.c (warn_if_unknown_interface): Likewise.2003-12-23 Nathan Sidwell <nathan@codesourcery.com>PR c++/13387* cp-lang.c (cxx_get_alias_set): Correct logic for a base type.2003-12-22 Mark Mitchell <mark@codesourcery.com>* decl.c (start_function): Do not checkflag_alt_external_templates or flag_external_templates.* decl2.c (warn_if_unknown_interface): Likewise.* lex.c (extract_interface_info): Likewise.* pt.c (lookup_template_class): Likewise.PR c++/12862* name-lookup.c (pushdecl): Look up all namespace-scope entitiesin their corresponding namespace.PR c++/12397* typeck.c (finish_class_member_access_expr): Don't treeIDENTIFIER_NODEs as non-dependent expressions.2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>PR c++/5050* tree.c (cp_start_inlining): Remove.(cp_end_inlining): Remove.* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.(LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.* cp-tree.h (cp_start_inlining): Do not declare.(cp_end_inlining): Do not declare.2003-12-22 Mark Mitchell <mark@codesourcery.com>PR c++/12479* parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;"pedwarn when not in a system header.2003-12-21 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE,CPTI_UNION_TYPE, CPTI_ENUM_TYPE.(record_type_node): Remove.(union_type_node): Likewise.(enum_type_node): Likewise.* decl.c: Remove mention of above tree nodes in comment.* lex.c (cxx_init): Do not assign to record_type_node,union_type_node, or enum_type_node. Simplify handling ofclass_type_node.PR c++/11554* init.c (sort_mem_initializers): Add warning.2003-12-21 Kazu Hirata <kazu@cs.umass.edu>* call.c: Fix comment formatting.* class.c: Likewise.* cp-tree.h: Likewise.* cvt.c: Likewise.* cxx-pretty-print.c: Likewise.* decl.c: Likewise.* decl2.c: Likewise.* error.c: Likewise.* except.c: Likewise.* init.c: Likewise.* name-lookup.c: Likewise.* parser.c: Likewise.* pt.c: Likewise.* rtti.c: Likewise.* semantics.c: Likewise.* typeck.c: Likewise.* typeck2.c: Likewise.2003-12-19 Kazu Hirata <kazu@cs.umass.edu>* cvt.c: Remove uses of "register" specifier indeclarations of arguments and local variables.* decl.c: Likewise.* decl2.c: Likewise.* expr.c: Likewise.* friend.c: Likewise.* lex.c: Likewise.* name-lookup.c: Likewise.* repo.c: Likewise.* search.c: Likewise.* tree.c: Likewise.* typeck.c: Likewise.* typeck2.c: Likewise.2003-12-19 Mark Mitchell <mark@codesourcery.com>PR c++/12795* name-lookup.c (pushdecl): Do not treated any functions as being"nested" in C++.2003-12-19 Jason Merrill <jason@redhat.com>PR c++/13371* typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.* cvt.c (convert_to_void): Don't warn about the RHS of a commabeing useless if TREE_NO_UNUSED_WARNING is set.2003-12-18 Richard Henderson <rth@redhat.com>* cp-tree.h (struct lang_type_header): Remove __extension__.2003-12-18 Jason Merrill <jason@redhat.com>PR c++/12253* init.c (build_vec_init): Initialization of an element froman initializer list is also a full-expression.* parser.c, pt.c, semantics.c: Rename constant_expression_pto integral_constant_expression_p.2003-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/13262* pt.c (instantiate_decl): Wrap push_nested_class andpop_nested_class around cp_finish_decl call for static membervariable.2003-12-18 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/9154* parser.c (cp_parser_template_argument): A type-id followed by '>>'is just an user typo, and should be accepted as last resort if anyother parsing fails.(cp_parser_enclosed_template_argument_list): If the argument list isparsed correctly, but the next token is '>>', emit a diagnostic.(cp_parser_next_token_ends_template_argument): Accept '>>' asdelimiter of template argument, it will be later detected as a typo.2003-12-17 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in: Replace cp/g++.1 with $(docobjdir)/g++.1.2003-12-17 Mark Mitchell <mark@codesourcery.com>PR c++/10603PR c++/12827* parser.c (cp_parser_error): Help c_parse_error print goodmessages if the next token is a keyword.(cp_parser_parameter_declaration_list): When resynchronizing aftera bad parameter declaration, stop if a comma is found.(cp_parser_parameter_declaration): Avoid backtracking.2003-12-16 Mark Mitchell <mark@codesourcery.com>PR c++/12696* decl.c (reshape_init): Recover quickly from errors.2003-12-16 Nathan Sidwell <nathan@codesourcery.com>PR c++/9043C++ ABI change: Mangling array indices in templates.* decl.c (compute_array_index_type): Reorganize for earliertemplate errors. Use value_dependent_expression_p for abi-2.* mangle.c (write_array_type): Check broken mangling forexpression indices on abi-12003-12-16 Mark Mitchell <mark@codesourcery.com>PR c++/12696* decl.c (reshape_init): Recover quickly from errors.PR c++/13275* lex.c (reswords): Add "__offsetof" and "__offsetof__".* parser.c (cp_parser): Add in_offsetof_p.(cp_parser_new): Initialize it.(cp_parser_primary_expression): Handle __offsetof__ (...).(cp_parser_postfix_expression): Allow casts to pointer type anduses of "->" in a constant expression if implementing offsetof.(cp_parser_unary_expression): Allow the use of "&" in a constantexpression if implementing offsetof.2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/2294* name-lookup.c (push_overloaded_decl): always construct an OVERLOADif the declaration comes from an using declaration.2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>* semantics.c (finish_id_expression): Refactor the code to handletemplate parameters, and emit a more informative error messagewhen they are used within an integral constant expression.2003-12-16 Nathan Sidwell <nathan@codesourcery.com>PR c++/13387* class.c (finish_struct_1): Compute mode and alias set forCLASSTYPE_AS_BASE.* call.c (build_over_call): Use CLASSTYPE_AS_BASE for trivialassignment of a class, as necessary.* cp-lang.c (cxx_get_alias_set): The alias set as a base is thesame as for the complete type.PR c++/13242C++ ABI change. Mangling template parameters of reference type* mangle.c (write_template_args): Remove unreachable code.(write_template_arg): Look through an argument of reference type.2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/2294* name-lookup.c (push_overloaded_decl): always construct an OVERLOADif the declaration comes from an using declaration.2003-12-15 Mark Mitchell <mark@codesourcery.com>PR c++/10926* decl2.c (grokfield): Robustify.PR c++/11116* parser.c (cp_parser_throw_expression): Determine whether or notan assignment-expression is present by doing one-token lookahead.PR c++/13269* parser.c (cp_parser_function_definition_after_declarator): Stopscanning tokens when reaching EOF.PR c++/12989* typeck.c (cxx_sizeof_or_alignof_expr): Robustify.PR c++/13310* pt.c (dependent_template_p): Handle OVERLOADs.2003-12-15 Mark Mitchell <mark@codesourcery.com>PR c++/13243PR c++/12573* parser.c (cp_parser_postfix_expression): Tighten handling ofintegral constant expressions.(cp_parser_unary_expression): Likewise.* pt.c (value_dependent_expression_p): Remove handling forCOMPONENT_REFs.2003-12-15 Nathan Sidwell <nathan@codesourcery.com>* class.c (add_method): Disallow destructor for java classes.* decl.c (xref_basetypes): Check java class inheritance.* decl2.c (check_java_method): Skip artificial params.PR c++/13241C++ ABI change. Mangling of symbols in expressions.* mangle.c (write_mangled_name): Add top_level flag. Rework fornested and unnested mangling. Deal with abi version 1 and version2 differences.(write_expression): Adjust write_mangled_name call.(mangle_decl_string): Use write_mangled_name for all non-type decls.2003-12-14 Mark Mitchell <mark@codesourcery.com>PR c++/10779PR c++/12160* parser.c (struct cp_parser): Add in_template_argument_list_p.(cp_parser_error): Use c_parse_error.(cp_parser_name_lookup_error): New function.(cp_parser_new): Initialize it.(cp_parser_declarator): Add parenthesized_p parameter.(cp_parser_nested_name_specifier_opt): Usecp_parser_name_lookup_error.(cp_parser_parenthesized_expression_list): Improve comments.(cp_parser_condition): Adjust call to cp_parser_declarator.(cp_parser_template_parameter): Adjust call tocp_parser_parameter_declaration.(cp_parser_template_argument_list): Setin_template_argument_list_p.(cp_parser_explicit_instantiation): Adjust call tocp_parser_declarator.(cp_parser_simple_type_specifier): Remove unncessary code.(cp_parser_using_declaration): Use cp_parser_name_lookup_error.(cp_parser_init_declarator): Handle member function definitions.(cp_parser_direct_declarator): Adjust call tocp_parser_declarator.(cp_parser_type_id): Adjust call to cp_parser_declarator.(cp_parser_parameter_declaration_list): Avoid backtracking wherepossible.(cp_parser_parameter_declaration): Add parenthesized_p parameter.(cp_parser_function_definition): Remove.(cp_parser_member_declaration): Do not backtrack to look forfunction definitions.(cp_parser_exception_declaration): Adjust call tocp_parser_declarator.(cp_parser_single_declaration): Handle function definitions viacp_parser_init_declarator.(cp_parser_save_member_function_body): New function.2003-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/13106* decl.c (finish_function): Check if return type is dependent beforeissuing no return statement warning.2003-12-12 Nathan Sidwell <nathan@codesourcery.com>PR c++/13118* cp-tree.h (lang_decl_u): Add thunk_alias member.(THUNK_VIRTUAL_OFFSET): Must be a FUNCTION_DECL.(THUNK_ALIAS_P): Remove.(THUNK_ALIAS): Adjust.* class.c (update_vtable_entry_for_fn): Get the vbase within theoverriding function's return type.(dump_thunk): Adjust THUNK_ALIAS printing.(build_vtbl_initializer): Adjust THUNK_ALIAS use.* method.c (make_thunk): Revert 12881 test change. ClearTHUNK_ALIAS.(finish_thunk): Adjust THUNK_ALIAS setting.(use_thunk): Adjust THUNK_ALIAS use.* semantics.c (emit_associated_thunks): Likewise.PR c++/13114, c++/13115* class.c (layout_empty_base): Propagate the move of an empty baseto offset zero.PR c++/12881* method.c (make_thunk): Deal with thunk aliases when searchingfor a thunk. Robustify assertion.2003-12-11 Nathan Sidwell <nathan@codesourcery.com>* mangle.c (conv_type_names): Holds IDENTIFIER_NODEs only.(hash_type): Use TYPE_UID of the identifier's type.(compare_type): Adjust.(mangle_conv_op_name_for_type): Store identifier nodes only, useTYPE_UID has hash value.2003-12-10 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (DECL_CONV_FN_P): Check that DECL_NAME is non-NULL.2003-12-08 Matt Austern <austern@apple.com>PR c/13134* decl.c (duplicate_decls): Copy visibility flag when appropriate.2003-12-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>* init.c (build_new_1): Deal with an OVERLOAD set whenlooking up for _Jv_AllocObject.* except.c (build_throw): Likewise for _Jv_Throw.2003-12-08 Jason Merrill <jason@redhat.com>PR c++/11971* tree.c (build_local_temp): Split out from build_cplus_new.(force_target_expr): New fn.* call.c (call_builtin_trap): Call it. Take a type parm.(convert_arg_to_ellipsis): Pass it.(build_x_va_arg): Use call_builtin_trap.PR c++/11929* call.c (magic_varargs_p): New fn.(build_over_call): Do no ellipsis conversions for arguments tofunctions with magic varargs.* name-lookup.c, init.c, except.c: Revert Giovanni's patch fromyesterday.Give the anonymous namespace a null DECL_NAME.* cp-tree.h: Don't declare anonymous_namespace_name.* decl.c: Don't define it.* dump.c (cp_dump_tree): Don't check for it.* cxx-pretty-print.c (pp_cxx_original_namespace_definition): Likewise.* error.c (dump_decl): Likewise.* name-lookup.c: Define it here.(push_namespace): Put it in DECL_ASSEMBLER_NAME instead.* mangle.c (write_unqualified_name): Adjust.2003-12-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/2294* name-lookup.c (push_overloaded_decl): Always construct anOVERLOAD unless the declaration is a built-in.(set_namespace_binding): While binding OVERLOADs with only onedeclaration, we still need to call supplement_binding.* init.c (build_new_1): Deal with an OVERLOAD set whenlooking up for _Jv_AllocObject.* except.c (build_throw): Likewise for _Jv_Throw.2003-12-06 Mark Mitchell <mark@codesourcery.com>PR c++/13323* class.c (same_signature_p): Handle conversion operatorscorrectly.(check_for_override): Likewise.2003-12-06 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in (GXX_CROSS_NAME, CXX_CROSS_NAME): Delete.(c++.install_common, cp/g++.1, c++.install-man): Adjust for above.(c++.uninstall): Likewise.2003-12-05 Danny Smith <dannysmith@gcc.gnu.org>Mark Mitchell <mark@codesourcery.com>PR c++/13305* parser.c (cp_parser_elaborated_type_specifier): Acceptattributes.2003-12-05 Mark Mitchell <mark@codesourcery.com>PR c++/13314* parser.c (cp_parser_class_specifier): Match push_scope/pop_scopecalls.(cp_parser_class_head): Likewise.2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/13166* parser.c (cp_parser_late_parsing_default_args): Make sure thecontext is a class before calling push_nested_class andpop_nested_class.2003-12-03 James E Wilson <wilson@specifixinc.com>* g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONSsupport.2003-12-03 Mark Mitchell <mark@codesourcery.com>PR c++/9127* cp-tree.h (at_namespace_scope_p): New function.* parser.c (cp_parser_class_head): Handle invalid explicitspecializations.* search.c (at_namespace_scope_p): New function.PR c++/13179* semantics.c (finish_handler_parms): Do not call eh_type_info fortypes used in templates.PR c++/10771* parser.c (cp_parser_check_for_invalid_template_id): Newfunction.(cp_parser_simple_type_specifier): Use it.(cp_parser_elaborated_type_specifier): Likewise.(cp_parser_class_head): Likewise.2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/10126* pt.c (convert_nontype_argument): Handle default conversionswhile converting a pointer to member function.2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>PR c++/12573* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs bylooking into them recursively.2003-12-02 Richard Henderson <rth@redhat.com>* name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD.* parser.c (struct cp_token): Likewise.(struct cp_parser_token_tree_map_node): Likewise.* lex.c (struct resword): Move const after ENUM_BITFIELD.2003-11-30 Mark Mitchell <mark@codesourcery.com>PR c++/9849* parser.c (cp_lexer_prev_token): New function.(cp_parser_skip_to_closing_parenthesis): Add consume_parenparameter.(cp_parser_nested_name_specifier_opt): Add is_declarationparameter.(cp_parser_nested_name_specifier): Likewise.(cp_parser_class_or_namespace_name): Likewise.(cp_parser_class_name): Likewise.(cp_parser_template_id): Likewise.(cp_parser_template_name): Likewise.(cp_parser_id_expression): Adjust calls tocp_parser_nested_name_specifier_op, cp_parser_template_id,cp_parser_class_name.(cp_parser_unqualified_id): Likewise.(cp_parser_postfix_expression): Likewise.(cp_parser_pseudo_destructor_name): Likewise.(cp_parser_cast_expression): Likewise.(cp_parser_mem_initializer_id): Likewise.(cp_parser_simple_type_specifier): Likewise.(cp_parser_type_name): Likewise.(cp_parser_elaborated_type_specifier): Likewise.(cp_parser_qualified_namespace_specifier): Likewise.(cp_parser_using_declaration): Likewise.(cp_parser_using_directive): Likewise.(cp_parser_ptr_operator): Likewise.(cp_parser_declarator_id): Likewise.(cp_parser_class_head): Likewise.(cp_parser_base_specifier): Likewise.(cp_parser_constructor_declarator_p): Likewise.(cp_parser_direct_declarator): Fix typo in comment.(cp_parser_parenthesized_expression_list): Adjust call tocp_parser_skip_to_closing_parenthesis.(cp_parser_selection_statement): Likewise.2003-11-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/12924* typeck.c (finish_class_member_access_expr): Handle TEMPLATE_ID_EXPRwith OVERLOAD and DECL nodes as the first operand.2003-11-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* pt.c (tsubst) <ARRAY_REF>: Remove erroneous argument to build_nt.2003-11-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/5369* friend.c (is_friend): Handle member function of a classtemplate as template friend.(do_friend): Likewise.* decl2.c (check_classfn): Add template_header_p parameter.* decl.c (start_decl): Adjust check_classfn call.(grokfndecl): Likewise.* pt.c (is_specialization_of_friend): New function.(uses_template_parms_level): Likewise.(push_template_decl_real): Use uses_template_parms_level.(tsubst_friend_function): Adjust check_classfn call.* cp-tree.h (check_classfn): Adjust declaration.(uses_template_parms_level): Add declaration.(is_specialization_of_friend): Likewise.2003-11-21 Mark Mitchell <mark@codesourcery.com>PR c++/12515* pt.c (build_non_dependent_expr): Handle GNU extension to ?:operator.2003-11-21 Jan Hubicka <jh@suse.cz>* parser.c (cp_parser_postfix_expression): Initialize 's' toNULL_TREE.2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>* Make-lang.in (c++.extraclean): Delete.2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>* Make-lang.in (check-g++, lang_checks): Add.2003-11-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/12932* class.c (currently_open_derived_class): Check ifcurrent_class_type is NULL_TREE.* semantics.c (finish_call_expr): Check ifcurrently_open_derived_class returns NULL_TREE.* cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENTparameter.2003-11-17 Jason Merrill <jason@redhat.com>* init.c (build_new_1): Preevaluate placement args.* call.c (build_op_delete_call): Don't expose placement args tooverload resolution.2003-11-16 Jason Merrill <jason@redhat.com>* Make-lang.in (c++.tags): Create TAGS.sub files in each directoryand TAGS files that include them for each front end.2003-11-15 Bernardo Innocenti <bernie@develer.com>PR c++/2294* name-lookup.c: Revert previous patch for PR c++/2294 to preventbuild failure on libjava.2003-11-14 Giovanni Bajo <giovannibajo@libero.it>PR c++/2294* name-lookup.c (push_overloaded_decl): Always construct an OVERLOADunless the declaration is a built-in.(set_namespace_binding): While binding OVERLOADs with only onedeclaration, we still need to call supplement_binding.2003-11-14 Mark Mitchell <mark@codesourcery.com>PR c++/12762* parser.c (cp_parser_enclosed_template_argument_list): Newfunction.(cp_parser_template_id): Use it.(cp_parser_simple_type_specifier): Recognize invalid templatesyntax.2003-11-14 Giovanni Bajo <giovannibajo@libero.it>PR c++/2094* pt.c (unify): Add support for PTRMEM_CST andFIELD_DECL unification.2003-11-13 Richard Earnshaw <rearnsha@arm.com>* decl.c (grokfndecl): Change OK to type tree.2003-11-12 Mark Mitchell <mark@codesourcery.com>* tree.c (build_target_expr_with_type): Treate VA_ARG_EXPR likeCONSTRUCTOR.* decl.c (cp_make_fname_decl): When creating a top-level__FUNCTION__-like symbol, do register it with pushdecl.* decl.c (finish_case_label): Do not check that we are within aswitch statement here.* parser.c (struct cp_parser): Add in_iteration_statement_p andin_switch_statement_p.(cp_parser_new): Initialize them.(cp_parser_labeled_statement): Check validity of case labelshere.(cp_parser_selection_statement): Set in_switch_statement_p.(cp_parser_iteration_statement): Set in_iteration_statement_p.(cp_parser_jump_statement): Check validity of break/continuestatements here.PR c++/12735* cp-tree.h (duplicate_decls): Return a tree.* decl.c (duplicate_decls): Clarify documentation. Returnerror_mark_node to indicate a failed redeclaration.* friend.c (do_friend): Handle that case.* name-lookup.c (pushdecl): Likewise.2003-11-11 Jason Merrill <jason@redhat.com>* cp-tree.h (DECL_NAMESPACE_ASSOCIATIONS): New macro.* name-lookup.c (parse_using_directive): New fn.(is_associated_namespace): New fn.(arg_assoc_namespace): Also check associated namespaces.* name-lookup.h: Declare new fns.* pt.c (maybe_process_partial_specialization): Allowspecialization in associated namespace.* parser.c (cp_parser_using_directive): Accept attributes. Useparse_using_directive.2003-11-10 Richard Henderson <rth@redhat.com>* cvt.c (convert_to_void): Use void_zero_node after overload failure.2003-11-10 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/12832* name-lookup.c (supplement_binding): Gracefully handle namesused at non-class scope prior declaration.2003-11-06 Matt Austern <austern@apple.com>* decl.c (duplicate_decls): copy DECL_VISIBILITY field.* method.c (use_thunk): give thunk same visibility as function.* optimize.c (maybe_clone_body): copy DECL_VISIBILITY field.2003-11-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11616* pt.c (instantiate_pending_templates): Save and restoreinput_location.2003-11-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/2019* friend.c (add_friend): Don't display previous declaration incase of duplicate friend warning.2003-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9810* call.c (build_over_call): Check access using primary templateif FN is a member function template.2003-11-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/12796* class.c (handle_using_decl): Set input_location before callingerror_not_base_type.2003-10-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10371* semantics.c (finish_non_static_data_member): Handle whenboth processing_template_decl and qualifying_scope are true.2003-10-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11076* class.c (handle_using_decl): Swap arguments of error_not_base_type.* parser.c (cp_parser_direct_declarator): Only resolve typename fornamespace scope declarations.2003-10-24 Nathan Sidwell <nathan@codesourcery.com>PR c++/12698, c++/12699, c++/12700, c++/12566* cp-tree.h (THUNK_ALIAS_P, THUNK_ALIAS): New.(debug_class, debug_thunks): New.* class.c (dump_class_hierarchy_1): New break out from ...(dump_class_hierarchy): ... here.(dump_thunk, debug_thunks, debug_class): New.(update_vtable_entry_for_fn): Add ssizetype casts. Correctcontinued search for primary binfo via virtual.(build_vtbl_initializer): Follow covariant thunk alias.* method.c (make_thunk): Clear DECL_THUNKS of the thunk.(finish_thunk): Look for an alias of the covariant thunk and pointto it.(use_thunk): We should never use an alias.* semantics.c (emit_associated_thunks): Do not emit aliases.PR c++/12566* cp-tree.h (cp_fname_init): Add TYPE pointer param.* decl.c (cp_fname_init): Add TYPE pointer param. Set it. Don'tcreate an ad-hoc ERROR_MARK.(cp_make_fname_decl): Adjust.* pt.c (tsubst_expr): Adjust.2003-10-23 Jason Merrill <jason@redhat.com>PR c++/12726* tree.c (build_target_expr_with_type): Don't call force_rvaluefor CONSTRUCTORs.2003-10-22 Kazu Hirata <kazu@cs.umass.edu>* call.c: Fix comment formatting.* class.c: Likewise.* cxx-pretty-print.c: Likewise.* init.c: Likewise.* parser.c: Likewise.* pt.c: Likewise.* semantics.c: Likewise.* tree.c: Likewise.* typeck.c: Likewise.* typeck2.c: Likewise.2003-10-21 Mark Mitchell <mark@codesourcery.com>PR c++/11962* typeck.c (build_x_conditional_expr): Handle missing middleoperands in templates.* mangle.c (write_expression): Issue errors about attempts tomangle a non-existant middle operator to the ?: operator.2003-10-21 Robert Bowdidge <bowdidge@apple.com>* decl.c (cp_finish_decl): Remove clause intended for asm directivesin struct or class fields: this code is never executed.2003-10-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* decl.c (start_decl): Exit if push_template_decl returnserror_mark_node.2003-10-20 Kazu Hirata <kazu@cs.umass.edu>* ChangeLog: Fix typos.* call.c: Fix comment typos.* class.c: Likewise.* cp-tree.h: Likewise.* cvt.c: Likewise.* cxx-pretty-print.c: Likewise.* decl.c: Likewise.* decl2.c: Likewise.* init.c: Likewise.* mangle.c: Likewise.* name-lookup.c: Likewise.* parser.c: Likewise.* search.c: Likewise.* semantics.c: Likewise.* tree.c: Likewise.* typeck.c: Likewise.2003-10-20 Jan Hubicka <jh@suse.cz>* decl.c (start_cleanup_fn): Set DECL_DECLARED_INLINE_P to defferthe expansion.2003-10-20 Mark Mitchell <mark@codesourcery.com>* Make-lang.in (c++.install-info): Remove.2003-10-20 Jason Merrill <jason@redhat.com>* class.c (layout_class_type): Set DECL_ARTIFICIAL on paddingfield.2003-10-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9781, c++/10583, c++/11862* decl.c (cp_finish_decl): Exit immediately if decl is anerror_mark_node.* pt.c (push_template_decl_real): Return error_mark_node forinvalid template declaration of variable.2003-10-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/12495* pt.c (lookup_template_class): Handle when current_class_typeis a local class.2003-10-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/2513* decl.c (make_typename_type): Use dependent_type_p.(make_unbound_class_template): Likewise.* pt.c (instantiate_class_template): Incrementprocessing_template_decl during substitution of template friendfunction. Preincrement processing_template_decl rather thanpostincrement.(get_mostly_instantiated_function_type): Incrementprocessing_template_decl during partial substitution of functiontype.2003-10-15 Jan Hubicka <jh@suse.cz>PR c++/12574* decl2.c (cxx_callgraph_analyze_expr): Deal with baselink.2003-10-14 Jason Merrill <jason@redhat.com>PR c++/11878* tree.c (build_target_expr_with_type): Call force_rvalue forclasses with non-trivial copy ctors.PR c++/11063* typeck.c (build_modify_expr): Call convert rather than abort.2003-10-14 Gabriel Dos Reis <gdr@integrable-solutions.net>Breack out decl.c (3/n)* name-lookup.c: Include flags.h(lookup_name_current_level): Make static.(add_decl_to_level): Likewise.(push_local_binding): Likewise.(push_overloaded_decl): Likewise.(lookup_using_namespace): Likewise.(qualified_lookup_using_namespace): Likewise.(lookup_type_current_level): Likewise.(unqualified_namespace_lookup): Likewise.(namespace_ancestor): Likewise.(push_using_directive): Likewise.* decl.c (pushdecl): Move to name-lookup.c.(pushdecl_top_level_1): Likewise.(pushdecl_top_level): Likewise.(pushdecl_top_level_and_finish): Likewise.(maybe_push_decl): Likewise.(push_using_decl): Likewise.(push_overloaded_decl): Likewise.(make_anon_name): Likewise.(anon_cnt): Likewise.(clear_anon_tags): Likewise.(maybe_inject_for_scope_var): Likewise.(check_for_out_of_scope_variable): Likewise.* Make-lang.in (cp/name-lookup.o): Depend on flags.h.* decl.c (warn_extern_redeclared_static): Export.* cp-tree.h (warn_extern_redeclared_static): Declare.2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>* Make-lang.in: Replace uses of $(target_alias) with$(target_noncanonical).2003-10-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* ChangeLog: Add PR number to patch for PR c++/12370.2003-10-13 Gabriel Dos Reis <gdr@integrable-solutions.net>* name-lookup.h (cxx_scope_find_binding_for_name): Don't export.(binding_for_name): Likewise.(cxx_binding_clear): Move to name-lookup.c.* name-lookup.c (cxx_scope_find_binding_for_name): Now static.(binding_for_name): Likewise.* decl2.c (is_ancestor): Move to name-lookup.c(namespace_ancestor): Likewise.(add_using_namespace): Likewise.(ambiguous_decl): Likewise.(lookup_using_namespace): Likewise.(qualified_lookup_using_namespace): Likewise.(set_decl_namespace): Likewise.(decl_namespace): Likewise.(current_decl_namespace): Likewise.(push_decl_namespace): Likewise.(pop_decl_namespace): Likewise.(push_scope): Likewise.(pop_scope): Likewise.(struct arg_lookup): Likewise.(arg_assoc): Likewise.(arg_assoc_args): Likewise.(arg_assoc_type): Likewise.(add_function): Likewise.(arg_assoc_namespace): Likewise.(arg_assoc_class): Likewise.(arg_assoc_template_arg): Likewise.(do_namespace_alias): Likewise.(validate_nonmember_using_decl): Likewise.(do_nonmember_using_decl): Likewise.(do_toplevel_using_decl): Likewise.(do_local_using_decl): Likewise.(do_class_using_decl): Likewise.(do_using_directive): Likewise.(constructor_name_full): Likewise.(constructor_name): Likewise.(constructor_name_p): Likewise.2003-10-13 Gabriel Dos Reis <gdr@integrable-solutions.net>Break out decl.c (2/n)* name-lookup.c: Include diagnostic.h(cxx_binding_free): Make static.(cxx_binding_make): Likewise.(binding_table_new): Likewise(binding_table_free): Likewise.(binding_table_insert): Likewise.(binding_table_find_anon_type): Likewise.(binding_table_reverse_maybe_remap): Likewise.(supplement_binding): Likewise.* name-lookup.h (global_scope_name): Declare extern.(global_type_node): Likewise.(cxx_binding_free): Don't export.(cxx_binding_make): Likewise.(binding_table_new): Likewise.(binding_table_free): Likewise.(binding_table_insert): Likewise.(binding_table_find_anon_type): Likewise.(binding_table_reverse_maybe_remap): Likewise.* Make-lang.in (cp/name-lookup.o): Depend on $(DIAGNOSTIC_H)* decl.c (lookup_namespace_name): Move to name-lookup.c(select_decl): Likewise.(unqualified_namespace_lookup): Likewise.(lookup_qualified_name): Likewise.(lookup_name_real): Likewise.(lookup_name_nonclass): Likewise.(lookup_function_nonclass): Likewise.(lookup_name): Likewise.(lookup_name_current_level): Likewise.(lookup_type_current_level): Likewise.(lookup_flags): Likewise.(qualify_lookup): Likewise.(lookup_tag): Likewise.(lookup_tag_reverse): Likewise.(getdecls): Likewise.(storedecls): Remove.(cxx_remember_type_decls): Move to name-lookup.c.(global_bindings_p): Likewise.(innermost_nonclass_level): Likewise.(toplevel_bindings_p): Likewise.(namespace_bindings_p): Likewise.(kept_level_p): Likewise.(innermost_scope_kind): Likewise.(template_parm_scope_p): Likewise.(push_binding): Likewise.(push_local_binding): Likewise.(add_decl_to_level): Likewise. Make extern.(push_class_binding): Move to name-lookup.c.(resume_level): Likewise. Rename to resume_scope.(begin_scope): Move to name-lookup.c.(indent): Likewise.(binding_depth): Likewise.(is_class_level): Likewise.(cxx_scope_descriptor): Likewise.(cxx_scope_debug): Likewise.(namespace_scope_ht_size): Likewise.(leave_scope): Likewise.(pushlevel_class): Likewise.(poplevel_class): Likewise.(clear_identifier_class_values): Likewise.(pushdecl_with_scope): Likewise.(pushdecl_namespace_level): Likewise.(pushdecl_class_level): Likewise.(push_class_level_binding): Likewise.(push_using_directive): Likewise.(identifier_global_value): Likewise.(keep_next_level_flag): Likewise.(keep_next_level): Likewise.(free_binding_level): Likewise.(set_class_shadows): Likewise.(maybe_push_cleanup_level): Likewise.(cp_namespace_decls): Likewise.(bt_print_entry): Likewise.(print_binding_level): Likewise.(print_other_binding_stack): Likewise.(print_binding_stack): Likewise.(push_namespace): Likewise.(pop_namespace): Likewise.(push_nested_namespace): Likewise.(pop_nested_namespace): Likewise.(cxx_saved_binding_make): Likewise.(struct cxx_saved_binding_make): Likewise.(store_bindings): Likewise.(maybe_push_to_top_level): Likewise.(push_to_top_level): Likewise.(pop_from_top_level): Likewise.(identifier_type_value): Likewise.(set_identifier_type_value): Likewise.(set_identifier_type_value_with_scope): Likewise.(pop_everything): Likewise.(pushtag): Likewise.(follow_tag_typedef): Likewise.(maybe_process_template_type_declaration): Likewise.(pop_binding): Likewise.* cp-tree.h: Move corresponding declarations to name-lookup.h2003-10-12 Steven Bosscher <steven@gcc.gnu.org>* cvt.c (ocp_convert): Move warning to C common code.2003-10-09 Jason Merrill <jason@redhat.com>PR c++/6392* tree.c (build_cplus_array_type): Handle all quals the same.(cp_build_qualified_type_real): Look through arrays first.* tree.c (build_cplus_new): Use build_decl to create a VAR_DECL.(build_target_expr_with_type): Likewise.* pt.c (instantiate_class_template): Sanity check that ourenclosing class has been instantiated.2003-10-08 Giovanni Bajo <giovannibajo@libero.it>* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.* error.c (dump_function_decl): Use it to skip the dump of thearguments.(dump_expr): When dumping a declaration found within anexpression, always set TFF_NO_FUNCTION_ARGUMENTSin the flags.2003-10-08 Giovanni Bajo <giovannibajo@libero.it>PR c++/11097* pt.c (tsubst_decl): Substitute also the DECL_NAME node ofUSING_DECL.2003-10-06 Mark Mitchell <mark@codesourcery.com>PR c++/10147* call.c (initialize_reference): Tweak error message.* cxx-pretty-print.h (cxx_pretty_printer_flags): Removepp_cxx_flag_qualified_id and pp_cxx_flag_global_scope.* cxx-pretty-print.c (pp_cxx_id_expression): Always displayqualified entities using qualified names.PR c++/12337* init.c (build_new_1): Make sure that the expression returned isnot an lvalue.PR c++/12344, c++/12236, c++/8656* decl.c (start_function): Do not ignore attributes embedded in afunction declarator.2003-10-06 Mark Mitchell <mark@codesourcery.com>* Make-lang.in (c++.info): Remove.(c++.dvi): Remove.(c++.generated-manpages): Replace with ...(generated-manpages): ... this.2003-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (struct cp_binding_level): Move to name-lookup.h(current_binding_level): Likewise.(class_binding_level): Likewise.* cp-tree.h (enum scope_kind): Likewise.2003-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>* name-lookup.c (binding_entry_free): Nullify name and typefields.2003-10-02 Mark Mitchell <mark@codesourcery.com>PR c++/12486* typeck.c (finish_class_member_access_expr): Issue diagnosticon erroneous use of qualified name.2003-09-30 Richard Henderson <rth@redhat.com>PR c++/12370* decl.c (duplicate_decls): Copy DECL_SAVED_INSNS too.2003-09-30 Kelley Cook <kelleycoook@wideopenwest.com>* g++spec.c: Convert to ISO C90 prototypes.* parser.c: Likewise.2003-09-30 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (pop_binding): Don't mess with nullifying binding->scopehere.* name-lookup.c: Re-format.(cxx_binding_free): Nullify binding->scope.2003-09-29 Jan Hubicka <jh@suse.cz>PR C++/12047* except.c (build_eh_type_type): Call mark_used on the type.2003-09-28 Richard Henderson <rth@redhat.com>* typeck.c (c_expand_asm_operands): Take location_t, instead ofindividual file and line.2003-09-28 Andreas Jaeger <aj@suse.de>* decl.c (cxx_builtin_type_decls): Convert to ISO C90 functiondefinition.* init.c (push_base_cleanups): Likewise.* decl2.c (finish_file): Likewise.* mangle.c (init_mangle): Likewise.(dump_substitution_candidates): Likewise.* search.c: Likewise.2003-09-27 Gabriel Dos Reis <gdr@integrable-solutions.net>* name-lookup.h (get_global_value_if_present): New function.(is_typename_at_global_scope): Likewise.* except.c (do_begin_catch): Use get_global_value_if_present.(do_end_catch): Likewise.(do_allocate_exception): Likewise.(do_free_exception): Likewise.(build_throw): Likewise.* parser.c (cp_parser_member_declaration): Likewise.* rtti.c (throw_bad_cast): Likewise.(throw_bad_typeid): Likewise.* decl.c (check_tag_decl): Use is_typename_at_global_scope.(grokdeclarator): Likewise.* cp-tree.h (global_namespace): Move to name-lookup.h* call.c (call_builtin_trap): Tidy.2003-09-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11415* parser.c (cp_parser_nested_name_specifier_opt): Issue correcterror message when parser->scope is global_namespace.2003-09-27 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h, name-lookup.h, decl.c, decl2.c: Remove reference tomacros BINDING_SCOPE, BINDING_VALUE and BINDING_TYPE.2003-09-26 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (pop_binding_level, suspend_binding_level,find_class_binding_level): Merge into leave_scope. Remove.(leave_scope): New function.(poplevel): Update.(poplevel_class): Likewise.(pop_namespace): Likewise.2003-09-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/5655* parser.c (cp_parser_check_access_in_redeclaration): New function.(cp_parser_member_declaration): Use it.(cp_parser_template_declaration_after_export): Likewise.2003-09-22 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (scope_kind): Add new enumerator.(keep_next_level): Change parameter type to bool.(begin_scope): Change prototype.(pushlevel): Remove declaration.* decl.c (push_binding_level): Fold in begin_scope. Remove.(struct cp_binding_level): Remove tag_tranparent field. Make keepof bitsize one.(keep_next_level_flag): Make a bool.(cxx_scope_descriptor): Update scope names table(make_cxx_scope): Fold in begin_scope. Remove..(namespace_scope_ht_size): New function.(begin_scope): Change prototype. Return a scope. Tidy.(kept_level_p): Update.(pushlevel): Remove.(maybe_push_cleanup_level): Simplify.(poplevel): Update for sk_cleanup and keep change.(print_binding_level): Likewise.(initial_push_namespace_scope): Fold in begin_scope. Remove.(push_namespace): Update.(pushtag): Likewise.(lookup_tag): Likewise.(lookup_name_current_level): Likewise.(lookup_type_current_level): Likewise.(cxx_init_decl_processing): Likewise.(start_function): Likewise.(begin_function_body): Likewise.(start_method): Likewise.* pt.c (push_inline_template_parms_recursive): Likewise.(begin_template_parm_list): Likewise.(begin_specialization): Likewise.* semantics.c (do_pushlevel): Likewise.(begin_compound_stmt): Likewise.(begin_stmt_expr): Likewise.2003-09-21 Richard Henderson <rth@redhat.com>* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,method.c, optimize.c, pt.c, semantics.c, tree.c: Revert.2003-09-21 Richard Henderson <rth@redhat.com>* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,method.c, optimize.c, pt.c, semantics.c, tree.c: Update forDECL_SOURCE_LOCATION rename and change to const.2003-09-20 Richard Henderson <rth@redhat.com>* decl.c, decl2.c, pt.c: Use %J in diagnostics.2003-09-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/157* parser.c (cp_parser_direct_declarator): Clearparser->num_template_parameter_lists when parsing functionparameters.(cp_parser_constructor_declarator_p): Likewise.2003-09-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/495* pt.c (tsubst_friend_class): Only use innermost templatearguments for the injected friend class template.2003-09-19 Nathan Sidwell <nathan@codesourcery.com>PR c++/12332* pt.c (instantiate_class_template): Incrementprocessing_template_decl around the tsubst of a template memberfunction.2003-09-19 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (cxx_scope_descriptor): Fix thinko.(struct cp_binding_level): Adjust type of binding_depth field.2003-09-18 Danny Smith <dannysmith@users.sourceforge.net>PR c++/12320* call.c (type_passed_as): Check for incomplete type.(convert_for_arg_passing): Likewise.2003-09-18 Nathan Sidwell <nathan@codesourcery.com>PR c++/9848* optimize.c (maybe_clone_body): Don't set MARK_USED on parametershere.* semantics.c (expand_body): Set it here on the remaining clones.2003-09-18 Roger Sayle <roger@eyesopen.com>* lex.c (init_operators): Remove operator_name_info for FFS_EXPR.* class.c (instantiate_type): Remove FFS_EXPR case.2003-09-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* ChangeLog: Fix recent commit.2003-09-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* ChangeLog: Add PR number to patch for PR c++/12316.2003-09-18 Gabriel Dos Reis <gdr@integrable-solutions.net>* error.c (dump_type): Simplify. Use pp_type_specifier_seq for"C" types.* cxx-pretty-print.c (pp_cxx_type_specifier_seq): Fix thinko.2003-09-17 Richard Henderson <rth@redhat.com>* semantics.c (expand_body): Don't save/restore input_location.2003-09-17 Mark Mitchell <mark@codesourcery.com>PR c++/12266* cp-tree.h (tsubst_flags_t): Add tf_conv.* class.c (standard_conversion): Pass tf_conv toinstantiate_type.(resolve_address_of_overloaded_function): Do not call mark_usedwhen just checking conversions.PR debug/12066* cp-lang.c (LANG_HOOKS_BUILTIN_TYPE_DECLS): Define.* cp-tree.h (cxx_builtin_type_decls): Declare.* decl.c (builtin_type_decls): New variables.(cxx_builtin_type_decls): New function.(record_builtin_type): Add to builtin_type_decls.2003-09-17 Richard Henderson <rth@redhat.com>PR c++/12316* semantics.c (expand_or_defer_fn): Inc/dec function_depth.2003-09-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/7939* typeck.c (comptypes): Don't ICE when its first argument iserror_mark_node.(compparms): Reverse the arguments of same_type_p.2003-09-15 Nathan Sidwell <nathan@codesourcery.com>PR c++/12184* typeck.c (convert_arguments): Return error_mark_node for anincomplete parameter. Make error message more informative.2003-09-12 Mark Mitchell <mark@codesourcery.com>PR c++/3907* class.c (maybe_note_name_used_in_class): Refine test for whetheror not we are in a class scope.* cp-tree.h (language_function): Remove x_expanding_p.(expanding_p): Remove.(doing_semantic_analysis_p): Remove.(scope_kind): Add sk_function_parms, sk_class,sk_namespace.(innermost_scope_kind): New method.* call.c (cxx_type_promotes_to): Use type_decays_to.* cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.(LANG_HOOKS_POPLEVEL): Likewise.* decl.c (cp_binding_level): Remove parm_flag, template_parms_p,template_spec_p, namespace_p, is_for_scope, is_try_scope, andis_catch_scope. Add kind and explicit_spec_p.(cxx_scope_descriptor): Use a lookup table.(find_class_binding_level): Use "kind" field in binding_level, notthe various flags.(pop_binding_level): Likewise.(innermost_nonclass_level): Likewise.(toplevel_bindings_p): Likewise.(namespace_bindings_p): Likewise.(template_parm_scope_p): Likewise.(innermost_scope_kind): New method.(current_tmpl_spec_kind): Use "kind" field in binding_level, notthe various flags.(pushlevel): Remove check for doing_semantic_analysis_p.(begin_scope): Simplify.(add_decl_to_level): Use "kind" field in binding_level, notthe various flags.(push_local_binding): Likewise.(pop_label): Remove check for doing_semantic_analysis_p.(poplevel): Use "kind" field in binding_level, notthe various flags.(set_block): Remove check for doing_semantic_analysis_p.(pushlevel_class): Use "kind" field in binding_level, notthe various flags.(poplevel_class): Likewise.(initial_push_namespace_scope): Likewise.(maybe_push_to_top_level): Likewise.(set_identifier_type_value_with_scope): Likewise.(pop_everything): Likewise.(maybe_process_template_type_declaration): Likewise.(pushtag): Likewise.(pushdecl): Likewise.(pushdecl_with_scope): Likewise.(check_previous_goto_1): Likewise.(define_label): Likewise.(finish_case_label): Likewise.(lookup_tag): Likewise.(unqualified_namespace_lookup): Likewise.(lookup_name_real): Likewise.(lookup_name_current_level): Likewise.(lookup_type_current_level): Likewise.(record_builtin_type): Likewise.(cp_make_fname_decl): Likewise.(maybe_inject_for_scope_var): Likewise.(cp_finish_decl): Remove check for doing_semantic_analysis_p.(start_function): Use begin_scope, not pushlevel.(finish_function): Use "kind" field in binding_level, notthe various flags.(start_method): Use begin_scope, not pushlevel.(make_label_decl): Do not check expanding_p.(save_function-data): Do not set expanding_p.(cxx_push_function_context): Do not clear expanding_p.* semantics.c (cxx_expand_function_start): Do not set expanding_p.2003-09-14 Mark Mitchell <mark@codesourcery.com>* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE foran bit-field whose width exceeds that of its type.2003-09-14 Geoffrey Keating <geoffk@apple.com>* rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls.2003-09-14 Kazu Hirata <kazu@cs.umass.edu>* ChangeLog: Follow spelling conventions.* parser.c: Likewise.2003-09-13 Richard Henderson <rth@redhat.com>* decl2.c (finish_file): Check cgraph_assemble_pending_functionsduring relaxation loop.2003-09-11 David Edelsohn <edelsohn@gnu.org>* decl2.c (var_finalized_p): Swap arms of conditional.2003-09-10 Nathan Sidwell <nathan@codesourcery.com>PR c++/11788* typeck.c (build_address): If it is a function, mark it used.(build_unary_op): Do not lose object's side-effects when takingaddress of static member function.* class.c (resolve_address_of_overloaded_function): Usetsubst_flags_t parameter. Only expect overload sets. Adjust.(instantiate_type): Adjust flags passing. Do not lose object'sside-effects when taking address of static member function.2003-09-11 Richard Henderson <rth@redhat.com>* semantics.c (expand_or_defer_fn): Update for newcgraph_finalize_function argument.2003-09-10 Richard Henderson <rth@redhat.com>* decl2.c (cxx_callgraph_analyze_expr): Mark argument unused.2003-09-10 Jan Hubicka <jh@suse.cz>* decl2.c (var_finalized_p): New.(maybe_emit_vtables, write_out_vars, finish_file): Use it.2003-09-10 Richard Henderson <rth@redhat.com>* decl2.c (cxx_callgraph_analyze_expr): New, from corpse ofmark_member_pointers.(lower_function): Remove.* cp-tree.h: Update to match.* cp-lang.c (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): New.(LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Remove.2003-09-09 Richard Henderson <rth@redhat.com>* semantics.c (expand_or_defer_fn): Update call tocgraph_finalize_function.* semantics.c (expand_or_defer_fn): Use cgraph_finalize_functionalways.* decl2.c (finish_file): Avoid out-of-bounds array referenceduring memmove.2003-09-09 Richard Henderson <rth@redhat.com>* decl2.c (mark_member_pointers): Rename frommark_member_pointers_and_eh_handlers and don't check eh handlers.2003-09-09 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>PR bootstrap/12168* method.c (use_thunk): Clear DECL_RTL of copied nodes.2003-09-08 Mark Mitchell <mark@codesourcery.com>* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define toc_register_builtin_type.PR c++/11786* decl2.c (add_function): Do not complain about seeing the samenon-function twice.* semantics.c (perform_koenig_lookup): Improve documentation.PR c++/5296* pt.c (try_one_overload): Add addr_p parameter.(resolve_overloaded_unification): Pass it.2003-09-08 Richard Henderson <rth@redhat.com>* optimize.c (maybe_clone_body): Inc/dec function_depth.2003-09-08 Richard Henderson <rth@redhat.com>* decl.c (finish_function): Clear current_function_decl.* decl2.c (mark_used): Don't push/pop gc context.* optimize.c (optimize_function): Likewise.* tree.c (cp_cannot_inline_tree_fn): Likewise.* pt.c (instantiate_decl): Inc/dec function_depth instead.* semantics.c (expand_body): Update for tree_rest_of_compilationnested argument.2003-09-07 Gabriel Dos Reis <gcc@integrable-solutions.net>PR c++/11762* error.c (dump_decl): Handle namespace-alias-definition.* decl.c (warn_extern_redeclared_static): There is no point inchecking changes in storage class specifier for a namespacedeclaration.(duplicate_decls): Tidy diagnostic message.* cxx-pretty-print.c (pp_cxx_left_brace): New macro.(pp_cxx_right_brace): Likewise.(pp_cxx_original_namespace_definition): New function.(pp_cxx_namespace_alias_definition): Likewise.(pp_cxx_declaration): Use them. Handle NAMESPACE_DECLs.2003-09-07 Jan Hubicka <jh@suse.cz>* decl2.c (maybe_emit_vtables, write_out_vars, finish_file):Avoid re-emitting variables in unit-at-a-time mode.2003-09-06 Mark Mitchell <mark@codesourcery.com>PR c++/11867* call.c (standard_conversion): Improve comments.(perform_direct_initialization): Make sure we return an expressionof the correct type.* typeck.c (build_static_cast): Check for ambiguity andaccessibility when performing conversions.2003-09-06 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (add_binding): Remove declaration.* name-lookup.h (supplement_binding): Declare.* decl.c (add_binding): Move to name-lookup.c.(push_local_binding): Adjust.(push_class_binding): Likewise.(set_identifier_type_value_with_scope): Likewise.* name-lookup.c (supplement_binding): Rename from add_binding.Return a bool. Improve documentation.(set_namespace_binding): Adjust.* Make-lang.in (cp/name-lookup.o): Depend on toplev.h2003-09-06 Nathan Sidwell <nathan@codesourcery.com>PR c++/11794* class.c (pushclass): Push dependent using decls for nestedclasses of templates too.2003-09-06 Roger Sayle <roger@eyesopen.com>PR c++/11409* class.c (resolve_address_of_overloaded_function): When buildinglist of matching non-template function decls, ignore anticipateddeclarations of undeclared or shadowed GCC builtins.2003-09-06 Steven Bosscher <steven@gcc.gnu.org>PR c++/11595* decl.c (define_label): Remove unreachable timevar pop.Always return the decl, even if the definition is invalid.2003-09-06 Nathan Sidwell <nathan@codesourcery.com>PR c++/12167* parser.c (cp_parser_late_parsing_default_args): Push & pop theunparsed functions queue.2003-09-05 Mark Mitchell <mark@codesourcery.com>PR c++/12163* call.c (perform_direct_initialization): Correct logic fordirect-initialization of a class type.PR c++/12146* pt.c (lookup_template_function): Robustify.2003-09-05 Nathan Sidwell <nathan@codesourcery.com>PR c++/11922* pt.c (tsubst_qualified_id): Make sure we get a non-type.(tsubst_expr, tsubst_copy_and_build): Pass false, not zero, asis_type_p to lookup_qualified_name.* semantics.c (finish_call_expr): Refactor some code.PR c++/12037* cp-tree.h (COMPOUND_EXPR_OVERLOADED): New.(build_min_non_dep): Declare.* tree.c (build_min): Propagate TREE_SIDE_EFFECTS.(build_min_non_dep): New.* cvt.c (convert_to_void): Don't explicitly copyTREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING.* call.c (build_new_method_call): Use build_min_non_dep.* decl2.c (grok_array_decl): Likewise.(build_offset_ref_call_from_tree): Likewise.* typeck.c (finish_class_member_access_expr,build_x_indirect_ref, build_x_binary_op, build_x_unary_op,build_x_conditional_expr, build_x_compound_expr): Likewise.(build_static_cast, build_reinterpret_cast,build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template.* typeck2.c (build_x_arrow): Use build_min_non_dep.(build_functional_cast): Propagate TREE_SIDE_EFFECTS inside atemplate.* rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE.(build_dynamic_cast): Set TREE_SIDE_EFFECTS.* pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED.2003-09-04 Richard Henderson <rth@redhat.com>* decl2.c (mark_member_pointers_and_eh_handlers): Update forchange in cgraph_mark_needed_node arguments.2003-09-02 Geoffrey Keating <geoffk@apple.com>PR 12161* decl2.c (mark_used): Use ggc_push_context/ggc_pop_context.* tree.c (cp_cannot_inline_tree_fn): Likewise.2003-09-04 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (finish_sizeof, finish_alignof): Remove.(expr_sizeof): Replace with ...(cxx_sizeof_or_alignof_expr): ... here.(cxx_sizeof_or_alignof_type): Make complain parameter a bool.* parser.c (cp_parser_unary_expression): Commonize alignof andsizeof handling.* pt.c (tsubst_copy_and_build): Adjust alignof and sizeofsubstitution.* semantics.c (finish_sizeof, finish_alignof): Remove.* typeck.c (cxx_sizeof_or_alignof_type): Complain parameterbecomes bool. Set TREE_READONLY.(expr_sizeof): Replace with ...(cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS.2003-09-04 Mark Mitchell <mark@codesourcery.com>Remove cast-as-lvalue extension.* call.c (build_conditional_expr): Correct formatting.(convert_like_real): Use lvalue_p, not non_cast_lvalue_p.(initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.* cp-tree.h (non_cast_lvalue_p): Remove.(real_non_cast_lvalue_p): Remove.(non_cast_lvalue_or_else): Remove.* tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.(real_lvalue_p): Adjust call to lvalue_p_1.(non_cast_lvalue_p): Remove.(non_cast_lvalue_or_else): Remove.(lvalue_p): Adjust call to lvalue_p_1.(lvalue_or_else): Simplify.* typeck.c (build_unary_op): Use lvalue_or_else, notnon_cast_lvalue_or_else.(build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.2003-09-03 DJ Delorie <dj@redhat.com>* decl.c (finish_function): Pass fndecl to aggregate_value_p.2003-09-03 Mark Mitchell <mark@codesourcery.com>PR c++/12053* class.c (include_empty_classes): Correct logic for ABI version 1.2003-09-03 Richard Henderson <rth@redhat.com>* optimize.c (optimize_function): Push/pop ggc context aroundthe call to optimize_inline_calls.2003-09-02 Scott Brumbaugh <scottb.lists@verizon.net>PR c++/11553* parser.c (cp_parser_decl_specifier_seq): Add check for aduplicate friend decl-specifier.2003-09-02 Mark Mitchell <mark@codesourcery.com>PR c++/11847* pt.c (convert_nontype_argument): Correct representation ofREFERENCE_TYPE expressions.PR c++/11808* cp-tree.h (KOENIG_LOOKUP_P): New macro.(finish_call_expr): Change prototype.* parser.c (cp_parser_postfix_expression): Adjust call tofinish_call_expr.* pt.c (tsubst_copy_and_build): Use KOENIG_LOOKUP_P.* semantics.c (finish_call_expr): Add koenig_p parameter.2003-09-01 Mark Mitchell <mark@codesourcery.com>PR c++/12114* cp-tree.h (initialize_reference): Change prototype.* call.c (initialize_reference): Add cleanup parameter.* decl.c (grok_reference_init): Likewise.(check_initializer): Likewise.(cp_finish_decl): Insert a CLEANUP_STMT if necessary.(duplicate_decls): When replacing an anticipated builtin, do nothonor TREE_NOTHROW.* typeck.c (convert_for_initialization): Correct call toinitialize_reference.PR c++/11972* pt.c (dependent_type_p_r): Pass only the innermost templatearguments to any_dependent_template_arguments_p.2003-09-01 Josef Zlomek <zlomekj@suse.cz>* error.c (dump_expr): Kill BIT_ANDTC_EXPR.* lex.c (init_operators): Kill BIT_ANDTC_EXPR.* pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR.* typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.(tsubst_copy_and_build): Kill BIT_ANDTC_EXPR.2003-08-29 Mark Mitchell <mark@codesourcery.com>PR c++/12093* pt.c (build_non_dependent_expr): Do not build aNON_DEPENDENT_EXPR for a STRING_CST.PR c++/11928* search.c (add_conversions): Avoid adding two conversionoperators for the same type.2003-08-29 Mark Mitchell <mark@codesourcery.com>PR c++/6196* pt.c (tsubst_copy_and_build): Correct handling ofaddress-of-label extension.* semantics.c (finish_goto_stmt): The address of a label must gothrough the lvalue-to-rvalue conversion.2003-08-29 Richard Henderson <rth@redhat.com>Jason Merrill <jason@redhat.com>* cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.(LANG_HOOKS_RTL_EXPAND_STMT): New.* cp-tree.h (cxx_expand_function_start): Declare.* decl.c (start_function): Use allocate_struct_function.Move stmts_are_full_exprs_p assertion from expand_body.Do not free_after_parsing or free_after_compilation.(cxx_push_function_context): Move code to set struct functiondata from genrtl_start_function.* optimize.c (optimize_function): Don't inc/dec function_depth.* semantics.c (expand_body): Use tree_rest_of_compilation.(cxx_expand_function_start): Rename from genrtl_start_function,omit bits done by tree_rest_of_compilation.(genrtl_finish_function): Remove.(clear_decl_rtl): Move to ../tree-optimize.c.2003-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/11811* cxx-pretty-print.c (pp_cxx_canonical_template_parameter): Newfunction.* cxx-pretty-print.h: Declare.* error.c (dump_template_parameter): Use it.(dump_type): Likewise.2003-08-28 Mark Mitchell <mark@codesourcery.com>* init.c (decl_constant_value): Deal with COND_EXPR specially.* call.c (build_conditional_expr): Revert previous patch.PR optimization/5079* call.c (build_conditional_expr): Use decl_constant_value tosimplify the arguments.2003-08-26 Dan Nicolaescu <dann@ics.uci.edu>* parser.c (struct cp_token): Use enum bitfields.(CP_TOKEN_BLOCK_NUM_TOKENS): Make sure cp_token_block fits in a512B allocation unit.(cp_parser_token_tree_map_node): Use enum bitfields.2003-08-26 Nathan Sidwell <nathan@codesourcery.com>PR c++/11871* decl.c (push_class_level_binding): Correct old_decl value frommy 2003-07-29 reorganization.* call.c (build_call): Don't set TREE_SIDE_EFFECTS here.(build_new_method_call): Add goto finish.* semantics.c (simplify_aggr_init_exprs_r): Don't setTREE_SIDE_EFFECTS on a call.2003-08-25 Richard Henderson <rth@redhat.com>* cxx-pretty-print.c (pp_cxx_class_name): Remove unused function.2003-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>* cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag.(cxx_pretty_printer): Adjust base type.(pp_cxx_function_specifier): Declare.* cxx-pretty-print.c (pp_cxx_whitespace): New macro.(pp_cxx_left_paren): Likewise.(pp_cxx_right_paren): Likewise.(pp_cxx_dot): Likewise.(pp_cxx_arrow): Likewise.(pp_cxx_semicolon): Likewise.(pp_cxx_identifier): Likewise.(pp_cxx_cv_qualifier_seq): Likewise.(pp_cxx_storage_class_specifier): Likewise.(pp_cxx_expression_list): Likewise.(pp_cxx_space_for_pointer_operator): Likewise.(pp_cxx_init_declarator): Likewise.(pp_cxx_call_argument_list): Likewise.(pp_cxx_nonconsecutive_character): Tidy.(pp_cxx_conversion_function_id): New function.(pp_cxx_template_id): Likewise.(pp_cxx_template_keyword_if_needed): Likewise.(pp_cxx_nested_name_specifier): Likewise.(pp_cxx_unqualified_id): Tidy(pp_cxx_qualified_id): Handle more nodes.(pp_cxx_primary_expression): Tidy.(pp_cxx_postfix_expression): Likewise.(pp_cxx_new_expression): Tidy.(pp_cxx_delete_expression): Likewise.(pp_cxx_cast_expression): New function.(pp_cxx_pm_expression): Tidy.(pp_cxx_conditional_expression): Likewise.(pp_cxx_assignment_operator): New function.(pp_cxx_assignment_expression): Tidy.(pp_cxx_expression): New function.(pp_cxx_function_specifier): Likewise.(pp_cxx_decl_specifier_seq): Likewise.(pp_cxx_simple_type_specifier): Tidy.(pp_cxx_type_specifier_seq): Likewise.(pp_cxx_ptr_operator): New function.(pp_cxx_implicit_parameter_type): Likewise.(pp_cxx_parameter_declaration): Tidy.(pp_cxx_parameter_declaration_clause): New function.(pp_cxx_exception_specification): Likewise.(pp_cxx_direct_declarator): Tidy.(pp_cxx_declarator): Likewise.(pp_cxx_ctor_initializer): New function.(pp_cxx_function_definition): Likewise.(pp_cxx_abstract_declarator): Tidy.(pp_cxx_direct_abstract_declarator): Likewise.(pp_cxx_type_id): Likewise.(pp_cxx_exception_declaration): New function.(pp_cxx_statement): Likewise.(pp_cxx_simple_declaration): Likewise.(pp_cxx_template_parameter_list): Likewise.(pp_cxx_template_parameter): Likewise.(pp_cxx_template_declaration): Likewise.(pp_cxx_explicit_specialization): Likewise.(pp_cxx_explicit_instantiation): Likewise.(pp_cxx_declaration): Tidy.(pp_cxx_pretty_printer_init): Initialize more fields.2003-08-25 Mark Mitchell <mark@codesourcery.com>PR c++/8795* cp-tree.h (build_cplus_method_type): Remove.* call.c (standard_conversion): Use build_method_type_directlyinstead of build_cplus_method_type.* class.c (build_clone): Likewise.(adjust_clone_args): Likewise.* decl.c (build_ptrmem_type): Likewise.(grokdeclarator): Likewise.(check_function_type): Likewise.* decl2.c (grok_method_quals): Likewise.(maybe_retrofit_in_chrg): Likewise.* pt.c (copy_default_args_to_explicit_spec): Likewise.(tsubst_function_type): Likewise.(tsubst): Likewise.* tree.c (build_cplus_method_type): Remove.* typeck.c (merge_types): Use build_method_type_directly.2003-08-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/3765* search.c (dfs_access_in_type): Fix typo in comment.(dfs_accessible_queue_p): Likewise.(dfs_accessible_p): Only terminate when a friend is found.(accessible_p): Return immediately if access_in_type allowsaccess.2003-08-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/641, c++/11876* friend.c (add_friend): Add complain parameter.(make_friend_class): Likewise.(do_friend): Adjust add_friend call.* decl.c (grokdeclarator): Adjust make_friend_class call.* parser.c (cp_parser_member_declaration): Likewise.(cp_parser_template_declaration_after_export): Likewise.* pt.c (instantiate_class_template): Adjust make_friend_classand add_friend call.* cp-tree.h (make_friend_class): Adjust declaration.(add_friend): Likewise.2003-08-21 Jason Merrill <jason@redhat.com>PR c++/11283* call.c (build_conditional_expr): Ignore cv-qual differences fornon-class types.2003-08-21 Mark Mitchell <mark@codesourcery.com>PR c++/11551* parser.c (cp_parser_id_expression): Add declarator_p parameter.(cp_parser_primary_expression): Adjust call tocp_parser_id_expression.(cp_parser_unqualified_id): Complain about the use oftypedef-names in a destructor declarator.(cp_parser_postfix_expression): Adjust call tocp_parser_id_expression.(cp_parser_type_parameter): Likewise.(cp_parser_template_argument): Likewise.(cp_parser_declarator_id): Likewise.PR c++/11919* call.c (standard_conversion): Use same_type_p, not pointerequality, to compare types.PR c++/10762* parser.c (cp_parser_using_declaration): Check for invalid usesof template-ids here...* decl2.c (do_class_using_decl): ... rather than here.2003-08-20 Mark Mitchell <mark@codesourcery.com>PR c++/11834* pt.c (more_specialized): Bump processing_template_decl.2003-08-21 Jason Merrill <jason@redhat.com>PR c++/11614* decl.c (grokdeclarator): Recognize a flexible array based on thetype, not the form of the declarator.2003-08-20 Jason Merrill <jason@redhat.com>* semantics.c (simplify_aggr_init_expr): Split out fromsimplify_aggr_init_exprs_r. Convert slot address to matchthe return type.* cp-tree.h: Declare it.* tree.c (cp_copy_res_decl_for_inlining): Don't clobber theDECL_NAME of a user variable.2003-08-20 Nathan Sidwell <nathan@codesourcery.com>PR c++/11945* pt.c (build_non_dependent_expr): Look inside COND_EXPR andCOMPOUND_EXPR.* semantics.c (finish_expr_stmt): Always convert to void.* typeck.c (build_x_compound_exp): Always convert to void.2003-08-19 Mark Mitchell <mark@codesourcery.com>PR c++/11684* cp-tree.h (grok_op_properties): Change prototype.* decl.c (grok_op_properties): Add complain parameter.(grokfndecl): Pass it.* pt.c (tsubst_decl): Adjust accordingly.PR c++/10926* decl.c (start_method): Return immediately if push_template_decldoes not like the declaration.* pt.c (push_template_decl_real): Disallow member templatedestructors.PR c++/11036* cp-tree.h (add_binding): Add prototype.* class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.(maybe_warn_about_overly_private_class): UseCLASSTYPE_DESTRUCTORS.(pushclass): Adjust call to set_identifier_type_value.* decl.c (add_binding): Give it external linkage.(push_local_binding): Adjust call to add_binding.(push_class_binding): Likewise.(set_identifier_type_value_with_scope): Change prototype. Useadd_binding for global bindings.(set_identifier_type_value): Adjust accordingly.(pushtag): Likewise.(pushdecl): Use set_identifier_type_value, notset_identifier_type_value_with_scope.(pushdecl_namespace_level): Adjust calls toSET_IDENTIFIER_TYPE_VALUE to pass a DECL.(pushdecl_class_level): Likewise.(lookup_tag): Use select_decl.(select_decl): Improve comment.(record_builtin_type): Do not call pushdecl.(cxx_init_decl_processing): Do not call xref_tag for bad_alloc.(cp_finish_decl): Adjust call to set_identifier_type_value.(check_elaborated_type_specifier): Improve checks for invalid usesof typedefs.(xref_tag): Adjust call to check_elaborated_type_specifier.* decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.* name-lookup.c (set_namespace_binding): Use add_binding.* parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,rather than an IDENTIFIER_NODE, to represent built-in types, ifrequested by the caller.(cp_parser_postfix_expression): Adjust call.(cp_parser_type_specifier): Likewise.(cp_parser_elaborated_type_specifier): Adjust call tocheck_elaborated_type_specifier.* typeck2.c (build_functional_cast): Do not perform name lookups.PR c++/10717* decl.c (expand_static_init): Remove unnecessary code.2003-08-19 Andrew Pinski <pinskia@physics.uc.edu>PR c++/10538, PR c/5582* cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.2003-08-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11174* init.c (build_offset_ref): Perform access checking forpointer to member correctly.2003-08-19 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.2003-08-18 Nathan Sidwell <nathan@codesourcery.com>PR c++/11957* cp-tree.h (finish_stmt_expr): Add bool parameter.* init.c (finish_init_stmts): Pass true to finish_stmt_expr. Don'tadjust the stmt_expr here.(build_vec_init): Use finish_stmt_expr_expr, convert result toarray type.* parser.c (cp_parser_primar_expression): Adjust finish_stmt_exprcall.* pt.c (tsubst_copy): Likewise.* semantics.c (finish_stmt_expr): Add parameter.* pt.c (instantiate_class_template): Push to class's scope beforetsubsting base.2003-08-17 Jan Hubicka <jh@suse.cz>PR C++/11702* semantics.c (finish_id_expression): Mark all functions as used.2003-08-16 Nathan Sidwell <nathan@codesourcery.com>PR c++/11512* cvt.c (convert_to_void): Indicate which side of conditional hasno effects, and rhs of comma operator. Test for no sideeffectexpressions here and always build a convert expr.* init.c (expand_default_init): Convert the init to void.* typeck.c (build_x_compound_expr): Do not check for side effectshere.(build_compound_expr): Do not convert lhs when building atemplate.2003-08-15 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.def (NON_DEPENDENT_EXPR): Add operand.* decl2.c (build_offset_ref_call_from_tree): Usebuild_non_dependent_expr.* error.c (dump_expr) <NON_DEPENDENT_EXPR case>: Dump the operand.* pt.c (build_non_dependent_expr): Set operand.2003-08-14 Jan Hubicka <jh@suse.cz>* decl2.c (mark_member_pointers): Rename to...(mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos(lower_function): Update call.* except.c (eh_type_info): Break out from ...(build_eh_type): ... here; tinfo is already used.(finish_eh_spec_block): Mark tinfos as used.* semantics.c (finish_handler_params): Mark tinfo as used.* cp-tree.h (eh_type_info): Declare.2003-08-15 Nathan Sidwell <nathan@codesourcery.com>* pt.c (instantiate_class_template): Set location beforesubstuting bases.* decl.c (make_typename_type): Use my_friendly_assert.* pt.c (tsubst_aggr_type): Rearrange context substitution.2003-08-14 Jan Hubicka <jh@suse.cz>* method.c (use_thunk): Expand body directly.2003-08-12 Mark Mitchell <mark@codesourcery.com>PR c++/11703* call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION todetermine whether or not to promote types.(convert_for_arg_passing): Likewise.* decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE intemplates.* pt.c (tsubst_decl): Do not expect it to be set.PR c++/9512PR c++/10923* cp-tree.h (check_elaborated_type_specifier): Declare.(handle_class_head): Remove.(note_got_semicolon): Likewise.(note_list_got_semicolon): Likewise.(finish_class_definition): Likewise.* decl.c (check_elaborated_type_specifier): Make it public.Robustify.(handle_class_head): Remove.* parser.c (cp_parser_elaborated_type_specifier): Usecheck_elaborated_type_specifier.(cp_parser_class_specifier): Do not call finish_class_definition.(cp_parser_class_head): Or handle_class_head. Check forover-qualified names.* semantics.c (finish_class_definition): Remove.* parser.c (cp_parser_check_for_definition_in_return_type): Newfunction.(cp_parser_simple_declaration): Adjust call tocp_parser_init_declarator.(cp_parser_decl_specifier_seq): Change type ofdeclares_class_or_enum parameter.(cp_parser_explicit_instantiation): Adjust accordingly.(cp_parser_type_specifier): Change type ofdeclares_class_or_enum parameter.(cp_parser_init_declarator): Add declares_class_or_enumparameter.(cp_parser_parameter_declaration): Adjust call tocp_parser_decl_specifier_seq.(cp_parser_function_definition): Likewise.(cp_parser_member_declaration): Likewise.(cp_parser_single_declaration): Likewise.* cp-tree.h (lang_type_class): Remove has_call_overloaded,has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon.(TYPE_OVERLOADS_CALL_EXPR): Remove.(TYPE_OVERLOADS_ARRAY_REF): Likewise.(TYPE_OVERLOADS_ARROW): Likewise.(CLASSTYPE_GOT_SEMICOLON): Likewise.* class.c (check_bases): Do not set them.(finish_struct_1): Likewise.* decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON.(build_ptrmemfunc_type): Likewise.(grok_op_properties): Do not set TYPE_OVERLOADS_*.(start_function): Do not check CLASSTYPE_GOT_SEMICOLON.* decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON.* lex.c (note_got_semicolon): Remove.(note_list_got_semicolon): Likewise.* parser.c (cp_parser_simple_declaration): Do not callnote_list_got_semicolon.* pt.c (list_eq): Remove.(lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON.(instantiate_class_template): Do not set TYPE_OVERLOADS*.(instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON.* ptree.c (cxx_print_type): Do not print them.* semantics.c (finish_member_class_template): Do not callnote_list_got_semicolon.2003-08-11 Aldy Hernandez <aldyh@redhat.com>* call.c (standard_conversion): Opaque pointers interconvert.* testsuite/g++.dg/other/opaque-3.C: New.2003-08-11 Mark Mitchell <mark@codesourcery.com>* typeck.c (merge_types): Handle cv-qualified pointer-to-membertypes correctly.2003-08-10 Mark Mitchell <mark@codesourcery.com>PR c++/11789* cp-tree.h (get_vbase): Remove.(get_vbase_types): Remove.* init.c (expand_member_init): Correct logic for looking up baseclasses.2003-08-10 Gabriel Dos Reis <gdr@integrable-solutions.net>* error.c (dump_expr): Tidy.* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.(pp_cxx_begin_template_argument_list): Likewise.(pp_cxx_end_template_argument_list): Likewise.(is_destructor_name): Likewise.(pp_cxx_unqualified_id): Likewise.(pp_cxx_qualified_id): Likewise.(pp_cxx_id_expression): Likewise.(pp_cxx_new_expression): Likewise.(pp_cxx_delete_expression): Likewise.(pp_cxx_pm_expression): Likewise.(pp_cxx_type_specifier): Rework.(pp_cxx_type_id): Likewise.(pp_cxx_primary_expression): Likewise.(pp_cxx_postfix_expression): Likewise.(pp_cxx_unary_expression): Likewise.(pp_cxx_multiplicative_expression): Likewise.(pp_cxx_conditional_expression): Likewise.(pp_cxx_assignment_expression): Likewise.(pp_cxx_pretty_printer_init): Tidy.2003-08-10 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULLNODE is always a TREE_VEC of nonzero size.(NUM_TMPL_ARGS): NODE is always a TREE_VEC.* decl2.c (arg_assoc): Template args will be a vec.* error.c (dump_decl) <TEMPLATE_ID_EXPR case>: Calldump_template_argument_list.(dump_template_parms): Args will be a vec.* parser.c (cp_parser_template_argument_list): Produce avector, not a list.* pt.c (coerce_template_parms): Args are always vectors.(mangle_class_name_for_template): Likewise.(lookup_template_function): Likewise.(lookup_template_class): Likewise.(tsubst_template_args): Likewise.(tsubst_baselink): Use tsubst_template_args.(tsubst_qualified_id): Likewise.(tsubst_copy) <TEMPLATE_ID_EXPR case>: Likewise.(tsubst_copy_and_build) <TEMPLATE_ID_EXPR case>: Likewise.(any_dependent_template_args_p): Args are always vectors.* tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case.PR c++/11670* call.c (convert_like_real): Add rvalue binding error message.* error.c (dump_expr) <NOP_EXPR case>: Detect when the no expr isreally a cast.PR c++/10530* pt.c (dependent_type_p_r): A dependent template-id is a classtype with dependent template arguments, or a bound templatetemplate parameter.(type_dependent_expression_p): A template function decl cannothave a dependent context.2003-08-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/5767* parser.c (cp_parser_class_name): Return immediately when scopeis error_mark_node.2003-08-07 Aldy Hernandez <aldyh@redhat.com>* cp/Make-lang.in (cp/call.o): Add dependency for target.h.* cp/call.c (standard_conversion): Support opaque types.Include target.h.(strip_top_quals): Use cp_build_qualified_type instead ofTYPE_MAIN_VARIANT.* cp/typeck.c (convert_for_assignment): Support opaque types.* testsuite/g++.dg/other/opaque-1.C: New.* testsuite/g++.dg/other/opaque-2.C: New.2003-08-06 Aldy Hernandez <aldyh@redhat.com>* decl.c (grokparms): Use cp_build_qualified_type insteadTYPE_MAIN_VARIANT.2003-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>* cxx-pretty-print.h: New file.* cxx-pretty-print.c: Likewise.* error.c (scratch_pretty_printer): Change type.(init_error): Tidy.(dump_aggr_type): Likewise.(dump_global_iord): Likewise.(dump_expr): Likewise.(dump_char): Remove.* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.(cxx_initialize_diagnostics): New function.* Make-lang.in (CXX_OBJS): Add cp/cxx-pretty-print.o(CXX_PRETTY_PRINT_H): New variable.(cp/cxx-pretty-print.o): New rule.(cp/cp-lang.o): Update dependence.(cp/error.o): Likewise.2003-08-05 Steven Bosscher <steven@gcc.gnu.org>* cp-tree.h (struct lang_decl): Don't include c_lang_decl.(DECL_DECLARED_INLINE_P): Remove.* decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_Pif decl is a FUNCTION_DECL. This never made sense, but now it isrequired to avoid a tree check failure.* decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.* optimize.c (maybe_clone_body): Likewise.2003-08-04 Roger Sayle <roger@eyesopen.com>* decl.c (cxx_insert_default_attributes): Delete.* cp-tree.h (cxx_insert_default_attributes): Don't prototype.* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.2003-08-03 Nathan Sidwell <nathan@codesourcery.com>PR c++/11704* pt.c (type_dependent_expression_p): Cope with COMPONENT_REF withunknown type.PR c++/11766* typeck.c (comp_ptr_ttypes_real): Don't loop on pointers tomember functions.2003-08-02 Nathan Sidwell <nathan@codesourcery.com>PR c++/9447* cp-tree.def (USING_DECL): Document its type.* class.c (pushclass): If we're entering a template, push anydependent using decls it has.* decl2.c (do_class_using_decl): Refactor. Type is NULL iff it isa dependent scope.* pt.c (tsubst_decl) <USING_DECL case>: Set type.(tsubst): Remove USING_DECL checks.(type_dependent_expression_p): Remove USING_DECL case.* semantics.c (finish_member_declaration): A USING_DECL's typeindicates whether it is dependent.2003-08-02 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (pushclass): Remove unneeded parameter.* class.c (pushclass): Remove unneeded MODIFY parm. Adjust.(push_nested_class): Adjust pushclass call.* pt.c (instantiate_class_template): Likewise.* semantics.c (begin_class_definition): Likewise.2003-08-01 Nathanael Nerode <neroden@gcc.gnu.org>* typeck2.c (add_exception_specifier): Use 'bool' where appropriate.2003-08-01 Mark Mitchell <mark@codesourcery.com>PR c++/11697* decl.c (decls_match): Don't ignore the types of templateclasses.PR c++/11744* pt.c (tsubst_copy_and_build): Refine Koenig lookup logic.2003-08-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/8442, c++/8806* decl.c (qualify_lookup): Accept TEMPLATE_DECL if types arepreferred.(check_elaborated_type_specifier): Add allow_template_pparameter. Check tag mismatch and class template.(xref_tag): Add template_header_p parameter. Add assertionthat name is an IDENTIFIER_NODE. Remove implicit typenamewarning. Simplify lookup process if globalize is true.(cxx_init_decl_processing): Adjust call to xref_tag.(xref_tag_from_type): Likewise.* decl2.c (handle_class_head): Likewise.* parser.c (cp_parser_elaborated_type_specifier,cp_parser_class_head): Likewise.* rtti.c (init_rtti_processing, build_dynamic_cast1,tinfo_base_init, emit_support_tinfos): Likewise.* class.c (is_base_of_enclosing_class): Remove.* pt.c (convert_template_argument): Don't accept RECORD_TYPE astemplate template argument.* cp-tree.h (xref_tag): Adjust declaration.(is_base_of_enclosing_class): Remove.* NEWS: Document template template argument change.2003-08-01 Nathan Sidwell <nathan@codesourcery.com>* parser.c (cp_parser_init_declarator,cp_paser_member_declaration): Reformat.* pt.c (lookup_template_class, type_unification_real, unify,type_dependent_expression_p): Reformat.PR c++/11295* cp-tree.h (tubst_flags_t): Add tf_stmt_expr_cmpd,tf_stmt_expr_body.(finish_stmt_expr_expr): Declare.* parser.c (cp_parser_primary_expression): Tellcp_parser_compount_statement that it is a statement expression.(cp_parser_statement, cp_parser_labeled_statement,cp_parser_compound_statement, cp_parser_statement_seq_opt): Addin_statement_expr_p parameter.(cp_parser_expression_statement): Likewise. Callfinish_stmt_expr_expr for final expression of a statementexpression.(cp_parser_for_init_statement,cp_parser_implicitly_scoped_statement,cp_parser_already_scoped_statement, cp_parser_function_definition,cp_parser_try_block, cp_parser_handled): Adjust.* pt.c (tsubst_copy) <STMT_EXPR case>: Pass tf_stmt_expr.(tsubst_expr): Process tf_stmt_expr and tf_stmt_exprs flags.(tsubst_expr) <EXPR_STMT case>: Check tf_stmt_exprs flag.* semantics.c (finish_expr_stmt): Do not deal with statementexpressions.(begin_stmt_expr): Clear last_expr_type.(finish_stmt_expr_expr): New.(finish_stmt_expr): Process the value expression.* typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put thecompound expr inside the target's initializer.PR c++/11525* parser.c (cp_parser_primary_expression): Do not setnon-constant-p merely because it is a dependent scope.PR c++/9447* decl2.c (do_class_using_decl): Set type to NULL_TREE.* semantics.c (finish_expr_stmt): Do not convert to void in atemplate.2003-07-31 Nathan Sidwell <nathan@codesourcery.com>* pt.c (coerce_template_parms): Refactor.(fn_type_unification): Increment processing_template_decl whentsubsting an incomplete set of explicit args.PR c++/11347* pt.c (instantiate_class_template): Incrementprocessing_template_decl around the tsubst of a template memberclass.(tsubst_qualified_id): Assert we do not have a dependent scope.* pt.c (coerce_template_template_parms, lookup_template_class,can_complete_type_without_circularity, instantiate_class_template,tsubst_decl, unify): Reformat.2003-07-31 Jan Hubicka <jh@suse.cz>* decl2.c (maybe_make_one_only): Use mark_referenced.* method.c (use_thunk): Likewsie.2003-07-30 Jan Hubicka <jh@suse.cz>* class.c (build_vtable_entry_ref): Kill.(build_vtbl_ref_1): Do not call build_vtable_entry_ref.(build_vfn_ref): Do not call build_vtable_entry_ref.* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.* cp-tree.h (prepare_assemble_variable): Kill.* cp-decl.c (prepare_assemble_variable): Kill.2003-07-29 Geoffrey Keating <geoffk@apple.com>* parser.c (cp_lexer_new_main): Use c_common_no_more_pch insteadof setting valid_pch by hand.2003-07-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>* decl.c (finish_enum): Initialize underlying_type.2003-07-29 Nathan Sidwell <nathan@codesourcery.com>PR c++/9447* decl.c (add_binding): Add bval local variable.(push_class_level_binding): Likewise. Allow a USING_DECL to bepushed.* decl2.c (do_class_using_decl): The type of a using decl isunknown.* parser.c (cp_parser_postfix_expression): Refactor unqualified-idfunction call lookup code.* pt.c (tsubst): A USING_DECL will have unknown type.(tsubst_copy_and_build): Allow a using decl.(type_dependent_expression_p): A USING_DECL will make itdependent.* semantics.c (finish_member_declaration): Push a dependent usingdeclaration.2003-07-28 Mark Mitchell <mark@codesourcery.com>PR c++/11530* parser.c (cp_parser_postfix_expression): Do not call mark_used.* semantics.c (finish_id_expression): Call mark_used for alldeclarations.2003-07-28 Mark Mitchell <mark@codesourcery.com>PR c++/11667* call.c (standard_conversion): Allow all integral->enumeralconversions, after marking them as bad.* decl.c (finish_enum): Make sure that all enumerators areproperly converted to the underlying type.(build_enumerator): Set DECL_CONTEXT for namespace-scopeenumeration types.* pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly.(tsubst_enum): Tidy.* Make-lang.in (typeck.o): Depend on convert.h.(class.o): Likewise.(rtti.o): Likewise.* call.c: Include convert.h.(convert_arg_to_ellipsis): Use convert_to_real.* class.c: Include convert.h.(build_base_path): Use convert_to_integer.* rtti.c: Include convert.h.(build_headof): Use convert_to_integer.* typeck.c: Include convert.h.(decay_conversion): Use convert_to_integer.(build_unary_op): Use build_nop.(get_delta_difference): Use convert_to_integer.(build_ptrmemfunc): Avoid unnecessary conversions.2003-07-28 Jan Hubicka <jh@suse.cz>* decl2.c (mark_member_pointers): Verify that member pointer points tothe function.2003-07-28 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (begin_compound_stmt): No scope arg is a bool.(finish_compound_stmt): Remove no scope arg.* decl.c (register_dtor_fn): Adjust begin_compound_stmt andend_compound_stmt calls.(expand_static_init, begin_destructor_body, begin_function_body,finish_function_body): Likewise.* decl2.c (start_objects, finish_objects,start_static_storage_duration_function,finish_static_storage_duration_function): Likewise.* init.c (begin_init_stmts, finish_init_stmts,construct_virtual_base, build_vec_init): Likewise.* method.c (do_build_assign_ref, synthesize_method): Likewise.* parser.c (cp_parser_compound_statement,cp_parser_implicitly_scoped_statement,cp_parser_already_scoped_statement): Likewise.* pt.c (tsubst_expr): Likewise.* semantics.c (begin_compound_stmt): No scope arg is a bool.(finish_compound_stmt): Remove no scope arg.* error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr isalways dyadic.2003-07-27 Mark Mitchell <mark@codesourcery.com>* call.c (standard_conversion): Tweak handling ofpointer-to-member types.* pt.c (tsubst): Correctly qualify pointers-to-data member types.* typeck.c (comp_ptr_ttypes_real): Check qualifiers onpointer-to-data member types.2003-07-27 Nathan Sidwell <nathan@codesourcery.com>* parser.c (cp_parser_type_parameter): Reformat.(cp_parser_parameter_declaration): Deprecate default args wherenot allowed.2003-07-26 Nathan Sidwell <nathan@codesourcery.com>* cfns.h: Rebuilt.* cp-tree.h (begin_init_stmts, finish_init_stmts): Remove.(begin_global_stmt_expr, finish_global_stmt_expr): Remove.* init.c (begin_init_stmts): Make static. Return is_globalvalue. Always call begin_stmt_expr.(finish_init_stmts): Make static. Add is_global parm. Alwaysbuilding a stmt tree.(build_aggr_init): Adjust begin_init_stmts, finish_init_stmts calls.(build_vec_init): Likewise. Always building a stmt tree.(expand_default_init): Always building a stmt tree.(get_temp_regvar): Likewise.* semantics.c (begin_global_stmt_expr,finish_global_stmt_expr): Remove.2003-07-25 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (build_compound_expr): Take LHS & RHS args.(build_x_compound_expr_from_list): Declare.* typeck.c (build_x_compound_expr_from_list): New.(build_x_compound_expr): Adjust.(build_compound_expr): Remove unreachable code. Take twoparameters, adjust.* decl.c (grok_reference_init): Usebuild_x_compound_expr_from_list.(expand_static_init): Adjust build_compound_expr call.(cxx_maybe_build_cleanup): Likewise.* init.c (perform_member_init): Usebuild_x_compound_expr_from_list.(build_new_1): Likewise.(build_vec_delete): Adjust build_compound_expr calls.(build_vbase_delete): Likewise.* typeck2.c (store_init_value): Usebuild_x_compound_expr_from_list.(build_functional_cast): Likewise.2003-07-25 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (enum tsubst_flags_t): Add tf_user.* decl.c (make_typename_type): Pass it.* pt.c (lookup_template_class): Use it.(resolve_typename_type): Pass it.* semantics.c (finish_template_type): Pass it.2003-07-25 Nathan Sidwell <nathan@codesourcery.com>PR c++/11617* cp-tree.h (qualified_name_lookup_error): Declare.* pt.c (tsubst_qualified_id): Use qualified_name_lookup_error forerrors.(tsubst_expr) <DECL_STMT case>: Likewise.(tsubst_copy_and_build) <COMPONENT_REF case>: Likewise.* semantics.c (qualified_name_lookup_error): New, broken out of ...(finish_id_expression): ... here. Use it.2003-07-25 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>* cfns.gperf: Add '%%' delimiter to placate gperf 3.0.2003-07-25 Nathan Sidwell <nathan@codesourcery.com>PR c++/11596* pt.c (maybe_fold_nontype_arg, maybe_fold_nontype_args): Remove.(tsubst_template_arg): New.(tsubst_template_arg_vector): Rename to ...(tsubst_template_args): ... this. Accept a TREE_LIST form. Usetsubst_template_arg.(coerce_template_parms): Use tsubst_template_arg for defaultvalue.(tsubst_template_parms): Likewise.(tsubst_aggr_type): Adjust.(tsubst_decl): Likewise.(tsubst): Use tsubst_template_arg for a DOMAIN. Adjust.(tsubst_copy) <TEMPLATE_ID_EXPR case>: Use tsubst_template_args.2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>* Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H.* error.c: Use the new pretty-printer framework.2003-07-24 Per Bothner <pbothner@apple.com>* decl.c (pushdecl_class_level): Don't use push_srcloc/pop_srclocwhich causes errors messages to incorrectly mention included files.2003-07-24 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (convert_to_base_statically): Declare.* call.c (build_special_member_call): Convert INSTANCE to the basetype.* class.c (convert_to_base_statically): New method.* init.c (construct_virtual_base): Use it.* method.c (do_build_assign_ref): Fix typo in comment.2003-07-24 Jason Merrill <jason@redhat.com>* decl.c: Just set truthvalue_* to boolean_*.2003-07-24 Nathan Sidwell <nathan@codesourcery.com>* decl.c (reshape_init): Remove unreachable code.2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11513* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.2003-07-23 Mark Mitchell <mark@codesourcery.com>PR c++/11645* cp-tree.h (accessible_base_p): Declare.* call.c (build_over_call): Use it.* search.c (accessible_base_p): New function, split out from ...(lookup_base): ... here.PR c++/11517* call.c (build_conditional_expr): Use perform_implicit_conversionand error_operand_p. Robustify.* typeck.c (build_unary_op): Use perform_implicit_conversion.2003-07-23 Nathan Sidwell <nathan@codesourcery.com>PR c++/10953* parser.c (cp_parser_nested_name_specifier): Reset scope onfailure.(cp_parser_elaborated_type_specifier): Likewise.2003-07-22 Mark Mitchell <mark@codesourcery.com>Eliminate use of POINTER_TYPE for pointers-to-members.* call.c (standard_conversion): Rework pointer-to-member handling.Add comments.(add_builtin_candidate): Likewise.(resolve_scoped_fn_name): Remove.(build_conditional_expr): Rework pointer-to-member handling.(compare_ics): Likewise.* class.c (check_field_decls): Use TYPE_PTR_P.* cp-lang.c (cp_var_mod_type_p): Rework pointer-to-memberhandling.* cp-tree.h (SCALAR_TYPE_P): Use TYPE_PTR_TO_MEMBER_P.(TYPE_PTRMEM_P): Add comment.(TYPE_PTR_P): Simplify.(TYPE_PTROB_P): Correct definition.(TYPE_PTR_TO_MEMBER_P): New macro.(TYPE_PTRMEM_CLASS_TYPE): Adjust.(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.(resolved_scoped_fn_name): Remove declaration.(build_offset_ref): Change prototype.(resolve_offset_ref): Remove.(comp_target_types): Remove.* cvt.c (cp_convert_to_pointer): Rework pointer-to-memberhandling.(convert_to_reference): Use can_convert.(ocp_convert): Improve error handling. Rework pointer-to-memberhandling.(perform_qualification_conversions): Rework pointer-to-memberhandling.* decl.c (build_ptrmem_type): Handle functions too.(create_array_type_for_decl): Remove OFFSET_TYPE error message.(grokdeclarator): Use OFFSET_TYPE for pointers to data members.(grokparms): Remove OFFSET_TYPE error message.* dump.c (cp_dump_tree): Rework pointer-to-member handling.* error.c (dump_type_prefix): Likewise.* expr.c (cplus_expand_constant): Use build_nop.* init.c (build_offset_ref): Add address_p parameter. Fold innecessary bits from resolve_offset_ref.(resolve_offset_ref): Remove.* parser.c (cp_parser_postfix_expression): Remove special casecode for OFFSET_TYPE.* pt.c (convert_nontype_argument): Rework pointer-to-memberhandling.(convert_template_argument): Likewise.(unify): Likewise.(invalid_nontype_parm_type_p): Likewise.(dependent_type_p_r): Likewise.* rtti.c (get_tinfo_decl): Remove OFFSET_TYPE special case.(target_incomplete_p_): Rework pointer-to-memberhandling.(get_pseudo_ti_init): Likewise.(get_pseudo_ti_desc): Likewise.* semantics.c (finish_qualified_id_expr): Adjust call tobuild_offset_ref. Remove use of resolve_offset_ref.* tree.c (pod_type_p): Use TYPE_PTR_TO_MEMBER_P.* typeck.c (target_type): Use TYPE_PTRMEM_P.(type_unknown_p): Remove obsolete code about the time beforenon-dependent expressions were handled correctly.(qualify_type_recursive): Remove.(composite_pointer_type_r): New function.(composite_pointer_type): Use it.(merge_types): Remove dead comments.(comp_cv_target_types): Remove.(comp_target_types): Likewise.(comp_target_parms): Likewise.(cxx_sizeof_or_alignof_type): Remove OFFSET_TYPE error.(build_indirect_ref): Use TYPE_PTR_TO_MEMBER_P.(build_binary_op): Do not use of comp_target_types.(pointer_diff): Remove OFFSET_TYPE case.(build_unary_op): Adjust pointer-to-member handling.(unary_complex_lvalue): Likewise.(check_for_casting_away_constness): Add description parameter.(build_static_cast): Pass it.(build_reinterpret_cast): Use check_for_casting_away_constness.(build_const_cast): Adjust pointer-to-member handling.(build_c_cast): Likewise.(convert_for_assignment): Remove OFFSET_TYPE error message.(comp_ptr_ttypes_real): Adjust pointer-to-member handling.(comp_ptr_ttypes_reinterpret): Remove.(casts_away_constness_r): Adjust pointer-to-member handling.(casts_away_constness): Liekwise.(strip_all_pointer_quals): Remove.* typeck2.c (digest_init): Adjust pointer-to-member handling.(build_m_component_ref): Likewise.2003-07-22 Wolfgang Bangerth <bangerth@dealii.org>* lex.c (unqualified_fn_lookup_error): Mention that the errormessage needs to be kept in synch with the manual.2003-07-22 Nathan Sidwell <nathan@codesourcery.com>PR c++/11614* decl.c (grokdeclarator): An array member is only a flexiblearray member if the field itself is the array.2003-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10793* decl.c (xref_basetypes): Handle error_mark_node.2003-07-22 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (enum cp_lvalue_kind): Add clk_packed.* tree.c (lvalue_p_1): Set it.* class.c (check_field): Don't allow non-packed non-POD fields tobe packed.* call.c (reference_binding): Need a temporary for all bitfieldand packed fields.(convert_like_real): Check it is ok to make a temporary here.2003-07-21 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (hack_identifier): Remove.* method.c (hack_identifier): Remove.* semantics.c (finish_id_expression): Expand hack_identifierhere. Simplify.2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.csemantics.c typeck.c: Remove unnecessary casts.2003-07-18 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (hack_identifier): Remove.* method.c (hack_identifier): Remove.* semantics.c (finish_id_expression): Expand hack_identifierhere. Simplify.2003-07-18 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (finish_non_static_data_member): Add object param.* method.c (hack_identifier): Adjust.* pt.c (tsubst_copy_and_build) <COMPONENT_REF case>: Don't searchagain for a FIELD_DECL.* semantics.c (finish_non_static_data_member): Add objectparameter. Always save the DECL in the COMPONENT_REF.* call.c (resolve_scoped_fn_name): Adjust.2003-07-17 Zack Weinberg <zack@codesourcery.com>* pt.c (get_bindings): Make definition consistent withforward declaration.2003-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/7809* friend.c (add_friend): Check access for member functionsand templates.2003-07-17 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10668* typeck.c (build_class_member_access_expr): Improve diagnostic.2003-07-16 Mark Mitchell <mark@codesourcery.com>PR c++/11547* cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): Newmacro.(DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK.* decl.c (duplicate_decls): MergeDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.* parser.c (cp_parser_postfix_expression): Adjust call tocp_parser_initializer_list andcp_parser_parenthesized_expression_list.(cp_parser_parenthesized_expression_list): Add non_constant_p.(cp_parser_new_placement): Adjust call tocp_parser_parenthesized_expression_list.(cp_parser_direct_new_declarator): Likewise.(cp_parser_conditional_expression): Remove.(cp_parser_constant_expression): Parse an assignment-expression,not a conditional-expression.(cp_parser_simple_declaration): Resolve expression/declarationambiguity more quickly.(cp_parser_mem_initializer): Adjust call tocp_parser_parenthesized_expression_list.(cp_parser_init_declarator): Keep track of whether or not theinitializer is a constant-expression.(cp_parser_initializer): Add non_constant_p parameter.(cp_parser_initializer_clause): Likewise.(cp_parser_initializer_list): Likewise.(cp_parser_attribute_list): Adjust call tocp_parser_parenthesized_expression_list.(cp_parser_functional_cast): Likewise.* pt.c (tsubst_decl): CopyDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.(tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P.* semantics.c (finish_id_expression): UseDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.2003-07-16 Neil Booth <neil@daikokuya.co.uk>* lang-options.h: Remove.2003-07-16 Andrew Pinski <pinskia@physics.uc.edu>PR c/10962* class.c (field_decl_cmp): Remove.(resort_field_decl_cmp): Remove.(resort_sorted_fields): Remove.(add_fields_to_vec): Rename to ...(add_fields_to_record_type): this.(finish_struct_1): Change to be usingsorted_fields_type's fields.* cp-tree.h (lang_decl): In lang_decl_u3change sorted_fields to be a pointer tosorted_fields_type.(resort_sorted_fields): Remove prototype.* search.c (lookup_field_1): Change to be usingsorted_fields_type's fields.2003-07-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/5421* decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friendis a member of other class.* friend.c (do_friend): Don't build TEMPLATE_DECL if friendis a specialization of function template.2003-07-16 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10903* pt.c (convert_nontype_argument): Fix thinko in diagnostic.Improve.2003-07-15 Mark Mitchell <mark@codesourcery.com>* cp-tree.def (LOOKUP_EXPR): Remove.* cp-tree.h (cp_id_kind): Add CP_ID_KIND_UNQUALIFIED_DEPENDENT.(LOOKUP_EXPR_GLOBAL): Remove.(get_bindings): Remove.(is_aggr_type_2): Remove.* call.c (resolved_scoped_fn_name): Remove support forLOOKUP_EXPR.* decl.c (grokfndecl): Likewise.(grokdeclarator): Likewise.* error.c (dump_decl): Likewise.(dump_expr): Likewise.* friend.c (do_friend): Likewise.* init.c (build_offset_ref): Likewise.* lex.c (unqualified_fn_lookup_error): Use pedwarn. Do not createLOOKUP_EXPRs* mangle.c (write_expression): Remove support for LOOKUP_EXPR.* parser.c (cp_parser_postfix_expression): Modify Koenig lookuptest.* pt.c (get_bindings): Give it internal linkage.(check_explicit_specialization): Remove support for LOOKUP_EXPR.(lookup_template_function): Likewise.(for_each_tempalte_parm_r): Likewise.(tsubst_decl): Likewise.(tsubst_qualified_id): Handle template template parameters.(tsubst_copy): Remove support for LOOKUP_EXPR.(tsubst_copy_and_build): Likewise.(most_general_template): Likewise.(value_dependent_expression_p): Likewise.(type_dependent_expression_p): Note that IDENTIFIER_NODEs arealways dependent.* semantics.c (perform_koenig_lookup): Do not createIDENTIFIER_NODEs.(finish_fname): Likewise.(finish_id_expression): Likewise.* tree.c (is_aggr_type_2): Remove.2003-07-16 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/11531* typeck.c (check_return_expr): Fix thinko in diagnostic.2003-07-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10108* pt.c (tsubst_decl) <TEMPLATE_DECL>: Add a check forerror_mark_node.2003-07-14 Mark Mitchell <mark@codesourcery.com>PR c++/11509* pt.c (dependent_scope_ref_p): New function.(value_dependent_expression_p): Use it.(type_dependent_expression_p): Likewise.* pt.c (tsubst_friend_function): Use reregister_specialization.PR c++/7019* cp-tree.h (lookup_qualified_name): Adjust prototype.* decl.c (lookup_qualified_name): Add complain parameter. Adjustcall to is_aggr_type.* parser.c (cp_parser_lookup_name): Adjust call tolookup_qualified_name.* pt.c (tsubst_qualified_id): Likewise.(tsubst_copy_and_build): Likewise.* semantics.c (finish_qualified_id_expr): Deal with erroneousexpressions.2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/11510* call.c (op_error): Properly format REALPART_EXPR andIMAGPART_EXPR.* error.c (dump_expr): Likewise.2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net>* error.c (dump_expr): Handle EMPTY_CLASS_EXPR.2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/5293* call.c (initialize_reference): Improve diagnostic.2003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11154* pt.c (more_specialized_class): Add full_args parameter.(most_specialized_class): Adjust calls to more_specialized_class.* cp-tree.h (more_specialized_class): Adjust declaration.2003-07-14 Dan Nicolaescu <dann@ics.uci.edu>* lex.c (enum tree_node_kind): Delete.2003-07-13 Mark Mitchell <mark@codesourcery.com>PR c++/11503* cp-tree.h (DECL_SELF_REFERENCE_P): New macro.(SET_DECL_SELF_REFERENCE_P): Likewise.* class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.* pt.c (tsubst_decl): Copy it.* search.c (lookup_base): Use DECL_SELF_REFERENCE_P.* pt.c (reregister_specialization): Fix thinko in previous change.* cp-tree.h (cp_id_kind): New type.(unqualified_name_lookup_error): Change prototype.(unqualified_fn_lookup_error): New function.(do_identifier): Remove.(do_scoped_id): Likewise.(tsubst_copy_and_build): Change prototype.(reregister_specialization): New function.(perform_koenig_lookup): Likewise.(finish_id_expression): Likewise.* call.c (build_method_call): Adjust call tounqualified_name_lookup_error.* decl.c (duplicate_decls): Use reregister_specialization.* lex.c (is_global): Remove.(unqualified_name_lookup_error): Return a value.(do_identifier): Remove.(do_scoped_id): Likewise.(identifier_typedecl_value): Remove.(unqualified_fn_lookup_error): New function.* parser.c (cp_parser_id_kind): Remove.(cp_parser_non_constant_id_expression): Remove.(cp_parser_primary_expression): Use finish_id_expression.(cp_parser_class_or_namespace_name): Use cp_id_kind, notcp_parser_id_kind.(cp_parser_postfix_expression): Use perform_koenig_lookup.(cp_parser_template_argument): Use cp_id_kind.(cp_parser_fold_non_dependent_expr): Adjust call totsubst_copy_and_build.* pt.c (unregister_specialization): Rename to ...(reregister_specialization): This.(tsubst_friend_function): Use it.(maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build.(tsubst_qualified_id): Likewise.(tsubst_expr): Likewise.(tsubst_copy_and_build): Add function_p parameter. Usefinish_id_expression. Introduce RECUR macro.(tsubst_non_call_postfix_expression): New function.(regenerate_decl_from_template): Use reregister_specialization.* semantics.c (perform_koenig_lookup): New function.(finish_id_expression): Likewise.2003-07-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* pt.c (push_access_scope_real): Remove.(push_access_scope): Move code from push_access_scope_real.(pop_access_scope): Don't check for TEMPLATE_DECL.(instantiate_template): Defer access checking during templatesubstitution.(regenerate_decl_from_template): Tidy.2003-07-11 Nathanael Nerode <neroden@gcc.gnu.org>PR c++/11437* operators.def: Add definitions for __imag__, __real__.2003-07-11 Nathan Sidwell <nathan@codesourcery.com>PR c++/11050* parser.c (cp_parser_expression_list): Rename to ...(cp_parser_parenthesized_expression_list): ... here. Add attributeparameter, parse the surounding parentheses.(cp_parser_skip_to_closing_parenthesis): Add recover and or_commaparameters. Return int.(cp_parser_skip_to_closing_parenthesis or comma): Remove.(cp_parser_postfix_expression): Adjust function call parsing.(cp_parser_new_placement): Adjust.(cp_parser_new_initializer): Likewise.(cp_parser_cast_expression): Likewise.(cp_parser_selection_statement): Likewise.(cp_parser_mem_initializer): Likewise.(cp_parser_asm_definition): Likewise.(cp_parser_init_declarator): Likewise.(cp_parser_declarator): Makecdtor_or_conv_p an int ptr.(cp_parser_direct_declarator): Likewise. Check for a parameterlist on cdtors & conv functions.(cp_parser_initializer): Adjust.(cp_parser_member_declaration): Adjust.(cp_parser_attribute_list): Move code intocp_parser_parens_expression_list.(cp_parser_functional_cast): Adjust.* pt.c (type_dependent_expression_p): Erroneous expressions arenon-dependent.2003-07-11 Geoffrey Keating <geoffk@apple.com>* decl.c (cp_finish_decl): Handle 'used' attribute.* cp-lang.c (c_reset_state): New dummy routine.* cp-tree.h (finish_file): Move prototype to c-common.h.* parser.c (c_parse_file): Rename from yyparse; don't call finish_file.2003-07-11 Mark Mitchell <mark@codesourcery.com>PR c++/8327* pt.c (tsubst_qualified_id): Implement suggested resolution forCore Issue 2.(type_dependent_expression_p): Likewise.2003-07-10 Mark Mitchell <mark@codesourcery.com>* typeck.c (build_binary_op): Do not warn about signedvs. unsigned comparisons in the bodies of templates.PR c++/9411* parser.c (cp_parser_postfix_expression): Check dependency offunctions.2003-07-09 Mark Mitchell <mark@codesourcery.com>PR c++/10032* decl.c (cxx_init_decl_processing): With -pedantic, pedwarns arestill errors.PR c++/10527* error.c (decl_to_string): Do not print default argumentexpressions.* cp-tree.h (break_out_calls): Remove declaration.* tree.c (break_out_calls): Remove.* typeck.c (build_modify_expr): Avoid invalid sharing of trees.2003-07-09 Nathan Sidwell <nathan@codesourcery.com>PR c++ 9483* class.c (check_field_decls): Pass DECL_NAME to constructor_name_p.* decl2.c (constructor_name_p): Avoid repeated constructor_namecalls.* decl.c (grokdeclarator): Refactor ctor/dtor detection.2003-07-09 Mark Mitchell <mark@codesourcery.com>* typeck.c (build_x_unary_op): Take note of the fact thatPREINCREMENT_EXPR and POSTINCREMENT_EXPR are binary operations ontrees.* parser.c (cp_parser_primary_expression): Preserve the form ofqualified expressions in templates, even if they are notdependent.* pt.c (convert_nontype_argument): Handle non-dependent SCOPE_REFs.(tsubst_qualified_id): Likewise.* search.c (accessible_p): Treat everything in the body of atemplate as accessible.2003-07-08 Mark Mitchell <mark@codesourcery.com>* cp-tree.def (NON_DEPENDENT_EXPR): New node.* cp-tree.h (build_call_from_tree): Remove.(build_member_call): Likewise.(dependent_template_arg_p): Remove.(any_dependent_template_arguments_p): New function.(dependent_template_id_p): Likewise.(any_type_dependent_arguments_p): Likewise.(build_non_dependent_expr): Likewise.(build_non_dependent_args): Likewise.(build_x_compound_expr): Adjust prototype.* call.c (build_new_method_call): Handle non-dependent expressionscorrectly.* decl2.c (grok_array_decl): Likewise.(build_offset_ref_call_from_tree): Likewise.(build_call_from_tree): Remove.* error.c (dump_decl): Handle NON_DEPENDENT_EXPR.(dump_expr): Likewise.* init.c (build_member_call): Remove.* mangle.c (write_expression): Update handling for template-ids.* parser.c (cp_parser_primary_expression): Useany_dependent_template_arguments_p. Update constant-expressionhandling.(cp_parser_postfix_expression): Useany_type_dependent_arguments_p. Simplify call processing.(cp_parser_unary_expression): Simplify.(cp_parser_expression): Adjust for changes tobuild_x_compound_expr.(cp_parser_template_argument): Implement standard-conformingparsing of non-type template arguments.(cp_parser_direct_declarator): Usecp_parser_fold_non_dependent_expr.(cp_parser_fold_non_dependent_expr): New function.(cp_parser_next_token_ends_template_argument_p): Likewise.* pt.c (convert_template_argument): Do not callmaybe_fold_nontype_arg.(tsubst_baselink): Likewise.(tsubst_copy_and_build): Share common code. Make sizeof/alignofprocessing work correctly for non-dependent expressions. Adjusthandling of COMPOUND_EXPR. Simplify call processing.(value_dependent_expression_p): Deal with functional casts andsizeof/alignof correctly.(type_dependent_expression_p): Handle overloaded functions.(any_type_dependent_arguments_p): New function.(any_dependent_template_arguments_p): Likewise.(dependent_template_p): Treat SCOPE_REFs as dependent.(dependent_template_id_p): Simplify.(build_non_dependent_expr): New function.(build_non_dependent_args): Likewise.* semantics.c (finish_stmt_expr): Don't make dependentstatement-expresions have void type.(finish_call_expr): Handle non-dependent expressionscorrectly.* tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues.* typeck.c (cxx_sizeof_or_alignof_type): Give the expressiontype size_t, even in templates.(expr_sizeof): Likewise.(finish_class_member_access_expr): Handle non-dependent expressionscorrectly.(build_x_indirect_ref): Likewise.(build_x_binary_op): Likewise.(build_x_unary_op): Likewise.(build_x_conditional_expr): Likewise.(build_x_compound_expr): Likewise.* typeck2.c (build_x_arrow): Likewise.2003-07-09 Jan Hubicka <jh@suse.cz>* cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.* decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.(start_function): Use DECL_ESTIMATED_INSNS.* optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.* decl2.c (maybe_emit_vtables): Fix marking vtables as needed inunit-at-a-time2003-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/11030* pt.c (instantiate_class_template): Don't call xref_tag toinject name when the friend class is a specialization.2003-07-07 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (build_scoped_method_call): Remove.(lookup_qualified_name): Remove parameter.(tsubst_copy_and_build): Declare.(finish_qualified_object_call_expr): Remove.(check_accessibility_of_qualified_id): New function.(finish_qualified_id_expr): Likewise.(non_reference): Likewise.(build_expr_from-tree): Remove.* call.c (non_reference): Remove.(build_scoped_method_call): Likewise.(build_method_call): Use error_operand_p. Assert that we are notprocessing a template.(standard_conversion): Use non_reference.* class.c (build_vtbl_entry_ref): Likewise.(build_vtbl_ref_1): Likewise.* cvt.c (build_expr_type_conversion): Use non_reference.* decl.c (lookup_qualified_name): Remove flags parameter.(grok_op_properties): Use non_reference.* decl2.c (grok_array_decl): Likewise.(build_expr_from_tree): Remove.(build_offset_ref_call_from_tree): Update comment.* error.c (parm_to_string): Call reinit_global_formatting_buffer.* except.c (prepare_eh_types): Use non_reference.(can_convert_eh): Likewise.* init.c (build_dtor_call): Avoid using build_method_call.* mangle.c (write_template_param): Remove misleading comment.* method.c (locate_copy): Use non_reference.* parser.c (cp_parser_scope_through_which_access_occurs): Remove.(cp_parser_primary_expression): Do not create SCOPE_REFs isnon-dependent contexts.(cp_parser_postfix_expression): Use finish_qualified_id_expr.(cp_parser_direct_declarator): Use tsubst_copy_and_build, notbuild_expr_from_tree.(cp_parser_lookup_name): Adjust call to lookup_qualified_name.Use check_accessibility_of_qualified_id.* pt.c (maybe_fold_nontype_arg): Use tsubst_copy_and_build, notbuild_expr_from_tree.(tsubst_baselink): New function.(tsubst_qualified_id): Likewise.(tsubst_copy): Use them. Remove support for METHOD_CALL_EXPR.(tsubst_expr): Adjust call to lookup_qualified_name.(tsubst_copy_and_build): Handle SCOPE_REFs specially. Adjusthandling of CALL_EXPRs.(value_dependent_expression_p): Use INTEGRAL_OR_ENUMERATION_TYPE_P.* rtti.c (get_tinfo_decl_dynamic): Use non_reference.* search.c (check_final_overrider): Likewise.* semantics.c (check_accessibility_of_qualified_id): New function.(finish_qualified_object_call_expr): Remove.* typeck.c (target_type): Use non_reference.(cxx_sizeof_or_alignof_type): Likewise.(dubious_conversion_warnings): Likewise.(convert_for_initialization): Likewise.(non_reference): New function.2003-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* decl.c (print_binding_level, print_other_binding_stack,print_binding_stack): Merge uses of HOST_PTR_PRINTF with adjacentstdio calls.* ptree.c (cxx_print_decl, cxx_print_binding): Likewise.2003-07-07 Andreas Jaeger <aj@suse.de>* friend.c: Convert to ISO C90 prototypes.* Make-lang.in ($(srcdir)/cp/cfns.h): Use ANSI-C as outputlanguage.* cfns.h: Regenerate.* typeck.c: Convert remaining prototypes to ISO C90.* search.c: Likewise.* decl2.c (build_expr_from_tree): Convert prototype to ISO C90.* semantics.c (expand_or_defer_fn): Likewise* mangle.c (discriminator_for_string_literal): Likewise.* g++spec.c (lang_specific_driver): Likewise.* search.c (lookup_base_r): Remove unused variable.2003-07-07 Nathan Sidwell <nathan@codesourcery.com>* semantics.c: (genrtl_try_block) Adjust emit_line_notecalls.2003-07-07 Andreas Jaeger <aj@suse.de>* search.c (lookup_base_r): Remove unused variable.2003-07-06 Michael Chastain <mec@shout.net>PR debug/10055* lex.c (cxx_init): Call push_srcloc and pop_srcloc rather thanassigning to input_filename directly.2003-07-06 Kazu Hirata <kazu@cs.umass.edu>* call.c: Fix comment formatting.* class.c: Likewise.* cp-tree.h: Likewise.* decl.c: Likewise.* decl2.c: Likewise.* error.c: Likewise.* method.c: Likewise.* name-lookup.c: Likewise.* parser.c: Likewise.* pt.c: Likewise.* rtti.c: Likewise.* search.c: Likewise.* typeck.c: Likewise.2003-07-06 Mark Mitchell <mark@codesourcery.com>PR c++/11345* search.c (lookup_base_r): Remove is_non_public andwithin_current_scope parameters. Remove other dead code.(lookup_base): Adjust call to lookup_base_r.(adjust_result_of_qualified_name_lookup): Improve comment.* semantics.c (finish_call_expr): Use maybe_dummy_object.2003-07-06 Neil Booth <neil@daikokuya.co.uk>* cp-lang.c (LANG_HOOKS_HANDLE_FILENAME,LANG_HOOKS_MISSING_ARGUMENT): Override.2003-07-05 Mark Mitchell <mark@codesourcery.com>PR c++/11431* typeck.c (build_static_cast): Check for reference conversionsearlier.2003-07-04 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (perform_integral_promotions): Declare.* call.c (build_addr_func): Use decay_conversion.(convert_arg_to_ellipsis): Likewise. Remove misleading comment.(convert_for_arg_passing): Use perform_integral_promotions.* cvt.c (build_expr_type_conversion): Use decay_conversion.(type_promotes_to): Do not return a cv-qualified type.* decl.c (grok_reference_init): Fix formatting.(get_atexit_node): Use decay_conversion.(build_enumerator): Use perform_integral_promotions.* init.c (build_vec_init): Use decay_conversion.* semantics.c (finish_expr_stmt): Likewise.(finish_switch_cond): Use perform_integral_promotions.* typeck.c (default_conversion): Likewise.(perform_integral_promotions): New function.(build_indirect_ref): Use decay_conversion.(build_array_ref): Use perform_integral_promotions.(convert_arguments): Use decay_conversion.(build_unary_op): Use perform_integral_promotions.(build_c_cast): Use decay_conversion.(build_modify_expr): Likewise.(convert_for_initialization): Likewise.* typeck2.c (build_x_arrow): Likewise.2003-07-04 Kazu Hirata <kazu@cs.umass.edu>* call.c: Fix comment typos.* class.c: Likewise.* cp-tree.h: Likewise.* cvt.c: Likewise.* decl2.c: Likewise.* decl.c: Likewise.* init.c: Likewise.* mangle.c: Likewise.* parser.c: Likewise.* pt.c: Likewise.* search.c: Likewise.* semantics.c: Likewise.* tree.c: Likewise.* typeck.c: Likewise.2003-07-04 Zack Weinberg <zack@codesourcery.com>* parser.c (cp_lexer_read_token): No need to handle stringconstant concatenation.2003-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.(cp_error_at, cp_warning_at, cp_pedwarn_at): Mark withATTRIBUTE_GCC_CXXDIAG.2003-07-03 Mark Mitchell <mark@codesourcery.com>* call.c (build_addr_func): Handle bound pointers-to-members.(build_method_call): Do not call resolve_offset_ref.(implicit_conversion): Likewise.(resolve_scoped_fn_name): Use finish_non_static_data_member, notresolve_offset_ref.(resolve_args): Do not call resolve_offset_ref.(build_conditional_expr): Likewise.(build_new_method_call): Likewise.* cp-tree.def (OFFSET_REF): Update documentation.* cvt.c (cp_convert_to_pointer): Update handling of conversions frompointers to members to pointers.(ocp_convert): Do not call resolve_offset_ref.(convert_to_void): Likewise.(build_expr_type_conversion): Likewise.* decl2.c (delete_sanity): Likewise.* init.c (resolve_offset_ref): Simplify greatly.(build_vec_delete): Do not call resolve_offset_ref.* parser.c (cp_parser_postfix_expression): Call resolve_offset_refif appropriate.(cp_parser_unary_expression): Usecp_parser_simple_cast_expression.(cp_parser_delete_expression): Likewise.(cp_parser_cast_expression): Likewise.(cp_parser_pm_expression): Use cp_parser_binary_op.(cp_parser_simple_cast_expression): New function.* rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref.* semantics.c (finish_increment_expr): Likewise.(finish_typeof): Likewise.* tree.c (lvalue_p_1): Do not handle OFFSET_REF.* typeck.c (require_complete_type): Do not handle OFFSET_REFs.(decay_conversion): Do not call resolve_offset_ref.(finish_class_member_access_expr): Likewise.(convert_arguments): Likewise.(build_x_binary_op): Handle DOTSTAR_EXPR.(condition_conversion): Do not call resolve_offset_ref.(unary_complex_lvalue): Likewise.(build_static_cast): Likewise.(build_reinterpret_cast): Likewise.(build_const_cast): Likewise.(build_c_cast): Likewise.(build_modify_expr): Likewise.(convert_for_assignment): Likewise.(convert_for_initialization): Likewise.* typeck2.c (build_x_arrow): Likewise.(build_m_component_ref): Simplify.* call.c (build_scoped_method_call): Use convert_to_void.(build_method_call): Likewise.* class.c (check_field_decls): Remove dead code.* cvt.c (convert_from_reference): Remove OFFSET_TYPE handling.* decl2.c (grok_array_decl): Remove dead code.(arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPEas pointer-to-member representation.* init.c (build_offset_ref): Tidy.(build_vec_delete_1): Use convert_to_void.* mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPEas pointer-to-member representation.2003-07-03 Nathan Sidwell <nathan@codesourcery.com>PR c++/9162* decl.c (grokdeclarator): Return friend decls, notvoid_type_node.* decl2.c (grokfield): Alter friend decl check.* parser.c (struct cp_parser): Document default_arg chain onunparsed_functions_queue.(cp_parser_save_default_args): New.(cp_parser_init_declarator, cp_parser_function_definition,cp_parser_member_declaration): Call it.(cp_parser_class_specifier): Remove unused variable. Alterprocessing of unparsed_functions_queue.2003-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* class.c (add_method, check_field_decl): Fix format specifier.* decl.c (duplicate_decls, pushdecl, check_goto,fixup_anonymous_aggr, maybe_commonize_var, grokdeclarator,start_enum): Likewise.* decl2.c (ambiguous_decl): Likewise.* pt.c (redeclare_class_template): Likewise.2003-07-02 Nathan Sidwell <nathan@codesourcery.com>PR c++/10219* pt.c (type_unification_real): Don't unify exprs of error type.* tree.c (error_type): Don't die on error_type.PR c++/9779* decl2.c (arg_assoc_class): Don't die on NULL type.* typeck.c (type_unknown_p): Don't die on untyped expressions.2003-07-01 Mark Mitchell <mark@codesourcery.com>PR c++/6949* decl2.c (grokfield): Create TEMPLATE_DECLs for methods in localclasses.2003-07-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* error.c (locate_error): %P takes an `int', not a `tree'.2003-07-02 Jan Hubicka <jh@suse.cz>* decl2.c (defer_fn): Set DECL_DEFER_OUTPUT.(finish-file): Do not process function with DECL_DEFER_OUTPUT clear;clear DECL_DEFER_OUTPUT once function is processed; avoid flagsmassaging.* cp-tree.h (DECL_NEEDED_P): Support unit-at-a-time(expand_or_defer_fn): Declare.(lower_function): Declare.* decl.c (start_cleanup_fn): Use expand_or_defer_fn.* decl2.c: Include cgraph.h and varpool.h(maybe_emit_vtables): Make explicit instantations as needed.(mark_member_pointers, lower_function): New functions.(finish_file): Do unit-at-a-time.* method.c (synthesize_method): Use expand_or_defer_fn.* optimize.c (maybe_clone_body): Use expand_or_defer_fn.* parser.c (cp_parser_function_definition_after_decl): Useexpand_or_defer_fn.* pt.c (instantiate_decl): Likewise.* semantics.c: Include cgraph.h(expand_or_defer_fn): Break out from ...(expand_body): ... here; deal with unit-at-a-time.* cp-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Define.2003-07-01 Mark Mitchell <mark@codesourcery.com>* call.c (resolve_scoped_fn_name): Return error_mark_node forerroneous cases.2003-07-01 Mark Mitchell <mark@codesourcery.com>PR c++/11149* call.c (resolve_scoped_fn_name): Check that the qualifying scopeis a class type.2003-07-01 Giovanni Bajo <giovannibajo@libero.it>PR c++/8046* error.c (dump_decl): Handle BIT_NOT_EXPR aspseudo destructor calls.2003-07-01 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (define_label): Replace filename and linenoarguments with a location_t.* decl.c (pop_label): Adjust define_label call.(define_label): Replace filename and lineno arguments with alocation_t.* semantics.c (finish_label): Adjust define_label call.2003-07-01 Mark Mitchell <mark@codesourcery.com>PR c++/9559* decl2.c (grokfield): Do not build NOP_EXPRs around theerror_mark_node.2003-06-30 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in: Update.* cp-lang.c (c_language): Define.(LANG_HOOKS_INIT_OPTIONS): Use common hook.* cp-tree.h (cxx_init_options): Remove.* lex.c: Don't include diagnostic.h.(cxx_init_options): Remove.2003-06-30 Giovanni Bajo <giovannibajo@libero.it>PR c++/4933* error.c (dump_expr): Support correctly the COMPOUND_EXPRtree generated within a template. Use dump_expr to dump anexpression sizeof.2003-06-30 Giovanni Bajo <giovannibajo@libero.it>* mangle.c (write_expression): Exit gracefully when trying tomangle a CALL_EXPR.2003-06-30 Giovanni Bajo <giovannibajo@libero.it>PR c++/10750* parser.c (cp_parser_primary_expression): A VAR_DECL with a(value- or type-) dependent expression as DECL_INITIAL is avalid constant-expression (at parser time).2003-06-30 Giovanni Bajo <giovannibajo@libero.it>PR c++/11106* error.c (dump_decl): Call dump_decl to dump the DECL_NAME for aUSING_DECL, instead of print_tree_identifier.2003-06-29 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (language_to_string): Adjust declaration.* dump.c (cp_dump_tree): Adjust usage.* error.c (dump_char): Use output_formatted_scalar. Tidy.(parm_to_string): Lose unused parameter. Tidy.(expr_to_string): Likewise.(code_to_string): Likewise.(language_to_string): Likewise.(op_to_string): Likewise.(assop_to_string): Likewise.(digit_buffer): Remove.(dump_type): Format builtin vector type as __vector__.2003-06-29 Gabriel Dos Reis <gdr@integrable-solutions.net>* error.c (print_integer): Remove.(dump_type_suffix): Adjust.(dump_expr): Likewise.2003-06-28 Nathan Sidwell <nathan@codesourcery.com>* error.c (print_instantiation_partial_context): Take alocation_t.(print_instantiation_full_context): Adjust.(print_instantiation_context): Adjust.* cp-tree.h (cp_line_of, cp_file_of): Remove.* error.c (cp_line_of, cp_file_of): Merge into ...(location_of): ... here. Make static, return a location_t.(cp_error_at, cp_warning_at, cp_pedwarn_at): Adjust.2003-06-28 Nathan Sidwell <nathan@codesourcery.com>PR c++/10784* call.c (joust): Move warn_conversion check outwards.2003-06-27 Zack Weinberg <zack@codesourcery.com>* decl.c (build_typename_type)* mangle.c (write_template_template_arg)* parser.c (cp_parser_scope_through_which_access_occurs)* pt.c (push_access_scope_real, push_access_scope, pop_access_scope)* repo.c (get_base_filename)* semantics.c (maybe_convert_cond):Mark the definition static, matching the forward declaration.2003-06-27 Mark Mitchell <mark@codesourcery.com>PR c++/10468* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.2003-06-27 Mark Mitchell <mark@codesourcery.com>PR c++/10796* decl.c (finish_enum): Implement DR377.* decl.c (cp_finish_decl): Don't make variables with referencetype readonly while they are being initialized.2003-06-26 Mark Mitchell <mark@codesourcery.com>PR c++/11332* typeck.c (build_static_cast): Avoid returning expressions withreference type.2003-06-26 Nathan Sidwell <nathan@codesourcery.com>* call.c (build_op_delete_call): Use strip_array_call. Correcterror message to say 'delete' or 'delete[]'.2003-06-26 Giovanni Bajo <giovannibajo@libero.it>PR c++/8266* pt.c (check_explicit_specialization): When looking up atemplate function from an identifier outside class-scope, bindit to CP_DECL_CONTEXT.2003-06-25 Mark Mitchell <mark@codesourcery.com>PR c++/10990* search.c (lookup_base_r): Rely on accessible_p, rather thantrying to emulate that logic here.PR c++/10931* call.c (convert_like): Pass issue_conversion_warnings.(convert_like_with_context): Likewise.(convert_like_real): Add issue_conversion_warnings parameter.(perform_direct_initialization_if_possible): New function.* cp-tree.h (perform_direct_initialization_if_possible): Declare it.* typeck.c (check_for_casting_away_constness): New function.(build_static_cast): Rewrite.2003-06-24 Nathan Sidwell <nathan@codesourcery.com>* call.c (enforce_access): Assert we get a binfo.(build_op_delete_call): Pass a binfo toperform_or_defer_access_check.* class.c (alter_access): Likewise.* decl.c (make_typename_type): Likewise.(make_unbound_class_template): Likewise.* lex.c (do_identifier): Likewise.* method.c (hack_identifier): Likewise.* parser.c (cp_parser_lookup_name): Likewise.* search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUEtest.* semantics.c (finish_non_static_data_member): Likewise.(perform_or_defer_access_check): Expect a binfo.* typeck.c (comptypes): Expect types.* mangle.c (find_substitution): Don't pass a non-type to same_type_p* friend.c (make_friend_class): Likewise.* pt.c (check_default_tmpl_args): Likewise.(lookup_template_class): Likewise.2003-06-24 Jan Hubicka <jh@suse.cz>* method.c (thunk_labelno): Move outside ifdef block to make garbagecollector happy.2003-06-24 Jan Hubicka <jh@suse.cz>* class.c (build_vtable): Make vtables.* cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.* decl2.c (output_vtable_inherit): Rename to ...(prepare_assemble_variable): ... this one; change interface.(maybe_emit_vtables): Do not call output_vtable_inherit.* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.* cp-tree.h (prepare_assemble_variable): New.2003-06-23 Andrew Pinski <pinskia@physics.uc.edu>* method.c: add prototype for make_alias_for_thunk.(thunk_labelno, make_alias_for_thunk): only defineif ASM_OUTPUT_DEF is defined.2003-06-23 Jakub Jelinek <jakub@redhat.com>* method.c (thunk_labelno): New variable.(make_alias_for_thunk): New function.(use_thunk): Use it if defined ASM_OUTPUT_DEF. Put the thunkinto the same section as the function it is calling.Include gt-cp-method.h.* Make-lang.in (gt-cp-method.h): Depend on s-gtype.(cp/method.o): Depend on gt-cp-method.h.* config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.2003-06-23 Jan Hubicka <jh@suse.cz>* decl.c (register_dtor_fn): Mark cleanup as used.* decl2.c (mark_vtable_entries): Skip nops.* rtti.c (get_tinfo_ptr): Mark tinfo as used.(build_dynamic_cast_1): Likewise.(tinfo_base_init): Likewise.(emit_tinfo_decl): Likewise.2003-06-23 Jakub Jelinek <jakub@redhat.com>* mangle.c (hash_type): Val is the TREE_LIST itself, not a pointerto it.2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10784* call.c (joust): Warn about choosing conversion sequence only if-Wconversion.2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10864* call.c (op_error): Tidy.* error.c (dump_expr): Properly format 'T()' when T is anaggregate type.2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10915* decl.c (grok_op_properties): Warn possible confusing conversiononly if -Wconversion.2003-06-20 Mark Mitchell <mark@codesourcery.com>PR c++/10749* parser.c (cp_parser_class_head): See through dependent nameswhen parsing a class-head.PR c++/10845* pt.c (try_class_unification): Correct handling of member classtemplates.2003-06-20 Nathan Sidwell <nathan@codesourcery.com>* semantics.c (genrtl_finish_function): Adjustexpand_function_end call.2003-06-19 Mark Mitchell <mark@codesourcery.com>PR c++/10939* pt.c (tsubst_decl): Do not try to substitute into non-dependentfunctions.(value_dependent_expression_p): Correct logic for FUNCTION_DECLs.PR c++/9649* cp-tree.h (pushdecl_class_level): Change prototype.(push_class_level_binding): Likewise.* decl.c (add_binding): Reject duplicate static data members.(pushdecl_class_level): Return a value indicating whether or notthe binding was valid.(push_class_level_binding): Likewise.* semantics.c (finish_member_declaration): Don't keep invaliddeclarations.PR c++/11041* call.c (initialize_reference): Do not use cp_finish_decl to emittemporary variables.* cp-tree.h (static_aggregates): Declare.(pushdecl_top_level_and_finish): Likewise.* decl.c (pushdecl_top_level_1): New function.(pushdecl_top_level): Use it.(pushdecl_top_level_and_finish): New function.(initialize_local_var): Remove redundant code.(cp_finish_decl): Remove support for RESULT_DECLs. Don't checkbuilding_stmt_tree.* decl.h (static_aggregates): Remove.* decl2.c (get_guard): Use pushdecl_top_level_and_finish.* rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.(tinfo_base_init): Likewise.2003-06-19 Matt Austern <austern@apple.com>PR c++/11228* init.c (build_zero_init): Assert that number of array elementsis an integer constant.(build_default_init) Don't use build_zero_init for arrays withvariable number of elements.2003-06-19 Andreas Jaeger <aj@suse.de>* cp-tree.h: Remove duplicated declarations.2003-06-18 Nathanael Nerode <neroden@gcc.gnu.org>* pt.c: Convert to ISO C.* semantics.c: Convert to ISO C.2003-06-18 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p,at_least_as_qualified_p, more_qualified_p): Return bool.* typeck.c: ANSIFY function definitions.(comp_array_types): Take redeclaration bool parameter.(comptypes): Rearrange STRICT handling.(at_least_as_qualified_p, more_qualified_p,comp_cv_qualification): Cache cv quals.(compparms): Rearrange loop.2003-06-18 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (COMPARE_RELAXED): Rename to ...(COMPARE_DERIVED): ... here. Adjust comment.(resolve_typename_type_in_current_instantiation): Remove.(cp_tree_equal, comptypes): Return a bool.* cvt.c (convert_to_reference): Adjust comptypes call.* pt.c (template_args_equal, unify,): Adjust cp_tree_equal call.(resolve_typename_type_in_current_instantiation): Remove.* tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs andIDENTIFIER_NODEs. Abort if undeciderable. Adjust recursivecalls. Refactor code.* typeck.c (comp_array_types): Return bool. Lose callback.parameter. Adjust cp_tree_equal calls.(comptypes): Return bool. Adjust strict handling. Remove relaxedenumeration and java type handling. Deal with typename types here.Adjust recursive and cp_tree_equals calls. Adjust base and derivedchecking.(comp_target_types): Remove unreachable code. Adjustsame_or_base_type_p calls.(ptr_reasonably_similar): Adjust base and derived check.* typeck.c (maybe_warn_about_returning_address_of_local): Removeunused calculation.(check_return_expr): Adjust error messages.* cp-tree.def (SCOPE_REF): Correct comment.2003-06-17 Mark Mitchell <mark@codesourcery.com>* mangle.c (mangle_conv_op_name_for_type): Correct sprintf formatstring again.2003-06-17 Robert Abeles <rabeles@archaelogic.com>* optimize.c (dump_function): Form complete flag name byprefixing 'fdump-' to string returned by dump_flag_name().2003-06-17 Mark Mitchell <mark@codesourcery.com>* mangle.c (mangle_conv_op_name_for_type): Correct sprintf formatstring.2003-06-17 Jason Merrill <jason@redhat.com>PR c++/10929* decl.c (grokfndecl): Don't mark a function inline for-finline-functions if it isn't defined.2003-06-17 Mark Mitchell <mark@codesourcery.com>PR c++/10712* class.c (handle_using_decl): Robustify.PR c++/11105* cp-tree.h (DECL_CONV_FN_TYPE): New method.* mangle.c (struct globals): Remove internal_mangling_p.(write_unqualified_name): Use DECL_CONV_FN_TYPE.(write_template_parm): Don't write out the level number.(conv_type_names): New variable.(hash_type): New function.(compare_type): Likewise.(mangle_conv_op_name_for_type): Don't try to mangle conversionoperator names.* search.c (lookup_conversion_operator): New function.(lookup_fnfields_1): Use it.2003-06-17 Andreas Jaeger <aj@suse.de>* except.c: Remove duplicate declaration of push_eh_cleanup.* call.c: Remove extra declaration of inhibit_warnings.2003-06-16 Nathanael Nerode <neroden@gcc.gnu.org>2003-06-16 Jens-Michael Hoffmann <jensmh@gmx.de>* mangle.c: Convert to ISO C.2003-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTRmacro.2003-06-16 Nathanael Nerode <neroden@gcc.gnu.org>* tree.c: Convert to ISO C.2003-06-16 Kazu Hirata <kazu@cs.umass.edu>* cp-tree.h: Follow spelling conventions.* mangle.c: Likewise.* method.c: Likewise.* parser.c: Likewise.2003-06-14 Nathan Sidwell <nathan@codesourcery.com>* decl.c (start_function): Adjust init_function_start call.* method.c (use_thunk): Likewise.* semantics.c (genrtl_start_function): Likewise.2003-06-14 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in: Remove c-options.o.2003-06-13 Nathanael Nerode <neroden@gcc.gnu.org>* lex.c: Convert to ISO C.2003-05-19 Jens-Michael Hoffmann <jensmh@gmx.de>* init.c: removes use of PARAMS macro. Use ISO style functiondeclarations. (Not copyright-significant change.)* rtti.c: Remove PARAMS.* typeck2.c: Convert to ISO C.2003-06-12 Mark Mitchell <mark@codesourcery.com>PR c++/10635* typeck.c (build_c_cast): Check that the destination type iscomplete.2003-06-11 Mark Mitchell <mark@codesourcery.com>PR c++/10432* cp-tree.h (finish_declarator): Remove.* decl.c (cp_finish_decl): Make sure to pop_nested_class even forerroneous declarations.* semantics.c (finish_declarator): Remove.2003-06-11 Roger Sayle <roger@eyesopen.com>* decl2.c (generate_ctor_or_dtor_function): Avoid expanding aglobal static constructor/destructor if it will be empty, i.e.either doesn't call any ctors/dtors or only calls pure or constctors/dtors.2003-06-11 Mark Mitchell <mark@codesourcery.com>* mangle.c (tm_p.h): Include it.* Make-lang.in (cp/mangle.o): Depend on $(TM_P_H).PR c++/11131* tree.c (cp_cannot_inline_fn): Check for "inline" beforeinstantiation.2003-06-10 Jason Merrill <jason@redhat.com>PR c++/10968* pt.c (mark_decl_instantiated): Clear DECL_COMDAT.2003-06-10 Andrew Pinski <pinskia@physics.uc.edu>* decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY.(start_cleanup_cnt): New.2003-06-10 Mark Mitchell <mark@codesourcery.com>PR c++/11131* cp-tree.h (template_for_substitution): Declare.* decl2.c (mark_used): Use it when figuring out whether or not afunction is inline.* pt.c (template_for_substitution): Give it external linkage.* tree.c (cp_cannot_inline_tree_fn): Instantiate as early aspossible.2003-06-09 Zack Weinberg <zack@codesourcery.com>PR 8861* mangle.c (write_real_cst): New function. ImplementABI-compliant mangling of floating-point literals when-fabi-version>=2; provide backward compatibility with 3.3 when-fabi-version=1 (with warning). Clarify commentary.(write_template_arg_literal): Use write_real_cst.2003-06-07 Andreas Jaeger <aj@suse.de>* cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES.2003-06-07 Neil Booth <neil@daikokuya.co.uk>* cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.(LANG_HOOKS_HANDLE_OPTION): Override.* cp-tree.h (cxx_init_options): Update.* lex.c (cxx_init_options): Update.2003-06-05 Jan Hubicka <jh@suse.cz>* Make-lang.in: Add support for stageprofile and stagefeedback2003-06-04 J"orn Rennecke <joern.rennecke@superh.com>* decl.c (grokdeclarator): Error_mark_node in, error_mark_node out.2003-06-04 Andreas Jaeger <aj@suse.de>* g++spec.c (lang_specific_driver): Remove ALT_LIBM usage.2003-06-03 Jason Merrill <jason@redhat.com>* cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.* cp/decl.c (reshape_init): Handle vectors.* testsuite/g++.dg/init/array10.C: New.2003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10940* pt.c (check_explicit_specialization): Check for 'static'earlier.2003-05-31 Diego Novillo <dnovillo@redhat.com>* class.c (dump_array): Call CONSTRUCTOR_ELTS to accessthe operand of a CONSTRUCTOR node.2003-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (cp_binding_level::this_entity): Rename from this_class.(cxx_scope_descriptor): New function.(cxx_scope_debug): Likewise.(push_binding_level): Use it.(pop_binding_level): Likewise.(suspend_binding_level): Likewise.(resume_binding_level): Likewise.(pushlevel_class): Adjust use of this_class.(pushtag): Likewise.(lookup_name_real): Likewise.(global_scope_name): New variable.(initialize_predefined_identifiers): Initialize it.(push_namespace): Use it.(make_cxx_scope): New function.(pushlevel): Use it.(pushlevel_class): Likewise.(push_binding_level): Simplify. Loose the last two arguments.(make_binding_level): Remove.(initial_push__namespace_scope): New function.(push_namespace): Use it. Simplify.(cxx_init_decl_processing): Likewise.(declare_namespace_level): Remove.2003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10956* pt.c (instantiate_decl): Don't use full template arguments ifwe are dealing with specializations.2003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS.(binding_depth): Unconditionally define.(is_class_level): Likewise.(indent): Likewise. Take an indenting parameter.(push_binding_level): Remove conditional definittion.(pop_binding_level): Likewise.(suspend_binding_level): Likewise.(resume_binding_level): Likewise.(pushlevel): Likewise.(pushlevel_class): Likewise.(poplevel_class): Likewise.(pop_everything): Likewise.2003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net>* name-lookup.h (global_scope_p): New macro.* decl.c (pop_binding_level): Use it. Don't refer directly toglobal_binding_level.(suspend_binding_level): Likewise.(global_bindings_p): Likewise.(print_other_binding_stack): Likewise.(print_binding_stack): Likewise.(maybe_push_to_top_level): Likewise.(pushdecl_namespace_level): Likewise.(cxx_init_decl_processing): Likewise.(start_decl): Likewise.(cp_finish_decl): Likewise.(start_function): Likewise.(global_binding_level): Remove.2003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* parser.c (cp_parser_explicit_instantiation): Restore oldaccess before template instantiation.2003-05-23 Geoffrey Keating <geoffk@apple.com>* lang-specs.h: Use -o to specify preprocessor's output file.Make -no-integrated-cpp work when building PCH files.2003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10682* pt.c (instantiate_class_template): Use DECL_ARTIFICIAL tocheck for implicitly created typedef to an enum.2003-05-21 Jason Merrill <jason@redhat.com>* init.c (build_vec_delete): Copy the address into a temporaryvariable before calling build_vec_delete_1.* decl2.c (delete_sanity): Don't call stabilize_reference.2003-05-21 Nathan Sidwell <nathan@codesourcery.com>* pt.c (register_specialization): Update the decl's location,if necessary.(check_explicit_specialization): Likewise.2003-05-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX.2003-05-21 Danny Smith <dannysmith@users.sourceforge.net>PR c++/9738* decl.c (duplicate_decls): Re-invoke make_decl_rtlif the old decl had instantiated DECL_RTL.(Base on Richard Henderson 2003-05-13 patch to c-decl.c).2003-05-19 Matt Austern <austern@apple.com>* lang-options.h: Document -Wno-invalid-offsetof* typeck.c (build_class_member_access_expr): Don't complain about(Foo *)p->x for non-POD Foo if warn_invalid_offset is zero.2003-05-18 Andrew Pinski <pinskia@physics.uc.edu>* name-lookup.c (free_binding_entry): fix where the GTY markers are.(binding_entry_make): Make entry->chain NULL after getting an entry.fix the spelling of chain in a comment.(binding_table_free): speed up by having temporary variable.(binding_table_new): set table->chain to be NULL after allocatinga table.(cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and setbinding->previous to NULL after getting an binding for speed.2003-05-18 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (struct lang_type_class): Replace data member tagswith hash-table nested_udts.(CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS.* class.c (unreverse_member_declarations): Don't touchCLASSTYPE_TAGS.(pushclass): Use cxx_remember_type_decls.* decl.c (struct cp_binding_level): Replace data member tags withhash-table type_decls.(pop_binding_level): Handle level->type_decls.(kept_level_p): Adjust.(poplevel): Remove unused local variable.(bt_print_entry): New function.(print_binding_level): Use it.(push_namespace): Build current_binding_level->type_decls.(maybe_process_template_type_declaration): Adjust.(pushtag): Likewise.(clear_anon_tags): Use binding_table_remove_anonymous_types.(gettags): Remove.(cxx_remember_type_decls): Rename from storetags. Adjust.(lookup_tag): Use binding_table_find_anon_type. Tidy.(lookup_tag_reverse): Use binding_table_reverse_maybe_remap.(cxx_init_decl_processing): Build global_binding_level->type_decls.(store_parm_decls): Remove pointless code.* name-lookup.c (free_binding_entry): New variable.(ENTRY_INDEX): New macro.(struct binding_table_s): New datatype.(binding_entry_make): New function.(binding_entry_free): Likewise.(binding_table_construct): Likewise.(binding_table_free): Likewise.(binding_table_new): Likewise.(binding_table_expand): Likewise.(binding_table_insert): Likewise.(binding_table_find): Likewise.(binding_table_find_anon_type): Likewise.(binding_table_reverse_maybe_remap): Likewise.(binding_table_remove_anonymous_types): Likewise.(binding_table_foreach): Likewise.* name-lookup.h (binding_table): New type.(binding_entry): Likewise.(bt_foreach_proc): Likewise.(struct binding_entry_s): New datatype.(SCOPE_DEFAULT_HT_SIZE): New macro.(CLASS_SCOPE_HT_SIZE): Likewise.(NAMESPACE_ORDINARY_HT_SIZE): Likewise.(NAMESPACE_STD_HT_SIZE): Likewise.(GLOBAL_SCOPE_HT_SIZE): Likewise.(binding_table_new): Declare.(binding_table_free): Likewise.(binding_table_insert): Likewise.(binding_table_find_anon_type): Likewise.(binding_table_reverse_maybe_remap): Likewise.(binding_table_remove_anonymous_types): Likewise.(binding_table_foreach): Likewise.(binding_table_find): Likewise.(cxx_remember_type_decls): Likewise.* pt.c (bt_instantiate_type_proc): New function.(do_type_instantiation): Use it.* search.c (lookup_field_r): Use binding_table_find.2003-05-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* semantics.c (perform_deferred_access_checks): Don't discardchecked access.2003-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminatelibiberty VA_ macros, always use stdarg.* rtti.c (create_pseudo_type_info): Likewise.* tree.c (build_min_nt, build_min): Likewise.2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* ptree.c (cxx_print_type, cxx_print_xnode): Use stringconcatentation on HOST_WIDE_INT_PRINT_* format specifier tocollapse multiple function calls into one.* tree.c (debug_binfo): Likewise.2003-05-15 Jason Merrill <jason@redhat.com>PR c++/5388* call.c (conditional_conversion): Don't consider implicitconversions if T2 is a base of T1.* cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.(ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.* parser.c (cp_parser_primary_expression): Convert a static datamember from reference.2003-05-15 Mark Mitchell <mark@codesourcery.com>* call.c (build_op_delete_call): Avoid creating unnecessary types.* class.c (instantiate_type): Remove tests for tf_no_attributes.* cp-tree.h (tsubst_flags_t): Remove tf_no_attributes.(COMPARE_NO_ATTRIBUTES): Remove.* typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES.PR c++/8385* semantics.c (finish_typeof): Refine type-dependency check.2003-05-13 Jason Merrill <jason@redhat.com>* typeck.c (build_modify_expr): Don't always stabilize the lhs andrhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs.2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* method.c (synthesize_method): Call push/pop_deferring_access_checks.2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10230, c++/10481* semantics.c (finish_non_static_data_member): Handle when thenon-static member is not from a base of the current class type.2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10552* pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member classtemplate and has dependent context.2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* pt.c (instantiate_decl): Call push/pop_deferring_access_checks.2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9252* cp-tree.h (saved_scope): Remove check_access field.(tsubst_flags_t): Remove tf_parsing.* decl.c (maybe_push_to_top_level): Don't initializescope_chain->check_access.(make_typename_type, make_unbound_class_template): Don't usetf_parsing.(register_dtor_fn): Use push/pop_deferring_access_checksinstead of scope_chain->check_access.* method.c (use_thunk): Likewise.* parser.c (cp_parser_explicit_instantiation(cp_parser_constructor_declarator_p): Don't callpush/pop_deferring_access_checks here.(cp_parser_template_argument, cp_parser_class_name): Don't usetf_parsing.(yyparse): Check flag_access_control.* pt.c (instantiate_class_template): Callpush/pop_deferring_access_checks.* semantics.c (push_deferring_access_checks): Propagatedk_no_check.(perform_or_defer_access_check): Make sure basetype_path isa type before comparison.* call.c (build_op_delete_call, build_over_call): Useperform_or_defer_access_check.* class.c (alter_access): Likewise.* init.c (build_offset_ref): Likewise.* lex.c (do_identifier): Likewise.* method.c (hack_identifier): Likewise.* search.c (lookup_member): Likewise.* semantics.c (finish_non_static_data_member): Likewise.(simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checksinstead of flag_access_control.2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9554* parser.c (cp_parser_class_name): Remove check_access parameter.All caller adjusted. Update declaration.(cp_parser_lookup_name): Likewise.* semantics.c (push_deferring_access_checks): Change parameter typeto enum deferring_kind. All caller adjusted.(resume_deferring_access_checks): Adjust to use new enum.(stop_deferring_access_checks): Likewise.(perform_or_defer_access_check): Likewise.* cp-tree.h (deferring_kind): New enum.(deferred_access): Adjust field type.(push_deferring_access_checks): Update declaration.2003-05-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10555, c++/10576* pt.c (lookup_template_class): Handle class template withmultiple levels of parameters when one of the levels containerrors.2003-05-08 Jason Merrill <jason@redhat.com>* init.c (build_new_1): Don't reuse a TARGET_EXPR in anexpression. Undo some of the recent reorg.2003-05-07 Richard Henderson <rth@redhat.com>PR c++/10570* cfns.gperf: Comment out POSIX thread cancellation points,plus abort and raise.* cfns.h: Regenerate.2003-05-07 Jason Merrill <jason@redhat.com>* call.c (build_conditional_expr): Don't assume that the foldedexpression has result_type.2003-05-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* typeck.c (build_unary_op): Deal with const qualifier ininvalid pointer-to-member earlier.2003-05-05 Jason Merrill <jason@redhat.com>PR c++/9537* call.c (conditional_conversion): Build an RVALUE_CONV ifwe're just changing the cv-quals.(build_conditional_expr): Don't call convert to changecv-quals.2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10496* typeck.c (build_unary_op): Don't output const qualifier whenoutput invalid pointer-to-member diagnostics.2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* decl.c: Fix typos.2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/4494* decl.c (start_function): Use same_type_p to check return typeof main.2003-05-03 Zack Weinberg <zack@codesourcery.com>PR c/10604* cp/typeck.c (build_x_compound_expr): No need to checkextra_warnings as well as warn_unused_value.2003-05-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9364, c++/10553, c++/10586* decl.c (make_typename_type): Don't crash on illegal code.2003-05-03 Nathan Sidwell <nathan@codesourcery.com>* class.c (finish_struct): Use location_t and input_locationdirectly.* decl.c (make_label_decl): Likewise.(use_label): Likewise.* decl2.c (warn_if_unknown_interface): Likewise.(start_static_initialization_or_destruction): Likewise.(generate_ctor_or_dtor_function): Likewise.(finish_file): Likewise.* error.c (print_instantiation_full_context): Likewise.* init.c (create_temporary_var): Likewise.* method.c (synthesize_method): Likewise.* parser.c (cp_token): Likewise.(cp_lexer_set_source_position_from_token): Likewise.(cp_lexer_get_preprocessor_token): Likewise.(cp_parser_statement): Likewise.* pt.c (tsubst_friend_function): Likewise.(instantiate_class_template): Likewise.(tsubst_decl): Likewise.(tsubst): Likewise.(instantiate_decl): Likewise.* semantics.c (begin_class_definition): Likewise.(expand_body): Likewise.2003-05-01 Nathan Sidwell <nathan@codesourcery.com>* class.c (finish_struct): Rename lineno to input_line.* decl.c (push_binding_level, pop_binding_level,suspend_binding_level, resume_binding_level, make_label_decl,use_label, start_function): Likewise.* decl2.c (warn_if_unknown_interface,start_static_initialization_or_destruction,generate_ctor_or_dtor_function, finish_file): Likewise.* error.c (cp_line_of, print_instantiation_full_context,print_instantiation_context): Likewise.* except.c (check_handlers_1, check_handlers): Likewise.* init.c (create_temporary_var): Likewise.* method.c (use_thunk, synthesize_method): Likewise.* parser.c (cp_lexer_set_source_position_from_token,cp_lexer_get_preprocessor_token): Likewise.* pt.c (push_tinst_level, pop_tinst_level,tsubst_friend_function, instantiate_class_template, tsubst_decl,tsubst, tsubst_expr, instantiate_decl): Likewise.* semantics.c (genrtl_try_block, finish_label_stmt,begin_class_definition, expand_body,genrtl_finish_function): Likewise.* tree.c (build_min_nt, build_min): Likewise.2003-05-01 Mark Mitchell <mark@codesourcery.com>* decl2.c (comdat_linkage): Don't externalize explicitinstantiations.2003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10554* decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REFis not NULL.2003-05-01 Steven Bosscher <steven@gcc.gnu.org>* cp-tree.h (struct lang_id2): Remove. Move fields from here...(struct lang_identifier): ... to here.(LANG_ID_FIELD): Remove.(SET_LANG_ID): Remove.(IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier.(SET_IDENTIFIER_LABEL_VALUE): Likewise.(IDENTIFIER_IMPLICIT_DECL): Likewise.(SET_IDENTIFIERL_IMPLICIT_DECL): Likewise.(IDENTIFIER_ERROR_LOCUS): Likewise.(SET_IDENTIFIER_ERROR_LOCUS): Likewise.2003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/8772* pt.c (convert_template_argument): Correct diagnostic.2003-04-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9432, c++/9528* decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.2003-04-30 Garbiel Dos Reis <gcc@integrable-solutions.net>* decl.c (check_previous_goto_1): Adjust prototype.(check_previous_goto): Adjust use.(check_switch_goto): Likewise.(use_label): Adjust.(check_previous_goto_1): Don't use pedwarn_with_file_and_line.(struct named_label_use_list): Use location_t datatype.2003-04-29 Mark Mitchell <mark@codesourcery.com>PR c++/10551* pt.c (mark_decl_instantiated): Defer all explicit instantiationsthat have not yet been written out.2003-04-29 Mark Mitchell <mark@codesourcery.com>PR c++/10549* class.c (layout_class_type): Mark overlong bitfields as havingthe maximum size permitted by their type, after layout.PR c++/10527* error.c (dump_expr): Correctly handling of NEW_EXPR.42003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* call.c (build_operator_new_call): Fix typo.* lang-options.h: Likewise.2003-04-29 Mark Mitchell <mark@codesourcery.com>PR c++/10515* cp-tree.h (lookup_field_1): Declare it.* search.c (lookup_field_1): Make it public.* decl.c (reshape_init): Handle designated initializers.* decl.c (maybe_commonize_var): Further tweak support for systemswithout weak symbols.2003-04-27 Mark Mitchell <mark@codesourcery.com>* decl.c (maybe_commonize_var): Fix thinko in last patch.2003-04-27 Mark Mitchell <mark@codesourcery.com>PR c++/10506* method.c (use_thunk): Decrement immediate_size_expand.PR c++/10503* cp-tree.h (DECL_VAR_MARKED_P): New macro.(DECL_MAYBE_TEMPLATE): Remove.* class.c (fixed_type_or_null): Avoid infinite recursion.* decl.c (maybe_commonize_var): Make the code match the comments.* pt.c (instantiate_decl): Move call to import_export_decl.2003-04-26 Mark Mitchell <mark@codesourcery.com>* decl2.c (finish_file): Fix merge botch.2003-04-25 Mark Mitchell <mark@codesourcery.com>* decl2.c (finish_file): Don't call import_export_decl forfunctions that are not defined.(handle_class_head): Robustify.* pt.c (instantiate_decl): Do not call cp_finish_decl forvariables that are not defined.2003-04-24 Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>* call.c (print_z_candidates): Fix off by one error.2003-04-24 Nathan Sidwell <nathan@codesourcery.com>PR c++/10337* call.c (joust): Don't warn about conversion ops that are exactor cv-conversions. Rearrange to avoid multiple type comparisons.2003-04-23 Mark Mitchell <mark@codesourcery.com>PR c++/10471* call.c (build_cxx_call): Robustify.2003-04-23 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in (lex.o): Remove mbchar.h.* lex.c (MULTIBYTE_CHARS): Lose.* parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handledin c-lex.c.2003-04-23 Mark Mitchell <mark@codesourcery.com>PR c++/9847* cp-tree.h (duplicate_tag_error): Remove.* class.c (duplicate_tag_error): Remove.* semantics.c (begin_class_definition): Return immediately for aduplicate class definition.PR c++/10451* decl.c (grokdeclarator): Correct logic for "mutable" errors.2003-04-22 Mark Mitchell <mark@codesourcery.com>PR c++/10446* search.c (lookup_fnfields_1): Handle empty slots in the methodvector.PR c++/10428* decl.c (check_elaborated_type_specifier): New function, splitout from ...(xref_tag): ... here. Use the new function in more places.* rtti.c (throw_bad_typeid): Use build_cxx_call.2003-04-21 Mark Mitchell <mark@codesourcery.com>* call.c (build_over_call): Use build_cxx_call.(build_cxx_call): New method, split out of build_over_call.* cp-tree.h (language_function): Add can_throw.(build_cxx_call): Declare it.* decl.c (finish_function): If a function does not contain anycalls to functions that can throw an exception, indicate thatfact.* decl2.c (mark_used): Do not defer the instantiation offunctions, if the current function does not throw.* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.* pt.c (instantiate_decl): Make sure import_export_decl is calledbefore emitting things.* rtti.c (throw_bad_cast): Use build_cxx_call.(build_dynamic_cast_1): Likewise.* typeck.c (build_function_call): Likewise.2003-04-21 Nathan Sidwell <nathan@codesourcery.com>PR c++/9881* typeck.c (build_unary_op): Fold all COMPONENT_REF addrexpressions. Reverts my 2002-08-08 patch.* typeck.c (comp_ptr_ttypes_real): Swap final && operands forcheaper early exit.2003-04-20 Nathan Sidwell <nathan@codesourcery.com>* cp/decl2.c (start_static_storage_duration_function): Take countarg, don't check if it wraps round.(generate_ctor_or_dtor_function): Add locus arg, use it.(generate_ctor_and_dtor_functions_for_priority): Data arg is alocus.(finish_file): Set line numbers to past EOF for synthesizedfunctions.2003-04-20 Nathan Sidwell <nathan@codesourcery.com>PR c++/10405* search.c (lookup_field_1): Final scan goes backwards fortypes, forwards for non-types.2003-04-17 Roger Sayle <roger@eyesopen.com>PR c/10375* decl.c (duplicate_decls): Preserve "const", "noreturn" and"nothrow" function attributes.2003-04-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/10347* pt.c (type_dependent_expression_p): Handle array new.2003-04-15 Mark Mitchell <mark@codesourcery.com>PR c++/10381* parser.c (cp_parser_primary_expression): Reorganize logic fordealing with name lookup failures.2003-04-15 Jason Merrill <jason@redhat.com>* decl2.c (mark_used): Don't instantiate anything ifskip_evaluation.2003-04-14 Ziemowit Laski <zlaski@apple.com>* tree.c (build_cplus_array_type_1): Do not calluses_template_parms() on a NULL index_type.2003-04-13 Roger Sayle <roger@eyesopen.com>* decl.c (duplicate_decls): Preserve pure and malloc attributes.2003-04-12 Mark Mitchell <mark@codesourcery.com>PR c++/10300* init.c (build_new_1): Reorganize.2003-04-12 Zack Weinberg <zack@codesourcery.com>* class.c (initialize_array)* decl.c (reshape_init)* decl2.c (build_expr_from_tree)* init.c (build_zero_init)* pt.c (tsubst_copy, tsubst_copy_and_build)* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)(ptm_initializer, class_initializer, get_pseudo_ti_init)* semantics.c (finish_compound_literal)* typeck.c (build_ptrmemfunc1)* typeck2.c (store_init_value, process_init_constructor)(build_functional_cast): Use build_constructor.2003-04-12 Zack Weinberg <zack@codesourcery.com>* call.c (print_z_candidates): Use gcc_gettext_width, notstrlen, to determine how much padding to use.2003-04-10 Zack Weinberg <zack@codesourcery.com>* decl.c: Update all calls to shadow_warning.2003-04-10 Mark Mitchell <mark@codesourcery.com>* class.c (layout_class_type): Correct handling for overlongbit-fields whose width is the same as an integer type.2003-04-06 Zack Weinberg <zack@codesourcery.com>* cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.* cp-lang.c (cp_tree_size): New function.(LANG_HOOKS_TREE_SIZE): Override.* cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, structtree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.(union lang_tree_node): Remove common and srcloc members.(build_srcloc_here): Don't prototype.* decl.c (cp_tree_node_structure): Kill SRCLOC case.* pt.c (pending_templates): Correct comment.* tree.c (build_srcloc, build_srcloc_here): Kill.2003-04-06 Zack Weinberg <zack@codesourcery.com>* call.c: Include intl.h.(print_z_candidate): Always use inform; get rid of errfnargument. Reorganize so that all the strings get picked upby xgettext. Note obligation of caller to pass first argumentthrough gettext.(print_z_candidates): Update to match. Indent second andsuccessive candidates by strlen() of translated message.(joust): Restructure ambiguous-conversion pedwarn so thattranslators see a complete sentence. Update calls toprint_z_candidate.* Make-lang.in (cp/call.o): Update dependencies.2003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* decl.c (set_current_binding_level): Delete, revert last change.(current_binding_level): Modify to allow it as as lvalue.2003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* name-lookup.c (find_binding): Pass appropriate pointer type toPOP_TIMEVAR_AND_RETURN.2003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* Make-lang.in (cp-warn): Add $(STRICT_WARN).* cp-tree.h: Don't insist on having GNUC.2003-04-03 Jason Merrill <jason@redhat.com>* cvt.c (ocp_convert): Only abort if we try to convert an objectof TREE_ADDRESSABLE type.* class.c (build_vtable): Set DECL_ALIGN here.(get_vtable_decl): Not here.(layout_vtable_decl): Or here.(create_vtable_ptr): Or here.(layout_class_type): Or here.(check_bitfield_decl): Don't mess with field alignment.2003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,DEF_ASSN_OPERATOR): Delete spurious semi-colon.* rtti.c (dfs_class_hint_mark): Likewise.* decl.c (push_local_name, push_class_level_binding,maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN infunctions returning void.* decl2.c (add_using_namespace): Likewise.* decl.c (print_binding_level, print_other_binding_stack,print_binding_stack): Cast argument of %p specifier to void*.* ptree.c (cxx_print_decl): Likewise.* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,VAR_FUNCTION_OR_PARM_DECL_CHECK,VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.* decl.c (set_current_binding_level): New macro. Use throughoutwhen setting the current binding level.* cp-tree.h (cp_lvalue_kind, base_access): Delete trailing commain enum.* method.c (mangling_flags): Likewise.* cp-tree.h (lang_type_header): Add __extension__ and useCHAR_BITFIELD for members.2003-04-02 Geoffrey Keating <geoffk@apple.com>PR other/9274* mangle.c: Include gt-cp-mangle.h.(subst_identifiers): Mark with GTY.* config-lang.in (gtfiles): Add cp/mangle.c.* Make-lang.in: (gt-cp-mangle.h): New rule.(cp/mangle.o): Depends on gt-cp-mangle.h.2003-04-01 Andrew Pinski <pinskia@physics.uc.edu>* config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.cafter \$(srcdir)/cp/name-lookup.h.* name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinsteadof ggc_alloc. Include gt-cp-name-lookup.h at the end of the file.* Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.(cp/name-lookup.o): Depends on gt-cp-name-lookup.h.2003-03-31 Jason Merrill <jason@redhat.com>PR java/10145* class.c (check_field_decl): Don't set DECL_ALIGN.2003-03-30 Mark Mitchell <mark@codesourcery.com>PR c++/7647* decl.c (grokdeclarator): Tidy, slightly.* search.c (lookup_field_1): Add want_type parameter.(lookup_field_r): Adjust call to lookup_field_1.2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>* Make-lang.in (cp/name-lookup.o): Add more dependencies.2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (binding_for_name: Move to name-lookup.h Adjustprototype.(cxx_scope_find_binding_for_name): Likewise.* decl.c (find_binding: Move to name-lookup.c.(binding_for_name): Likewise.(cxx_scope_find_binding_for_name): Likewise.(BINDING_LEVEL): Remove.(push_binding): Tidy.(push_class_binding): Likewise.(pop_binding): Likewise.(poplevel): Likewise.(poplevel_class): Likewise.(set_identifier_type_value_with_scope): Likewise.(push_overloaded_decl): Likewise.(lookup_tag): Likewise.(unqualified_namespace_lookup): Likewise.(lookup_name_current_level): Likewise.(maybe_inject_for_scope_var): Likewise.(namespace_binding): Move to name-lookup.c.(set_namespace_binding): Likewise.* decl2.c (lookup_using_namespace): Tidy.(qualified_lookup_using_namespace): Likewise.(do_toplevel_using_decl): Likewise.* name-lookup.c: Include "timevar.h"* name-lookup.h (cxx_scope): Declare.(struct cxx_binding): Lose member "has_level". Adjust "scope"member declaration.(BINDING_SCOPE): Adjust definition.(BINDING_HAS_LEVEL_P): Remove.2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>* name-lookup.c: New file.* name-lookup.h: Likewise..* decl.c (push_binding): Adjust use cxx_binding_make.(free_bindings): Move to name-lookup.c(pop_binding): Use cxx_binding_free.(binding_for_name): Tidy.* cp-tree.h: Include "name-lookup.h"(cxx_binding_make): Move to name-lookup.h(cxx_binding_clear): Likewise.(struct cxx_binding): Likewise.(LOCAL_BINDING_P): Likewise.(INHERITED_VALUE_BINDING_P): Likewise.(BINDING_SCOPE): Likewise.(BINDING_HAS_LEVEL_P): Likewise.(BINDING_VALUE): Likewise.(BINDING_TYPE): Likewise.* config-lang.in (gtfiles): Add cp/name-lookup.h* Make-lang.in (cp/name-lookup.o): New rule.(CXX_OBJS): Add cp/name-lookup.o(CXX_TREE_H): Add cp/name-lookup.h2003-03-28 Jason Merrill <jason@redhat.com>PR c++/10245* cvt.c (force_rvalue): New fn.* call.c (build_conditional_expr): Use it.* cp-tree.h: Declare it.2003-03-28 Mike Stump <mrs@apple.com>* error.c (dump_expr): Add 0x to printed hex numbers to makeoutput match source code better.2003-03-28 Mark Mitchell <mark@codesourcery.com>PR c++/10218* decl.c (grokfndecl): Return NULL_TREE for bogus out-of-classdefinitions.* decl2.c (generate_ctor_or_dtor_function): Tolerate anon-existant ssdf_decls array.(finish_file): Call generator_ctor_or_dtor_function when there arestatic constructors or destructors and no other staticinitializations.2003-03-28 Nathan Sidwell <nathan@codesourcery.com>PR c++/10047* decl2.c (finish_file): Don't warn about explicitly instantiatedinline decls.2003-03-27 Nathan Sidwell <nathan@codesourcery.com>PR c++/10224* pt.c (lookup_template_class): Only check instantiated args ifthey do not contain template parameters.2003-03-27 Nathan Sidwell <nathan@codesourcery.com>PR c++/10158* parser.c (cp_parser_function_definition): SetDECL_INITIALIZED_IN_CLASS for members.* pt.c (instantiate_decl): Only reduce the template args forfriends that are not defined in class.2003-03-25 Jason Merrill <jason@redhat.com>* call.c (print_z_candidate): Change name of first arg to msgid.(joust): Add comment for translators.2003-03-24 Nathan Sidwell <nathan@codesourcery.com>PR c++/9898, PR c++/383, DR 322* pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Lookthrough reference types on both PARM and ARG.2003-03-24 Nathan Sidwell <nathan@codesourcery.com>PR c++/10119* error.c (dump_expr) <BASELINK>: Use dump_expr.* pt.c (maybe_fold_nontype_args): New function.(tsubst_copy) <SCOPE_REF>: Subst any template_id args.<TEMPLATE_ID_EXPR>: Break out folding code, call it.(tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Callmaybe_fold_nontype_args.2003-03-24 Nathan Sidwell <nathan@codesourcery.com>PR c++/10026* decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.2003-03-23 Mark Mitchell <mark@codesourcery.com>PR c++/7086* typeck.c (cxx_mark_addressable): Adjust call togen_mem_addressof or put_var_into_stack.2003-03-22 Nathan Sidwell <nathan@codesourcery.com>PR c++/9978, c++/9708* cp-tree.h (instantiate_template): Add tsubst_flags parameter.* call.c (add_template_candidate_real): Adjustinstantiate_template call.* class.c (resolve_address_of_overloaded_function): Likewise.* decl.c (build_enumerator): Set TREE_CONSTANT.* pt.c (check_instantiated_args): New.(push_inline_template_parms_recursive): Set TREE_CONSTANT,TREE_READONLY.(build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.(reduce_template_parm_level): Likewise.(process_template_parm): Likewise.(check_explicit_specialization): Adjust instantiate_template call.(convert_template_argument): Don't check non-type argument here.(lookup_template_class): Check them here.(tsubst_friend_function): Adjust instantiate_template call.(instantiate_template): Add tsubst_flags parameter, use it. Checkinstantiated args.2003-03-21 Zack Weinberg <zack@codesourcery.com>* decl.c: Update calls to shadow_warning.2003-03-21 Nathan Sidwell <nathan@codesourcery.com>PR c++/9898* error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.(dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.2003-03-20 Mark Mitchell <mark@codesourcery.com>* cp/decl2.c (arg_assoc_class): Correct check for namespace-scopefriends.* cp/pt.c (instantiate_class_template): Fix formatting.2003-03-14 Matt Austern <austern@apple.com>* cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.(unemitted_tinfo_decl_p): Remove.(emit_tinfo_decl): Change declaration to remove unused parameter.* decl2.c (finish_file): Change tinfo emission to loop throughunemitted_tinfo_decls array instead of looping through all decls.* rtti.c (unemitted_tinfo_decl_p): Declare as static, removeunused second parameter.(init_rtti_processing): initialize unemitted_tinfo_decls varray.(get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.(emit_tinfo_decl): remove unused second parameter, add assertionthat decl hasn't already been emitted.2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>* dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change returntype from 'int' to 'bool'. Replace 0 and 1 with true and false inreturn statements.2003-03-19 Jason Merrill <jason@redhat.com>PR c++/8316, c++/9315, c++/10136* call.c (print_z_candidate): Split out from...(print_z_candidiates): ...here.(joust): Use it.2003-03-17 Roger Sayle <roger@eyesopen.com>PR c++/10031* decl.c (duplicate_decls): Use the new type when prototypinganticipated decls, even when the types match. This defines theexception list for the built-in function.2003-03-17 Jason Merrill <jason@redhat.com>PR c++/10091* typeck.c (build_class_member_access_expr): CompareTYPE_MAIN_VARIANTs.2003-03-17 Mark Mitchell <mark@codesourcery.com>PR c++/9639* parser.c (cp_parser_declarator_id): Clear parser->scope.2003-03-16 Jason Merrill <jason@redhat.com>PR c++/9993* decl.c (finish_function): Only allow the NRVO to use variablesdeclared at function scope.2003-03-17 Andreas Jaeger <aj@suse.de>* Make-lang.in (cp/TAGS): Remove.2003-03-16 Nathan Sidwell <nathan@codesourcery.com>PR c++/9629* cp-tree.h (struct language_function): Add in_base_initializer.(in_base_initializer): define it.(expand_member_init): Remove INIT param.* init.c (expand_member_init): Remove INIT param, return the member.(emit_mem_initializers): Set in_base_initializer.* class.c (build_base_path): Check in_base_initializer.* parser.c (cp_parser_mem_initializer): Set in_base_initializer.* pt.c (tsubst_initializer_list): Likewise.2003-03-16 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (binding_for_name): Fix initialization thinko.2003-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>Compile-time improvement: 2/n.* cp-tree.h (struct cxx_binding): New datatype;(struct lang_identifier): Use it.(LOCAL_BINDING_P): Adjust definition.(INHERITED_VALUE_BINDING_P): Likewise.(BINDING_SCOPE): Likewise.(BINDING_HAS_LEVEL_P): Likewise.(BINDING_VALUE): Likewise.(BINDING_TYPE): Likewise.(IDENTIFIER_VALUE): Likewise.(struct tree_binding): Remove.(TS_CP_BINDING): Likewise.((union lang_tree_node): Remove field "binding".(cxx_binding_clear): New macro.(binding_for_name): Adjust return type.(qualified_lookup_using_namespace): Adjust prototype.(lookup_using_namespace): Adjust prototype.(cxx_scope_find_binding_for_name): Declare.* cp-tree.def: Remove CPLUS_BINDING definition.* decl.c (push_binding): Adjust local variable type.(add_binding): Likewise.(push_class_binding): Likewise.(pop_binding): Likewise.(poplevel): Likewise.(poplevel_class): Likewise.(free_bindings): Adjust type.(find_binding): Adjust return type, add a third parameter. Removenon-useful assertion now that we use static typing.(cxx_scope_find_binding_for_name): New function.(binding_for_name): Use it. Adjust local variable type. Simplify.(namespace_binding): Simplify.(set_namespace_binding): Likewise.(set_identifier_type_value_with_scope): Adjust local variable type.(lookup_tag): Don't type-abuse of local variable 'old'.(lookup_namespace_name): Likewise. Allocate binding on stack.(select_decl): Adjust prototype.(unqualified_namespace_lookup): Allocate binding on stack.Don't type-abuse of local variable 'val'.(lookup_name_real): Likewise.(maybe_inject_for_scope_var): Adjust local variable type.(cp_tree_node_structure): Remove CPLUS_BINDING case label.(namespace_binding): Adjust logic, simplify.(BINDING_LEVEL): Adjust definition.(push_class_level_binding): Adjust local variable type.(struct cxx_saved_binding): Adjust field 'binding' type.* decl2.c (ambiguous_decl): Adjust prototype.(lookup_using_namespace): Adjust local variable type.(qualified_lookup_using_namespace): Catch type error and correctensueing logic error.(do_nonmember_using_decl): Adjust local variable type. Allocatetemporary cxx_binding on stack.(do_toplevel_using_decl): Adjust local variable type.* ptree.c (cxx_print_cxx_binding): New function.(cxx_print_identifier): Use it.(cxx_print_xnode): Delete CPLUS_BINDING case label.2003-03-15 Roger Sayle <roger@eyesopen.com>* tree.c (count_functions): Fix whitespace.2003-03-15 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in: Update.2003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/6440* pt.c (maybe_process_partial_specialization): Handlemember class template when enclosing class template isexplicit specialized.(most_general_template): Stop looking when DECL is alreadyspecialized.2003-03-13 Jason Merrill <jason@redhat.com>PR c++/9420* search.c (lookup_conversions): Call complete_type here.* call.c (implicit_conversion): Not here.2003-03-13 Mark Mitchell <mark@codesourcery.com>* decl2.c (do_nonmember_using_decl): Correct handling ofsimultaneous type/non-type bindings.* call.c (initialize_reference): Remove bogus assertion.* decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.2003-03-12 Andrew Lewycky <andrew@mxc.ca>PR c++/7050* expr.c (cxx_expand_expr): Return const0_rtx for throwexpressions.2003-03-11 Mark Mitchell <mark@codesourcery.com>PR c++/9474* decl2.c (do_nonmember_using_decl): Do not call duplicate declsto merge old and new declarations.2003-03-12 Alexandre Oliva <aoliva@redhat.com>* g++.1: Remove.* Make-lang.in (c++.generated-manpages): Build cp/g++.1.(cp/g++.1): Build it from scratch in the build tree.(c++.install-man): Depend on it. Install it from the build tree.(c++.mostlyclean): Clean it.2003-03-11 Mark Mitchell <mark@codesourcery.com>PR c++/9474* decl2.c (do_nonmember_using_decl): Do not call duplicate declsto merge old and new declarations.PR c++/9924* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.2003-03-11 Jason Merrill <jason@redhat.com>PR c++/9820* search.c (lookup_member): Fix handling of functions in a classbeing defined.2003-03-11 Mark Mitchell <mark@codesourcery.com>PR c++/8700* call.c (convert_class_to_reference): Adjust usage ofsplice_viable.(any_viable): Remove.(splice_viable): Combine with any_viable.(print_z_candidates): Avoid printing duplicates.(build_user_type_conversion_1): Adjust usage of splice_viable.(build_new_function_call): Likewise.(build_operator_new_call): Likewise.(build_object_call): Likewise.(build_conditional_expr): Likewise.(build_new_op): Likewise.(build_new_method_call): Likewise.(joust): Remove spurious comment.* cp-tree.h (DECL_FRIENDLIST): Correct documentation.* decl2.c (arg_assoc_class): Simplify.* friend.c (add_friend): Likewise.2003-03-11 Jason Merrill <jason@redhat.com>PR c++/8660* decl2.c (check_classfn): A member template only matches amember template.2003-03-11 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in (CXX_C_OBJS): Update.* lang-specs.h: Don't define __GNUG__ here.2003-03-10 Mark Mitchell <mark@codesourcery.com>* call.c (perform_overload_resolution): New function.(build_new_function_call): Use it.(build_operator_new_call): Likewise.(add_candidates): Add explicit_targs and template_only parameters.(build_new_op): Adjust accordingly.* cp-tree.h (build_operator_new_call): New function.(build_function_call_real): Remove.(build_function_call_maybe): Likewise.* init.c (build_new_1): Use build_operator_new_call.* typeck.c (build_function_call_real): Rename to ...(build_function_call): ... this.2003-03-10 Devang Patel <dpatel@apple.com>PR c++/9394* g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.2003-03-10 Jason Merrill <jason@redhat.com>PR c++/9798* decl.c (push_using_directive): Push before recursing.PR c++/9868, c++/9524* call.c (resolve_scoped_fn_name): Handle the case of a functionpointer member.* decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'argument in the pointer-to-member case.2003-03-09 Mark Mitchell <mark@codesourcery.com>PR c++/9373* cp-lang.c (cxx_get_alias_set): Use alias set zero forpointers to member functions.PR c++/8534* decl.c (build_ptrmemfunc_type): Do not allow default argumentsin pointer-to-member-function types.2003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net>* expr.c (cplus_expand_constant): Use C90 prototype style.(cxx_expand_expr): Likewise.2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9970* decl.c (duplicate_decls): Only copy DECL_THUNKS for virtualfunctions.2003-03-08 Geoffrey Keating <geoffk@apple.com>* lang-specs.h (c++-header): Change .pch to .gch.2003-03-08 Neil Booth <neil@daikokuya.co.uk>* cp-tree.h (cxx_init): Update prototype.* lex.c (cxx_init): Similarly.2003-03-08 Mark Mitchell <mark@codesourcery.com>PR c++/9823* cp-tree.h (begin_mem_initializers): Remove.* parser.c (cp_parser_mem_initializer_list): Inline it here.Do not call finish_mem_initializers if not in a constructor.(cp_parser_class_head): Fix typo in error message.* semantics.c (begin_mem_initializers): Remove.* testsuite/g++.dg/parser/constructor1.C: New test.PR c++/9809* call.c (add_function_candidate): Skip builtin fuctions that havenot yet been declared.PR c++/9982* init.c (build_new_1): Correct logic for determining whether ornot to use an array cookie.PR c++/9524* parser.c (cp_parser_postfix_expression): Callfinish_non_static_data_member, even when processing_template_decl.PR c++/9912* cp-tree.h (is_ancestor): New function.(handle_class_head): Change prototype.* decl2.c (is_namespace_ancestor): Rename to ...(namespace_anecestor): ... this.(set_decl_namespace): Adjust accordingly.(handle_class_head): Remove unnecessary parameters.* parser.c (cp_parser_class_head): Check thatnested-name-specifiers are used appropriately.2003-03-07 Mark Mitchell <mark@codesourcery.com>* call.c (reference_binding): Remove REF_IS_VAR parameter.(implicit_conversion): Adjust call to reference_binding.(make_temporary_var_for_ref_to_type): Add TYPE parameter.(initialize_reference): Adjust handling for references bound torvalues.* cp-tree.h (make_temporary_var_for_ref_to_temp): Changeprototype.(real_non_cast_lvalue_p): New method.* cvt.c (build_up_reference): Adjust use ofmake_temporary_var_for_ref_to_temp.* tree.c (real_non_cast_lvalue_p): New method.2003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>* except.c (init_exception_processing): Use C90 prototype style.(cp_protect_cleanup_actions): Likewise.(prepare_eh_type): Likewise.(build_eh_type_type): Likewise.(build_exc_ptr): Likewise.(do_begin_catch): Likewise.(dtor_nothrow): Likewise.(do_end_catch): Likewise.(push_eh_cleanup): Likewise.(decl_is_java_type): Likewise.(choose_personality_routine): Likewise.(initialize_handler_parm): Likewise.(expand_start_catch_block): Likewise.(expand_end_catch_block): Likewise.(begin_eh_spec_block): Likewise.(finish_eh_spec_block): Likewise.(do_allocate_exception): Likewise.(do_free_exception): Likewise.(wrap_cleanups_r): Likewise.(stabilize_throw_expr): Likewise.(build_throw): Likewise.(complete_ptr_ref_or_void_ptr_p): Likewise.(is_admissible_throw_operand): Likewise.(nothrow_libfn_p): Likewise.(can_convert_eh): Likewise.(check_handlers_1): Likewise.(check_handlers): Likewise.2003-03-06 Mark Mitchell <mark@codesourcery.com>* call.c (merge_conversion_sequences): New function.(build_conv): Set ICS_USER_FLAG for USER_CONVs.(convert_class_to_reference): Correct handling of secondstandard conversion sequence in a user-defined conversionsequence.(build_user_type_conversion_1): Use merge_conversion_sequences.* cp-tree.def: Add comments for CONV nodes.* rtti.c (get_tinfo_decl): Use build_address/build_nop.2003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>* error.c (init_error): Use C90 prototype style.(dump_scope): Likewise.(dump_qualifiers): Likewise.(dump_template_argument): Likewise.(dump_template_argument_list): Likewise.(dump_template_parameter): Likewise.(dump_template_bindings): Likewise.(dump_type): Likewise.(dump_typename): Likewise.(class_key_or_enum): Likewise.(dump_aggr_type): Likewise.(dump_type_prefix): Likewise.(dump_type_suffix): Likewise.(dump_global_iord): Likewise.(dump_simple_decl): Likewise.(dump_decl): Likewise.(dump_template_decl): Likewise.(dump_function_decl): Likewise.(dump_parameters): Likewise.(dump_exception_spec): Likewise.(dump_function_name): Likewise.(dump_template_parms): Likewise.(dump_char): Likewise.(dump_expr_list): Likewise.(dump_expr): Likewise.(dump_binary_op): Likewise.(dump_unary_op): Likewise.(type_as_string): Likewise.(expr_as_string): Likewise.(decl_as_string): Likewise.(context_as_string): Likewise.(lang_decl_name): Likewise.(cp_file_of): Likewise.(cp_line_of): Likewise.(decl_to_string): Likewise.(expr_to_string): Likewise.(fndecl_to_string): Likewise.(code_to_string): Likewise.(language_to_string): Likewise.(parm_to_string): Likewise.(op_to_string): Likewise.(type_to_string): Likewise.(assop_to_string): Likewise.(args_to_string): Likewise.(cv_to_string): Likewise.(cxx_print_error_function): Likewise.(cp_diagnostic_starter): Likewise.(cp_diagnostic_finalizer): Likewise.(cp_print_error_function): Likewise.(function_category): Likewise.(print_instantiation_full_context): Likewise.(print_instantiation_partial_context): Likewise.(maybe_print_instantiation_context): Likewise.(print_instantiation_context): Likewise.(cp_printer): Likewise.(print_integer): Likewise.(print_non_consecutive_character): Likewise.(locate_error): Likewise.2003-03-06 Mark Mitchell <mark@codesourcery.com>PR c++/9965* call.c (reference_binding): Add ref_is_var parameter.(implicit_conversion): Adjust call to reference_binding.(initialize_reference): Likewise.PR c++/9400* decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIALPARM_DECLs.PR c++/9791* class.c (get_basefndecls): Use lookup_fnfields_1.2003-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9188* parser.c (cp_parser_type_parameter): Remove redundant `expect'in error message.(cp_parser_single_declaration): Likewise.2003-03-05 Jason Merrill <jason@redhat.com>PR c++/9440* call.c (build_conditional_expr): Use convert rather than anexplicit NOP_EXPR.2003-03-02 Matt Austern <austern@apple.com>* decl.c (cp_binding_level): Add static_decls varray member.(add_decl_to_level): Add static/inline namespace scopedeclarations to static_decls array.(wrapup_global_for_namespace): Pass static_decls only, instead ofall decls, to wrapup_global_declarations/check_global_declarations.(push_namespace): Initialize static_decls for ordinary namespaces.(cxx_init_decl_processing): Initialize static_decls for globalnamespace.2003-03-05 Mark Mitchell <mark@codesourcery.com>* class.c (end_of_class): Correct thinko.2003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>* config-lang.in: Replace ${libstdcxx_version} by its value.2003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (cxx_saved_binding): Declare.(struct saved_scope): Adjust type of field 'old_binding'.* decl.c (cxx_saved_binding_make): New macro.(struct cxx_saved_binding): Define.(store_bindings): Adjust prototype. Use cxx_saved_binding to saveC++ bindings.(maybe_push_to_top_level): Adjust local variable type.(pop_from_top_level): Likewise.2003-03-04 Tom Tromey <tromey@redhat.com>* Make-lang.in (c++.tags): New target.2003-03-04 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in: Update.2003-03-03 Jason Merrill <jason@redhat.com>* decl.c (finish_enum): Do set the type in a template. Simplify.* pt.c (tsubst_enum, tsubst_copy): Revert last patch.2003-03-03 Mark Mitchell <mark@codesourcery.com>PR c++/9878* call.c (convert_class_to_reference): Correct conversionsequences.(reference_binding): Add ref_bound_directly_to_rvalue_p parameter.(implicit_conversion): Adjust call to reference_binding.(add_candidate): Change type of candidates parameter.(add_function_candidate): Likewise.(add_conv_candidate): Likewise.(build_builtin_candidate): Likewise.(add_builtin_candidate): Likewise.(add_builtin_candidates): Likewise.(add_template_candidate_real): Likewise.(add_template_candidate): Likewise.(add_template_conv_candidate): Likewise.(build_user_type_conversion_1): Adjust accordingly.(build_object_call): Likewise.(build_conditional_expr): Likewise.(add_candidates): Likewise.(build_new_op): Likewise.(convert_like_real): Use USER_CONV_CAND. Use build_nop.(build_new_method_call): Adjust calls to add_function_candidate.(make_temporary_var_for_ref_to_temp): New function.(initialize_reference): Add decl parameter.* class.c (build_rtti_vtbl_entries): Use build_address andbuild_nop.* cp-tree.h (initialize_reference): Change prototype.(make_temporary_var_for_ref_to_temp): New function.(build_type_conversion): Change prototype.(build_address): New function.(build_nop): Likewise.* cvt.c (cp_convert_to_pointer): Adjust call tobuild_type_conversion. Avoid indicating redundant NOP_EXPRs.Use build_nop.(convert_to_pointer_force): Use build_nop.(build_up_reference): Use make_temporary_var_for_ref_to_temp.(convert_to_reference): Adjust call to build_type_conversion.(ocp_convert): Likewise.(build_type_conversion): Remove for_sure parameter.* decl.c (grok_reference_init): Use initialize_reference.* typeck.c (build_address): New function.(build_nop): Likewise.(build_unary_op): Use them.(build_ptrmemfunc): Tidy slightly.(convert_for_initialization): Adjust call toinitialize_reference.* typeck2.c (store_init_value): Remove #if 0'd code.2003-03-03 Jason Merrill <jason@redhat.com>* decl.c (start_function): Clear DECL_NUM_STMTS.* class.c (get_vtable_decl): Use vtbl_type_node.(build_primary_vtable): Check for it.2003-03-02 Aldy Hernandez <aldyh@redhat.com>* decl.c (check_initializer): Check for vector_opaque_p.2003-03-02 Ashif Harji <asharji@uwaterloo.ca>* lang-specs.h (default_compilers): Add -no-integrated-cpp flag toinvoke an external cpp during compilation.2003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (duplicate_decls): Convert use of warning_with_decl() tothat of warning().(start_decl): Likewise.(start_function): Likewise.2003-03-01 Neil Booth <neil@daikokuya.co.uk>* Make-lang.in (CXX_C_OBJS): Update.2003-02-28 Mark Mitchell <mark@codesourcery.com>PR c++/9892* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL wheninstantiating it.2003-02-28 Aldy Hernandez <aldyh@redhat.com>* parser.c (cp_parser_init_declarator): Revert opaquevector_opaque_p change.Do not include target.h.2003-02-28 Mark Mitchell <mark@codesourcery.com>PR c++/9879* cp-tree.h (build_zero_init): Add parameter.* decl.c (cp_finish_decl): Adjust call.* init.c (build_zero_init): Add nelts parameter. Adjust recursivecalls.(build_default_init): Add nelts parameter. Adjust calls tobuild_zero_init.(build_new_1): Adjust call to build_default_init.* typeck2.c (process_init_constructor): Adjust call to build_zero_init.2003-02-26 Devang Patel <dpatel@apple.com>* decl.c (finish_enum): Merge two 'for' loops. Copy value node ifrequired. Postpone enum setting for template decls.(build_enumerator): Delay copying value node until finish_enum(). Remove #if 0'ed code.* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.(tsubst_copy): Add check for enum type.2003-02-25 Mark Mitchell <mark@codesourcery.com>PR c++/9683* decl2.c (prune_vars_needing_no_initialization): Do not throwaway initializations for DECL_EXTERNAL VAR_DECLs.(finish_file): Adjust accordingly.* pt.c (instantiate_decl): Do not defer VAR_DECLs.2003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (add_binding): Time TV_NAME_LOOKUP.(push_class_binding): Likewise.(set_namespace_binding): Likewise.2003-02-24 Mark Mitchell <mark@codesourcery.com>PR c++/9836* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip fromspecializations back to the main template.* parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.* pt.c (resolve_typename_type): Likewise.2003-02-24 Jeffrey D. Oldham <oldham@codesourcery.com>PR c++/9778* pt.c (tsubst_copy_and_build): For a templated function inside ascope, process template arguments.2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9602* typeck2.c (abstract_virtuals_error): Don't check whenTYPE is still template parameter dependent.2003-02-23 Mark Mitchell <mark@codesourcery.com>PR c++/5333* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.* parser.c (cp_parser_diagnose_invalid_type_name): Use it.* pt.c (instantiate_class_template): Don't try to instantiatedependent types.(resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.2003-02-21 Mark Mitchell <mark@codesourcery.com>PR c++/9749* decl.c (grokdeclarator): Do not allow parameters with variablymodified types.2003-02-21 Nathan Sidwell <nathan@codesourcery.com>* search.c (grow_bfs_bases): Remove. Fold into ...(bfs_walk): ... here, fix fencepost error. Fix merge lossagein previous patch.2003-02-20 Mark Mitchell <mark@codesourcery.com>PR c++/9729* mangle.c (mangle_conv_op_name_for_type): Issue an error messagewhen the G++ 3.2 ABI prevents correct compilation.2003-02-20 Nathan Sidwell <nathan@codesourcery.com>Change base class access representation. Share virtual basebinfos.* cp/call.c (build_special_member_call): Remove binfo_for_vbasecall.* cp/class.c (build_base_path): Likewise.(build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.(build_secondary_vtable): Remove FOR_TYPE arg. Adjust.(make_new_vtable): Adjust.(force_canonical_binfo_r): Delete.(force_canonical_binfo): Delete.(mark_primary_virtual_base): Delete.(dfs_unshared_virtual_bases): Delete.(mark_primary_bases): Adjust.(maybe_warn_about_overly_private_class): Adjust.(dfs_base_derived_from): Delete.(base_derived_from): Follow the inheritance chain.(struct find_final_overrider_data): Add vpath member.(dfs_find_final_overrider): Adjust.(dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.(find_final_overrider): Adjust.(update_vtable_entry_for_fn): Adjust.(modify_all_vtables): Adjust.(walk_subobject_offsets): Adjust.(layout_nonempty_base_or_field): Adjust.(layout_empty_base): Remove last parameter. Adjust.(build_base_field): Adjust.(build_base_fields): Adjust.(propagate_binfo_offsets): Remove last parameter. Adjust.(dfs_set_offset_for_unshared_vbases): Delete.(layout_virtual_bases): Adjust.(finish_struct_1): Adjust.(init_class_processing): Don't init access nodes.(dfs_get_primary_binfo): Delete.(get_primary_binfo): Adjust.(dump_class_hierarchy_r): Remove most derived arg, add IGOparameter. Adjust.(dump_class_hierarchy): Adjust.(finish_vtbls): Adjust.(get_original_base): Delete.(build_vtt_inits): Adjust.(dfs_build_secondary_vptr_vtt_inits): Adjust.(dfs_ctor_vtable_bases_queue_p): Adjust.(build_ctor_vtbl_group): Adjust.(dfs_accumulate_vtbl_inits): Adjust.(build_vtbl_initializer): Adjust.(build_vbase_offset_vtbl_entries): Adjust.(add_vcall_offset_vtbl_entries_1): Adjust.* cp/cp-tree.h (CPTI_ACCESS_*): Remove.(access_*_node): Remove.(CANONICAL_BINFO): Delete.(BINFO_UNSHARED_MARKED): Remove.(BINFO_MARKED): Set LANG_FLAG_0 directly.(SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.(BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.(SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):Delete.(BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.(SET_BINFO_NEW_VTABLE_MARKED): Adjust.(SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):Delete.(BINFO_DEPENDENT_BASE_P): New.(dfs_walk, dfs_walk_real): Queue function takes derived binfo andindex.(markedp, unmarkedp): Adjust.(dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,find_vbase_instance, binfo_for_vbase): Delete.(copied_binfo, original_binfo): Declare.(finish_base_specifier): Add virtual_p arg.(unshare_base_binfos): Delete.(copy_base_binfos): Declare.(reverse_path): Delete.* cp/decl.c (xref_basetypes): Access and virtuality passeddifferently. Don't copy direct base binfos here. Callcopy_base_binfos.* cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.(initialize_vtbl_ptrs): Adjust.(expand_member_init): Adjust.* cp/parser.c (cp_parser_base_specifier): Adjust.* cp/pt.c (instantiate_class_template): Adjust.(get_template_base_recursive): Adjust.* cp/rtti.c (get_pseudo_ti_init): Adjust.(get_pseudo_ti_desc): Adjust.* cp/tree.c (unshare_base_binfos): Rename to ...(copy_base_binfos): ... here, reimplement.(make_binfo): Set BINFO_DEPENDENT_BASE_P.(reverse_path): Remove.* cp/typeck.c (get_delta_difference): Adjust error messages.* cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.* cp/search.c (lookup_base_r): Adjust.(dynamic_cast_base_recurse): Adjust.(canonical_binfo): Remove.(dfs_canonical_queue): Remove.(dfs_assert_unmarked_p): Remove.(assert_canonical_unmarked): Remove.(shared_marked_p, shared_unmarked_p): Remove.(BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.(dfs_access_in_type): Adjust.(access_in_type): Adjust.(dfs_accessible_queue_p): Adjust.(dfs_accessible_p): Adjust.(is_subobject_of_p_1, is_subobject_of_p): Remove.(struct lookup_field_info): Remove from_dep_base_p field.(lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.(lookup_field_r): Remove dependent base code.(lookup_member): Likewise.(dfs_walk, dfs_walk_real): Add access arg to queue fn.(dfs_unmarked_real_bases_queue_p): Remove.(dfs_marked_real_bases_queue_p): Remove.(dfs_skip_vbases): Remove.(dfs_get_pure_virtuals): Adjust.(markedp, unmarkedp): Adjust.(marked_vtable_pathp, unmarked_vtable_pathp): Remove.(marked_pushdecls_p, unmarked_pushdecls_p): Adjust.(dfs_unmark): Adjust.(dfs_get_vbase_types):Remove.(dfs_build_inheritance_graph_order): Remove.(get_vbase_types): Remove(dfs_find_vbase_instance): Remove.(find_vbase_instance): Remove.(dfs_debug_unmarkedp): Adjust.(dependent_base_p): Remove.(dfs_push_type_decls): Adjust.(dfs_push_decls): Adjust.(dfs_no_overlap_yet): Adjust.(copied_binfo): New function.(original_binfo): New function.(binfo_for_vbase): Remove.2003-02-18 Zack Weinberg <zack@codesourcery.com>* cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.(bfs_walk): Rewritten using circular queue of BINFO_BASETYPESvectors, for speed.2003-02-18 Mark Mitchell <mark@codesourcery.com>PR c++/9704* class.c (layout_class_type): In the 3.2 ABI, take into accounttrailing bit fields when computing CLASSTYPE_SIZE_UNIT.2003-02-18 Matt Austern <austern@apple.com>* cp/cp-lang.c: Change lang hooks so that final_write_globals doesnothing for C++.* cp/decl.c (wrapup_globals_for_namespace): Remove specialhandling of global namespace.2003-02-18 Geoffrey Keating <geoffk@apple.com>* cp-tree.h (rid_to_yy): Delete.(C_RID_YYCODE): Delete.(finish_file): Delete redundant declaration.2003-02-18 Jason Merrill <jason@redhat.com>PR c++/9623* decl.c (reshape_init): Don't mess with initializer labels.PR c++/9485* parser.c (cp_parser_postfix_expression): Set idk properly forobject->scope::member.2003-02-18 Ben Elliston <bje@redhat.com>PR other/7350* decl.c (duplicate_decls): Fix typo in comment.2003-02-17 Michael Elizabeth Chastain <mec@shout.net>PR debug/9717* class.c (build_base_field): Mark fields for base classes withDECL_IGNORED_P.2003-02-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9457* pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: SubstituteCONSTRUCTOR_ELTS only once.2003-02-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9459* error.c (dump_type_prefix): Handle TYPEOF_TYPE.(dump_type_suffix): Likewise.2003-02-14 Nathan Sidwell <nathan@codesourcery.com>* search.c: ANSIfy function declarations and definitions.* cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.* call.c (build_method_call, resolve_scoped_fn_name,build_java_interface_fn_ref): Adjust lookup_field, lookup_membercalls.* class.c (handle_using_decl): Likewise.* decl.c (make_typename_type, make_unmound_class_template,start_decl, compute_array_index_type): Likewise.* decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.* init.c (expand_member_init, build_member_call): Likewise.* pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,resolve_typename_type): Likewise.* typeck.c (lookup_destructor, finish_class_member_access_exprmbuild_prememfunc_access_expr): Likewise.2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl2.c: Include "timevar.h".(namespace_ancestor): Time name lookup.(add_using_namespace): Likewise.(lookup_using_namespace): Likewise.(qualified_lookup_using_namespace): Likewise.(decl_namespace): Likewise.(lookup_arg_dependent): Likewise.* lex.c (do_identifier): Likewise.(do_scoped_id): Likewise.* pt.c (lookup_template_class): Likewise.2003-02-14 Andrew Pinski <pinskia@physics.uc.edu>* decl.c: (define_label): Fix warning for return 0 instead of NULL.2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c: Include "timevar.h".(poplevel): Time name lookup.(find_binding): Likewise.(push_namespace): Likewise.(pop_nested_namespace): Likewise.(store_bindings): Likewise.(maybe_push_to_top_level): Likewise.(pop_from_top_level): Likewise.(push_local_name): Likewise.(pushtag): Likewise.(pushdecl): Likewise.(pushdecl_with_scope): Likewise.(pushdecl_namespace_level): Likewise.(pushdecl_top_level): Likewise.(pushdecl_class_level): Likewise.(push_class_level_binding): Likewise.(push_using_decl): Likewise.(push_using_directive): Likewise.(push_overloaded_decl): Likewise.(lookup_label): Likewise.(define_label): Likewise.(lookup_tag): Likewise.(lookup_tag_reverse): Likewise.(lookup_namespace_name): Likewise.(select_decl): Likewise.(unqualified_namespace_lookup): Likewise.(lookup_name_real): Likewise.(lookup_name_current_level): Likewise.(lookup_type_current_level): Likewise.(maybe_inject_for_scope_var): Likewise.(xref_tag): Likewise.* Make-lang.in (cp/decl.o): Add dependency on timevar.h2003-02-12 Phil Edwards <pme@gcc.gnu.org>* decl.c (build_enumerator): Remove unneeded test.2003-02-09 Dan Nicolaescu <dann@ics.uci.edu>* cp-tree.h (struct lang_type_header): Make all fields unsignedchar.2003-02-03 Mark Mitchell <mark@codesourcery.com>PR c++/7129* call.c (z_candidate): Add args.(convert_class_to_reference): Set it.(implicit_conversion): Tidy.(add_candidate): Add args parameter.(add_function_candidate): Adjust call to add_candidate.(add_conv_candidate): Likewise.(build_builtin_candidate): Likewise.(build_user_type_conversion_1): Eliminate wasteful tree_consusage.(build_new_function_call): Likewise.(build_object_call): Likewise.(add_candidates): New function.(build_new_op): Use it.(covert_like_real): Adjust call to build_over_call.(build_over_call): Remove args parameter.* operators.def: Add <?= and >?=.2003-02-01 Richard Sandiford <rsandifo@redhat.com>* typeck.c (build_indirect_ref): Don't check flag_volatile.2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/8849* pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.2003-01-31 Nathan Sidwell <nathan@codesourcery.com>* cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.(BINFO_LANG_ELTS): New #define.* tree.c (make_binfo): Use BINFO_LANG_ELTS.2003-01-30 Geoffrey Keating <geoffk@apple.com>* cp/Make-lang.in: Remove -Wno-error from cp/decl.o.2003-01-30 Mark Mitchell <mark@codesourcery.com>* class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLYfor class types.* cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bitrather than TYPE_LANG_FLAG_0.(TYPE_BUILT_IN): Remove.(TYPE_DEPENDENT_P): New macro.(TYPE_DEPENDENT_P_VALID): Likewise.(lang_type_class): Add fields_readonly.* decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.* pt.c (dependent_type_p_r): New function, split out from ...(dependent_type_p): ... here. Memoize results.* search.c (dependent_base_p): Use dependent_type_p, notuses_template_parms.* typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLYfor class types.2003-01-29 Mark Mitchell <mark@codesourcery.com>* call.c (build_field_call): Use build_new_op, not build_opfncall.(prep_operand): New function.(build_new_op): Use it. Remove dead code.* class.c (pushclass): Change "modify" parameter type from int tobool.(currently_open_class): Use same_type_p, not pointer equality.(push_nested_class): Adjust calls to pushclass, remove modifyparameter.* cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.(pushclass): Change prototype.(push_nested_class): Likewise.(grokoptypename): Remove.(build_opfncall): Remove.(value_dependent_expression_p): Declare.(resolve_typename_type): Likewise.(resolve_typename_type_in_current_instantiation): Likewise.(enter_scope_of): Remove.(tsubst): Remove.(tsubst_expr): Likewise.(tsubst_copy): Likewise.(tsubst_copy_and_build): Likewise.* decl.c (warn_about_implicit_typename_lookup): Remove.(finish_case_label): Return error_mark_node for erroneous labels.(start_decl): Adjust calls to push_nested_class.(grokfndecl): Call push_scope/pop_scope around call toduplicate_decls.(grokdeclarator): Do not call tsubst.(start_function): Adjust calls to push_nested_class.* decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.(check_classfn): Use push_scope/pop_scope around type comparisions.(grokoptypename): Remove.(push_sscope): Adjust call to push_nested_class.* error.c (dump_type): Show cv-qualification of typename types.* init.c (build_member_call): Use build_new_op, notbuild_opfncall.* method.c (build_opfncall): Remove.* parser.c (cp_parser): Add allow_non_constant_expression_p andnon_constant_expression_p.(cp_parser_constant_expression): Adjust prototype.(cp_parser_resolve_typename_type): Remove.(cp_parser_non_constant_expression): New function.(cp_parser_non_constant_id_expression): Likewise.(cp_parser_new): Set allow_non_constant_expression_p andnon_constant_expression_p.(cp_parser_primary_expression): Reject `this' and `va_arg' inconstant-expressions. Note that dependent names aren't reallyconstant.(cp_parser_postfix_expression): Reject conversions to non-integraltypes in constant-expressions. Neither are increments ordecrements.(cp_parser_unary_expression): Reject increments and decrements inconstant-expressions.(cp_parser_direct_new_declarator): Adjust call tocp_parser_constant_expression.(cp_parser_cast_expression): Reject conversions to non-integraltypes in constant-expressions.(cp_parser_assignment_expression): Rejects assignments inconstant-expressions.(cp_parser_expression): Reject commas in constant-expressions.(cp_parser_labeled_statement): Adjust call tocp_parser_constant_expression.(cp_parser_direct_declarator): Simplify array bounds, even intemplates, when they are non-dependent. Useresolve_typename_type, not cp_parser_resolve_typename_type.(cp_parser_class_head): Use resolve_typename_type, notcp_parser_resolve_typename_type.(cp_parser_member_declaration): Adjust call tocp_parser_constant_expression.(cp_parser_constant_initializer): Likewise.(cp_parser_constructor_declarator): Use resolve_typename_type, notcp_parser_resolve_typename_type.(cp_parser_late_parsing_default_args): Adjust call topush_nested_class.* pt.c (tsubst): Give it internal linkage.(tsubst_expr): Likewise.(tsubst_copy): Likewise.(tsubst_copy_and_build): Likewise.(push_access_scope_real): Likewise.(tsubst_friend_class): Likewise.(instantiate_class_template): Adjust call to pushclass.(value_dependent_expression_p): Give it external linkage.Robustify.(resolve_typename_type): New function.* semantics.c (finish_call_expr): Use build_new_op, notbuild_opfncall.(begin_constructor_declarator): Remove.(begin_class_definition): Adjust call to pushclass.(enter_scope_of): Remove.* typeck.c (comptypes): Resolve typename types as appropriate.(build_x_indirect_ref): Use build_new_op, not build_opfncall.(build_x_compound_expr): Likewise.(build_modify_expr): Likewise.(build_x_modify_expr): Likewise.* typeck2.c (build_x_arrow): Likewise.2003-01-29 Fariborz Jahanian <fjahanian@apple.com>* pt.c (last_pending_template) Declare GTY().2003-01-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/8591* parser.c (cp_parser_elaborated_type_specifier): ConvertTEMPLATE_DECL to TYPE_DECL only when processing template friends.(cp_parser_maybe_treat_template_as_class): Remove redundant tests.2003-01-28 Nathan Sidwell <nathan@codesourcery.com>PR c++/9437* pt.c (unify): Don't unify '*T' with 'U C::*'.PR c++/3902* parser.c (cp_parser_decl_specifier_seq): Cannot have constructorinside a declarator.2003-01-27 Nathan Sidwell <nathan@codesourcery.com>* class.c (update_vtable_entry_for_fn): Add index parameter.Generate vcall thunk for covariant overriding from a virtualprimary base.(dfs_modify_vtables): Adjust.2003-01-25 Nathan Sidwell <nathan@codesourcery.com>PR c++/9403* parser.c (cp_parser_class_or_namespace_name): Reject duplicatetemplate keyword.(cp_parser_base_specifier): Look for and consume aTEMPLATE keyword. Replace switch with array index.PR c++/795* semantics.c (finish_non_static_data_member): Remember thefield's type even in a template.PR c++/9415* pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs arealready scoped.PR c++/8545* parser.c (cp_parser_cast_expression): Be more tentative.2003-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* cp-tree.h (flagged_type_tree_s): Remove.(check_for_new_type): Likewise.* typeck2.c (check_for_new_type): Likewise.2003-01-23 Nathanael Nerode <neroden@gcc.gnu.org>* dump.c: ANSIfy function declarations and definitions.* cp-tree.h, decl.h: Get rid of PARAMS. Again.2003-01-22 Mark Mitchell <mark@codesourcery.com>PR c++/9354* init.c (build_new): Set the type of the new-expression, evenwhen processing_templte_decl.PR c++/9216* parser.c (cp_parser_primary_expression): Improve error messagefor templates used in an expression context.PR c++/8696* parser.c (cp_parser_decl_specifier_seq): Commit to tentativeparse when encountering "typedef".2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>* class.c, parser.c: ANSIfy function definitions and declarations.2003-01-22 Mark Mitchell <mark@codesourcery.com>PR c++/9328* error.c (dump_decl): For an OVERLOAD, just print the name of thefunction; it doesn't make sense to try to print its type.* semantics.c (finish_typeof): Issue errors about invalid uses.PR c++/9298* parser.c (cp_parser_consume_semicolon_at_end_of_statement): Newfunction.(cp_parser_expression_statement): Use it.(cp_parser_explicit_instantiation): Likewise.* pt.c (do_decl_instantiation): Improve error handling logic.2003-01-22 Mark Mitchell <mark@codesourcery.com>PR c++/9384* parser.c (cp_parser_using_declaration): Issue error messagesabout name resolution failures here.PR c++/9388* class.c (currently_open_derived_class): Use dependent_type_p.* cp-tree.h (dependent_type_p): New function.(dependent_template_arg_p): Likewise.(dependent_template_p): Likewise.(type_dependent_expression_p): Likewise.* parser.c (cp_parser_dependent_type_p): Remove.(cp_parser_value_dependent_type_p): Likewise.(cp_parser_type_dependent_expression_p): Likewise.(cp_parser_dependent_template_arg_p): Likewise.(cp_parser_dependent_template_id_p): Likewise.(cp_parser_dependent_template_p): Likewise.(cp_parser_diagnose_invalid_type_name): Replacecp_parser_dependent_type_p with dependent_type_p, etc.(cp_parser_primary_expresion): Likewise.(cp_parser_nested_name_specifier_opt): Likewise.(cp_parser_postfix_expression): Likewise.(cp_parser_unary_expression): Likewise.(cp_parser_template_name): Likewise.(cp_parser_class_name): Likewise.(cp_parser_lookup_name): Likewise.* pt.c (dependent_type_p): New function.(value_dependent_expression_p): Likewise.(type_dependent_expression_p): Likewise.(dependent_template_arg_p): Likewise.(dependent_template_id_p): Likewise.(dependent_template_p): Likewise.PR c++/9285PR c++/9294* parser.c (cp_parser_simple_declaration): Return quickly whenencountering errors.2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>Make-lang.in (cp/decl.o-warn): Add -Wno-error.2003-01-17 Jason Merrill <jason@redhat.com>PR c++/9167, c++/9358* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.2003-01-17 Jason Merrill <jason@redhat.com>PR c++/9342* call.c (build_conditional_expr): Always do lvalue-rvalueconversion.2003-01-17 Mark Mitchell <mark@codesourcery.com>PR c++/9294* cp-tree.def (BASELINK): Make it class 'x', not class 'e'.* cp-tree.h (BASELINK_BINFO): Adjust.(BASELINK_FUNCTIONS): Likewise.(BASELINK_ACCESS_BINFO): Likewise.(tree_baselink): New structure.(cp_tree_node_structure_enum): Add TS_CP_BASELINK.(lang_tree_node): Add baselink.* decl.c (cp_tree_node_structure): Add BASELINK case.* search.c (build_baselink): Adjust.* tree.c (cp_walk_subtrees): Add BASELINK case. Remove BASELINK_Ptest from TREE_LIST case.PR c++/9272* parser.c (cp_parser_constructor_declarator_p): Do not assumethat a constructor cannot be declared outside of its own class.* parser.c (cp_parser_resolve_typename_type): If the scope cannotbe resolved, neither can the qualified name.* rtti.c (get_pseudo_ti_desc): Fix thinko.2003-01-16 Jason Merrill <jason@redhat.com>PR c++/8564* init.c (build_vec_init): Re-add maxindex parm.(perform_member_init, build_aggr_init): Pass it.(build_new_1): Pass it. Use an incomplete array type for full_type.* typeck.c (build_modify_expr): Pass it.* cp-tree.h: Adjust.2003-01-16 Jeffrey D. Oldham <oldham@codesourcery.com>* cp-tree.h (tsubst_copy_and_build): New declaration.* pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.(tsubst_expr): Use 'tsubst_copy_and_build'. Update initial comment.(tsubst_copy_and_build): New function.2003-01-16 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (lang_type_class): Remove is_partial_instantiation.(PARTIAL_INSTANTIATION_P): Remove.(IMPLICIT_TYPENAME_P): Likewise.(IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.(build_typename_type): Remove declaration.(parmlist_is_exprlist): Likewise.* decl.c (build_typename_type): Make it static, remove thirdparameter.(push_class_binding): Don't do implicit typename stuff.(make_typename_type): Likewise.(lookup_name_real): Likewise.(grokdeclarator): Don't try to convert declarations intoinitializations. Don't do implicit typename stuff.(parmlist_is_exprlist): Remove.(xref_basetypes): Simplify.* decl2.c (grokfield): Don't try to convert declarations intoinitializations.(build_anon_union_vars): Do this while processing templates, too.(finish_anon_union): Likewise.* error.c (dump_type): Remove implicit typename handling.* parser.c (cp_parser_diagnose_invalid_type_name): New method.(cp_parser_primary_expression): Correct handling of names notfound by unqualified name lookup in templates.(cp_parser_nested_name_specifier_opt): Avoid checking dependencyof types when possible.(cp_parser_simple_declaration): Complain intelligently about someinvalid declarations.(cp_parser_member_declaration): Likewise.(cp_parser_constructor_declarator_p): Don't check when we're in afunction scope.* pt.c (instantiate_class_template): RemovePARTIAL_INSTANTIATION_P gunk.* search.c (lookup_field_r): Don't build implicit typenames.(marked_pushdecls_p): Don't enter dependent base types.(unmarked_pushdecls_p): Likewise.* semantics.c (begin_class_definition): Remove implicit typenamestuff.2003-01-16 Nathan Sidwell <nathan@codesourcery.com>PR c++/9212* parser.c (cp_parser_direct_declarator): If accepting eitherabstract or named, the name must be an unqualified-id.2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* class.c (layout_virtual_bases): Avoid signed/unsigned warning.2003-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* decl2.c (check_classfn): Fix uninitialized warning.(build_anon_union_vars): Likewise.* pt.c (tsubst_copy): Likewise.2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>Further conform g++'s __vmi_class_type_info to the C++ ABIspecification.* rtti.c (dfs_class_hint_mark): Do not set hints not specified bythe specification.(class_hint_flags): Likewise.2003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* config-lang.in: Add semantics.c to gtfiles.* cp-tree.h (flagged_type_tree_s): Remove lookups field.(saved_scope): Likewise.(type_lookups): Remove.(deferred_access): New structure.(type_access_control): Remove.(save_type_access_control): Likewise.(reset_type_access_control): Likewise.(decl_type_access_control): Likewise.(push_deferring_access_checks): Declare.(resume_deferring_access_checks): Likewise.(stop_deferring_access_checks): Likewise.(pop_deferring_access_checks): Likewise.(get_deferred_access_checks): Likewise.(pop_to_parent_deferring_access_checks): Likewise.(perform_deferred_access_checks): Likewise.(perform_or_defer_access_check): Likewise.* decl.c (make_typename_type): Use perform_or_defer_access_check.(make_unbound_class_template): Likewise.(grokdeclarator): Don't call decl_type_access_control.* parser.c (cp_parser_context): Remove deferred_access_checksand deferring_access_checks_p fields.(cp_parser_context_new): Adjust.(cp_parser): Remove access_checks_lists.(cp_parser_defer_access_check): Remove.(cp_parser_start_deferring_access_checks): Remove.(cp_parser_stop_deferring_access_checks): Remove.(cp_parser_perform_deferred_access_checks): Remove.(cp_parser_nested_name_specifier_opt): Use new deferred accessfunctions.(cp_parser_simple_declaration): Likewise.(cp_parser_template_id): Likewise.(cp_parser_function_definition): Likewise.(cp_parser_class_specifier): Likewise.(cp_parser_lookup_name): Likewise.(cp_parser_single_declaration): Likewise.(cp_parser_pre_parsed_nested_name_specifier): Likewise.(cp_parser_parse_tentatively): Likewise.(cp_parser_parse_definitely): Likewise.(yyparse): Likewise.(cp_parser_init_declarator): Remove access_checks parameter.Use new deferred access functions.(cp_parser_function_definition_from_specifiers_and_declarator):Likewise.(cp_parser_class_head): Remove deferring_access_checks_p andsaved_access_checks parameters. Use new deferred access functions.(cp_parser_member_specification_opt): Don't callreset_type_access_control.* search.c (type_access_control): Remove.* semantics.c: Include "gt-cp-semantics.h".(deferred_type_access_control): Remove.(deferred_access_stack): New variable.(deferred_access_free_list): Likewise.(push_deferring_access_checks): New function.(resume_deferring_access_checks): Likewise.(stop_deferring_access_checks): Likewise.(pop_deferring_access_checks): Likewise.(get_deferred_access_checks): Likewise.(pop_to_parent_deferring_access_checks): Likewise.(perform_deferred_access_checks): New function, adapted fromcp_parser_perform_deferred_access_checks.(perform_or_defer_access_check): New function, adapted fromcp_parser_defer_access_check.(current_type_lookups): Remove.(deferred_type_access_control): Likewise.(decl_type_access_control): Likewise.(save_type_access_control): Likewise.(reset_type_access_control): Likewise.(begin_function_definition): Adjust.(begin_class_definiton): Likewise.2003-01-13 Jason Merrill <jason@redhat.com>PR c++/8748* class.c (build_base_path): Take the address before calling save_expr.* call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG ifall the ambiguous conversions are bad.* class.c (maybe_warn_about_overly_private_class): Don't stopsearching when we find a nonprivate method.* typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.2003-01-12 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (get_arglist_len_in_bytes): Remove.PR c++/9264* parser.c (cp_parser_elaborated_type_specifier): Handle erroneoustypeame types more robustly.2003-01-11 Phil Edwards <pme@gcc.gnu.org>* parser.c: Fix comment typos.2003-01-10 Mark Mitchell <mark@codesourcery.com>PR c++/9099* parser.c (cp_parser_scope_through_which_access_occurs): Handlean object_type which is not a class type.2003-01-10 Geoffrey Keating <geoffk@apple.com>* parser.c (cp_parser_late_parsing_for_member): Don't cast to void.(cp_parser_late_parsing_default_args): Likewise.2003-01-10 Nathanael Nerode <neroden@gcc.gnu.org>* cfns.gperf: ANSIfy function declarations.* cfns.h: Regenerate.* cp-tree.h: ANSIfy function declarations.2003-01-10 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (reparse_absdcl_as_expr): Remove.(reparse_absdcl_as_casts): Likewise.(reparse_decl_as_expr): Likewise.(finish_decl_parsing): Likewise.* decl2.c (reparse_absdcl_as_expr): Remove.(reparse_absdcl_as_casts): Likewise.(repase_decl_as_expr): Likewise.(finish_decl_parsing): Likewise.PR c++/9128PR c++/9153PR c++/9171* parser.c (cp_parser_pre_parsed_nested_name_specifier): Newfunction.(cp_parser_nested_name_specifier_opt): Correct thecheck_dependency_p false.(cp_parser_postfix_expression): Fix formatting.(cp_parser_decl_specifier_seq): Avoid looking for constructordeclarators when possible.(cp_parser_template_id): Avoid performing name-lookup whenpossible.(cp_parser_class_head): Do not count specializations when countinglevels of templates.(cp_parser_constructor_declarator_p): Return immediately ifthere's no chance that the tokens form a constructor declarator.* rtti.c (throw_bad_typeid): Add comment. Do not return anexpression with reference type.(get_tinfo_decl_dynamic): Do not return an expression withreference type.(build_typeid): Add comment. Do not return an expression withreference type.* typeck.c (build_class_member_access_expr): Improve handling ofconditionals and comma-expressions as objects.2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>* cfns.gperf: ANSIfy function declarations.* cfns.h: Regenerate.* cp-tree.h: ANSIfy function declarations.* parser.c: ANSIfy function declarations & definitions.* decl.c (bad_specifiers): Fix parameter order error I introduced.2003-01-09 Geoffrey Keating <geoffk@apple.com>Merge from pch-branch:2003-01-09 Geoffrey Keating <geoffk@apple.com>Merge to tag pch-merge-20030102:* semantics.c (finish_translation_unit): Don't call finish_file.* parser.c: Don't include ggc.h.(cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,read first token here. Don't allow PCH files after the firsttoken is read.(cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.(cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.(cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.(cp_parser_late_parsing_for_member): Don't duplicate call tocp_lexer_set_source_position_from_token.(cp_parser_late_parsing_default_args): Likewise.(yyparse): Call finish_file after clearing the_parser.2002-12-11 Geoffrey Keating <geoffk@apple.com>* Make-lang.in: Remove $(GGC_H) from all dependencies.(CXX_TREE_H): Add $(GGC_H).* class.c: Don't include ggc.h.(field_decl_cmp): Make parameters be 'const void *' to match qsort.(method_name_cmp): Likewise.(resort_data): New variable.(resort_field_decl_cmp): New.(resort_method_name_cmp): New.(resort_sorted_fields): New.(resort_type_method_vec): New.(finish_struct_methods): Delete cast.(finish_struct_1): Delete cast.* cp-tree.h: Include ggc.h.(struct lang_type_class): Add reorder attribute to field `methods'.(union lang_decl_u3): Add reorder attribute to field `sorted_fields'.(resort_sorted_fields): New prototype.(resort_type_method_vec): New prototype.* call.c: Don't include ggc.h.* decl.c: Likewise.* decl2.c: Likewise.* init.c: Likewise.* lex.c: Likewise.* method.c: Likewise.* optimize.c: Likewise.* parse.y: Likewise.* pt.c: Likewise.* repo.c: Likewise.* search.c: Likewise.* semantics.c: Likewise.* spew.c: Likewise.* tree.c: Likewise.* lang-specs.h: Remove comment.2002-12-03 Geoffrey Keating <geoffk@apple.com>* cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.(operator_name_info): Mark to be saved for PCH, specify size.(assignment_operator_name_info): Likewise.2002-11-19 Geoffrey Keating <geoffk@apple.com>* decl.c (anon_cnt): Mark to be saved for PCH.2002-10-25 Geoffrey Keating <geoffk@apple.com>* lex.c (init_reswords): Delete now-untrue comment.Allocate ridpointers using GGC.2002-10-04 Geoffrey Keating <geoffk@apple.com>* cp-tree.h (union lang_decl_u2): Add tags to all fields.* g++spec.c (lang_specific_driver): Don't include standardlibraries in `added'.2002-08-27 Geoffrey Keating <geoffk@redhat.com>* decl2.c (finish_file): Call c_common_write_pch.* Make-lang.in (CXX_C_OBJS): Add c-pch.o.2002-08-17 Geoffrey Keating <geoffk@redhat.com>* g++spec.c (lang_specific_driver): Treat .h files as C++ headerfiles when using g++.* lang-specs.h: Handle compiling C++ header files.2003-01-09 Jakub Jelinek <jakub@redhat.com>* decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.2003-01-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>* pt.c (push_access_scope_real): Call push_to_top_level forfunction in namespace scope.(pop_access_scope): Call pop_from_top_level for function innamespace scope.2003-01-09 Jakub Jelinek <jakub@redhat.com>* decl.c (start_decl): Don't set DECL_COMMON for __thread variables.2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>* Make-lang.in (c++.install-common, c++.install-man,c++.uninstall): Prepend $(DESTDIR) to destination paths inall (un)installation commands.(c++.install-common): Rewrite $(LN) commands to supportDESTDIR with "ln" as well as with "ln -s".2003-01-08 Jason Merrill <jason@redhat.com>* parser.c (cp_parser_primary_expression): See through explicitlyscoped ALIAS_DECLs, too.2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>* decl.c: Remove some #if 0 code.* decl.c: ANSIfy function declarations.2003-01-07 Mark Mitchell <mark@codesourcery.com>* parser.c (cp_parser_asm_definition): Correct handling of omittedoperands.2003-01-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>PR c++/9030* decl.c (make_typename_type): Check access only when tf_error.(make_unbound_class_template): Likewise.* pt.c (saved_access_scope): New variable.(push_access_scope_real): New function.(push_access_scope): Likewise.(pop_access_scope): Likewise.(tsubst_default_argument): Use them.(instantiate_template): Likewise.(regenerate_decl_from_template): Likewise.(instantiate_decl): Likewise.(get_mostly_instantiated_function_type): Likewise.2003-01-07 Nathanael Nerode <neroden@gcc.gnu.org>* tree.c: Delete bogus #if 0 code.2003-01-07 Andreas Schwab <schwab@suse.de>* class.c (layout_class_type): Don't usePCC_BITFIELD_TYPE_MATTERS if not defined.2003-01-06 Mark Mitchell <mark@codesourcery.com>PR c++/9165* decl2.c (build_cleanup): Mark the object as used.* pt.c (retrieve_local_specialization): Revert 2003-01-05 change.(hash_local_specialization): New function.(register_local_specialization): Revert 2003-01-05 change.(instantiate_decl): Use hash_local_specialization when creatingthe local_specializations table.* decl2.c (mark_used): Do not synthesize thunks.* class.c (layout_class_type): Correct handling of unnamedbitfields wider than their types.PR c++/9189* parser.c (cp_parser): Remove default_arg_types. Updatedocumentation for unparsed_functions_queues.(cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as theparameter.(cp_parser_new): Don't set parser->default_arg_types.(cp_parser_function_definition): Adjust usage ofunparsed_funtions_queues.(cp_parser_class_specifier): Don't mess withparser->default_arg_types. Handle default argument processing ina separate phase from function body processing.(cp_parser_template_declaration_after_export): Adjust usage ofunparsed_functions_queues.(cp_parser_late_parsing_for_member): Do not handle defaultarguments.2003-01-06 Nathan Sidwell <nathan@codesourcery.com>PR c++/9109* parser.c (cp_parser_declarator_kind): New enum.(cp_parser_declarator): Adjust.(cp_parser_direct_declarator): Adjust. Allow for either named orabstract declarator. Prefer abstract, if possible. Allowparenthesized function name.(cp_parser_condition): Adjust cp_parser_declarator call.(cp_parser_explicit_instantiation): Likewise.(cp_parser_init_declarator): Likewise.(cp_parser_type_id): Likewise.(cp_parser_function_definition): Likewise.(cp_parser_member_declaration): Likewise.(cp_parser_parameter_declaration): Use cp_parser_declarator to dothe tentative parsing.(cp_parser_exception_declaration): Likewise.2003-01-05 Mark Mitchell <mark@codesourcery.com>* parser.c (cp_parser_template_parameter): Adjust call tocp_parser_parameter_declaration.(cp_parser_parameter_declaration_list): Likewise.(cp_parser_parameter_declaration): Replacegreater_than_is_operator_p with template_parm_p parameter. Do notcache tokens for template default arguments.* pt.c (retrieve_local_specialization): Use htab_find, nothtab_find_with_hash.(register_local_specialization): Use htab_find_slot, nothtab_find_slot_with_hash.(instantiate_decl): Pass a hash function to htab_create.2003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* parser.c (cp_parser_binary_expression,cp_parser_multiplicative_expression,cp_parser_additive_expression, cp_parser_shift_expression,cp_parser_relational_expression, cp_parser_equality_expression,cp_parser_and_expression, cp_parser_exclusive_or_expression,cp_parser_inclusive_or_expression,cp_parser_logical_and_expression, cp_parser_logical_or_expression,cp_parser_binary_expression): Const-ify.2003-01-04 Mark Mitchell <mark@codesourcery.com>* method.c (use_thunk): Disable access control while building thebody of the thunk.2003-01-03 Nathanael Nerode <neroden@gcc.gnu.org>* cvt.c, decl.c, decl2.c: This is the C++ front end, not the Cfront end.2003-01-03 Matt Austern <austern@apple.com>* cp-tree.h (struct lang_type_class): add field for key method(cp_global_trees): rename dynamic_classes to keyed_classes(key_method): add definition* class.c (finish_struct_1): compute class's key method, and addthe class to keyed_classes list if there is no key method.* decl.c (finish_function): add class to keyed_classes list if wesee a definition of the class's key method.* pt.c (instantiate_class_template): add template specializationof a dynamic class to keyed_classes list.* decl2.c (key_method): remove(finish_file): iterate only through keyed_classes list whendeciding whether to emit vtables, remove class from its list afterwe do the emission.2003-01-02 Jason Merrill <jason@redhat.com>* call.c (build_conditional_expr): Stabilize lvalues properly.* cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.* tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.Don't allow CALL_EXPR or VA_ARG_EXPR, either.* call.c (convert_like_real): Call decl_constant_value for anIDENTITY_CONV even if there are no more conversions.* cvt.c (build_up_reference): Don't push unnamed temps.* decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.* dump.c (cp_dump_tree): Don't try to dump class-specific fieldsfor a backend struct.* except.c (wrap_cleanups_r, build_throw): MakeMUST_NOT_THROW_EXPRs void.* init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.* init.c (build_vec_delete_1): Pre-evaluate the base address.* init.c (get_temp_regvar): Simplify logic.* tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks ifour replacement is a decl.* decl.c (cp_make_fname_decl): Push the decls inside theoutermost scope.2003-01-03 Nathan Sidwell <nathan@codesourcery.com>PR c++/45, c++/3784* tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must bethe same too.2003-01-03 Graham Stott <graham.stott@btinternet.com>* parser.c (struct cp_parser): Add access_checks_lists field(cp_parser_simple_declaration): Use.(cp_parser_init_declarator): Likewise.2003-01-02 Mark Mitchell <mark@codesourcery.com>* parser.c (cp_parser_declaration): Accept the __extension__keyword before the declaration.PR c++/2843* parser.c (cp_parser_parameter_declaration): Allow attributes toappear after the declarator.* call.c (build_new_method_call): Fix typo in message formatstring.2003-01-02 Mark Mitchell <mark@codesourcery.com>* parser.c (cp_lexer_next_token_is): Declare it inline.(cp_lexer_set_source_position_from_token): Likewise.(cp_lexer_debugging_p): Likewise.(cp_parser_parsing_tentatively): Likewise.(cp_parser_nested_name_specifier_opt): Reduce the number of callsto the cp_lexer_peek_token.* parser.c (cp_parser_sizeof_operand): Do not evaluate theexpression.2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>* cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,cp/repo.c: Fix copyright years.2003-01-01 Neil Booth <neil@daikokuya.co.uk>* lex.c: Remove superfluous include of cpplib.h.(CONSTRAINT): Define without conditions.(init_cp_pragma): Use c_register_pragma.Copyright (C) 2003 Free Software Foundation, Inc.Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.
Go to most recent revision | Compare with Previous | Blame | View Log
