2004-07-16 10:07:08 +02:00
|
|
|
2004-07-16 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2004-07-16 11:42:22 +02:00
|
|
|
* class.c (finish_struct_bits): Use for loop.
|
|
|
|
(propagate_binfo_offsets): Do primary binfo outside of loop.
|
|
|
|
|
2004-07-16 10:22:12 +02:00
|
|
|
PR c++/16583
|
|
|
|
* dump.c (cp_dump_tree): Don't dump the bases if there's no
|
|
|
|
binfo.
|
|
|
|
|
2004-07-16 10:07:08 +02:00
|
|
|
* pt.c (tsubst) <TREE_BINFO case>: We should never get here.
|
|
|
|
|
2004-07-16 03:15:43 +02:00
|
|
|
2004-07-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (lang_type_class): Remove has_real_assign_ref and
|
|
|
|
has_abstract_assign_ref. Make methods a VEC(tree) *.
|
|
|
|
(TYPE_HAS_CONST_ASSIGN_REF): Add documentation.
|
|
|
|
(CLASSTYPE_CONSTRUCTORS): Adjust for changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(CLASSTYPE_DESTRUCTORS): Likewise.
|
|
|
|
(TYPE_HAS_REAL_ASSIGN_REF): Remove.
|
|
|
|
(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
|
|
|
|
(add_method): Change prototoype.
|
|
|
|
* class.c (add_method): Remove error_p parameter. Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(handle_using_decl): Adjust call to add_method.
|
|
|
|
(maybe_warn_about_overly_private_class): Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(resort_type_method_vec): Likewise.
|
|
|
|
(finish_struct_methods): Likewise.
|
|
|
|
(check_for_override): Likewise.
|
|
|
|
(warn_hidden): Likewise.
|
|
|
|
(add_implicitly_declared_members): Defer creation of assignment
|
|
|
|
operators. Adjust call to add_method.
|
|
|
|
(clone_function_decl): Adjust call to add_method.
|
|
|
|
(check_bases_and_members): Don't set TYPE_HAS_REAL_ASSIGN_REF.
|
|
|
|
(finish_struct_1): Use CLASSTYPE_DESTRUCTORS.
|
|
|
|
* decl.c (grok_special_member_properties): Don't set
|
|
|
|
TYPE_HAS_ABSTRACT_ASSIGN_REF.
|
|
|
|
* decl2.c (check_classfn): Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
* method.c (locate_dtor): Use CLASSTYPE_DESTRUCTORS.
|
|
|
|
(locate_ctor): Use CLASSTYPE_CONSTRUCTORS.
|
|
|
|
(locate_copy): Adjust for changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(implicitly_declare_fn): Set DECL_SOURCE_LOCATION. Do not call
|
|
|
|
cp_finish_decl.
|
|
|
|
* pt.c (check_explicit_specialization): Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(instantiate_class_template): Do not set
|
|
|
|
TYPE_HAS_ABSTRACT_ASSIGN_REF.
|
|
|
|
* ptree.c (cxx_print_type): Don't try to print
|
|
|
|
CLASSTYPE_METHOD_VEC.
|
|
|
|
* rtti.c (emit_support_tinfos): Use CLASSTYPE_DESTRUCTORS.
|
|
|
|
* search.c (lookup_field_r): Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(lookup_fnfields): Likewise.
|
|
|
|
(lookup_conversion_operator): Likewise.
|
|
|
|
(lookup_fnfields_1): Likewise. Create assignment operators
|
|
|
|
lazily.
|
|
|
|
(look_for_overrides_here): Adjust for
|
|
|
|
changes to CLASSTYPE_METHOD_VEC.
|
|
|
|
(add_conversions): Likewise.
|
|
|
|
* semantics.c (finish_member_declaration): Adjust call to add_method.
|
|
|
|
|
2004-07-16 19:11:06 +02:00
|
|
|
2004-07-15 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* cp-lang.c (cxx_types_compatible_p): To the middle-end,
|
|
|
|
references and pointers are compatible.
|
|
|
|
|
2004-07-15 18:15:52 +02:00
|
|
|
2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (xref_basetypes): Refactor.
|
|
|
|
* tree.c (copy_base_binfos): Replace with ...
|
|
|
|
(copy_binfo): ... this. Deep copy the given binfo, (not the just
|
|
|
|
bases of the given base).
|
|
|
|
* cp-tree.h (copy_base_binfo): Remove.
|
|
|
|
(copy_binfo): Declare.
|
|
|
|
|
2004-07-15 18:02:07 +02:00
|
|
|
2004-07-15 Mark Mitchell <mark@codesourcery.com>
|
2004-07-16 03:15:43 +02:00
|
|
|
|
2004-07-15 18:02:07 +02:00
|
|
|
* name-lookup.c (set_inherited_value_binding_p): Add class_type
|
|
|
|
parameter.
|
|
|
|
(get_class_binding): Adjust.
|
|
|
|
(push_class_level_binding): Don't use set_inherited_value_binding_p.
|
|
|
|
|
2004-07-15 10:33:27 +02:00
|
|
|
2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2004-07-15 23:50:51 +02:00
|
|
|
* class.c (finish_struct_bits): Don't set TYPE_HAS_CONVERSION here.
|
2004-07-15 17:06:26 +02:00
|
|
|
* decl.c (xref_basetypes): Set it here.
|
|
|
|
|
2004-07-15 10:33:27 +02:00
|
|
|
* class.c (check_bases): Don't set CLASSTYPE_NON_AGGREGATE here.
|
|
|
|
Don't check for incomplete base.
|
|
|
|
(get_vfield_name): Simplify while loop.
|
|
|
|
* decl.c (xref_basetypes): Set CLASSTYPE_NON_AGGREGATE here.
|
|
|
|
|
2004-07-14 17:34:30 +02:00
|
|
|
2004-07-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-07-15 05:10:26 +02:00
|
|
|
* lex.c (cxx_make_type): Remove call to get_pointer_type.
|
|
|
|
|
2004-07-14 17:34:30 +02:00
|
|
|
* cp-tree.h (IDENTIFIER_VALUE): Remove.
|
|
|
|
(BINFO_PUSHDECLS_MARKED): Likewise.
|
|
|
|
(maybe_inject_for_scope_var): Likewise.
|
|
|
|
(push_class_decls): Likewise.
|
|
|
|
* name-lookup.h (push_class_binding): Remove.
|
|
|
|
(innermost_non_namespace_value): New function.
|
|
|
|
(outer_binding): Likewise.
|
|
|
|
* class.c (add_method): Push bindings before adding to
|
|
|
|
TYPE_METHODS.
|
|
|
|
(restore_class_cache): Do not restore class_shadowed.
|
|
|
|
(pushclass): Do not add USING_DECLs. Do not call
|
|
|
|
push_class_decls.
|
|
|
|
* config-lang.in (gtfiles): Remove $(srcdir)/cp/search.c.
|
|
|
|
* decl.c (pushdecl): Use outer_binding.
|
|
|
|
(poplevel): Set the scope for an out-of-scope for-loop declaration
|
|
|
|
appropriately.
|
|
|
|
(cp_finish_decl): Don't call maybe_inject_for_scope_var.
|
|
|
|
* name-lookup.c (new_class_binding): New function.
|
|
|
|
(push_binding): Use it.
|
|
|
|
(pushdecl): Use innermost_non_namespace_value.
|
|
|
|
(maybe_inject_for_scope_var): Remove.
|
|
|
|
(push_class_binding): Remove.
|
|
|
|
(set_inherited_value_binding_p): New function.
|
|
|
|
(get_class_binding): New function.
|
|
|
|
(push_class_level_binding): Assert that the current_class_type is
|
|
|
|
being defined.
|
|
|
|
(outer_binding): New function.
|
|
|
|
(innermost_non_namespace_value): Likewise.
|
|
|
|
(lookup_name_real): Use outer_binding.
|
|
|
|
(lookup_name_current_level): Ignore out-of-scope variables.
|
|
|
|
* pt.c (check_template_shadow): Use innermost_non_namespace_value.
|
|
|
|
(lookup_template_class): Likewise.
|
|
|
|
* search.c (dfs_push_type_decls): Remove.
|
|
|
|
(dfs_push_decls): Likewise.
|
|
|
|
(setup_class_bindings): Likewise.
|
|
|
|
(lookup_field_1): Handle USING_DECLs from dependent scopes.
|
|
|
|
(marked_pushdecls_p): Remove.
|
|
|
|
(unmarked_pushdecls_p): Remove.
|
|
|
|
(marked_identifiers): Remove.
|
|
|
|
(setup_class_bindings): Remove.
|
|
|
|
(dfs_push_type_decls): Remove.
|
|
|
|
(dfs_push_decls): Remove.
|
|
|
|
(push_class_decls): Remove.
|
|
|
|
|
2004-07-13 18:22:06 +02:00
|
|
|
2004-07-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-07-13 23:11:52 +02:00
|
|
|
PR c++/16518
|
|
|
|
PR c++/16337
|
|
|
|
* decl.c (grokvardecl): Make declspecs parameter const.
|
|
|
|
(grokdeclarator): Likewise. Adjust accordingly.
|
|
|
|
* decl.h (grokdeclarator): Adjust declaration.
|
|
|
|
* parser.c (cp_parser_init_declarator): Do not clear
|
|
|
|
decl_specifiers->attributes.
|
|
|
|
|
2004-07-13 18:22:06 +02:00
|
|
|
* cp-tree.h (lang_identifier): Remove class_value.
|
|
|
|
(IDENTIFIER_CLASS_VALUE): Remove.
|
|
|
|
(pop_class_decls): Likewise.
|
|
|
|
(init_search_processing): Likewise.
|
|
|
|
* class.c (handle_using_decl): Use lookup_member, not
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
(restore_class_cache): New function, split out from ...
|
|
|
|
(pushclass): ... here. Do not call clear_identifier_class_values.
|
|
|
|
(invalidate_class_lookup_cache): Do not clear
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
(popclass): Do not call pop_class_decls.
|
|
|
|
(maybe_note_name_used_in_class): Do not save names looked up after
|
|
|
|
the class is complete. Use lookup_member, not
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
* config-lang.in (gtfiles): Add $(srcdir)/cp/search.c.
|
|
|
|
* decl.c (cxx_init_decl_processing): Do not call
|
|
|
|
init_search_processing.
|
|
|
|
* method.c (do_build_copy_constructor): Remove unnecessary code.
|
|
|
|
(do_build_assign_ref): Likewise.
|
|
|
|
* name-lookup.c (pushdecl): Use lookup_member, not
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
(set_identifier_type_value_with_scope): Set TREE_TYPE on the
|
|
|
|
type_shadowed list.
|
|
|
|
(poplevel_class): Do not restore IDENTIFIER_CLASS_VALUE.
|
|
|
|
(push_class_binding): Do not set it.
|
|
|
|
(clear_identifier_class_values): Remove.
|
|
|
|
(push_class_level_binding): Do not set IDENTIFIER_CLASS_VALUE.
|
|
|
|
(store_binding): Do not save it.
|
|
|
|
(pop_from_top_level): Do not restore it.
|
|
|
|
* name-lookup.h (cxx_saved_binding): Remove class_value.
|
|
|
|
(clear_identifier_class_values): Remove.
|
|
|
|
* ptree.c (cxx_print_identifier): Do not print
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
* search.c (search_obstack): Remove.
|
|
|
|
(push_stack_level): Remove.
|
|
|
|
(pop_stack_level): Remove.
|
|
|
|
(search_level): Remove.
|
|
|
|
(search_stack): Remove.
|
|
|
|
(lookup_member): Don't check IDENTIFIER_CLASS_VALUE.
|
|
|
|
(setup_class_bindings): Use IDENTIFIER_MARKED, not
|
|
|
|
IDENTIFIER_CLASS_VALUE.
|
|
|
|
(marked_identifiers): New variable.
|
|
|
|
(push_class_decls): Clear IDENTIFIER_MARKED.
|
|
|
|
(pop_class_decls): Don't call pop_search_level.
|
|
|
|
(init_search_processing): Remove.
|
|
|
|
|
2004-07-13 00:53:47 +02:00
|
|
|
2004-07-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-07-13 01:53:13 +02:00
|
|
|
* cp-tree.h (get_aggr_typedef): Remove.
|
|
|
|
* init.c (get_aggr_typedef): Likewise.
|
|
|
|
|
2004-07-13 00:53:47 +02:00
|
|
|
* name-lookup.c (push_class_level_binding): Simplify.
|
|
|
|
|
2004-07-13 00:28:54 +02:00
|
|
|
2004-07-12 Andrew Pinski <apinski@apple.com>
|
|
|
|
|
|
|
|
PR c++/16475
|
|
|
|
Revert:
|
|
|
|
2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
PR c++/16276
|
|
|
|
* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
|
|
|
|
is not public.
|
|
|
|
|
2004-07-12 21:10:03 +02:00
|
|
|
2004-07-12 Eric Christopher <echristo@redhat.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_class_head): Remove unused variable.
|
|
|
|
|
2004-07-12 19:54:49 +02:00
|
|
|
2004-07-12 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
* decl.c (grok_op_properties): Reject [de-]allocation functions
|
|
|
|
declared in a namespace, or declared as static.
|
|
|
|
|
2004-07-12 18:06:40 +02:00
|
|
|
2004-07-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2004-07-12 19:11:35 +02:00
|
|
|
* cp-tree.h (make_binfo): Remove.
|
|
|
|
* decl.c (xref_basetypes): Use make_tree_binfo directly.
|
|
|
|
* tree.h (copy_base_binfos): Likewise.
|
|
|
|
(make_binfo): Remove.
|
2004-07-12 21:10:03 +02:00
|
|
|
|
2004-07-12 18:06:40 +02:00
|
|
|
* call.c (build_user_type_conversion_1, build_new_op,
|
|
|
|
check_constructor_callable, build_temp,
|
|
|
|
perform_direct_initialization_of_possible): Pass type directly to
|
|
|
|
lookup_fnfields & build_special_member_call.
|
|
|
|
(build_special_member_call): Accept a type, and complete it.
|
|
|
|
* class.c (finish_stuct_bits): Copy the BINFOs here.
|
|
|
|
* cvt.c (ocp_convert): Pass type directly to
|
|
|
|
build_special_member_call.
|
|
|
|
* decl.c (build_ptrmemfunc_type): Call xref_bastypes here.
|
|
|
|
(xref_basetypes): Allocate the binfo here. Adjust.
|
|
|
|
* init.c (build_init, build_new_1): Pass type directly to
|
|
|
|
build_special_member_call.
|
|
|
|
* lex.c (cxx_make_type): Do not allocate binfo here.
|
|
|
|
* name-lookup.c (arg_assoc_class): Incomplete types have no binfo.
|
|
|
|
* parser.c (cp_parser_class_head): Always call xref_basetypes.
|
|
|
|
* pt.c (instantiate_class_template): Likewise. Inhibit access
|
|
|
|
checking for template friends.
|
|
|
|
* ptree.c (cxx_print_type): Adjust record printing.
|
|
|
|
* search.c (lookup_base): When taking a type, complete it before
|
|
|
|
looking for a binfo.
|
|
|
|
(lookup_member): Delay completing a type.
|
|
|
|
(push_class_decls): Don't walk an incomplete type.
|
|
|
|
(lookup_conversions): Likewise.
|
|
|
|
* semantics.c (finish_stmt_expr_expr): Pass type directly to
|
|
|
|
build_special_member_call.
|
|
|
|
* tree.c (copy_base_binfos): Adjust.
|
|
|
|
(make_binfo): Likewise.
|
|
|
|
* typeck.c (build_modify_expr): Pass type directly to
|
|
|
|
build_special_member_call.
|
|
|
|
* typeck2.c (process_init_constructor): Check a binfo exists.
|
|
|
|
(build_m_component_ref): Allow accessing an incomplete type.
|
|
|
|
(build_functional_cast): Pass type directly to
|
|
|
|
build_special_member_call.
|
|
|
|
|
2004-07-12 12:07:30 +02:00
|
|
|
2004-07-12 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/2204
|
|
|
|
* config-lang.in (gtfiles): Add typeck2.c.
|
|
|
|
* Make-lang.in: Tweak typeck2.c dependencies, and add rule for
|
|
|
|
gt-cp-typeck2.h.
|
|
|
|
* cp-tree.h: Declare complete_type_check_abstract.
|
|
|
|
* typeck2.c (pat_calc_hash, pat_compare,
|
|
|
|
complete_type_check_abstract): New functions.
|
|
|
|
(abstract_virtuals_error): If the type is abstract, register the
|
|
|
|
declaration within abstract_pending_vars for further checks.
|
|
|
|
Inspect also dependent types. Handle IDENTIFIER_NODEs as decl.
|
|
|
|
* decl.c (cp_finish_decl): Do not strip array types.
|
|
|
|
(create_array_type_for_decl): Check for abstractness of the element
|
|
|
|
type.
|
|
|
|
(complete_vars): Call complete_type_check_abstract.
|
|
|
|
* class.c (finish_struct): Prepare a list of virtual functions for
|
|
|
|
template types, and call complete_vars on it to check for abstractness.
|
|
|
|
|
2004-07-12 08:56:45 +02:00
|
|
|
2004-07-12 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
PR tree-optimization/14107
|
|
|
|
* decl.c (finish_function): Remove temporary band-aid.
|
|
|
|
|
2004-07-11 23:02:31 +02:00
|
|
|
2004-07-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-07-12 03:33:47 +02:00
|
|
|
* call.c (build_operator_new_call): Avoid using push_to_top_level.
|
|
|
|
(build_new_op): Adjust call to lookup_function_nonclass.
|
|
|
|
* name-lookup.c (identifier_type_value): Adjust call to
|
|
|
|
lookup_name_real.
|
|
|
|
(lookup_name_real): Add block_p parameter.
|
|
|
|
(lookup_name_nonclass): Adjust call to lookup_name_real.
|
|
|
|
(lookup_function_nonclass): Likewise.
|
|
|
|
(lookup_name): Likewise.
|
|
|
|
* name-lookup.h (lookup_name_real): Change prototype.
|
|
|
|
(lookup_name_nonclass): Likewise.
|
|
|
|
* parser.c (cp_parser_lookup_name): Likewise.
|
|
|
|
|
2004-07-11 23:02:31 +02:00
|
|
|
* cp-tree.h (saved_scope): Make old_bindings a vector.
|
|
|
|
(unuse_fields): Remove.
|
|
|
|
* name-lookup.h (cxx_saved_binding): Define it.
|
|
|
|
* class.c (pushclass): Don't use unuse_fields.
|
|
|
|
* name-lookup.c (cxx_saved_binding_make): Remove.
|
|
|
|
(store_binding): Add new bindings to a vector, using an
|
|
|
|
accumulator style, rather than adding them to a list.
|
|
|
|
(store_bindings): Adjust accordingly.
|
|
|
|
(store_class_bindings): Likewise.
|
|
|
|
(push_to_top_level): Likewise.
|
|
|
|
(pop_from_top_level): Likewise.
|
|
|
|
* optimize.c (maybe_clone_body): Must push_to_top_level and
|
|
|
|
pop_from_top_level calls outside of loop.
|
|
|
|
* parser.c (cp_parser_class_specifier): Move push_scope/pop_scope
|
|
|
|
calls here from cp_parser_late_parsing_default_args.
|
|
|
|
(cp_parser_save_default_args): Record the class type in which the
|
|
|
|
function is declared.
|
|
|
|
(cp_parser_late_parsing_default_args): Do not call
|
|
|
|
push_nested_class/pop_nested_class.
|
|
|
|
* search.c (dfs_unuse_fields): Remove.
|
|
|
|
(unuse_fields): Remove.
|
|
|
|
|
langhooks.h (estimate_num_insns, [...]): Remove hooks.
* langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
maybe_build_cleanup, update_decl_after_saving): Remove hooks.
* langhooks.c (lhd_clear_binding_stack): Remove.
* langhooks-def.h (lhd_clear_binding_stack,
LANG_HOOKS_MAYBE_BUILD_CLEANUP,
LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
(LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
* system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
LANG_HOOKS_MAYBE_BUILD_CLEANUP,
LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
* tree.h (poplevel): Don't declare.
* c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
* objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
Remove.
ada:
* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
cp:
* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
* cp-tree.h (poplevel): Declare.
(set_block): Remove.
* decl.c (set_block): Remove.
fortran:
* f95-lang.c (set_block): Remove.
(gfc_clear_binding_stack): New.
(LANG_HOOKS_CLEAR_BINDING_STACK): Define.
(struct binding_level): Remove block_created_by_back_end.
(clear_binding_level): Likewise.
(poplevel): Don't handle block_created_by_back_end.
java:
* java-tree.h (set_block): Remove.
* lang.c (java_clear_binding_stack): New.
(LANG_HOOKS_CLEAR_BINDING_STACK): Define.
* decl.c (struct binding_level): Remove this_block.
(clear_binding_level): Likewise.
(poplevel): Don't handle this_block.
(set_block): Remove.
treelang:
* treetree.c (set_block): Remove.
(struct binding_level): Remove block_created_by_back_end.
(clear_binding_level): Likewise.
(tree_code_create_function_initial,
tree_code_create_function_wrapup): Call pushlevel and poplevel
directly rather than through hooks.
(poplevel): Don't handle block_created_by_back_end.
From-SVN: r84499
2004-07-11 11:53:06 +02:00
|
|
|
2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
|
|
|
|
|
|
|
|
* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
|
|
|
|
LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
|
|
|
|
* cp-tree.h (poplevel): Declare.
|
|
|
|
(set_block): Remove.
|
|
|
|
* decl.c (set_block): Remove.
|
|
|
|
|
2004-07-11 07:13:12 +02:00
|
|
|
2004-07-10 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
* decl2.c (import_export_class): Never export/import vtables
|
|
|
|
with inline key functions.
|
|
|
|
|
2004-07-10 00:42:43 +02:00
|
|
|
2004-07-09 Steven Bosscher <stevenb@suse.de>
|
|
|
|
|
|
|
|
* typeck.c (c_expand_asm_operands): Remove.
|
|
|
|
|
2004-07-09 20:49:04 +02:00
|
|
|
2004-07-09 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
* typeck.c (build_class_member_access_expr): Skip null deref
|
|
|
|
warning when we don't dereference it.
|
|
|
|
|
2004-07-09 02:59:05 +02:00
|
|
|
2004-07-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/8211
|
|
|
|
PR c++/16165
|
|
|
|
* class.c (check_field_decls): Improve -Weffc++ warning: do not
|
|
|
|
warn for pointers to functions/members, or for classes without
|
|
|
|
destructors.
|
|
|
|
|
2004-07-08 16:53:42 +02:00
|
|
|
2004-07-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* name-lookup.h (struct cp_binding_level): Update documentation
|
|
|
|
for class_shadowed.
|
|
|
|
|
2004-07-08 12:03:59 +02:00
|
|
|
2004-07-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/16169
|
|
|
|
* typeck.c (check_return_expr): Improve -Weffc++ warning: handle
|
|
|
|
returning CALL_EXPR, and non-reference return type.
|
|
|
|
|
2004-07-08 11:39:17 +02:00
|
|
|
2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* name-lookup.c (push_binding): Use VEC_reserve.
|
|
|
|
|
except.c (expand_eh_region_start, [...]): Remove.
* except.c (expand_eh_region_start, expand_eh_region_end,
expand_eh_handler, expand_eh_region_end_cleanup,
expand_start_all_catch, expand_start_catch, expand_end_catch,
expand_end_all_catch, expand_eh_region_end_allowed,
expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
expand_eh_region_end_fixup): Remove.
* stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
cleanups, outer_cleanups, label_chain, exception_region.
(struct goto_fixup): Remove stack_level, cleanup_list_list.
(struct label_chain): Remove.
(struct stmt_status): Remove x_stack_block_stack.
(stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
fixup_gotos, save_stack_pointer, expand_decl_cleanup,
expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
end_cleanup_deferral, last_cleanup_this_contour,
containing_blocks_have_cleanups_or_stack_level,
any_pending_cleanups): Remove.
(expand_null_return_1): Take no arguments.
(expand_label, expand_naked_return, expand_return,
expand_start_bindings_and_block, expand_end_bindings, expand_decl,
expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
expand_end_case_type): Don't use any of them.
* calls.c (expand_call): Likewise.
* dojump.c (do_jump): Likewise.
* function.c (expand_function_end): Likewise.
* expr.c (store_expr, expand_expr_real_1): Likewise.
(safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
(expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
* fold-const.c (fold_checksum_tree): Use first_rtl_op.
* gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
* gimplify.c (gimplify_cleanup_point_expr): Renumber operands
for WITH_CLEANUP_EXPR.
(gimple_push_cleanup): Likewise.
* integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
* print-tree.c (print_node): Likewise.
* tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
* tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
(has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
* tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
(GOTO_SUBROUTINE_EXPR): Remove.
* tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
(DECL_TOO_LATE): Remove.
* except.h, tree.h: Update decls.
ada/
* trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
commentary.
cp/
* cp-tree.h (expand_eh_spec_block): Remove.
java/
* expr.c (case_identity, get_primitive_array_vtable,
java_expand_expr, emit_init_test_initialization): Remove.
* java-tree.h (java_expand_expr): Remove.
* lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
From-SVN: r84275
2004-07-08 09:46:07 +02:00
|
|
|
2004-07-08 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* cp-tree.h (expand_eh_spec_block): Remove.
|
|
|
|
|
2004-07-08 06:32:27 +02:00
|
|
|
2004-07-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (saved_scope): Remove x_previous_class_type and
|
|
|
|
x_previous_class_values; add x_previous_class_level.
|
|
|
|
(previous_class_type): Remove.
|
|
|
|
(previous_class_values): Remove.
|
|
|
|
(previous_class_level): New macro.
|
|
|
|
* class.c (pushclass): Restore the identifier cache more
|
|
|
|
expeditiously.
|
|
|
|
(invalidate_class_lookup_cache): Use vector for class_shadowed and
|
|
|
|
previous_class_values.
|
|
|
|
* decl.c (poplevel): Likewise.
|
|
|
|
* name-lookup.c (cxx_binding_init): New function.
|
|
|
|
(cxx_binding_make): Use it.
|
|
|
|
(push_binding): For a binding in a class level, use a vector of
|
|
|
|
cp_class_binding nodes.
|
|
|
|
(push_binding_level): New function.
|
|
|
|
(begin_scope): Use it.
|
|
|
|
(leave_scope): Do not put class binding levels on the free list.
|
|
|
|
(print_binding_level): Adjust for the fact that class_shadowed is
|
|
|
|
a vector.
|
|
|
|
(poplevel_class): Likewise.
|
|
|
|
(clear_identifier_class_values): Likewise.
|
|
|
|
(push_class_level_binding): Likewise.
|
|
|
|
(set_class_shadows): Remove.
|
|
|
|
(store_binding): New function.
|
|
|
|
(store_class_bindings): New function.
|
|
|
|
(push_to_top_level): Use store_class_bindings as appropriate.
|
|
|
|
(pop_from_top_level): Use previous_class_level, not
|
|
|
|
previous_class_type.
|
|
|
|
* name-lookup.h (cp_class_binding): New type.
|
|
|
|
(cp_binding_level): Use a vector object for class_shadowed.
|
|
|
|
(push_binding_level): Declare.
|
|
|
|
(set_class_shadows): Remove.
|
|
|
|
|
2004-07-07 23:26:31 +02:00
|
|
|
2004-07-07 Andrew Pinski <apinski@apple.com>
|
|
|
|
|
|
|
|
* class.c (instantiate_type): BUFFER_REF is dead.
|
|
|
|
* lex.c (init_operators): IN_EXPR is dead.
|
|
|
|
|
2004-07-07 23:16:57 +02:00
|
|
|
2004-07-07 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/16334
|
|
|
|
* call.c (build_new_op): Give overload warnings for built-in
|
|
|
|
candidates.
|
|
|
|
|
2004-07-07 20:29:38 +02:00
|
|
|
2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR c++/16276
|
|
|
|
* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
|
|
|
|
is not public.
|
|
|
|
|
tree.h (TYPE_BINFO_OFFSET, [...]): Remove.
* tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
TYPE_BINFO_BASETYPE): Remove.
(BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
to ...
(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
here.
(BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
(BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
(BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
(struct tree_binfo): Rename base_types to base_binfos.
* alias.c (record_component_aliases): Adjust BINFO macros.
* dbxout.c (dbxout_type): Likewise.
* dwarf2out.c (gen_member_die): Likewise.
* sdbout.c (sdbout_one_type): Likewise.
* tree-dump.c (deque_and_dump): Likewise.
* config/i386/i386.c (classify_argument,
contains_128bit_aligned_vector_p): Likewise.
* cp/cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
* cp/class.c (build_primary_vtable, check_bases,
determine_primary_base, finish_struct_bits,
maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
get_basefndecls, warn_hidden, walk_subobject_offsets,
build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
finish_struct_1, get_vfield_name, contains_empty_class_p,
dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
BINFO macros.
* cp/decl.c (xref_basetypes): Likewise.
* cp/dump.c (cp_dump_tree): Likewise.
* cp/error.c (dump_expr): Likewise.
* cp/init.c (sort_mem_initializers, expand_member_init,
push_base_cleanups): Likewise.
* cp/method.c (do_build_copy_constructor, do_build_assign_reg,
synthesize_exception_spec): Likewise.
* cp/name-lookup.c (arg_assoc_class):
* cp/pt.c (instantiate_class_template, tsubst,
get_template_base_recursive):
* cp/ptree.c (cxx_print_type):
* cp/rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
dfs_access_in_type, access_in_type, lookup_field_queue_p,
bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
binfo_for_vtable, copied_binfo, original_binfo): Likewise
* cp/tree.c (copy_base_binfos, make_binfo): Likewise.
* cp/typeck.c (commmon_base_type): Likewise
* cp/typeck2.c (process_init_constructor): Likewise
* java/java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
(TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
* java/class.c (set_super_info, class_depth, interface_of_p,
maybe_add_interface, add_interface, make_class_data,
layout_class, add_miranda_methods): Adjust BINFO macros.
* java/expr.c (can_widen_reference_to, lookup_field): Likewise.
* java/jcf-write.c (generate_classfile): Likewise.
* java/parse.y (patch_anonymous_class,
check_inner_circular_reference, check_circular_reference,
java_complete_class, check_abstract_method_definitions,
java_check_abstract_method_definitions,
check_interface_throws_clauses, java_check_abstract_methods,
lookup_java_interface_method2,
find_applicable_accessible_methods_list): Likewise.
* java/typeck.c (find_method_in_interface): Likewise.
* java/verify.c (merge_types): Likewise.
From-SVN: r84198
2004-07-07 12:21:04 +02:00
|
|
|
2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
|
|
|
|
* class.c (build_primary_vtable, check_bases,
|
|
|
|
determine_primary_base, finish_struct_bits,
|
|
|
|
maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
|
|
|
|
get_basefndecls, warn_hidden, walk_subobject_offsets,
|
|
|
|
build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
|
|
|
|
layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
|
|
|
|
finish_struct_1, get_vfield_name, contains_empty_class_p,
|
|
|
|
dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
|
|
|
|
dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
|
|
|
|
add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
|
|
|
|
BINFO macros.
|
|
|
|
* decl.c (xref_basetypes): Likewise.
|
|
|
|
* dump.c (cp_dump_tree): Likewise.
|
|
|
|
* error.c (dump_expr): Likewise.
|
|
|
|
* init.c (sort_mem_initializers, expand_member_init,
|
|
|
|
push_base_cleanups): Likewise.
|
|
|
|
* method.c (do_build_copy_constructor, do_build_assign_reg,
|
|
|
|
synthesize_exception_spec): Likewise.
|
2004-07-16 10:07:08 +02:00
|
|
|
* name-lookup.c (arg_assoc_class): Likewise.
|
tree.h (TYPE_BINFO_OFFSET, [...]): Remove.
* tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
TYPE_BINFO_BASETYPE): Remove.
(BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
to ...
(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
here.
(BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
(BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
(BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
(struct tree_binfo): Rename base_types to base_binfos.
* alias.c (record_component_aliases): Adjust BINFO macros.
* dbxout.c (dbxout_type): Likewise.
* dwarf2out.c (gen_member_die): Likewise.
* sdbout.c (sdbout_one_type): Likewise.
* tree-dump.c (deque_and_dump): Likewise.
* config/i386/i386.c (classify_argument,
contains_128bit_aligned_vector_p): Likewise.
* cp/cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
* cp/class.c (build_primary_vtable, check_bases,
determine_primary_base, finish_struct_bits,
maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
get_basefndecls, warn_hidden, walk_subobject_offsets,
build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
finish_struct_1, get_vfield_name, contains_empty_class_p,
dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
BINFO macros.
* cp/decl.c (xref_basetypes): Likewise.
* cp/dump.c (cp_dump_tree): Likewise.
* cp/error.c (dump_expr): Likewise.
* cp/init.c (sort_mem_initializers, expand_member_init,
push_base_cleanups): Likewise.
* cp/method.c (do_build_copy_constructor, do_build_assign_reg,
synthesize_exception_spec): Likewise.
* cp/name-lookup.c (arg_assoc_class):
* cp/pt.c (instantiate_class_template, tsubst,
get_template_base_recursive):
* cp/ptree.c (cxx_print_type):
* cp/rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
dfs_access_in_type, access_in_type, lookup_field_queue_p,
bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
binfo_for_vtable, copied_binfo, original_binfo): Likewise
* cp/tree.c (copy_base_binfos, make_binfo): Likewise.
* cp/typeck.c (commmon_base_type): Likewise
* cp/typeck2.c (process_init_constructor): Likewise
* java/java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
(TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
* java/class.c (set_super_info, class_depth, interface_of_p,
maybe_add_interface, add_interface, make_class_data,
layout_class, add_miranda_methods): Adjust BINFO macros.
* java/expr.c (can_widen_reference_to, lookup_field): Likewise.
* java/jcf-write.c (generate_classfile): Likewise.
* java/parse.y (patch_anonymous_class,
check_inner_circular_reference, check_circular_reference,
java_complete_class, check_abstract_method_definitions,
java_check_abstract_method_definitions,
check_interface_throws_clauses, java_check_abstract_methods,
lookup_java_interface_method2,
find_applicable_accessible_methods_list): Likewise.
* java/typeck.c (find_method_in_interface): Likewise.
* java/verify.c (merge_types): Likewise.
From-SVN: r84198
2004-07-07 12:21:04 +02:00
|
|
|
* pt.c (instantiate_class_template, tsubst,
|
2004-07-16 10:07:08 +02:00
|
|
|
get_template_base_recursive): Likewise.
|
|
|
|
* ptree.c (cxx_print_type): Likewise.
|
tree.h (TYPE_BINFO_OFFSET, [...]): Remove.
* tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
TYPE_BINFO_BASETYPE): Remove.
(BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
to ...
(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
here.
(BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
(BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
(BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
(struct tree_binfo): Rename base_types to base_binfos.
* alias.c (record_component_aliases): Adjust BINFO macros.
* dbxout.c (dbxout_type): Likewise.
* dwarf2out.c (gen_member_die): Likewise.
* sdbout.c (sdbout_one_type): Likewise.
* tree-dump.c (deque_and_dump): Likewise.
* config/i386/i386.c (classify_argument,
contains_128bit_aligned_vector_p): Likewise.
* cp/cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
* cp/class.c (build_primary_vtable, check_bases,
determine_primary_base, finish_struct_bits,
maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
get_basefndecls, warn_hidden, walk_subobject_offsets,
build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
finish_struct_1, get_vfield_name, contains_empty_class_p,
dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
BINFO macros.
* cp/decl.c (xref_basetypes): Likewise.
* cp/dump.c (cp_dump_tree): Likewise.
* cp/error.c (dump_expr): Likewise.
* cp/init.c (sort_mem_initializers, expand_member_init,
push_base_cleanups): Likewise.
* cp/method.c (do_build_copy_constructor, do_build_assign_reg,
synthesize_exception_spec): Likewise.
* cp/name-lookup.c (arg_assoc_class):
* cp/pt.c (instantiate_class_template, tsubst,
get_template_base_recursive):
* cp/ptree.c (cxx_print_type):
* cp/rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
dfs_access_in_type, access_in_type, lookup_field_queue_p,
bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
binfo_for_vtable, copied_binfo, original_binfo): Likewise
* cp/tree.c (copy_base_binfos, make_binfo): Likewise.
* cp/typeck.c (commmon_base_type): Likewise
* cp/typeck2.c (process_init_constructor): Likewise
* java/java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
(TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
* java/class.c (set_super_info, class_depth, interface_of_p,
maybe_add_interface, add_interface, make_class_data,
layout_class, add_miranda_methods): Adjust BINFO macros.
* java/expr.c (can_widen_reference_to, lookup_field): Likewise.
* java/jcf-write.c (generate_classfile): Likewise.
* java/parse.y (patch_anonymous_class,
check_inner_circular_reference, check_circular_reference,
java_complete_class, check_abstract_method_definitions,
java_check_abstract_method_definitions,
check_interface_throws_clauses, java_check_abstract_methods,
lookup_java_interface_method2,
find_applicable_accessible_methods_list): Likewise.
* java/typeck.c (find_method_in_interface): Likewise.
* java/verify.c (merge_types): Likewise.
From-SVN: r84198
2004-07-07 12:21:04 +02:00
|
|
|
* rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
|
|
|
|
* search.c (lookup_base_r, dynamic_cast_base_recurse,
|
|
|
|
dfs_access_in_type, access_in_type, lookup_field_queue_p,
|
|
|
|
bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
|
|
|
|
marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
|
|
|
|
dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
|
|
|
|
binfo_for_vtable, copied_binfo, original_binfo): Likewise
|
|
|
|
* tree.c (copy_base_binfos, make_binfo): Likewise.
|
|
|
|
* typeck.c (commmon_base_type): Likewise
|
|
|
|
* typeck2.c (process_init_constructor): Likewise
|
|
|
|
|
2004-07-07 00:42:45 +02:00
|
|
|
2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
|
|
|
|
|
|
|
|
* decl.c (check_tag_decl): Name redeclared type in diagnostic.
|
|
|
|
|
2004-07-06 12:51:08 +02:00
|
|
|
2004-07-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/3671
|
|
|
|
* pt.c (convert_nontype_argument): Disallow conversions between
|
|
|
|
different enumeration types.
|
|
|
|
|
tree.h (TREE_VIA_VIRTUAL): Rename to ...
* tree.h (TREE_VIA_VIRTUAL): Rename to ...
(BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
(BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
* dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
* dwarf2out.c (add_data_member_location_attribute): Likewise.
(gen_inheritance_die): Likewise.
* tree-dump.c (deque_and_dump): Likewise.
* doc/c-tree.texi (Binfos): Add under reconstruction note.
* cp/cp-tree.h (BINFO_MARKED): Remove.
(BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
(SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
* cp/class.c (build_base_path): Use BINFO_VIRTUAL_P.
(mark_primary_bases, determine_primary_base, base_derived_from,
dfs_find_final_overrider, dfs_find_final_overrider_q,
dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
dfs_modify_vtables, walk_subobject_offsets,
layout_nonempty_base_or_field, build_base_field,
build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
build_ctor_vtbl_group, accumulate_vtble_inits,
dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
add_vcall_offset_vtbl_entries_1): Likewise.
* cp/decl.c (xref_basetypes): Incomming virtual base indicated by
TREE_TYPE. Adjust.
* cp/dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
* cp/init.c (finish_init_stmts, sort_mem_initializers,
emit_mem_initializers, build_vtble_address, expand_member_init,
push_base_cleanups): Likewise.
* cp/method.c (do_build_copy_constructor): Likewise.
* cp/pt.c (instantiate_class_template,
get_template_base_recursive): Likewise.
* cp/rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
get_pseudo_ti_desc): Likewise.
* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
binfo_from_vbase, binfo_via_virtual, copied_binfo,
original_binfo): Likewise.
* cp/semantics.c (finish_base_specifier): Virtualness is indicated
by TREE_TYPE.
* cp/tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.
* java/java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
* java/class.c (add_interface_do): Use BINFO_VIRTUAL_P.
From-SVN: r84148
2004-07-06 10:51:32 +02:00
|
|
|
2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (BINFO_MARKED): Remove.
|
|
|
|
(BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
|
|
|
|
BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
|
|
|
|
BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
|
|
|
|
(SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
|
|
|
|
* class.c (build_base_path): Use BINFO_VIRTUAL_P.
|
|
|
|
(mark_primary_bases, determine_primary_base, base_derived_from,
|
|
|
|
dfs_find_final_overrider, dfs_find_final_overrider_q,
|
|
|
|
dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
|
|
|
|
dfs_modify_vtables, walk_subobject_offsets,
|
|
|
|
layout_nonempty_base_or_field, build_base_field,
|
|
|
|
build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
|
|
|
|
end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
|
|
|
|
finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
|
|
|
|
build_ctor_vtbl_group, accumulate_vtble_inits,
|
|
|
|
dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
|
|
|
|
build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
|
|
|
|
add_vcall_offset_vtbl_entries_1): Likewise.
|
|
|
|
* decl.c (xref_basetypes): Incomming virtual base indicated by
|
|
|
|
TREE_TYPE. Adjust.
|
|
|
|
* dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
|
|
|
|
* init.c (finish_init_stmts, sort_mem_initializers,
|
|
|
|
emit_mem_initializers, build_vtble_address, expand_member_init,
|
|
|
|
push_base_cleanups): Likewise.
|
|
|
|
* method.c (do_build_copy_constructor): Likewise.
|
|
|
|
* pt.c (instantiate_class_template,
|
|
|
|
get_template_base_recursive): Likewise.
|
|
|
|
* rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
|
|
|
|
get_pseudo_ti_desc): Likewise.
|
|
|
|
* search.c (lookup_base_r, dynamic_cast_base_recurse,
|
|
|
|
binfo_from_vbase, binfo_via_virtual, copied_binfo,
|
|
|
|
original_binfo): Likewise.
|
|
|
|
* semantics.c (finish_base_specifier): Virtualness is indicated
|
|
|
|
by TREE_TYPE.
|
|
|
|
* tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.
|
|
|
|
|
2004-07-06 09:16:32 +02:00
|
|
|
2004-07-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
2004-06-24 Jason Merrill <jason@redhat.com>
|
|
|
|
PR c++/16115
|
|
|
|
* decl.c (grokparms): Give the PARM_DECL reference type if the
|
|
|
|
parameter is passed by invisible reference.
|
|
|
|
|
2004-07-06 04:20:16 +02:00
|
|
|
2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* cp-lang.c (cp_var_mod_type_p): Add extra arg.
|
|
|
|
* decl.c (grokdeclarator): Extra arg to variably_modified_type_p.
|
|
|
|
* pt.c (check_instantiated_args, unify): Likewise.
|
|
|
|
|
2004-07-06 00:28:59 +02:00
|
|
|
2004-07-05 Phil Edwards <phil@codesourcery.com>
|
|
|
|
|
|
|
|
* Make-lang.in (check-c++, lang_checks): Add some comments.
|
|
|
|
|
2004-07-05 20:12:47 +02:00
|
|
|
2004-07-05 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-mudflap.c: Delete file.
|
|
|
|
* Makefile.in: Remove all references to cp-mudflap.o.
|
|
|
|
|
2004-07-05 19:28:37 +02:00
|
|
|
2004-07-05 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (cxx_init_decl_processing): Call
|
|
|
|
build_common_tree_nodes before creating the global NAMESPACE_DECL.
|
|
|
|
|
2004-07-05 17:56:10 +02:00
|
|
|
2004-07-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/2518
|
|
|
|
* call.c (build_operator_new_call): Look only at global scope.
|
|
|
|
|
c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
* dwarf2out.c (add_data_member_location_attribute): Check for
TREE_BINFO.
* tree.c (tree_node_kinds): Add "binfos".
(binfo_lang_slots): New.
(make_node_stat): Add TREE_BINFO.
(make_tree_binfo_stat): New.
(tree_node_structure): Add TREE_BINFO.
* tree.def (TREE_BINFO): New.
* tree.h (REC_OR_UNION_CHECK): Rename to ...
(RECORD_OR_UNION_CHECK): ... here.
(NOT_RECORD_OR_UNION_CHECK): New.
(TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
(TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
RECORD_OR_UNION_CHECK.
(TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
(TYPE_LANG_SLOT_1): New.
(BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
(BINFO_ELTS): Remove.
(BINFO_LANG_SLOT): New.
(struct tree_binfo): New.
(binfo_lang_slots): Declare.
(enum tree_node_structure_enum): Add TS_BINFO.
(union tree_node): Add binfo.
(make_tree_binfo_stat): Declare.
(make_tree_binfo): New.
(enum tree_node_kind): Add binfo_kind.
* cp/call.c (enforce_access): Expect TREE_BINFO.
* cp/class.c (binfo_ctor_vtable): Check TREE_BINFO.
* cp/cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
Adjust.
(BINFO_LANG_ELTS): Remove.
(BINFO_LANG_SLOTS): New.
(TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
(CLASSTYPE_TEMPLATE_INFO): Adjust.
* cp/pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
* cp/search.c (lookup_member): Check TREE_BINFO.
* cp/semantics.c (perform_or_defer_access_check): Likewise.
(check_accessibility_of_qualified_id): Check
deferred_access_no_check.
* cp/tree.c (make_binfo): Use make_tree_binfo.
* java/class.c (make_class): Use make_tree_binfo.
(set_super_info, add_interface_do): Likewise.
* java/java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
* objc/objc-act.c (start_class, objc_declare_protocols,
start_protocols): Use TYPE_LANG_SLOT_1.
* objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
to ...
(CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
(CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
From-SVN: r84110
2004-07-05 11:35:44 +02:00
|
|
|
2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* call.c (enforce_access): Expect TREE_BINFO.
|
|
|
|
* class.c (binfo_ctor_vtable): Check TREE_BINFO.
|
|
|
|
* cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
|
|
|
|
(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
|
|
|
|
Adjust.
|
|
|
|
(BINFO_LANG_ELTS): Remove.
|
|
|
|
(BINFO_LANG_SLOTS): New.
|
|
|
|
(TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
|
|
|
|
(CLASSTYPE_TEMPLATE_INFO): Adjust.
|
|
|
|
* pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
|
|
|
|
* search.c (lookup_member): Check TREE_BINFO.
|
|
|
|
* semantics.c (perform_or_defer_access_check): Likewise.
|
|
|
|
(check_accessibility_of_qualified_id): Check
|
|
|
|
deferred_access_no_check.
|
|
|
|
* tree.c (make_binfo): Use make_tree_binfo.
|
|
|
|
|
2004-07-04 21:41:32 +02:00
|
|
|
2004-07-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* method.c (implicitly_declare_fn): Set linkage of generated
|
|
|
|
functions.
|
|
|
|
|
rtl.def (ADDRESSOF): Remove.
* rtl.def (ADDRESSOF): Remove.
* alias.c (rtx_equal_for_memref_p): Don't handle addressof.
(find_base_term, memrefs_conflict_p): Likewise.
* cse.c (fixed_base_plus_p, find_best_addr: Likewise.
(fold_rtx, cse_insn, set_live_p): Likewise.
* dwarf2out.c (mem_loc_descriptor): Likewise.
(add_location_or_const_value_attribute): Likewise.
* emit-rtl.c (copy_insn_1): Likewise.
* explow.c (memory_address): Likewise.
* expmed.c (store_split_bit_field): Likewise.
* expr.c (expand_expr_real_1): Likewise.
* function.c (instantiate_decl
(instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
* genrecog.c (preds, validate_pattern): Likewise.
* integrate.c (copy_rtx_and_substitute): Likewise.
* recog.c (general_operand, register_operand): Likewise.
(memory_address_p): Likwise.
* reload1.c (eliminate_regs, elimination_effects): Likewise.
* rtl.c (copy_rtx): Likewise.
* rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
(rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
* rtlhooks.c (gen_lowpart_general): Likewise.
* stmt.c (expand_asm_operands): Likewise.
* web.c (entry_register, replace_ref, web_main): Likewise.
* config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
alpha_expand_block_move, alpha_expand_block_clear): Likewise.
* config/arm/arm.c (thumb_rtx_costs): Likewise.
* config/c4x/c4x.c (c4x_valid_operands): Likewise.
* config/frv/frv.c (move_destination_operand, move_source_operand,
condexec_dest_operand, condexec_source_operand,
condexec_memory_operand): Likewise.
* config/h8300/h8300.h (PREDICATE_CODES): Likewise.
* config/ia64/ia64.c (general_xfmode_operand): Likewise.
(destination_xfmode_operand): Likewise.
* config/mips/mips.h (PREDICATE_CODES): Likewise.
* config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
* config/s390/s390.c (general_s_operand): Likewise.
* config/s390/s390.md (mov*): Likewise.
* config/sparc/sparc.h (PREDICATE_CODES): Likewise.
* c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
* expr.c (expand_expr_real_1): Likewise.
* stmt.c (expand_decl): Likewise.
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
* function.c (struct fixup_replacement, struct insns_for_mem_entry,
postponed_insns, put_var_into_stack, put_reg_into_stack,
schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
gen_mem_addressof, flush_addressof, put_addressof_into_stack,
purge_bitfield_addressof_replacements, purge_addressof_replacements,
purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
struct insns_for_mem_walk_info, insns_for_mem_walk,
compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
setjmp_protect_args): Remove.
(push_function_context_to): Don't handle var_refs_queue.
(pop_function_context_from, free_after_compilation): Likewise.
(instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
(assign_parms, allocate_struct_function): Likewise.
(use_register_for_decl): New.
(expand_function_end): Don't setjmp_protect.
* function.h (struct emit_status): Update commentary.
(struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
(max_parm_reg, parm_reg_stack_loc): Remove.
* passes.c (DFI_addressof): Remove.
(dump_file_info): Remove addressof.
(rest_of_handle_addressof): Remove.
(rest_of_compilation): Don't call it.
* rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
* stmt.c (expand_decl): Use use_register_for_decl.
* tree.h: Update decls.
* web.c (mark_addressof): Remove.
* doc/invoke.texi (-dF): Remove.
ada/
* utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
cp/
* typeck.c (cxx_mark_addressable): Don't put_var_into_stack.
fortran/
* f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
treelang/
* treetree.c (tree_mark_addressable): Don't put_var_into_stack.
From-SVN: r84072
2004-07-04 10:07:15 +02:00
|
|
|
2004-07-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* typeck.c (cxx_mark_addressable): Don't put_var_into_stack.
|
|
|
|
|
|
|
|
2004-07-03 Scott Brumbaugh <scottb.lists@verizon.net>
|
|
|
|
|
|
|
|
PR c++/3761
|
|
|
|
* name-lookup.c (push_class_level_binding): Don't pass a
|
|
|
|
TREE_LIST of ambiguous names to check_template_shadow as it
|
|
|
|
only handles declarations. Instead, pull the declaration
|
|
|
|
out and pass that.
|
2004-07-03 04:19:27 +02:00
|
|
|
|
2004-07-03 04:05:27 +02:00
|
|
|
2004-07-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14971
|
|
|
|
* pt.c (check_explicit_specialization): Clarify error message.
|
|
|
|
|
2004-07-03 02:15:50 +02:00
|
|
|
2004-07-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* tree.c (cp_unsave_r): Update remap_save_expr call.
|
|
|
|
|
2004-07-02 23:59:42 +02:00
|
|
|
2004-07-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-07-03 01:56:38 +02:00
|
|
|
PR c++/16240
|
|
|
|
* mangle.c (write_template_arg): Correct mangling.
|
|
|
|
|
2004-07-03 00:00:56 +02:00
|
|
|
PR c++/16297
|
2004-07-02 23:59:42 +02:00
|
|
|
* decl.c (grokdeclarator): Robustify.
|
|
|
|
|
tree.def (RTL_EXPR): Remove.
* tree.def (RTL_EXPR): Remove.
* c-typeck.c (lvalue_p): Don't handle it.
* expr.c (safe_from_p): Likewise.
(expand_expr_real_1): Likewise.
* fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
(fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
* gengtype.c (adjust_field_tree_exp): Likewise.
* stmt.c (warn_if_unused_value): Likewise.
* tree-gimple.c (recalculate_side_effects): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
(unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
* tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
* stmt.c (struct stmt_status): Remove x_last_expr_type,
x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
(last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
(expand_expr_stmt): Merge with expand_expr_stmt_value. Remove
all the bits that tracked last_expr.
(expand_end_bindings): Don't track last_expr.
(expand_start_stmt_expr, expand_end_stmt_expr): Remove.
(clear_last_expr): Remove.
(expand_asm): Don't call it.
(expand_asm_operands, expand_end_cond): Likewise.
(expand_naked_return, expand_null_return_1): Likewise.
* c-typeck.c (c_begin_compound_stmt): Likewise.
* cfgexpand.c (expand_block): Use expand_expr_stmt.
* expr.c (expand_expr_real_1): Likewise.
* tree.h: Update prototypes.
* function.h (struct sequence_stack): Remove sequence_rtl_expr.
(struct emit_status): Remove sequence_rtl_expr.
(struct function): Remove x_rtl_expr_chain.
(seq_rtl_expr, rtl_expr_chain): Remove.
* function.c (struct temp_slot): Remove rtl_expr.
(assign_stack_temp_for_type): Don't set it.
(free_temp_slots, pop_temp_slots): Don't check it.
(free_after_compilation): Don't clear x_rtl_expr_chain.
(fixup_var_refs): Don't search it.
(preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
* emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
or seq_rtl_expr.
(push_topmost_sequence): Likewise.
(end_sequence, init_emit): Likewise.
(start_sequence_for_rtl_expr): Remove.
* expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
* rtl.h (preserve_rtl_expr_result): Remove.
ada/
* trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
* utils.c (max_size): Likewise.
cp/
* class.c (fixed_type_or_null): Don't handle RTL_EXPR.
* method.c (synthesize_method): Don't clear_last_expr.
* name-lookup.c (maybe_push_cleanup_level): Likewise.
From-SVN: r84009
2004-07-02 03:15:43 +02:00
|
|
|
2004-07-01 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* class.c (fixed_type_or_null): Don't handle RTL_EXPR.
|
|
|
|
* method.c (synthesize_method): Don't clear_last_expr.
|
|
|
|
* name-lookup.c (maybe_push_cleanup_level): Likewise.
|
|
|
|
|
2004-07-01 10:47:16 +02:00
|
|
|
2004-07-01 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
* decl2.c (import_export_class): Invoke the
|
|
|
|
import_export_class field in the gcc_target structure if it is not
|
|
|
|
empty.
|
|
|
|
|
2004-07-01 02:38:38 +02:00
|
|
|
2004-06-30 Richard Henderson (rth@redhat.com>
|
|
|
|
|
|
|
|
* decl.c (start_preparsed_function): Don't set immediate_size_expand.
|
|
|
|
* method.c (use_thunk): Likewise.
|
|
|
|
|
2004-07-01 00:30:34 +02:00
|
|
|
2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
|
|
|
|
|
|
|
|
* call.c (build_over_call), typeck.c (build_function_call): Call
|
|
|
|
check_function_arguments instead of check_function_format.
|
|
|
|
|
2004-07-01 00:28:02 +02:00
|
|
|
2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
|
|
|
|
|
|
|
|
* call.c (build_over_call), typeck.c (build_function_call): Update
|
|
|
|
calls to check_function_format.
|
|
|
|
|
2004-06-30 22:01:29 +02:00
|
|
|
2004-06-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* call.c (build_over_call): Use __builtin_memcpy for copying
|
|
|
|
CLASS_AS_BASE rather than funny casting.
|
|
|
|
|
2004-06-30 21:53:14 +02:00
|
|
|
2004-06-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE and
|
|
|
|
TYPE_SIZE_UNIT of full_type.
|
|
|
|
|
2004-06-30 20:23:35 +02:00
|
|
|
2004-06-30 Per Bothner <per@bothner.com>
|
|
|
|
|
|
|
|
Conditionally compile support for --enable-mapped_location.
|
|
|
|
* decl.c (pop_label): Handle (imperfectly) USE_MAPPED_LOCATION case.
|
|
|
|
* decl2.c: If USE_MAPPED_LOCATION, don't do some line number
|
|
|
|
adjustments - which I don't understand.
|
|
|
|
* error.c (dump_decl): Rename "<interrnal>" to "<built-in>".
|
|
|
|
* error.c: Use LOCATION_FILE and EXPR_LOCATION macros.
|
|
|
|
(print_instantiation_partial_context): Use expand_location.
|
|
|
|
* decl.c (duplicate_decl): Use new DECL_IS_BUILTIN macro.
|
|
|
|
* name-lookup.c: Likewise.
|
|
|
|
* lex.c (cxx_init): Likewise. Also use BUILTINS_LOCATION.
|
|
|
|
* name-lookup.c: Use input_line macro.
|
|
|
|
* parser.c (cp_lexer_get_preprocessor_token): Use UNKNOWN_LOCATION.
|
|
|
|
(cp_parser_statement): Rename locaal variable statement_locus to
|
|
|
|
statement_location and use SET_EXPR_LOCATION macro.
|
|
|
|
* pt.c: Handle USE_MAPPED_LOCATION case. Use new macros.
|
|
|
|
* tree.c (cp_walk_subtrees): Likewise.
|
|
|
|
|
2004-06-30 08:42:43 +02:00
|
|
|
2004-06-29 Per Bothner <per@bothner.com>
|
|
|
|
|
|
|
|
* tree.c (build_min_nt, build_min, build_min_non_dep):
|
|
|
|
Don't set TREE_COMPLEXITY from input_line.
|
|
|
|
|
2004-06-29 16:50:35 +02:00
|
|
|
2004-06-29 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
* init.c: Include target.h.
|
|
|
|
(get_cookie_size): Remove and replace with target hook.
|
|
|
|
Update callers.
|
|
|
|
(build_new_1): Store the element size in the cookie.
|
|
|
|
|
2004-06-29 13:10:11 +02:00
|
|
|
2004-06-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/16260
|
|
|
|
* parser.c (cp_parser_template_declaration_after_export): Disable
|
|
|
|
access checks here ...
|
|
|
|
(cp_parser_class_specifier): ... not here.
|
|
|
|
|
cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK, [...]): Use appropriate TREE_CHECK macro.:qOR_FUNCTION_DECL_CHECK,
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
TREE_CHECK macro.:qOR_FUNCTION_DECL_CHECK,
* tree.h (tree_check_failed): Make varadic.
(tree_not_check_failed): New prototype.
(tree_check2_failed, tree_check3_failed,
tree_check4_failed, tree_check5_failed): Remove.
(TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
TREE_CHECK5): Adjust.
(TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
TREE_NOT_CHECK5): New.
(TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
TREE_RTL_OPERAND_CHECK): Adjust.
* tree.c (tree_check_failed): Make varadic.
(tree_not_check_failed): New.
(tree_check2_failed, tree_check3_failed,
tree_check4_failed, tree_check5_failed): Remove.
cp:
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
TREE_CHECK macro.
From-SVN: r83796
2004-06-28 18:10:55 +02:00
|
|
|
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
|
|
|
|
VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
|
|
|
|
BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
|
|
|
|
TREE_CHECK macro.
|
|
|
|
|
2004-06-28 17:06:06 +02:00
|
|
|
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (struct deferred_access): Move to ...
|
|
|
|
* semantics.c (struct deferred_access): ... here. Adjust.
|
|
|
|
(deferred_access_stack): Make a VEC(deferred_access),
|
|
|
|
(deferred_access_free_list): Remove.
|
|
|
|
(deferred_access_no_check): New.
|
|
|
|
(push_deferring_access_checks, resume_deferring_access_checks,
|
|
|
|
stop_deferring_access_checks, pop_deferring_access_checks,
|
|
|
|
get_deferred_access_checks, pop_to_parent_deferring_access_checks,
|
|
|
|
perform_deferred_access_checks, perform_or_defer_access_check): Adjust.
|
|
|
|
|
2004-06-28 12:41:19 +02:00
|
|
|
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2004-06-29 13:10:11 +02:00
|
|
|
PR c++/16174
|
2004-06-28 13:07:23 +02:00
|
|
|
* call.c (build_temp): Declare.
|
|
|
|
(check_constructor_callable): New.
|
|
|
|
(reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
|
|
|
|
CONSTRUCTOR_CALLABLE.
|
|
|
|
(convert_like_real, initialize_reference): Use
|
|
|
|
check_constructor_callable.
|
|
|
|
* cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
|
|
|
|
(LOOKUP_*): Renumber.
|
|
|
|
|
2004-06-28 17:06:06 +02:00
|
|
|
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2004-06-28 12:41:19 +02:00
|
|
|
* friend.c (add_friend): Only perform access checks when context
|
|
|
|
is a class.
|
|
|
|
* lex.c (cxx_make_type): Only create a binfo for aggregate types.
|
|
|
|
* parser.c (cp_parser_class_specifier): Disable access checks here
|
|
|
|
when parsing the body of a templated class.
|
|
|
|
* semantics.c (perform_or_defer_access_checks): Reorder to allow
|
|
|
|
NULL binfos when not checking access.
|
|
|
|
|
Use vector API for vbase list.
* cp-tree.h: Include vec.h
(DEF_VEC_P (tree)): New type.
(struct lang_type_class): Change vbase's member type.
(binfo_for_vbase): Declare.
* class.c (determine_primary_base, base_derived_from,
update_vtable_entry_for_fn, walk_subobject_offsets, end_of_class,
warn_about_ambiguous_bases, dfs_accumulate_vtbl_inits,
build_vtbl_initializer): Adjust.
* decl.c (xref_basetypes): Adjust, accumulate upper bound of
vbases.
* init.c (sort_mem_initializers, expand_member_init,
push_base_cleanups): Adjust.
* method.c (do_build_copy_constructor): Adjust.
* search.c (get_pure_virtuals, copied_binfo, original_binfo): Adjust.
(binfo_for_vbase): New.
* tree.c (copy_base_binfos): Adjust.
From-SVN: r83770
2004-06-28 12:34:42 +02:00
|
|
|
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
Use vector API for vbase list.
|
|
|
|
* cp-tree.h: Include vec.h
|
|
|
|
(DEF_VEC_P (tree)): New type.
|
|
|
|
(struct lang_type_class): Change vbase's member type.
|
|
|
|
(binfo_for_vbase): Declare.
|
|
|
|
* class.c (determine_primary_base, base_derived_from,
|
|
|
|
update_vtable_entry_for_fn, walk_subobject_offsets, end_of_class,
|
|
|
|
warn_about_ambiguous_bases, dfs_accumulate_vtbl_inits,
|
|
|
|
build_vtbl_initializer): Adjust.
|
|
|
|
* decl.c (xref_basetypes): Adjust, accumulate upper bound of
|
|
|
|
vbases.
|
|
|
|
* init.c (sort_mem_initializers, expand_member_init,
|
|
|
|
push_base_cleanups): Adjust.
|
|
|
|
* method.c (do_build_copy_constructor): Adjust.
|
|
|
|
* search.c (get_pure_virtuals, copied_binfo, original_binfo): Adjust.
|
|
|
|
(binfo_for_vbase): New.
|
|
|
|
* tree.c (copy_base_binfos): Adjust.
|
|
|
|
|
2004-06-28 09:39:08 +02:00
|
|
|
2004-06-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_set_decl_spec_type): Fix thinko.
|
|
|
|
|
2004-06-27 23:36:00 +02:00
|
|
|
2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
2004-07-05 19:28:37 +02:00
|
|
|
PR c++/14123
|
2004-06-27 23:36:00 +02:00
|
|
|
* cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
|
|
|
|
paranthesis in case of pointers to array members.
|
|
|
|
* error.c (dump_type_prefix): Likewise.
|
|
|
|
(dump_type_suffix): Maybe issue a whitespace when printing
|
2004-07-05 19:28:37 +02:00
|
|
|
ARRAY_TYPE.
|
2004-06-27 23:36:00 +02:00
|
|
|
|
2004-06-27 20:56:46 +02:00
|
|
|
2004-06-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/16193
|
|
|
|
* parser.c (cp_parser_set_decl_spec_type): Refine test for
|
|
|
|
redefinition of built-in types.
|
|
|
|
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
* error.c (pp_template_argument_list_start): Remove.
|
|
|
|
(pp_template_argument_list_end): Likewise.
|
|
|
|
(pp_separate_with_comma): Use pp_cxx_separate_with.
|
|
|
|
(reinit_global_formatting_buffer): Remove.
|
|
|
|
(pp_non_consecutive_character): Likewise.
|
|
|
|
(dump_scope): Use pp_cxx_colon_colon.
|
|
|
|
(dump_template_parameter): Use pp_cxx_identifier,
|
2004-07-05 19:28:37 +02:00
|
|
|
pp_cxx_tree_identifier and pp_cxx_whitespace.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_templat_bindings): Replace use of pp_string with sequence
|
|
|
|
of pp_cxx_whitespace and pp_equal.
|
|
|
|
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
|
|
|
|
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
|
2004-07-05 19:28:37 +02:00
|
|
|
padding here.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_aggr_type): Use pp_cxx_identifier amd pp_cxx_tree_identifier.
|
|
|
|
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
|
|
|
|
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star troughout.
|
|
|
|
(dump_type_suffix): Use pp_cxx_right_paren, pp_cxx_left_bracket,
|
|
|
|
pp_cxx_right_bracket, pp_cxx_identifier throughout,
|
|
|
|
(dump_decl): Likewise.
|
|
|
|
(dump_template_decl): Likewise.
|
|
|
|
(dump_function_decl): Likewise. Set padding as appropriate.
|
|
|
|
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier and
|
2004-07-05 19:28:37 +02:00
|
|
|
pp_cxx_right_paren.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_exception_spec): Likewise.
|
|
|
|
(dump_function_name): Use pp_cxx_tree_identifier and
|
2004-07-05 19:28:37 +02:00
|
|
|
pp_cxx_identifier.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_template_parms): Use pp_cxx_begin_template_argument_list and
|
|
|
|
pp_cxx_end_template_argument_list.
|
|
|
|
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
|
|
|
|
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier and
|
2004-07-05 19:28:37 +02:00
|
|
|
pp_cxx_whitespace throughout.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
|
2004-07-05 19:28:37 +02:00
|
|
|
pp_cxx_right_paren.
|
error.c (pp_template_argument_list_start): Remove.
* error.c (pp_template_argument_list_start): Remove.
(pp_template_argument_list_end): Likewise.
(pp_separate_with_comma): Use pp_cxx_separate_with.
(reinit_global_formatting_buffer): Remove.
(pp_non_consecutive_character): Likewise.
(dump_scope): Use pp_cxx_colon_colon.
(dump_template_parameter): Use pp_cxx_identifier,
pp_cxx_tree_identifier and pp_cxx_whitespace.
(dump_templat_bindings): Replace use of pp_string with
sequence
of pp_cxx_whitespace and pp_equal.
(dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
padding here.
(dump_aggr_type): Use pp_cxx_identifier amd
pp_cxx_tree_identifier.
(dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star
troughout.
(dump_type_suffix): Use pp_cxx_right_paren,
pp_cxx_left_bracket,
pp_cxx_right_bracket, pp_cxx_identifier throughout,
(dump_decl): Likewise.
(dump_template_decl): Likewise.
(dump_function_decl): Likewise. Set padding as appropriate.
(dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier
and
pp_cxx_right_paren.
(dump_exception_spec): Likewise.
(dump_function_name): Use pp_cxx_tree_identifier and
pp_cxx_identifier.
(dump_template_parms): Use pp_cxx_begin_template_argument_list
and
pp_cxx_end_template_argument_list.
(dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier
and
pp_cxx_whitespace throughout.
(dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
pp_cxx_right_paren.
(dump_unary_op): Likewise.
(reinit_cxx_pp): New function.
(type_as_string); Use it.
(expr_as_string): Likewise.
(decl_as_string); Likewise.
(context_as_string): Likewise.
(lang_decl_name): Likewise.
(decl_to_string): Likewise.
(expr_to_string): Likewise.
(parm_to_string): Likewise.
(type_to_string): Likewise.
(args_to_string): Likewise.
(cv_to_string): Likewise.
From-SVN: r83732
2004-06-27 17:20:41 +02:00
|
|
|
(dump_unary_op): Likewise.
|
|
|
|
(reinit_cxx_pp): New function.
|
|
|
|
(type_as_string); Use it.
|
|
|
|
(expr_as_string): Likewise.
|
|
|
|
(decl_as_string); Likewise.
|
|
|
|
(context_as_string): Likewise.
|
|
|
|
(lang_decl_name): Likewise.
|
|
|
|
(decl_to_string): Likewise.
|
|
|
|
(expr_to_string): Likewise.
|
|
|
|
(parm_to_string): Likewise.
|
|
|
|
(type_to_string): Likewise.
|
|
|
|
(args_to_string): Likewise.
|
|
|
|
(cv_to_string): Likewise.
|
|
|
|
|
2004-06-27 05:03:55 +02:00
|
|
|
2004-06-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (cp_cv_quals): New type.
|
|
|
|
(cp_declarator): Use it instead of "tree" as appropriate.
|
|
|
|
(grok_method_quals): Adjust prototype.
|
|
|
|
(grokclassfn): Likewise.
|
|
|
|
(do_friend): Likewise.
|
|
|
|
* decl.c (grokfndecl): Use cp_cv_quals, not tree.
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
* decl2.c (grok_method_quals): Likewise.
|
|
|
|
(grokclassfn): Likewise.
|
|
|
|
* friend.c (do_friend): Likewise.
|
|
|
|
* method.c (implicitly_declare_fn): Adjust call to grokclassfn.
|
|
|
|
* parser.c (make_call_declarator): Use cp_cv_quals, not tree.
|
|
|
|
(make_pointer_declarator): Likewise.
|
|
|
|
(make_reference_declarator): Likewise.
|
|
|
|
(make_ptrmem_declarator): Likewise.
|
|
|
|
(cp_parser_ptr_operator): Likewise.
|
|
|
|
(cp_parser_cv_qualifier_seq_opt): Likewise.
|
|
|
|
(cp_parser_cv_qualifier_opt): Remove.
|
|
|
|
(cp_parser_new_declarator_opt): Adjust call to
|
|
|
|
cp_parser_ptr_operator.
|
|
|
|
(cp_parser_conversion_declaration_opt): Likewise.
|
|
|
|
(cp_parser_declarator): Use cp_cv_quals, not tree.
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
|
c-common.c (c_safe_from_p, [...]): Deleted.
2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
* c-common.def (DECL_STMT): Remove.
* c-common.h (DECL_STMT_DECL): Deleted.
(COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
(c_safe_from_p, c_walk_subtrees): Deleted.
* c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
* c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
* c-gimplify.c (gimplify_decl_stmt): Deleted.
(gimplify_compound_literal_expr): Use DECL_EXPR_DECL
and gimplify_and_add.
(c_gimplify_expr, case DECL_EXPR): New case.
(c_gimplify_expr, case DECL_STMT): Deleted.
* c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
* expr.c (safe_from_p, case 's'): New case.
* gimplify.c (gimplify_decl_expr): New function.
(gimplify_expr, case DECL_EXPR): New case.
* tree-inline.c (walk_tree): Walk into all fields of a type and
decl only if they are in a DECL_EXPR.
(mark_local_for_remap_r): Minor code cleanup.
* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
* tree.c (has_cleanups, case DECL_EXPR): New case.
* tree.def (DECL_EXPR): New code.
* tree.h (DECL_EXPR_DECL): New macro.
* objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
From-SVN: r83721
2004-06-26 23:11:23 +02:00
|
|
|
2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* call.c, cp-tree.h, cxx-pretty-print.c, decl.c, decl2.c:
|
|
|
|
Rename DECL_STMT to DECL_EXPR.
|
|
|
|
* init.c, name-lookup.c, parser.c, pt.c, semantics.c: Likewise.
|
|
|
|
* cp-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
|
|
|
|
* tree.c (cp_walk_subtrees): Don't call c_walk_subtrees.
|
|
|
|
|
2004-06-26 12:23:05 +02:00
|
|
|
2004-06-26 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
PR C++/14865
|
|
|
|
* decl2.c (maybe_emit_vtables): Always import_export_vtable for the
|
|
|
|
reachability analysis.
|
|
|
|
|
2004-06-25 21:44:49 +02:00
|
|
|
2004-06-25 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-mudflap.c (mflang_flush_calls): Fix thinkos resulting from
|
|
|
|
2004-06-23 change.
|
|
|
|
|
2004-06-25 19:15:46 +02:00
|
|
|
2004-06-25 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
* decl2.c (get_guard): Call targetm.cxx.guard_type.
|
|
|
|
(get_guard_bits, get_guard_cond): Call targetm.cxx.guard_mask_bit.
|
|
|
|
|
2004-06-25 06:48:53 +02:00
|
|
|
2004-06-24 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Restore error messages about __thread.
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Likewise.
|
|
|
|
|
2004-06-24 22:07:23 +02:00
|
|
|
2004-06-24 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/16115
|
|
|
|
* decl.c (grokparms): Give the PARM_DECL reference type if the
|
|
|
|
parameter is passed by invisible reference.
|
|
|
|
|
2004-06-24 11:34:23 +02:00
|
|
|
2004-06-24 Andreas Schwab <schwab@suse.de>
|
|
|
|
|
|
|
|
* cp-tree.h (enum cp_storage_class): Remove trailing comma.
|
|
|
|
|
2004-06-24 08:48:44 +02:00
|
|
|
2004-06-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* Make-lang.in (cp/lex.o): Do not depend on cp/lex.h.
|
|
|
|
(cp/decl.o): Likewise.
|
|
|
|
(cp/decl2.o): Likewise.
|
|
|
|
(cp/pt.o): Likewise.
|
|
|
|
(cp/semantics.o): Likewise.
|
|
|
|
* config-lang.in (gtfiles): Do not reference cp/lex.h.
|
|
|
|
* class.c: Do not include lex.h.
|
|
|
|
(add_implicitly_declared_members): Do not use
|
|
|
|
adding_implicit_members.
|
|
|
|
(check_bases_and_members): Do not talk about grok_x_components.
|
|
|
|
* cp/cp-tree.h (adding_implicit_members): Remove.
|
|
|
|
(cp_storage_class): New type.
|
|
|
|
(cp_decl_spec): Likewise.
|
|
|
|
(cp_decl_specifier_seq): Likewise.
|
|
|
|
(cp_parameter_declarator): Use it for the decl_specifiers field.
|
|
|
|
(check_tag_decl): Adjust prototype.
|
|
|
|
(shadow_tag): Likewise.
|
|
|
|
(groktypename): Likewise.
|
|
|
|
(start_decl): Likewise.
|
|
|
|
(start_function): Likewise.
|
|
|
|
(start_method): Likewise.
|
|
|
|
(grok_x_components): Remove.
|
|
|
|
(grokfield): Adjust prototype.
|
|
|
|
(grokbitfield): Likewise.
|
|
|
|
(finish_member_class_template): Remove.
|
|
|
|
* decl.c: Do not include lex.h.
|
|
|
|
(adding_implicit_members): Do not define.
|
|
|
|
(check_tag_decl): Do not use trees to represent decl-specifiers.
|
|
|
|
(shadow_tag): Likewise.
|
|
|
|
(groktypename): Likewise.
|
|
|
|
(start_decl): Likewise.
|
|
|
|
(grokvardecl): Likewise.
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
(grokparms): Likewise.
|
|
|
|
(start_function): Likewise.
|
|
|
|
(start_method): Likewise.
|
|
|
|
* decl.h (grokdeclarator): Adjust prototype.
|
|
|
|
* decl2.c: Do not include lex.h.
|
|
|
|
(grok_x_components): Remove.
|
|
|
|
(grokfield): Do not use trees to represent decl-specifiers.
|
|
|
|
(grokbitfield): Likewise.
|
|
|
|
* lex.c: Do not include lex.h.
|
|
|
|
* lex.h: Remove.
|
|
|
|
* parser.c: Include target.h.
|
|
|
|
(clear_decl_specs): New function.
|
|
|
|
(cp_parser_translation_unit): Do not use trees to represent
|
|
|
|
decl-specifiers.
|
|
|
|
(cp_parser_postfix_expression): Likewise.
|
|
|
|
(cp_parser_new_type_id): Likewise.
|
|
|
|
(cp_parser_condition): Likewise.
|
|
|
|
(cp_parser_simple_declaration): Likewise.
|
|
|
|
(cp_parser_decl_specifier_seq): Likewise.
|
|
|
|
(cp_parser_function_specifier_opt): Likewise.
|
|
|
|
(cp_parser_conversion_type_id): Likewise.
|
|
|
|
(cp_parser_template_parameter): Likewise.
|
|
|
|
(cp_parser_explicit_instantiation): Likewise.
|
|
|
|
(cp_parser_type_specifier): Likewise.
|
|
|
|
(cp_parser_simple_type_specifier): Likewise.
|
|
|
|
(cp_parser_init_declarator): Likewise.
|
|
|
|
(cp_parser_type_id): Likewise.
|
|
|
|
(cp_parser_type_specifier_seq): Likewise.
|
|
|
|
(cp_parser_parameter_declaration): Likewise.
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
(cp_parser_exception_declaration): Likewise.
|
|
|
|
(cp_parser_function_definition_from_specifiers_and_declarator):
|
|
|
|
Likewise.
|
|
|
|
(cp_parser_single_declaration): Likewise.
|
|
|
|
(cp_parser_save_member_function_body): Likewise.
|
|
|
|
(cp_parser_friend_p): Likewise.
|
|
|
|
(cp_parser_set_storage_class): New function.
|
|
|
|
(cp_parser_set_decl_spec_type): Likewise.
|
|
|
|
* pt.c: Do not include lex.h.
|
|
|
|
* semantics.c: Likewise.
|
2004-07-05 19:28:37 +02:00
|
|
|
(finish_member_class_template): Remove.
|
|
|
|
|
2004-06-24 07:26:07 +02:00
|
|
|
2004-06-23 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
* call.c (build_cxx_call): Don't call expand_tree_builtin. No
|
|
|
|
longer take both "args" and "convert_args" as arguments.
|
|
|
|
(build_op_delete_call): Update call to build_cxx_call.
|
|
|
|
(build_over_call): Likewise, update call to build_cxx_call.
|
|
|
|
* cp-tree.h (build_cxx_call): Update funtion prototype.
|
|
|
|
* typeck.c (build_function_call): Don't call expand_tree_builtin.
|
|
|
|
* rtti.c (throw_bad_cast): Update call to build_cxx_call.
|
|
|
|
(throw_bad_typeid): Likewise.
|
|
|
|
(build_dynamic_cast_1): Likewise.
|
|
|
|
|
2004-06-23 02:26:04 +02:00
|
|
|
2004-06-22 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* class.c (build_vfn_ref): Take a pointer not object. Build
|
|
|
|
an OBJ_TYPE_REF.
|
|
|
|
(cp_fold_obj_type_ref): New.
|
|
|
|
* call.c (build_over_call): Update build_vfn_ref call.
|
|
|
|
* cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
|
|
|
|
* cp-tree.h (cp_fold_obj_type_ref): Declare.
|
|
|
|
|
2004-06-22 23:15:29 +02:00
|
|
|
2004-06-21 Jason Merrill <jason@redhat.com>
|
|
|
|
|
2004-06-22 23:45:54 +02:00
|
|
|
PR c++/16112
|
|
|
|
* cp-gimplify.c (cp_gimplify_init_expr): Look through
|
|
|
|
CLEANUP_POINT_EXPR.
|
2004-06-22 23:15:29 +02:00
|
|
|
|
2004-06-22 09:18:38 +02:00
|
|
|
2004-06-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.def (NEW_EXPR): Add a fourth slot.
|
|
|
|
* cp-tree.h (PARMLIST_ELLIPSIS_P): Remove.
|
|
|
|
(TREE_PARMLIST): Likewise.
|
|
|
|
(CALL_DECLARATOR_PARMS): Likewise.
|
|
|
|
(CALL_DECLARATOR_QUALS): Likewise.
|
|
|
|
(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
|
|
|
|
(cp_declarator_kind): New type.
|
|
|
|
(cp_parameter_declarator): Likewise.
|
|
|
|
(cp_declarator): Likewise.
|
|
|
|
(cp_error_declarator): Likewise.
|
|
|
|
(no_parameters): Likewise.
|
|
|
|
(groktypename): Change prototype.
|
|
|
|
(start_decl): Likewise.
|
|
|
|
(start_handler_parms): Likewise.
|
|
|
|
(get_scope_of_declarator): Likewise.
|
|
|
|
(start_function): Likewise.
|
|
|
|
(start_preparsed_function): New function.
|
|
|
|
(start_function): Change prototype.
|
|
|
|
(start_method): Likewise.
|
|
|
|
(grokfield): Likewise.
|
|
|
|
(grokbitfield): Likewise.
|
|
|
|
(build_new): Likewise.
|
|
|
|
(make_pointer_declarator): Remove.
|
|
|
|
(make_reference_declarator): Likewise.
|
|
|
|
(make_call_declarator): Likewise.
|
|
|
|
(set_quals_and_spec): Likewise.
|
|
|
|
(process_template_parm): Change prototype.
|
|
|
|
(begin_function_definition): Remove.
|
|
|
|
(finish_parmlist): Remove.
|
|
|
|
* decl.c (groktypename): Do not use trees to represent
|
|
|
|
declarators.
|
|
|
|
(start_decl): Likewise.
|
|
|
|
(start_handler_parms): Remove.
|
|
|
|
(get_scope_of_declarator): Reimplement.
|
|
|
|
(grokdeclarator): Do not use trees to represent declarators.
|
|
|
|
(grokparms): Likewise.
|
|
|
|
(start_function): Likewise.
|
|
|
|
(start_method): Likewise.
|
|
|
|
(build_void_list_mode): Do not use TREE_PARMLIST.
|
|
|
|
* decl.h (grokdeclarator): Change prototype.
|
|
|
|
* decl2.c (grok_method_quals): Robustify.
|
|
|
|
(grok_x_components): Do not use trees to represent declarators.
|
|
|
|
(grokfield): Likewise.
|
|
|
|
(grokbitfield): Likewise.
|
|
|
|
(start_objects): Build FUNCTION_DECLs, not declarators.
|
|
|
|
(start_static_storage_duration_function): Likewise.
|
|
|
|
* init.c (build_new): Simplify.
|
|
|
|
* lex.c (make_pointer_declarator): Remove.
|
|
|
|
(make_reference_declarator): Likewise.
|
|
|
|
(make_call_declarator): Likewise.
|
|
|
|
(set_quals_and_spec): Likewise.
|
|
|
|
* method.c (use_thunk): Use start_preparsed_function.
|
|
|
|
(synthesize_method): Likewise.
|
|
|
|
(implicitly_declare_fn): Build FUNCTION_DECLs, not declarators.
|
|
|
|
* optimize.c (maybe_clone_body): Use start_preparsed_function.
|
|
|
|
* parser.c (cp_error_declarator): New variable.
|
|
|
|
(declarator_obstack): Likewise.
|
|
|
|
(alloc_declarator): New function.
|
|
|
|
(make_declarator): Likewise.
|
|
|
|
(make_id_declarator): Likewise.
|
|
|
|
(make_pointer_declarator): Likewise.
|
|
|
|
(make_reference_declarator): Likewise.
|
|
|
|
(make_ptrmem_declarator): Likewise.
|
|
|
|
(make_call_declarator): Likewise.
|
|
|
|
(make_array_declarator): Likewise.
|
|
|
|
(no_parameters): New variable.
|
|
|
|
(make_parameter_declarator): Likewise.
|
|
|
|
(cp_parser_check_for_definition_in_return_type): Do not use trees
|
|
|
|
to represent declarators.
|
|
|
|
(cp_parser_translation_unit): Likewise.
|
|
|
|
(cp_parser_new_expression): Likewise.
|
|
|
|
(cp_parser_new_type_id): Likewise.
|
|
|
|
(cp_parser_new_declarator_opt): Likewise.
|
|
|
|
(cp_parser_direct_new_declarator): Likewise.
|
|
|
|
(cp_parser_condition): Likewise.
|
|
|
|
(cp_parser_declaration_statement): Likewise.
|
|
|
|
(cp_parser_declaration): Likewise.
|
|
|
|
(cp_parser_conversion_type_id): Likewise.
|
|
|
|
(cp_parser_conversion_declarator_opt): Likewise.
|
|
|
|
(cp_parser_template_parameter_list): Likewise.
|
|
|
|
(cp_parser_template_parameter): Likewise.
|
|
|
|
(cp_parser_explicit_instantiation): Likewise.
|
|
|
|
(cp_parser_init_declarator): Likewise.
|
|
|
|
(cp_parser_declarator): Likewise.
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
(cp_parser_type_id): Likewise.
|
|
|
|
(cp_parser_parameter_declaration_clause): Likewise.
|
|
|
|
(cp_parser_parameter_declaration_list): Likewise.
|
|
|
|
(cp_parser_parameter_declaration): Likewise.
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
(cp_parser_exception_declaration): Likewise.
|
|
|
|
(cp_parser_check_declarator_template_parameters): Likewise.
|
|
|
|
(cp_parser_function_definition_from_specifiers_and_declarator):
|
|
|
|
Likewise.
|
|
|
|
(cp_parser_save_member_function_body): Likewise.
|
|
|
|
* pt.c (process_template_parm): Add is_non_type parameter.
|
|
|
|
(convert_template_argument): Adjust call to groktypename.
|
|
|
|
(tsubst_call_declarator_parms): Remove use of TREE_PARMLIST.
|
|
|
|
(tsubst): Do not expect declarators.
|
|
|
|
(tsubst_copy_and_build): Adjust NEW_EXPR case to handle additional
|
|
|
|
argument.
|
|
|
|
(instantiate_decl): Use start_preparsed_function.
|
|
|
|
* semantics.c (begin_function_definition): Remove.
|
|
|
|
(finish_parmlist): Remove.
|
|
|
|
* cp-mudflap.c (mflang_flush_calls): Build FUNCTION_DECLs, not
|
|
|
|
declarators.
|
|
|
|
|
alias.c (adjust_offset_for_component_ref): Use component_ref_field_offset.
* alias.c (adjust_offset_for_component_ref): Use
component_ref_field_offset.
* c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
* c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
(gimplify_decl_stmt): Call gimplify_type_sizes for type.
For decl, call gimplify_one_sizepos and use statement list.
(gimplify_compound_literal_expr): New arg PRE_P.
Add statement to PRE_P list and return DECL.
(c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
gimplify_compound_literal_expr.
* c-tree.h (getdecls): Deleted.
* c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
(build_array_ref): Add two operands for ARRAY_REF.
(build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
COMPOUND_LITERAL_EXPR.
* coverage.c (tree_coverage_counter_ref): Add new operands
for ARRAY_REF.
* emit-rtl.c (component_ref_for_mem_expr): Add new operand
for COMPONENT_REF.
(set_mem_attributes_minus_bitpos): Use array_ref_low_bound
and array_ref_element_size.
(widen_memory_access):Use component_ref_field_offset.
* explow.c (update_nonlocal_goto_save_area): Add two operands
for ARRAY_REF.
* expr.c (array_ref_element_size, array_ref_low_bound): New functions.
(component_ref_field_offset): Likewise.
(get_inner_reference): Use them.
(expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
* fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
(fold_read_from_constant_string): Use array_ref_low_bound.
Verify that result is a character type.
(build_fold_indirect_ref): Add two operands for ARRAY_REF.
* function.c (expand_function_start): Likewise.
* gimple-low.c (expand_var_p): Delete duplicated line.
* gimplify.c: Add static decls for local functions.
(cgraph.h): Now included.
(create_tmp_var): Remove check for ARRAY_TYPE.
(copy_if_shared_r): Look at bounds and sizes of types.
(build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
(gimplify_exit_expr, shortcut_cond_expr): Likewise.
(gimplify_save_expr, gimple_push_cleanup): Likewise.
(gimplify_init_constructor): Likewise.
WANT_VALUE now bool.
If empty list with no result wanted, return GS_UNHANDLED.
Add additional operands for ARRAY_REF and COMPONENT_REF.
(canonicalize_component_ref): Convert to &array[L].
(gimplify_array_ref_to_plus): Use array_ref_element_size and
array_ref_lower_bound.
(build_addr_expr_with_type, build_addr_expr): New functions.
(gimplify_compound_lval): WANT_LVALUE now bool.
Major rework to allow handle_component_p and initialize and
gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
COMPONENT_REF.
(gimplify_array_ref): Deleted.
(gimplify_self_mod_expr): WANT_VALUE now bool.
(gimplify_modify_expr): Gimplify to_p and from_p later.
Factor out code into gimplify_modify_expr_rhs and call twice.
Move variable-size code earlier and handle PLACEHOLDER_EXPR.
(gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
(gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
(gimplify_expr, case ARRAY_REF): Delete special case.
Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
IMAGPART, and REALPART the same way.
(gimplify_expr, case VIEW_CONVERT_EXPR): New case.
(gimplify_expr): Call gimplify_variable_sized_compare if applicable.
Call alloc_stmt_list instead of build_empty_stmt.
Deal with _REF that's volatile.
(gimplify_type_sizes, gimplify_one_sizepos): New functions.
(unshare_body, unvisit_body): New functions.
(gimplify_body): Call them.
* stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
* stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
* tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
* tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
like ARRAY_REF.
(verify_expr, case ADDR_EXPR): Use handled_component_p.
* tree-dfa.c (get_virtual_var): Likewise.
* tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
New cases to dump new operands; likewise for ARRAY_RANGE_REF.
* tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
* tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
and INDIRECT_REF.
(get_base_address): Use handled_component_p.
* tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
* tree-line.c (walk_tree): Walk more things for types and decls.
* tree-mudflap.c (mf_build_check_statement_for): Add new operands
for ARRAY_REF and COMPONENT_REF.
(mx_xform_derefs_1): Clean up usage of decl sizes.
* tree-nested.c (build_addr): Use handled_component_p.
(walk_stmts, case CATCH_EXPR): Add missing "break".
(get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
(finalize_nesting_tree_1): Likewise.
(convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
and process additional operands.
(convert_local_reference): Likewise.
* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
ARRAY_RANGE_REF similarly to ARRAY_REF.
* tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
like RECORD_TYPE.
(dump_generic_node, case COMPONENT_REF): Print offset operand.
(dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
and print lower bound and element size for both.
(op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
* tree-sra.c (csc_build_component_ref): Add new operand.
(scalarize_call_expr): Use get_base_address.
* tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
(maybe_fold_offset_to_array_ref): Rework to handle input having an
ARRAY_REF, refine handling of lower bound, and add new operands
for ARRAY_REF.
(maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
(maybe_fold_stmt_indirect): Only fold *&B to B if types match.
(maybe_fold_stmt_addition): Only handle constant lower bound.
* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
Look at new offset operand of COMPONENT_REF.
* tree-ssa.c (set_is_used): Use handled_component_p.
* tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
(stabilize_reference, case COMPONENT_REF): Likewise.
(stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
(recompute_tree_invariant_for_addr_expr): Completely rework to
be more precise. Also set TREE_SIDE_EFFECTS.
(build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
(build2_stat, build3_stat, build4_stat): For references,
propagate TREE_THIS_VOLATILE.
(get_unwidened): Add new operand for COMPONENT_REF.
(get_narrower): Likewise; use host_integerp for DECL_SIZE.
* tree.def (COMPONENT_REF): Add new operand.
(ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
* tree.h (array_ref_element_size, array_ref_low_bound): New decls.
(component_ref_field_offset): Likewise.
* config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
(alpha_gimplify_va_arg): Likewise.
* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
* config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
* config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
* config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
Likewise.
* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
* config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
* config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
Likewise.
(xstormy16_expand_builtin_va_arg): Likewise.
* config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
* cp/call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
(build_new_method_call): Likewise.
* cp/decl.c (local_variable_p_walkfn): Don't walk into types.
* cp/decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
(build_anon_union_vars): Add new operand for COMPONENT_REF.
* cp/init.c (buld_new): Add new operand for ARRAY_REF.
* cp/method.c (do_build_copy_constructor): New op for COMPONENT_REF.
(do_build_assign_ref): Likewise.
* cp/parser.c (cp_parser_direct_new_declarator): Add new operands
for ARRAY_REF.
(cp_parser_direct_declarator): Likewise.
* cp/pt.c (tsubst): Likewise.
(tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
for COMPONENT_REF.
* cp/semantics.c (finish_non_static_data_member): Add new operand
for COMPONENT_REF.
* cp/typeck.c (build_class_member_access_expr): Likewise.
(build_class_member_access_expr, finish_class_member_access_expr):
Likewise.
(build_ptrmemfunc_access_expr): Likewise.
(build_array_ref): Add new operands for ARRAY_REF.
* cp/typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
* cp/tree.c (count_trees_r, no_linkage_helper): Don't walk in types.
* fortran/f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
* fortran/trans-array.c (gfc_conv_descriptor_data): Add operand
for COMPONENT_REF.
(gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
(gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
(gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
* fortran/trans-common.c (create_common): Likewise.
* fortran/trans-expr.c (gfc_conv_component_ref): Likewise.
* fortran/trans-io.c (set_parameter_value): Likewise.
(set_parameter_ref, set_string, set_flag, io_result): Likewise.
(transfer_expr): Likewise.
* fortran/trans-decl.c (gfc_trans_auto_character_variable):
Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
(gfc_simplify_function): New function.
(gfc_generate_function-code): Properly handle nested functions.
* fortran/trans.c (gfc_build_array_ref): Add two new operands
for ARRAY_REF.
* java/class.c (build_class_ref): Add new operand for COMPONENT_REF.
(build_static_field_ref): Likewise and add new operands for ARRAY_REF.
* java/constants.c (build_ref_from_constant_pool): Likewise.
* java/expr.c (build_java_array_length_access): Likewise.
(build_get_class, build_field_ref, build_known_method_ref): Likewise.
(invoke_build_dtable, build_invokevirtual): Likewise.
(build_invokeinterface, java_expand_expr): Likewise.
(emit_init_test_initialization): Likewise.
* java/java-gimplify.c (java_gimplify_new_array_init): Likewise.
* java/parse.y (make_qualifed_name, build_array_ref): Likewise.
* objc/ojbc-act.c (generate_static_references): Add additional
operands to ARRAY_REF.
(generate_strings, build_method_prototype_list_template): Likewise.
(generate_protocol_list): Likewise.
From-SVN: r83474
2004-06-22 05:07:05 +02:00
|
|
|
2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
|
|
|
|
(build_new_method_call): Likewise.
|
|
|
|
* decl.c (local_variable_p_walkfn): Don't walk into types.
|
|
|
|
* decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
|
|
|
|
(build_anon_union_vars): Add new operand for COMPONENT_REF.
|
|
|
|
* init.c (buld_new): Add new operand for ARRAY_REF.
|
|
|
|
* method.c (do_build_copy_constructor): New op for COMPONENT_REF.
|
|
|
|
(do_build_assign_ref): Likewise.
|
|
|
|
* parser.c (cp_parser_direct_new_declarator): Add new operands
|
|
|
|
for ARRAY_REF.
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
* pt.c (tsubst): Likewise.
|
|
|
|
(tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
|
|
|
|
for COMPONENT_REF.
|
|
|
|
* semantics.c (finish_non_static_data_member): Add new operand
|
|
|
|
for COMPONENT_REF.
|
|
|
|
* typeck.c (build_class_member_access_expr): Likewise.
|
|
|
|
(build_class_member_access_expr, finish_class_member_access_expr):
|
|
|
|
Likewise.
|
|
|
|
(build_ptrmemfunc_access_expr): Likewise.
|
|
|
|
(build_array_ref): Add new operands for ARRAY_REF.
|
|
|
|
* typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
|
|
|
|
* tree.c (count_trees_r, no_linkage_helper): Don't walk in types.
|
|
|
|
|
2004-06-22 01:30:30 +02:00
|
|
|
2004-06-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* dump.c (cp_dump_tree): Don't use dump_next_stmt.
|
|
|
|
* parser.c (cp_parser_jump_statement): Update commentary.
|
|
|
|
* pt.c (tsubst_expr): Use RETURN_EXPR.
|
|
|
|
* semantics.c (finish_return_stmt): Likewise.
|
|
|
|
(finalize_nrv_r): Likewise.
|
|
|
|
* typeck.c, typeck2.c: Update file start commentary.
|
|
|
|
|
2004-06-21 11:15:29 +02:00
|
|
|
2004-06-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* semantics.c (finish_expr_stmt): Call verify_sequence_points.
|
|
|
|
|
2004-06-20 12:10:02 +02:00
|
|
|
2004-06-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* cp-tree.h (add_decl_stmt): Declare.
|
|
|
|
* pt.c (tsubst_copy): Abort for CLEANUP_POINT_EXPR.
|
|
|
|
* semantics.c (maybe_cleanup_point_expr): New.
|
|
|
|
(add_decl_stmt, finish_expr_stmt, finish_return_stmt,
|
|
|
|
finish_for_expr, finish_switch_cond): Use it.
|
|
|
|
(finalize_nrv_r): Don't build an EXPR_STMT. Don't frob TREE_CHAIN.
|
|
|
|
|
c-common.def (IF_STMT, [...]): Move to cp-tree.def.
* c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
* c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
(c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
* c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
* c-pretty-print.c (pp_c_statement): Similarly.
* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
gimplify_if_stmt): Move to cp-gimplify.c.
(c_genericize, c_gimplify_expr): Don't call them.
* c-semantics.c (push_cleanup): Move to cp/semantics.c.
* c-typeck.c (push_cleanup): New.
(c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
c_finish_if_stmt): Use COND_EXPR.
* tree.h (CLEANUP_EH_ONLY): Update documentation.
cp/
* cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def.
* cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c.
(cp_gimplify_expr): Call it.
(gimplify_cleanup_stmt): Move from c-gimplify.c.
(cp_genericize): New.
* decl.c (finish_function): Call it.
* cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT.
(CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h.
(IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise.
(cp_genericize): Declare.
* cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT.
* dump.c (cp_dump_tree): Likewise.
* semantics.c (push_cleanup): Move from c-semantics.c.
From-SVN: r83407
2004-06-20 11:18:13 +02:00
|
|
|
2004-06-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def.
|
|
|
|
* cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c.
|
|
|
|
(cp_gimplify_expr): Call it.
|
|
|
|
(gimplify_cleanup_stmt): Move from c-gimplify.c.
|
|
|
|
(cp_genericize): New.
|
|
|
|
* decl.c (finish_function): Call it.
|
|
|
|
* cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT.
|
|
|
|
(CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h.
|
|
|
|
(IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise.
|
|
|
|
(cp_genericize): Declare.
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT.
|
|
|
|
* dump.c (cp_dump_tree): Likewise.
|
|
|
|
* semantics.c (push_cleanup): Move from c-semantics.c.
|
|
|
|
|
2004-06-20 10:34:54 +02:00
|
|
|
2004-06-20 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-lang.c (has_c_linkage): Implement.
|
|
|
|
|
|
|
|
* cp-tree.h (set_mangled_name_for_decl): Don't prototype.
|
|
|
|
* decl.c (duplicate_decls): Use COPY_DECL_RTL.
|
|
|
|
(builtin_function_1): Don't call make_decl_rtl.
|
|
|
|
(build_cp_library_fn): Don't call set_mangled_name_for_decl.
|
|
|
|
(grokvardecl): Don't call mangle_decl.
|
|
|
|
* except.c (nothrow_libfn_p): Look at DECL_NAME, not
|
|
|
|
DECL_ASSEMBLER_NAME.
|
|
|
|
* method.c (set_mangled_name_for_decl): Delete.
|
|
|
|
* name-lookup.c (pushdecl): When a local extern shadows a
|
|
|
|
file-scope declaration of the same object, give both DECLs the
|
|
|
|
same DECL_UID.
|
|
|
|
* typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE
|
|
|
|
on DECL_ASSEMBLER_NAME.
|
|
|
|
|
2004-06-19 21:34:23 +02:00
|
|
|
2004-06-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* cp-gimplify.c: Remove unnecessary prototypes.
|
|
|
|
(cp_gimplify_stmt): Merge into ...
|
|
|
|
(cp_gimplify_expr): ... here. Move to end of file. Handle
|
|
|
|
stmts_are_full_exprs_p frobbing.
|
|
|
|
* cp-tree.h (cp_gimplify_stmt): Remove.
|
|
|
|
* pt.c (tsubst_expr): Merge prep_stmt and unify.
|
|
|
|
* tree.c (init_tree): Don't set lang_gimplify_stmt.
|
|
|
|
|
2004-06-19 00:51:57 +02:00
|
|
|
2004-06-18 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR c++/16034
|
|
|
|
* semantics.c (begin_cond): New.
|
|
|
|
(finish_cond): Rewrite to handle template DECL_STMTs specially.
|
|
|
|
Assume that non-template decls go land before the conditional.
|
|
|
|
(simplify_loop_decl_cond): Likewise.
|
2004-06-20 10:34:54 +02:00
|
|
|
(begin_if_stmt, finish_if_stmt_cond, begin_while_stmt,
|
2004-06-19 00:51:57 +02:00
|
|
|
finish_while_stmt_cond, finish_for_init_stmt, finish_for_cond,
|
|
|
|
begin_switch_stmt, finish_switch_cond): Update to match.
|
|
|
|
|
2004-06-18 00:35:55 +02:00
|
|
|
2004-06-17 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/16015
|
|
|
|
* semantics.c (simplify_aggr_init_expr): Don't return the slot.
|
|
|
|
(finish_stmt_expr_expr): Update type after conversions.
|
|
|
|
(finish_stmt_expr): Wrap initializer in CLEANUP_POINT_EXPR.
|
|
|
|
Handle void initializer.
|
|
|
|
* tree.c (build_cplus_new): Make AGGR_INIT_EXPRs void.
|
|
|
|
|
2004-06-17 23:11:38 +02:00
|
|
|
2004-06-17 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* class.c (build_clone): Don't call defer_fn, let mark_used do it.
|
|
|
|
* cp-tree.h (defer_fn): Delete.
|
|
|
|
* decl2.c (defer_fn): Delete.
|
|
|
|
(finish_file): Simplify deferred_fns loops; check that
|
|
|
|
only used inline functions get into deferred_fns.
|
|
|
|
(mark_used): Inline previous contents of defer_fn.
|
|
|
|
|
2004-06-17 03:24:06 +02:00
|
|
|
2004-06-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill.
|
|
|
|
(BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New.
|
|
|
|
* cxx-pretty-print.c (pp_cxx_function_definition): Move handling
|
|
|
|
of CTOR_INITIALIZER ...
|
|
|
|
(pp_cxx_statement): ... here.
|
|
|
|
* decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK.
|
|
|
|
(finish_function): Use alloc_stmt_list to zap entire function.
|
|
|
|
* parser.c (cp_parser_compound_statement): Update commentary.
|
|
|
|
* pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT.
|
|
|
|
* semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise.
|
|
|
|
(finish_stmt_expr): Don't look through COMPOUND_STMT.
|
|
|
|
|
2004-06-17 00:07:03 +02:00
|
|
|
2004-06-16 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* pt.c (mark_decl_instantiated): Don't call defer_fn.
|
|
|
|
|
2004-06-16 22:51:46 +02:00
|
|
|
2004-06-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_labeled_statement): Update commentary.
|
|
|
|
* pt.c (tsubst_expr): Use CASE_LABEL_EXPR.
|
|
|
|
* tree.c (mark_local_for_remap_r): Likewise.
|
|
|
|
|
2004-06-16 22:23:02 +02:00
|
|
|
2004-06-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_asm_definition): Update commentary.
|
|
|
|
* pt.c (tsubst_expr): Use ASM_EXPR.
|
|
|
|
* semantics.c (finish_asm_stmt): Likewise.
|
|
|
|
|
2004-06-16 20:21:20 +02:00
|
|
|
2004-06-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* decl.c (finish_destructor_body): Use LABEL_EXPR.
|
|
|
|
* parser.c (cp_parser_statement): Update commentary.
|
|
|
|
* pt.c (tsubst_expr): Use LABEL_EXPR, GOTO_EXPR.
|
|
|
|
* semantics.c (finish_goto_stmt, finish_label_stmt): Likewise.
|
|
|
|
* tree.c (mark_local_for_remap_r): Likewise.
|
|
|
|
|
2004-06-16 19:59:07 +02:00
|
|
|
2004-06-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR c++/16012
|
|
|
|
* semantics.c (begin_for_stmt, begin_for_stmt): Do put the init
|
|
|
|
statement in FOR_INIT_STMT for templates.
|
|
|
|
|
c-common.c (lang_gimplify_stmt): Remove next_p argument.
* c-common.c (lang_gimplify_stmt): Remove next_p argument.
(if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
(finish_fname_decls, fname_decl): Use statement_lists.
(c_expand_expr_stmt): Don't set last_expr_type.
(c_type_hash): Fix indentation.
(c_safe_from_p): Don't follow TREE_CHAIN.
(c_tree_chain_matters_p): Remove.
* c-common.def (SCOPE_STMT): Remove.
(CLEANUP_STMT): Redefine to contain its own body.
* c-common.h (struct stmt_tree_s): Remove x_last_stmt,
x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
Add x_cur_stmt_list.
(last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
(cur_stmt_list): New.
(STATEMENT_LIST_STMT_EXPR): New.
(SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
(CLEANUP_BODY): New.
(CLEANUP_DECL): Move to operand 2.
(c_common_stmt_codes): Remove SCOPE_STMT.
(COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
* c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
(c_push_function_context, c_pop_function_context): Don't save it.
(finish_decl): Set TREE_USED on the decl for a cleanup.
Use push_cleanup.
(store_parm_decls): Use statement lists.
(finish_function): Remove compstmt rule workaround. Use statement
lists. Call finish_fname_decls after finalizing the body.
(c_begin_compound_stmt): Move to c-typeck.c.
* c-dump.c (c_dump_tree): Remove SCOPE_STMT.
* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
(c_genericize): Invoke them.
(c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
(c_build_bind_expr): Export.
(gimplify_block, gimplify_cleanup): Remove.
(gimplify_condition): Use gimplify_stmt.
(gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
(gimplify_if_stmt): Remove recursion hack.
(c_gimplify_expr): Remove STMT_EXPR handling.
(stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
(is_last_stmt_of_scope): Remove.
* c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
* c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
c_end_compound_stmt.
* c-objc-common.c (build_cdtor): Likewise.
* c-parse.in (primary): Use c_finish_stmt_expr.
(push_scope, pop_scope): Remove.
(c99_block_start, compstmt_start): Use c_begin_compound_stmt.
(c99_block_end, compstmt): Use c_end_compound_stmt.
(c99_block_lineno_labeled_stmt): Likewise.
(compstmt_primary_start): Use c_begin_stmt_expr.
(simple_if, select_or_iter_stmt): Update calls to stmt builders.
(do_stmt_start): Fill in body directly.
(lineno_stmt): Avoid setting lineno on constants.
* c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
Remove SCOPE_STMT.
* c-semantics.c (begin_stmt_tree): Remove.
(push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
(add_stmt): Use statement lists.
(add_scope_stmt, finish_stmt_tree): Remove.
(push_cleanup): New.
* c-tree.h: Move some decls from c-common.h.
* c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
(do_case, c_finish_case): Likewise.
(c_finish_then): Take body for then as argument.
(c_finish_else): Similarly.
(c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
c_finish_for_stmt_incr, c_finish_for_stmt): New.
(c_begin_stmt_expr, c_finish_stmt_expr): New.
(c_begin_compound_stmt): Do scope management.
(c_end_compound_stmt): New.
* fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
* gimplify.c (voidify_wrapper_expr): Accept temporary argument.
Look through exception handling constructs.
(gimplify_bind_expr): Accept temporary argument.
(gimplify_target_expr): Special case BIND_EXPR bodies.
(gimplify_expr): Handle fallback == fb_none like a statement.
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
* langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
* langhooks.h (tree_chain_matters_p): Remove.
* stub-objc.c (objc_clear_super_receiver): New.
* tree-gimple.h (voidify_wrapper_expr): Update decl.
(append_to_statement_list, append_to_statement_list_force): Move
to tree-iterator.h.
* tree-inline.c (expand_call_inline): Update call.
(clone_body): Use statement lists.
(walk_tree): Don't check tree_chain_matters_p.
(copy_tree_r): Likewise.
* tree-iterator.c (alloc_stmt_list): Clear lang bits.
(tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
* tree-iterator.h (append_to_statement_list,
append_to_statement_list_force): Moved from tree-gimple.h.
* tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
* objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
(objc_enter_block): Likewise.
(objc_exit_block): Use c_end_compound_stmt.
(objc_build_try_enter_fragment): Add #error and comment for
rewriting for OBJCPLUS.
(objc_build_extract_fragment, objc_build_try_epilogue,
objc_build_catch_stmt, objc_build_finally_prologue,
objc_build_finally_epilogue): Update for C statement builders.
* objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
Remove.
cp/
* call.c (initialize_reference): Don't build CLEANUP_STMT here.
* cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
(genericize_try_block): Use gimplify_stmt.
(genericize_catch_block, genericize_eh_spec_block): Likewise.
(cp_gimplify_init_expr): Remove STMT_EXPR special case.
(gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
* cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
(cp_tree_chain_matters_p): Remove.
* cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
(COMPOUND_STMT_BODY_BLOCK): New.
(STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
(EXPR_STMT_STMT_EXPR_RESULT): New.
(building_stmt_tree): Check cur_stmt_list.
(tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
(BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
* decl.c (poplevel): Use pop_stmt_list for minding cleanups.
(cp_finish_decl): Use push_cleanup.
(start_function, finish_function): Use statement lists.
(finish_stmt): Do nothing.
* except.c (begin_eh_spec_block): Use statement lists.
(check_handlers_1, check_handlers): Likewise.
* init.c (construct_virtual_base): Don't add extra compound stmts.
(build_vec_init): Likewise.
* name-lookup.c (maybe_push_cleanup_level): Use statement lists.
* name-lookup.h (struct cp_binding_level): Add statement_list.
* parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
(cp_parser_labeled_statement, cp_parser_expression_statement,
cp_parser_statement_seq_opt): Likewise.
(cp_parser_compound_statement): Likewise. Take bool for try block.
(cp_parser_selection_statement): Tidy if processing.
(cp_parser_already_scoped_statement): Rewrite to do what it says.
* pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
(tsubst_expr): Rewrite STMT_EXPR processing. Handle STATEMENT_LIST.
Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
* semantics.c (do_poplevel, do_pushlevel): Use statement lists.
(finish_cond): New, rewritten from FINISH_COND.
(simplify_loop_decl_cond): New.
(finish_expr_stmt): Avoid nested EXPR_STMTs.
(begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
begin_else_clause, finish_else_clause, finish_if_stmt,
begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
finish_for_cond, finish_for_stmt, begin_switch_stmt,
finish_switch_cond, finish_switch_stmt, begin_try_block,
finish_try_block, finish_cleanup_try_block, finish_function_try_block,
finish_handler_sequence, finish_function_handler_sequence,
begin_handler, finish_handler_parms, finish_handler,
begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
using statement lists.
(begin_compound_stmt): Replace has_no_scope argument with flags.
Update all callers. Use statement lists.
(finish_compound_stmt): Likewise.
(finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
(current_scope_stmt_stack): Remove.
(simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
* typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
Rewrite with statement lists.
testsuite/
* g++.dg/ext/stmtexpr1.C: XFAIL.
* gcc.dg/20030612-1.c: XFAIL.
From-SVN: r83221
2004-06-16 03:21:38 +02:00
|
|
|
2004-06-15 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* call.c (initialize_reference): Don't build CLEANUP_STMT here.
|
|
|
|
* cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
|
|
|
|
(genericize_try_block): Use gimplify_stmt.
|
|
|
|
(genericize_catch_block, genericize_eh_spec_block): Likewise.
|
|
|
|
(cp_gimplify_init_expr): Remove STMT_EXPR special case.
|
|
|
|
(gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
|
|
|
|
* cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
|
|
|
|
(cp_tree_chain_matters_p): Remove.
|
|
|
|
* cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
|
|
|
|
(COMPOUND_STMT_BODY_BLOCK): New.
|
|
|
|
(STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
|
|
|
|
(EXPR_STMT_STMT_EXPR_RESULT): New.
|
|
|
|
(building_stmt_tree): Check cur_stmt_list.
|
|
|
|
(tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
|
|
|
|
(BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
|
|
|
|
* decl.c (poplevel): Use pop_stmt_list for minding cleanups.
|
|
|
|
(cp_finish_decl): Use push_cleanup.
|
|
|
|
(start_function, finish_function): Use statement lists.
|
|
|
|
(finish_stmt): Do nothing.
|
|
|
|
* except.c (begin_eh_spec_block): Use statement lists.
|
|
|
|
(check_handlers_1, check_handlers): Likewise.
|
|
|
|
* init.c (construct_virtual_base): Don't add extra compound stmts.
|
|
|
|
(build_vec_init): Likewise.
|
|
|
|
* name-lookup.c (maybe_push_cleanup_level): Use statement lists.
|
|
|
|
* name-lookup.h (struct cp_binding_level): Add statement_list.
|
|
|
|
* parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
|
|
|
|
(cp_parser_labeled_statement, cp_parser_expression_statement,
|
|
|
|
cp_parser_statement_seq_opt): Likewise.
|
|
|
|
(cp_parser_compound_statement): Likewise. Take bool for try block.
|
|
|
|
(cp_parser_selection_statement): Tidy if processing.
|
|
|
|
(cp_parser_already_scoped_statement): Rewrite to do what it says.
|
|
|
|
* pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
|
|
|
|
(tsubst_expr): Rewrite STMT_EXPR processing. Handle STATEMENT_LIST.
|
|
|
|
Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
|
|
|
|
* semantics.c (do_poplevel, do_pushlevel): Use statement lists.
|
|
|
|
(finish_cond): New, rewritten from FINISH_COND.
|
|
|
|
(simplify_loop_decl_cond): New.
|
|
|
|
(finish_expr_stmt): Avoid nested EXPR_STMTs.
|
|
|
|
(begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
|
|
|
|
begin_else_clause, finish_else_clause, finish_if_stmt,
|
|
|
|
begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
|
|
|
|
begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
|
|
|
|
finish_for_cond, finish_for_stmt, begin_switch_stmt,
|
|
|
|
finish_switch_cond, finish_switch_stmt, begin_try_block,
|
|
|
|
finish_try_block, finish_cleanup_try_block, finish_function_try_block,
|
|
|
|
finish_handler_sequence, finish_function_handler_sequence,
|
|
|
|
begin_handler, finish_handler_parms, finish_handler,
|
|
|
|
begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
|
|
|
|
using statement lists.
|
|
|
|
(begin_compound_stmt): Replace has_no_scope argument with flags.
|
|
|
|
Update all callers. Use statement lists.
|
|
|
|
(finish_compound_stmt): Likewise.
|
|
|
|
(finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
|
|
|
|
(current_scope_stmt_stack): Remove.
|
|
|
|
(simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
|
|
|
|
* typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
|
|
|
|
Rewrite with statement lists.
|
|
|
|
|
2004-06-15 23:43:21 +02:00
|
|
|
2004-06-15 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
* parser.c: Change all assignments of c_lex_string_translate
|
|
|
|
to true and false to 1 and 0.
|
|
|
|
(cp_lexer_read_token): Convert type of the translated string.
|
|
|
|
(cp_parser_skip_to_closing_parentheses): Preserve original
|
|
|
|
value of c_lex_string_translate, and set it to -1 while
|
|
|
|
running.
|
|
|
|
(cp_parser_cache_group): Likewise.
|
|
|
|
(cp_parser_cache_group_1): Renamed.
|
|
|
|
(cp_parser_asm_operand_list): Remove redundant setting of
|
|
|
|
c_lex_string_translate.
|
|
|
|
(cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]:
|
|
|
|
Handle chained strings.
|
|
|
|
|
2004-06-15 22:52:00 +02:00
|
|
|
2004-06-12 Andrew Pinski <apinski@apple.com>
|
|
|
|
|
|
|
|
PR c++/14639
|
|
|
|
Revert:
|
|
|
|
2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* cp-tree.h: Fix typo.
|
|
|
|
|
|
|
|
* cp-tree.h: Include cgraph.h
|
2004-06-20 10:34:54 +02:00
|
|
|
(DECL_NEEDED_P): Use cgraph_*node on the decl instead of
|
2004-06-15 22:52:00 +02:00
|
|
|
TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.
|
|
|
|
|
2004-06-15 22:38:40 +02:00
|
|
|
2004-06-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR tree-optimization/14107
|
|
|
|
* decl.c (finish_function): Warn about no return in all functions.
|
|
|
|
|
2004-06-15 14:46:07 +02:00
|
|
|
2004-06-15 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* cp-tree.h (struct language_function): Remove cannot_inline.
|
|
|
|
* decl.c (save_function_data): cannot_inline is no more.
|
|
|
|
(cxx_push_function_context): Likewise.
|
|
|
|
* decl2.c (start_objects, start_static_storage_duration_function):
|
|
|
|
Reset DECL_INLINE, set DECL_UNINLINABLE.
|
|
|
|
|
2004-06-15 03:46:21 +02:00
|
|
|
2004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/15967
|
|
|
|
* search.c (lookup_field): Propagate the ambiguity list.
|
|
|
|
(lookup_fnfields): Likewise.
|
|
|
|
|
2004-06-15 02:24:47 +02:00
|
|
|
2004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/15947
|
|
|
|
* parser.c (cp_parser_template_name): Ctors/dtors never need a
|
|
|
|
template keyword to disambiguate.
|
|
|
|
|
2004-06-14 17:58:54 +02:00
|
|
|
2004-06-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15096
|
|
|
|
* decl.c (grokdeclarator): Ignore pointer-to-members when
|
|
|
|
computing template depth.
|
|
|
|
|
|
|
|
PR c++/14930
|
|
|
|
* name-lookup.c (pushtag): Do not try to put class declarations in
|
|
|
|
explicit specialization scopes.
|
|
|
|
|
2004-06-13 23:41:45 +02:00
|
|
|
2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Do not depend on C99's _Bool's behavior.
|
|
|
|
|
2004-06-11 20:14:52 +02:00
|
|
|
2004-06-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15862
|
|
|
|
* name-lookup.c (unqualified_namespace_lookup): Do not ignore type
|
|
|
|
bindings for undeclared built-ins.
|
|
|
|
|
2004-06-11 05:11:07 +02:00
|
|
|
2004-06-11 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
* typeck2.c (abstract_virtual_errors): Reword diagnostics, make them
|
|
|
|
appear at the correct location.
|
|
|
|
|
2004-06-10 20:28:53 +02:00
|
|
|
2004-06-10 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/15875
|
|
|
|
Revert:
|
|
|
|
2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
* init.c (build_offset_ref): Build SCOPE_REF with non-null
|
|
|
|
TREE_TYPE for non-dependent names.
|
|
|
|
* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
|
|
|
|
unknown_type_node as its TREE_TYPE.
|
|
|
|
* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
|
|
|
|
* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
|
|
|
|
(dump_expr) <SCOPE_REF case>: Likewise.
|
|
|
|
|
2004-06-10 16:26:23 +02:00
|
|
|
2004-06-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15227
|
|
|
|
* parser.c (cp_parser_direct_declarator): Robustify.
|
|
|
|
|
|
|
|
PR c++/15877
|
|
|
|
* pt.c (tsubst_copy): Use decl_constant_value on enumeration
|
|
|
|
constants in non-dependent contexts.
|
|
|
|
|
|
|
|
PR c++/14211
|
|
|
|
PR c++/15076
|
|
|
|
* typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
|
|
|
|
necessary.
|
|
|
|
|
2004-06-10 10:11:29 +02:00
|
|
|
2004-06-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/14791
|
|
|
|
* decl.c (duplicate_decls): Handle fileptr_type_node arguments
|
|
|
|
specially.
|
|
|
|
|
2004-06-09 20:34:05 +02:00
|
|
|
2004-06-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
PR c++/15815
|
|
|
|
2004-06-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
* lex.c (handle_pragma_interface): Deprecate.
|
|
|
|
(handle_pragma_implementation): Likewise.
|
|
|
|
|
2004-06-09 19:54:17 +02:00
|
|
|
2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* g++spec.c (lang_specific_driver): Remove check for -lm
|
|
|
|
and -lmath when check it see if it was the math library.
|
|
|
|
|
2004-06-08 05:24:37 +02:00
|
|
|
2004-06-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/7841
|
|
|
|
* parser.c (cp_parser_direct_declarator): Reject constructor named
|
|
|
|
as qualified template-id.
|
|
|
|
|
2004-06-07 21:23:28 +02:00
|
|
|
2004-06-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15815
|
|
|
|
* lex.c (handle_pragma_interface): Deprecate.
|
|
|
|
(handle_pragma_implementation): Likewise.
|
|
|
|
|
2004-06-07 17:54:15 +02:00
|
|
|
2004-06-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15766
|
|
|
|
* parser.c (cp_parser_iteration_statement): Fix typo in error
|
|
|
|
message.
|
|
|
|
|
|
|
|
PR c++/14777
|
|
|
|
* pt.c (tsubst_default_argument): Do not defer access checks
|
|
|
|
while substituting into the default argument.
|
|
|
|
|
|
|
|
PR c++/15554
|
|
|
|
* pt.c (tsubst_copy): Do not try to substitute for an enumeration
|
2004-06-20 10:34:54 +02:00
|
|
|
constant in a non-dependent context.
|
|
|
|
|
2004-06-07 17:54:15 +02:00
|
|
|
PR c++/15057
|
|
|
|
* except.c (build_throw): Ensure that temp_expr has been
|
|
|
|
initialized.
|
|
|
|
|
2004-06-07 04:10:55 +02:00
|
|
|
2004-06-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
* cp/cp-tree.h (lvalue_or_else): Add function prototype.
|
|
|
|
|
2004-06-06 04:08:18 +02:00
|
|
|
2004-06-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/15503
|
|
|
|
* parser.c (cp_parser_mem_initializer_id): Gracefully reject
|
|
|
|
'typename', and accept 'template'.
|
|
|
|
|
2004-06-04 01:45:46 +02:00
|
|
|
2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
PR c++/14639
|
|
|
|
* method.c (use_think): Do not mark thunk as referenced.
|
|
|
|
|
2004-06-04 01:15:01 +02:00
|
|
|
2004-06-03 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
PR c++/15428
|
|
|
|
* decl2.c (maybe_emit_vtables): If TARGET_WEAK_NOT_IN_ARCHIVE_TOC
|
|
|
|
is nonzero, and if we see a noninline definition of a key method,
|
|
|
|
make the vtables nonweak.
|
2004-06-20 10:34:54 +02:00
|
|
|
|
2004-06-02 23:12:54 +02:00
|
|
|
2004-06-02 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
* cp-tree.h (instantiate_decl): new boolean parameter,
|
|
|
|
undefined_ok. Current behavior is equivalent to its being 0.
|
|
|
|
* decl2.c (mark_used): Add new argument when calling instantiate_decl
|
|
|
|
* pt.c (mark_decl_instantiated): Unconditionally make
|
|
|
|
instantiations explicit unconditionally
|
|
|
|
(do_decl_instantiation): Don't call SET_DECL_EXPLICIT_INSTANTIATION,
|
|
|
|
since mark_decl_instantiated now does it.
|
|
|
|
(instantiate_class_member): New. Instantiate a member of an
|
|
|
|
explicitly instantiated class template.
|
|
|
|
(do_type_instantiation): Explicitly instantiate members of an
|
|
|
|
explicitly instantiated class template.
|
|
|
|
(instantiate_decl): if undefined_ok is nonzero, and if we're
|
|
|
|
trying to explicitly instantiated a template with no definition,
|
|
|
|
change it to an implicit instantiation.
|
|
|
|
(instantiate_pending_templates): Add new argument to instantiate_decl.
|
|
|
|
* tree.c (cp_cannot_inline_tree_fn): Likewise.
|
2004-06-20 10:34:54 +02:00
|
|
|
|
2004-06-02 21:20:03 +02:00
|
|
|
2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
2004-06-02 22:24:30 +02:00
|
|
|
* cp-tree.h: Fix typo.
|
|
|
|
|
2004-06-02 21:20:03 +02:00
|
|
|
* cp-tree.h: Include cgraph.h
|
|
|
|
(DECL_NEEDED_P): Use cgraph_*node on the decl instead of
|
|
|
|
TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.
|
|
|
|
|
2004-06-01 22:28:38 +02:00
|
|
|
2004-06-01 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/15142
|
|
|
|
* call.c (call_builtin_trap): Remove type parm.
|
|
|
|
(convert_arg_to_ellipsis): Change a non-POD argument to integer type.
|
|
|
|
(build_x_va_arg): Dereference a null pointer for a non-POD argument.
|
|
|
|
|
2004-06-01 17:51:56 +02:00
|
|
|
2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/13092
|
|
|
|
* init.c (build_offset_ref): Build SCOPE_REF with non-null
|
|
|
|
TREE_TYPE for non-dependent names.
|
|
|
|
* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
|
|
|
|
unknown_type_node as its TREE_TYPE.
|
|
|
|
* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
|
|
|
|
* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
|
|
|
|
(dump_expr) <SCOPE_REF case>: Likewise.
|
|
|
|
|
2004-06-01 17:12:23 +02:00
|
|
|
2004-06-01 Richard Henderson <rth@redhat.com>
|
|
|
|
Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* lex.c (reswords): Rename "__offsetof" to "__builtin_offsetof".
|
|
|
|
* parser.c (struct cp_parser): Remove in_offsetof.
|
|
|
|
(cp_parser_new): Don't set it.
|
|
|
|
(cp_parser_unary_expression): Don't check it.
|
|
|
|
(cp_parser_postfix_open_square_expression): Split out from ...
|
|
|
|
(cp_parser_postfix_expression): ... here.
|
|
|
|
(cp_parser_postfix_dot_deref_expression): Likewise.
|
|
|
|
(cp_parser_builtin_offsetof): New.
|
|
|
|
(cp_parser_primary_expression): Use it.
|
|
|
|
|
2004-06-01 12:22:11 +02:00
|
|
|
2004-06-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14932
|
|
|
|
* parser.c (cp_parser_postfix_expression): Allow subscript
|
|
|
|
operator in offsetof.
|
|
|
|
|
2004-06-01 00:48:30 +02:00
|
|
|
2004-05-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15701
|
|
|
|
* friend.c (add_friend): Do not try to perform access checks for
|
|
|
|
functions from dependent classes.
|
|
|
|
|
2004-05-31 17:25:51 +02:00
|
|
|
2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_colon_colon): Expor.
|
|
|
|
(pp_cxx_begin_template_argument_list): Turn into a function.
|
|
|
|
(pp_cxx_end_template_argument_list): Likewise.
|
|
|
|
(pp_cxx_separate_with): Define.
|
|
|
|
(pp_cxx_unqualified_id): Tidy.
|
|
|
|
(pp_cxx_primary_expression): Likewise.
|
|
|
|
(pp_cxx_postfix_expression): Likewise.
|
|
|
|
(pp_cxx_expression): Likewise.
|
|
|
|
(pp_cxx_simple_type_specifier): Likewise.
|
|
|
|
(pp_cxx_type_specifier_seq): Likewise.
|
|
|
|
(pp_cxx_parameter_declaration_clause): Likewise.
|
|
|
|
(pp_cxx_exception_specification): Likewise.
|
|
|
|
(pp_cxx_direct_declarator): Likewise.
|
|
|
|
(pp_cxx_type_id): Likewise.
|
|
|
|
* cxx-pretty-print.h (pp_cxx_whitespace): Export from
|
|
|
|
cxx-pretty-print.c.
|
|
|
|
(pp_cxx_left_paren): Likewise.
|
|
|
|
(pp_cxx_right_paren): Likewise.
|
|
|
|
(pp_cxx_left_brace): Likewise.
|
|
|
|
(pp_cxx_right_brace): Likewise.
|
|
|
|
(pp_cxx_left_bracket): Likewise.
|
|
|
|
(pp_cxx_right_bracket): Likewise.
|
|
|
|
(pp_cxx_dot): Likewise.
|
|
|
|
(pp_cxx_identifier): Likewise.
|
|
|
|
(pp_cxx_tree_identifier): Likewise.
|
|
|
|
(pp_cxx_ampersand): New macro.
|
|
|
|
(pp_cxx_star): Likewise.
|
|
|
|
(pp_cxx_arrow): Likewise.
|
|
|
|
(pp_cxx_semicolon): Likewise.
|
|
|
|
(pp_cxx_complement): Likewise.
|
|
|
|
(pp_cxx_begin_template_argument_list): Declaree.
|
|
|
|
(pp_cxx_end_template_argument_list): Likewise.
|
|
|
|
(pp_cxx_colon_colon): likewise.
|
|
|
|
|
2004-05-31 16:59:00 +02:00
|
|
|
2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_simple_type_specifier): Explicitly test
|
|
|
|
against NULL_TREE.
|
|
|
|
|
2004-05-31 10:42:32 +02:00
|
|
|
2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* call.c, class.c, cp-tree.def, decl2.c, name-lookup.c, pt.c,
|
|
|
|
typeck.c: Fix comment formatting.
|
|
|
|
|
2004-05-31 01:53:32 +02:00
|
|
|
2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* cp-lang.c (cp_expand_decl): Remove.
|
|
|
|
(LANG_HOOKS_EXPAND_DECL): Use c_expand_decl.
|
|
|
|
|
2004-05-30 20:04:30 +02:00
|
|
|
2004-05-30 Andreas Jaeger <aj@suse.de>
|
|
|
|
|
|
|
|
* lang-specs.h: Add missing initializers for .ii.
|
|
|
|
|
2004-05-28 23:58:15 +02:00
|
|
|
2004-05-28 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
* decl.c (cp_make_fname_decl): Free return value from
|
|
|
|
fname_as_string.
|
|
|
|
|
2004-05-29 00:35:50 +02:00
|
|
|
2004-05-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15083
|
|
|
|
* decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
|
|
|
|
even in a templat.e
|
|
|
|
* init.c (build_new): Likewise.
|
|
|
|
|
|
|
|
PR c++/15640
|
|
|
|
* name-lookup.c (arg_assoc): Robustify.
|
|
|
|
|
|
|
|
PR c++/15471
|
|
|
|
* typeck.c (unary_complex_lvalue): Use context_for_name_lookup
|
|
|
|
when determining the scope to use for a pointer to member.
|
2004-05-29 01:34:39 +02:00
|
|
|
(lookup_anon_field): Give it external linkage.
|
|
|
|
* cp-tree.h (lookup_anon_field): Declare it.
|
|
|
|
* expr.c (cplus_expand_constant): Use it.
|
2004-05-29 00:35:50 +02:00
|
|
|
|
2004-05-28 22:17:18 +02:00
|
|
|
2004-05-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14668
|
|
|
|
* parser.c (cp_parser_simple_type_specifier): Call
|
|
|
|
maybe_note_name_used_in_class.
|
|
|
|
|
2004-05-28 19:02:05 +02:00
|
|
|
2004-05-28 Tom Marshall <tmarshall@real.com>
|
2004-05-28 19:01:20 +02:00
|
|
|
|
|
|
|
PR c++/15214
|
|
|
|
* class.c (finish_struct_1): Warn only if the dtor is non-private or
|
|
|
|
the class has friends.
|
|
|
|
|
2004-05-27 21:08:57 +02:00
|
|
|
2004-05-27 Adam Nemet <anemet@lnxw.com>
|
|
|
|
|
|
|
|
PR c++/12883
|
|
|
|
* decl.c (complete_array_type): Set TYPE_NEEDS_CONSTRUCTING and
|
|
|
|
TYPE_HAS_NONTRIVIAL_DESTRUCTOR based on the underlying type.
|
|
|
|
|
2004-05-24 23:07:42 +02:00
|
|
|
2004-05-24 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* method.c (implicitly_declare_fn): Don't call defer_fn; abort
|
|
|
|
if it might be needed.
|
|
|
|
* pt.c (mark_decl_instantiated): Only call defer_fn if
|
|
|
|
the function actually needs processing in finish_file.
|
|
|
|
* decl2.c (finish_file): Add check that elements in
|
|
|
|
deferred_fns_used are really needed there. Remove unnecessary
|
|
|
|
test of DECL_SAVED_TREE.
|
|
|
|
|
2004-05-24 12:50:45 +02:00
|
|
|
2004-05-23 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* Make-lang.in: No need to specify $(LIBCPP).
|
|
|
|
|
2004-05-24 04:29:34 +02:00
|
|
|
2004-05-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15044
|
|
|
|
* parser.c (cp_parser_class_head): Robustify.
|
|
|
|
|
|
|
|
PR c++/15317
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Correct error in
|
|
|
|
comment.
|
|
|
|
(cp_parser_constructor_declarator_p): Treat attributes
|
|
|
|
as decl-specifiers.
|
|
|
|
|
|
|
|
PR c++/15329
|
|
|
|
* typeck.c (build_unary_op): Do not attempt to resolve casts to
|
|
|
|
base classes in templates.
|
|
|
|
|
2004-05-24 00:48:37 +02:00
|
|
|
2004-05-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15165
|
|
|
|
* pt.c (instantiate_template): Robustify.
|
|
|
|
|
2004-05-23 23:06:56 +02:00
|
|
|
2004-05-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15025
|
|
|
|
* decl.c (xref_tag): Issue errors about redeclaring template
|
|
|
|
classes as non-template classes.
|
|
|
|
|
2004-05-23 19:56:26 +02:00
|
|
|
2004-05-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14821
|
|
|
|
* name-lookup.c (supplement_binding): Allow redefinitions of
|
|
|
|
namespace aliases.
|
|
|
|
|
|
|
|
PR c++/14883
|
|
|
|
* parser.c (cp_parser_template_argument): Robustify.
|
|
|
|
|
2004-05-23 12:51:45 +02:00
|
|
|
2004-05-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
* class.c (alter_access): Use %E format specifier to print an
|
|
|
|
identifier node. Avoid looking at the IDENTIFIER_POINTER.
|
|
|
|
(push_lang_context): Likewise.
|
|
|
|
* decl.c (lookup_label): Likewise.
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
* parser.c (cp_parser_check_for_invalid_template_id): Likewise.
|
|
|
|
* pt.c (do_type_instantiation): Likewise.
|
|
|
|
* tree.c (handle_java_interface_attribute): Likewise.
|
|
|
|
(handle_com_interface_attribute): Likewise.
|
|
|
|
(handle_init_priority_attribute): Likewise.
|
|
|
|
|
2004-05-22 23:45:24 +02:00
|
|
|
2004-05-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15285
|
|
|
|
PR c++/15299
|
|
|
|
* pt.c (build_non_dependent_expr): Expand the set of tree nodes
|
|
|
|
recognized as overloaded functions.
|
|
|
|
|
2004-05-22 21:28:31 +02:00
|
|
|
2004-05-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/15507
|
|
|
|
* class.c (layout_nonempty_base_or_field): Do not try to avoid
|
|
|
|
layout conflicts for unions.
|
|
|
|
|
|
|
|
PR c++/15542
|
|
|
|
* typeck.c (build_x_unary_op): Instantiate template class
|
|
|
|
specializations before looking for "operator &".
|
|
|
|
|
|
|
|
PR c++/15427
|
|
|
|
* typeck.c (complete_type): Layout non-dependent array types, even
|
|
|
|
in templates.
|
|
|
|
|
|
|
|
PR c++/15287
|
|
|
|
* typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
|
|
|
|
template.
|
|
|
|
|
2004-05-22 15:56:19 +02:00
|
|
|
2004-05-22 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
* name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by
|
|
|
|
returning when TREE_TYPE is error_mark_node.
|
|
|
|
* typeck.c (require_complete_type): Return error_mark_node if
|
|
|
|
value's type is an error_mark_node.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
|
2004-05-20 13:36:14 +02:00
|
|
|
|
|
|
|
* optimize.c (calls_setjmp_r): Remove.
|
|
|
|
(calls_setjmp_p): Remove.
|
|
|
|
* cp-tree.c (calls_setjmp_p): Remove.
|
|
|
|
* decl.c (finish_function): Do not call calls_setjmp_p.
|
|
|
|
|
2004-05-19 03:28:56 +02:00
|
|
|
2004-05-18 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (cp_finish_decl): Use mark_decl_referenced.
|
|
|
|
* decl2.c (maybe_make_one_only): Likewise.
|
|
|
|
* method.c (use_thunk): Likewise.
|
|
|
|
|
2004-05-18 21:53:21 +02:00
|
|
|
2004-05-18 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* class.c (build_base_path): Tidy a bit.
|
|
|
|
|
2004-05-15 00:33:28 +02:00
|
|
|
2004-05-14 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* name-lookup.c (struct scope_binding): New.
|
|
|
|
(EMPTY_SCOPE_BINDING): New.
|
|
|
|
(lookup_using_namespace): Take a scope_binding instead of a
|
|
|
|
cxx_binding.
|
|
|
|
(qualified_lookup_using_namespace): Likewise.
|
|
|
|
(cxx_binding_clear): Delete.
|
|
|
|
(do_nonmember_using_decl): Use a scope_binding instead of a
|
|
|
|
cxx_binding.
|
|
|
|
(lookup_tag): Don't call select_decl.
|
|
|
|
(ambiguous_decl): Don't return anything (and change callers to match).
|
|
|
|
Take a scope_binding as the second parameter.
|
|
|
|
(lookup_namespace_name): Use a scope_binding instead of a
|
|
|
|
cxx_binding.
|
|
|
|
(unqualified_namespace_lookup): Likewise.
|
|
|
|
(lookup_qualified_name): Likewise.
|
|
|
|
(select_decl): Take a scope_binding instead of a cxx_binding.
|
|
|
|
Use macros rather than hand-coding tests for type-ness.
|
|
|
|
|
tree-gimple.c: Rename from tree-simple.c.
* tree-gimple.c: Rename from tree-simple.c.
* tree-gimple.h: Rename from tree-simple.h.
* c-gimplify.c: Rename from c-simplify.c
* Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
langhooks.c, tree-alias-ander.c, tree-alias-common.c,
tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
Update.
cp/ChangeLog
* cp-gimplify.c: Rename from cp-simplify.c.
* Make-lang.in, optimize.c: Update.
fortran/ChangeLog
* Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
java/ChangeLog
* Make-lang.in, expr.c, java-gimplify.c: Rename
tree-simple.[ch] to tree-gimple.[ch].
From-SVN: r81829
2004-05-14 04:29:32 +02:00
|
|
|
2004-05-13 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* cp-gimplify.c: Rename from cp-simplify.c.
|
|
|
|
* Make-lang.in, optimize.c: Update.
|
|
|
|
|
2004-05-13 08:41:07 +02:00
|
|
|
2004-05-13 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
Merge from tree-ssa-20020619-branch. See
|
|
|
|
ChangeLog.tree-ssa for details.
|
|
|
|
|
|
|
|
* Make-lang.in, call.c, class.c, cp-lang.c, cp-tree.def,
|
|
|
|
cp-tree.h, cvt.c, decl.c, decl2.c, error.c, except.c,
|
|
|
|
expr.c, init.c, name-lookup.h, optimize.c, parser.c,
|
|
|
|
pt.c, rtti.c, semantics.c, tree.c, typeck.c, typeck2.c:
|
|
|
|
Merged.
|
|
|
|
* cp-mudflap.c: New file.
|
|
|
|
* cp-simplify.c:: New file.
|
|
|
|
|
2004-05-03 12:13:26 +02:00
|
|
|
2004-05-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14389
|
|
|
|
* decl2.c (check_classfn): For member templates, compare also the
|
|
|
|
template parameters to match the declaration.
|
|
|
|
* cp-tree.h: Adjust declaration of check_classfn.
|
|
|
|
* decl.c (start_decl, grokfndecl): Adjust callers of check_classfn.
|
|
|
|
* friend.c (do_friend): Likewise.
|
|
|
|
* pt.c (tsubst_friend_function): Likewise.
|
|
|
|
|
2004-05-01 21:12:46 +02:00
|
|
|
2004-05-01 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (reshape_init): Do not apply TYPE_DOMAIN to a VECTOR_TYPE.
|
|
|
|
Instead, dig into the representation type to find the array bound.
|
|
|
|
|
2004-04-30 19:25:42 +02:00
|
|
|
2004-04-30 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
Refer to base members using COMPONENT_REFs where possible.
|
|
|
|
* class.c (build_simple_base_path): New fn.
|
|
|
|
(build_base_path): Use it for non-virtual base references.
|
|
|
|
(layout_class_type): Change base fields to their real type
|
|
|
|
after layout is done.
|
|
|
|
* cp-tree.h (IS_FAKE_BASE_TYPE): New macro.
|
|
|
|
* cp-lang.c (cxx_get_alias_set): Use it.
|
|
|
|
|
2004-04-30 17:51:53 +02:00
|
|
|
2004-04-30 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* class.c, cp-tree.h, decl.c, decl2.c, pt.c, rtti.c: Fix
|
|
|
|
comment typos.
|
|
|
|
|
2004-04-23 14:57:19 +02:00
|
|
|
2004-04-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/15064
|
|
|
|
* parser.c (cp_parser_postfix_expression): typeid operator cannot be
|
|
|
|
used in integral constant expressions.
|
|
|
|
|
2004-04-22 23:29:35 +02:00
|
|
|
2004-04-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-04-23 03:06:54 +02:00
|
|
|
* init.c (build_aggr_init): Fix accidental use of C99 construct in
|
|
|
|
previous change.
|
2004-05-01 21:12:46 +02:00
|
|
|
|
2004-04-22 23:29:35 +02:00
|
|
|
* class.c (initialize_array): Don't set TREE_HAS_CONSTRUCTOR on
|
|
|
|
braced initializer.
|
|
|
|
* cp-tree.h (BRACE_ENCLOSED_INITIALIZER_P): New macro.
|
|
|
|
* decl.c (reshape_init): Use it.
|
|
|
|
* init.c (perform_member_init): Remove redundant condition.
|
|
|
|
(build_aggr_init): Adjust to handle brace-enclosed initializers
|
|
|
|
correctly.
|
|
|
|
(expand_default_init): Use BRACE_ENCLOSED_INITIALIZER_P.
|
2004-04-23 03:06:54 +02:00
|
|
|
|
2004-04-22 23:29:35 +02:00
|
|
|
* parser.c (cp_parser_initializer_clause): Do not set
|
|
|
|
TREE_HAS_CONSTRUCTOR on the initializer.
|
|
|
|
* rtti.c (tinfo_base_init): Likewise.
|
|
|
|
(generic_initializer): Likewise.
|
|
|
|
(ptr_initializer): Likewise.
|
|
|
|
(ptm_initializer): Likewise.
|
|
|
|
(class_initializer): Likewise.
|
|
|
|
(get_pseudo_ti_init): Likewise.
|
|
|
|
* typeck2.c (digest_init): Use BRACE_ENCLOSED_INITIALIZER_P.
|
2004-05-01 21:12:46 +02:00
|
|
|
|
2004-04-22 07:10:21 +02:00
|
|
|
2004-04-22 Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
|
|
* name-lookup.c (anonymous_namespace_name): Make static.
|
|
|
|
|
2004-04-20 04:52:17 +02:00
|
|
|
2004-04-19 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
PR middle-end/14531
|
|
|
|
* class.c (build_base_path): Call fold whilst building the NULL
|
|
|
|
pointer check expression trees.
|
|
|
|
|
2004-04-16 18:27:19 +02:00
|
|
|
2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
|
|
|
|
|
|
|
|
* init.c (build_new_1): Don't use type size argument for Java
|
|
|
|
_Jv_AllocObject call.
|
|
|
|
|
2004-04-10 16:44:14 +02:00
|
|
|
2004-04-09 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
* method.c (make_alias_for_thunk): Remove preprocessor guard on
|
|
|
|
declaration and definition.
|
|
|
|
|
2004-04-09 00:31:23 +02:00
|
|
|
2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/14808
|
|
|
|
* method.c (use_thunk): Test TARGET_USE_LOCAL_THUNK_ALIAS_P rather
|
|
|
|
than ASM_OUTPUT_DEF.
|
|
|
|
|
2004-04-08 15:38:00 +02:00
|
|
|
2004-04-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* decl2.c (mark_used): Don't segfault if cfun != NULL but
|
|
|
|
current_function_decl == NULL.
|
|
|
|
|
2004-04-05 17:52:12 +02:00
|
|
|
2004-04-05 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/3518
|
|
|
|
* pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
|
|
|
|
level.
|
|
|
|
|
2004-04-05 14:25:26 +02:00
|
|
|
2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* init.c (decl_constant_value): Don't look at DECL_INITIAL
|
|
|
|
of PARM_DECL.
|
|
|
|
* tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
|
|
|
|
or TREE_SIDE_EFFECTS of a type.
|
|
|
|
|
2004-04-02 13:48:56 +02:00
|
|
|
2004-04-02 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14007
|
|
|
|
* pt.c (check_cv_quals_for_unify): Correct logic for disallowed
|
|
|
|
cv-qualifier unification.
|
|
|
|
* tree.c (cp_build_qualified_type_real): Renable DR295 logic.
|
|
|
|
|
cgraph.c: Add overall comment.
* cgraph.c: Add overall comment.
(cgraph_inline_hash): New global variable.
(cgraph_create_node): Break out from ...
(cgraph_node): ... here.
(cgraph_edge): New function.
(cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
(cgraph_remove_edge): Accept edge, intead of source and destination.
(cgraph_redirect_edge_callee): New.
(cgraph_remove_node): Update all new datastructures.
(cgraph_record_call, cgraph_remove_call): Kill.
(dump_cgraph_node): Break out from ... ; dump new datastructures.
(dump_cgraph): ... here.
(cgraph_function_possibly_inlined_p): Use new hashtable.
(cgraph_clone_edge, cgraph_clone_node): New.
* cgraph.h: Include hashtab.h
(struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
fields, add inlined_to pointer.
(cgraph_node): Add pointer to next_clone.
(cgraph_remove_edge, cgraph_create_edge): Update prototype.
(cgraph_remove_call, cgraph_record_call): Kill.
(cgraph_inline_hash): Declare.
(dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
cgraph_redirect_edge_callee): Declare.
(cgraph_create_edges, cgraph_inline_p): Update prorotype.
(cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
* cgraphunit.c: Add overall comment.
(cgraph_optimize_function): Kill.
(cgraph_assemble_pending_functions): Do not assemble inline clones.
(cgraph_finalize_function): Update call of cgraph_remove_node
(record_call_1): Record call sites.
(cgraph_create_edges): Accept node instead of decl argument.
(error_found): New static variable.
(verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
(cgraph_analyze_function): Update for new datastructures.
(cgraph_finalize_compilation_unit): Plug memory leak.
(cgraph_optimize_function): Kill.
(cgraph_expand_function): Do not use cgraph_optimize_function.
(INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
cgraph_inlined_callees): Kill.
(cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
clones.
(estimate_growth): Simplify.
(cgraph_clone_inlined_nodes): New function.
(cgraph_mark_inline_edge): Re-implement.
(cgraph_mark_inline): Likewise.
(cgraph_check_inline_limits): Simplify.
(cgraph_recursive_inlining_p): New.
(update_callee_keys): Break out from ...
(cgraph_decide_inlining_of_small_functions): ... here; simplify.
(cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
Likewise.
(cgraph_expand_all_functions): Remove inline clones from the ordered
list.
(cgraph_preserve_function_body_p): New predicate.
(cgraph_optimize): Verify cgraph.
* function.h (struct function): Add fields saved_tree/saved_args.
* timevar.def (TV_CGRAPH_VERIFY): Use verifier.
* toplev.c (rest_of_compilation): Do not free cfun.
* tree-inline.c: Include function.h
(struct inline_data): Add saving_p field; replace decl/current_decl by
node/current_node.
(insert_decl_map): New function.
(copy_body_r): Handle saving; update cgraph datastructure.
(copy_body): Handle recursive inlining.
(initialize_inlined_parameters): Likewise.
(expand_call_inline): Propagate node attributes; update cgraph.
(optimize_inline_calls): Verify that datastructure still match.
(save_body): New function.
* tree-inline.h (save_body): New.
* tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
* langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
* langhooks.c (lang_hooks): Add update_decl_after_saving.
* cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
* cp-tree.h (cp_update_decl_after_saving): Declare.
* tree.c (cp_update_decl_after_saving): Define.
* Make-lang.in (com.o): Add dependnecy on function.h
* com.c: Include function.h
(finish_function): Clear DECL_STRUCT_FUNCTION.
* utils.c: Include function.h
(end_subprog_body): Clear DECL_STRUCT_FUNCTION.
From-SVN: r80334
2004-04-02 01:28:15 +02:00
|
|
|
2004-04-02 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
|
|
|
|
* cp-tree.h (cp_update_decl_after_saving): Declare.
|
|
|
|
* tree.c (cp_update_decl_after_saving): Define.
|
|
|
|
|
2004-04-02 01:14:55 +02:00
|
|
|
2004-04-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14803
|
|
|
|
* typeck.c (get_delta_difference): Call fold before returning the
|
|
|
|
value.
|
|
|
|
|
2004-04-01 22:45:02 +02:00
|
|
|
2004-04-01 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR c++/14804
|
|
|
|
* decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
|
|
|
|
* typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
|
|
|
|
|
2004-04-01 22:02:07 +02:00
|
|
|
2004-04-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14810
|
|
|
|
* name-lookup.c (maybe_push_cleanup_level): Robustify.
|
|
|
|
|
2004-04-01 15:41:37 +02:00
|
|
|
2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* class.c (VTT_TOP_LEVEL_P): Use unsigned_flag directly.
|
|
|
|
|
builtins.c, [...]: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
* c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
* calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
* expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
* optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
* tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
* config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
* config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
* stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
REAL_TYPE, not INTEGER_TYPE.
(layout_type, case VECTOR_TYPE): Simplify code.
* tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
* tree.h: Update comments.
(STRIP_NOPS): Use TYPE_UNSIGNED.
(TYPE_UNSIGNED): New macro.
(TYPE_TRAP_SIGNED): Remove now redundant check.
(SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
* cp/call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
* cp/class.c (check_bitfield_decl): Likewise.
* cp/cvt.c (type_promotes_to): Likewise.
* cp/decl.c (finish_enum): Likewise.
* cp/mangle.c (write_builtin_type): Likewise.
* cp/semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise.
* cp/typeck.c (type_after_usual_arithmetic_conversions): Likewise.
(build_binary_op): Likewise.
* f/com.c (ffecom_arrayref_): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
(ffecom_expr_): Likewise.
* java/jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
* treelang/treetree.c (tree_lang_signed_or_unsigned_type):
Use TYPE_UNSIGNED, not TREE_UNSIGNED.
* ada/decl.c (gnat_to_gnu_entity, make_type_from_size):
Use TYPE_UNSIGNED, not TREE_UNSIGNED.
* ada/trans.c (tree_transform, convert_with_check): Likewise.
* ada/utils.c (gnat_signed_or_unsigned_type): Likewise.
(build_vms_descriptor, unchecked_convert): Likewise.
* ada/utils2.c (nonbinary_modular_operation): Likewise.
From-SVN: r80287
2004-04-01 05:50:43 +02:00
|
|
|
2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
|
|
|
|
* class.c (check_bitfield_decl): Likewise.
|
|
|
|
* cvt.c (type_promotes_to): Likewise.
|
|
|
|
* decl.c (finish_enum): Likewise.
|
|
|
|
* mangle.c (write_builtin_type): Likewise.
|
|
|
|
* semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise.
|
|
|
|
* typeck.c (type_after_usual_arithmetic_conversions): Likewise.
|
|
|
|
(build_binary_op): Likewise.
|
|
|
|
|
2004-03-31 10:41:26 +02:00
|
|
|
2004-03-31 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* tree.h (optimize_function): Kill prototype.
|
|
|
|
* optimize.c (dump_function, optimize_function, dump_finction): Kill.
|
|
|
|
* semantics.c (expand_body): Kill.
|
|
|
|
|
2004-03-31 01:45:00 +02:00
|
|
|
2004-03-30 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14724
|
|
|
|
* decl.c (start_decl_1): Do not decide whether or not to create a
|
|
|
|
new cleanup level until after the type has been completed.
|
|
|
|
|
|
|
|
PR c++/14763
|
|
|
|
* pt.c (tsubst_default_argument): Clear current_function_decl.
|
|
|
|
|
gengtype.c (create_option): New function.
* gengtype.c (create_option): New function.
* gengtype.h: Prototype it.
* gengtype-yacc.y (stringseq): New rule.
(option): Use create_option. Add new bare ID production. Use
stringseq, not STRING directly.
* alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
* dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
* varray.h, config/alpha/alpha.c, cp/name-lookup.c, cp/parser.c
* f/com.c, java/builtins.c, java/expr.c, java/jcf.h, java/parse.h:
Use new shorter form of GTY markers.
* doc/gty.texi: Rewrite.
From-SVN: r80091
2004-03-30 21:19:06 +02:00
|
|
|
2004-03-30 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* name-lookup.c, parser.c: Use new shorter form of GTY markers.
|
|
|
|
|
2004-03-29 19:01:59 +02:00
|
|
|
2004-03-29 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* error.c (dump_function_name): If T's DECL_LANG_SPECIFIC
|
|
|
|
is null, just print the literal name and return.
|
|
|
|
|
2004-03-25 18:04:45 +01:00
|
|
|
2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* cxx-pretty-print.c: Fix comment typos.
|
|
|
|
|
2004-03-25 00:45:50 +01:00
|
|
|
2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* cxx-pretty-print.c, cxx-pretty-print.h, decl.h, friend.c:
|
|
|
|
Update copyright.
|
|
|
|
|
2004-03-24 01:13:33 +01:00
|
|
|
2004-03-23 Ziemowit Laski <zlaski@apple.com>
|
|
|
|
|
|
|
|
* Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
|
|
|
|
* mangle.c (write_type): Add call to 'mangle_fundamental_type'
|
|
|
|
target hook.
|
|
|
|
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
2004-03-23 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
2004-03-24 00:49:35 +01:00
|
|
|
PR 12267, 12391, 12560, 13129, 14114, 14133
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
* cp-lang.c (c_reset_state): Delete.
|
|
|
|
(push_file_scope, pop_file_scope): New stubs.
|
|
|
|
* parser.c (c_parse_file): Call sorry() here if called more than once.
|
|
|
|
|
2004-03-23 21:43:44 +01:00
|
|
|
2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
|
|
|
|
for INTEGER_CST.
|
|
|
|
|
2004-03-22 02:12:53 +01:00
|
|
|
2004-03-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_parameter_declaration_clause): Declare.
|
|
|
|
|
2004-03-22 00:55:03 +01:00
|
|
|
2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
* error.c (enum pad): Remove.
|
|
|
|
(dump_qualifiers): Likewise.
|
|
|
|
(dump_type): Replace dump_qualifiers with pp_cxx_cv_qualifier_seq.
|
|
|
|
(dump_aggr_type): Likewise.
|
|
|
|
(dump_type_suffix): Likewise.
|
|
|
|
(dump_simple_decl): Likewise.
|
|
|
|
(dump_function_decl): Likewise.
|
|
|
|
(cv_to_string): Likewise.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
(dump_type_prefix): Likewise. Adjust return void.
|
2004-03-22 00:55:03 +01:00
|
|
|
* cxx-pretty-print.c (pp_cxx_cv_qualifier_seq): Move to
|
|
|
|
cxx_pretty_print.h.
|
|
|
|
(pp_cxx_template_keyword_if_needed): Document.
|
|
|
|
(pp_cxx_qualified_id): Document case FUNCTION_DECL. Tidy.
|
|
|
|
(pp_cxx_expression): Handle NON_DEPENDENT_EXPR and
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
MUST_NOT_THROW_EXPR.
|
2004-03-22 00:55:03 +01:00
|
|
|
|
2004-03-21 18:48:39 +01:00
|
|
|
2004-03-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14616
|
|
|
|
* decl.c (cp_finish_decl): Compute the size of arrays declared in
|
|
|
|
templates, if their type is non-dependent.
|
|
|
|
|
2004-03-20 01:18:24 +01:00
|
|
|
2004-03-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* call.c (build_op_delete_call): Do not forget the placement
|
|
|
|
arguments when iterating through mutiple delete operators.
|
|
|
|
|
|
|
|
* cp-tree.h (svaed_scope): Remove last_parms.
|
|
|
|
(NEW_DELETE_OPNAME_P): New macro.
|
|
|
|
(last_function_parms): Remove.
|
|
|
|
(do_friend): Adjust prototype.
|
|
|
|
* decl.c (grokparms): Return the PARM_DECLs directly, rather than
|
|
|
|
using last_function_parms.
|
|
|
|
(grokfndecl): Take the PARM_DECLs as an argument, rather than
|
|
|
|
using last_function_parms.
|
|
|
|
(grokdeclarator): Adjust accordingly. Do not form METHOD_TYPEs
|
|
|
|
for class-specific operator new and operator delete.
|
|
|
|
(grok_op_properties): Do not look for allocation functions with
|
|
|
|
METHOD_TYPEs.
|
|
|
|
(start_function): Use DECL_ARGUMENTS instead of
|
|
|
|
last_function_parms.
|
|
|
|
* decl.h (last_function_parms): Do not declare.
|
|
|
|
* decl2.c (grokclassfn): Do not use last_function_parms.
|
|
|
|
* friend.c (do_friend): Remove parmdecls parameter.
|
|
|
|
* name-lookup.c (push_to_top_level): Do not save last_function_parms.
|
|
|
|
(pop_from_top_level): Do not restore it.
|
|
|
|
* pt.c (check_explicit_specialization): Do not adjust
|
|
|
|
last_function_parms.
|
|
|
|
|
|
|
|
* name-lookup.c (do_local_using_decl): Create a local binding for
|
|
|
|
types brought in via using declarations.
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_arg_dependent): Handle block-scope
|
|
|
|
function declarations correctly.
|
|
|
|
|
|
|
|
* semantics.c (finish_id_expression): Correct handling of
|
|
|
|
conversion operators to dependent types.
|
|
|
|
|
|
|
|
* typeck.c (lookup_destructor): Allow the use of destructors from
|
|
|
|
base classes.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
|
2004-03-19 15:18:27 +01:00
|
|
|
2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_unqualified_id): Use
|
|
|
|
TEMPLATE_TYPE_PARM_INDEX instead of TYPE_FIELDS.
|
|
|
|
* search.c (dfs_unuse_fields): Add two more TREE_CODES that mean
|
|
|
|
the field is named TEMPLATE_TYPE_PARM_INDEX.
|
|
|
|
|
2004-03-19 10:58:50 +01:00
|
|
|
2004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14545
|
|
|
|
* parser.c (cp_parser_functional_cast): A cast to anything
|
|
|
|
but integral or enumaration type is not an integral constant
|
|
|
|
expression.
|
|
|
|
* pt.c (value_dependent_expression_p): Handle cast expressions
|
|
|
|
without operands (such as "int()").
|
|
|
|
|
2004-03-19 08:27:30 +01:00
|
|
|
2004-03-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* semantics.c (finish_pseudo_destructor_expr): Allow differing
|
|
|
|
cv-qualification between the type named by the
|
|
|
|
pseudo-destructor-name and the object-type.
|
|
|
|
|
|
|
|
* search.c (accessible_base_p): Handle non-proper bases.
|
|
|
|
|
|
|
|
* name-lookup.c (do_nonmember_using_decl): If a using declaration
|
|
|
|
refers to a single overloaded function, set the type of the
|
|
|
|
function.
|
|
|
|
* tree.c (lvalue_type): Simplify.
|
|
|
|
* typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
|
|
|
|
unknown type.
|
|
|
|
(build_unary_op): Handle OVERLOADs with known types.
|
|
|
|
|
|
|
|
* decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
|
|
|
|
function templates.
|
|
|
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Handle the use of
|
|
|
|
"typename" in non-dependent contexts. Convert appropriately when
|
|
|
|
when using a qualified name after "->" or ".".
|
|
|
|
|
|
|
|
* call.c (conditional_conversion): Honor the requirement that some
|
|
|
|
conversions refer to the original object.
|
|
|
|
|
2004-03-19 02:35:01 +01:00
|
|
|
2004-03-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* call.c (build_conditional_expr): Do not call force_rvalue for
|
|
|
|
operands of void_type when the conditional expression itself has
|
|
|
|
void type.
|
|
|
|
* name-lookup.c (pushdecl): Don't consider a declaration of a
|
|
|
|
function named "main" to be an overload of a type named "main".
|
|
|
|
* parser.c (cp_parser_template_name): Perform name lookup when the
|
|
|
|
template name is proceeded by "template" if the qualifying scope
|
|
|
|
is non-dependent.
|
|
|
|
* typeck.c (composite_pointer_type_r): Correctly handle
|
|
|
|
pointer-to-member types.
|
|
|
|
(build_const_cast): Likewise.
|
|
|
|
|
tree.h (TREE_CHECK2, [...]): New macros.
* tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
(tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
(FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
(REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
(TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
Protect with proper check.
(TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
(TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
* tree.c (type_hash_eq): Rewrite to access proper fields for each type.
(tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
* c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
* dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
not TYPE_FIELDS.
* cp/class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
* cp/error.c (dump_type): Use TYPEOF_TYPE_EXPR.
* cp/pt.c (tsubst): Likewise.
* cp/semantics.c (finish_typeof): Likewise.
* cp/search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
and TEMPLATE_TYPE_PARM.
* cp/typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
(build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
* java/java-tree.h: Changes throughout to add checking to macros
and numerous whitespace changes.
(VAR_OR_FIELD_CHECK): New macro.
* java/jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
* ada/ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
(TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
(TYPE_RM_SIZE_INT): Directly use type.values.
(TREE_LOOP_ID): Clean up check.
* ada/decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
TYPE_VALUES, not TYPE_FIELDS.
* ada/trans.c (convert_with_check): Delay access of bounds of basetype
until sure is numeric.
From-SVN: r79638
2004-03-18 21:58:49 +01:00
|
|
|
2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
|
|
|
|
2004-03-18 23:44:42 +01:00
|
|
|
* cp-tree.def (TEMPLATE_TYPE_PARM, TYPEOF_TYPE): Update comments.
|
|
|
|
* cp-tree.h (NEW_EXPR_USE_GLOBAL, DELETE_EXPR_USE_GLOBAL): Add check.
|
|
|
|
(DELETE_EXPR_USE_VEC, COMPOUND_EXPR_OVERLOADED): Likewise.
|
|
|
|
(KOENIG_LOOKUP_P, PTRMEM_OK_P, TEMPLATE_TYPE_PARM_INDEX): Likewise.
|
|
|
|
(TYPENAME_TYPE_FULLNAME): Add check and use type.values.
|
|
|
|
(TYPEOF_TYPE_EXPR): New macro.
|
tree.h (TREE_CHECK2, [...]): New macros.
* tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
(tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
(FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
(REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
(TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
Protect with proper check.
(TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
(TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
* tree.c (type_hash_eq): Rewrite to access proper fields for each type.
(tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
* c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
* dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
not TYPE_FIELDS.
* cp/class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
* cp/error.c (dump_type): Use TYPEOF_TYPE_EXPR.
* cp/pt.c (tsubst): Likewise.
* cp/semantics.c (finish_typeof): Likewise.
* cp/search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
and TEMPLATE_TYPE_PARM.
* cp/typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
(build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
* java/java-tree.h: Changes throughout to add checking to macros
and numerous whitespace changes.
(VAR_OR_FIELD_CHECK): New macro.
* java/jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
* ada/ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
(TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
(TYPE_RM_SIZE_INT): Directly use type.values.
(TREE_LOOP_ID): Clean up check.
* ada/decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
TYPE_VALUES, not TYPE_FIELDS.
* ada/trans.c (convert_with_check): Delay access of bounds of basetype
until sure is numeric.
From-SVN: r79638
2004-03-18 21:58:49 +01:00
|
|
|
* class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
|
|
|
|
* error.c (dump_type): Use TYPEOF_TYPE_EXPR.
|
|
|
|
* pt.c (tsubst): Likewise.
|
|
|
|
* semantics.c (finish_typeof): Likewise.
|
|
|
|
* search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
|
|
|
|
and TEMPLATE_TYPE_PARM.
|
|
|
|
* typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
|
|
|
|
(build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
|
|
|
|
|
2004-03-16 23:18:11 +01:00
|
|
|
2004-03-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14586
|
|
|
|
* cp-tree.h (build_new_op): Change prototype.
|
|
|
|
(build_x_binary_op): Likewise.
|
|
|
|
* call.c (build_new_op): Add overloaded_p parameter.
|
|
|
|
* decl2.c (grok_array_decl): Adjust call to build_new_op.
|
|
|
|
* parser.c (cp_parser_binary_expression): Note that uses of
|
|
|
|
overloaded operators prevents an expression from being considered
|
|
|
|
an integral constant.
|
|
|
|
* pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
|
|
|
|
build_x_binary_op.
|
|
|
|
* semantics.c (finish_call_expr): Likewise.
|
|
|
|
* typeck.c (rationalize_conditional_expr): Likewise.
|
|
|
|
(build_x_indirect_ref): Likewise.
|
|
|
|
(build_x_binary_op): Likewise.
|
|
|
|
(build_x_unary_op): Likewise.
|
|
|
|
(build_x_compound_expr): Likewise.
|
|
|
|
(build_modify_expr): Likewise.
|
|
|
|
* typeck2.c (build_x_arrow): Likewise.
|
|
|
|
|
c-incpath.c, [...]: Update copyright.
gcc/
* c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
hosthooks.h, params.h, ra-colorize.c, web.c,
config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
config/avr/avr-protos.h, config/avr/avr.md,
config/fr30/fr30-protos.h, config/fr30/fr30.md,
config/h8300/fixunssfsi.c, config/i386/darwin.h,
config/i386/freebsd.h, config/i386/freebsd64.h,
config/ia64/hpux.h, config/ia64/unwind-ia64.c,
config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
config/pa/pa64-regs.h, config/rs6000/aix41.h,
config/rs6000/aix43.h, config/rs6000/host-darwin.c,
config/sparc/aout.h, config/sparc/freebsd.h,
config/sparc/litecoff.h, config/vax/vax-protos.h,
doc/hostconfig.texi, doc/include/gcc-common.texi: Update
copyright.
gcc/cp/
* cp-lang.c, ptree.c: Update copyright.
From-SVN: r79506
2004-03-15 19:20:51 +01:00
|
|
|
2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* cp-lang.c, ptree.c: Update copyright.
|
|
|
|
|
2004-03-15 17:16:18 +01:00
|
|
|
2004-03-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14550
|
|
|
|
* parser.c (cp_parser_non_integral_constant_expression): Encode
|
|
|
|
more of the idiom that surrounded calls to this function within
|
|
|
|
the function itself
|
|
|
|
(cp_parser_primary_expression): Adjust accordingly.
|
|
|
|
(cp_parser_postfix_expression): Likewise.
|
|
|
|
(cp_parser_unary_expression): Likewise.
|
|
|
|
(cp_parser_cast_expression): Likewise.
|
|
|
|
(cp_parser_assignment_expression): Likewise.
|
|
|
|
(cp_parser_expression): Likewise.
|
|
|
|
(cp_parser_new_expression): Note that new-expressions are not
|
|
|
|
allowed in integral constant expressions.
|
|
|
|
(cp_parser_delete_expression): Likewise.
|
|
|
|
|
2004-03-12 18:09:03 +01:00
|
|
|
2004-03-12 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
* decl2.c (maybe_make_one_only): Look at
|
|
|
|
TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
|
|
|
|
to make an explicit instantiation weak.
|
|
|
|
* method.c (use_thunk): Make sure we call comdat_linkage
|
|
|
|
when appropriate.
|
|
|
|
* pt.c (do_type_instantiation): On systems where weak symbols
|
|
|
|
don't go in a static archive's TOC, explicit instantiation of a
|
|
|
|
class must imply *explicit* instantiation of its memeber.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
|
2004-03-11 18:55:01 +01:00
|
|
|
2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* call.c, cp-tree.h, pt.c: Fix comment typos.
|
|
|
|
|
2004-03-11 05:25:38 +01:00
|
|
|
2004-03-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14510
|
|
|
|
* decl.c (xref_tag): Disregard non-type declarations when
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
looking up a tagged type.
|
2004-03-11 05:25:38 +01:00
|
|
|
|
2004-03-09 19:44:02 +01:00
|
|
|
2004-03-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14397
|
|
|
|
* call.c (convert_like_real): Build a const qualified temporary,
|
|
|
|
when testing ctor access.
|
|
|
|
|
2004-03-09 18:46:26 +01:00
|
|
|
2004-03-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* call.c (initialize_reference): Fix typo.
|
|
|
|
|
2004-03-09 16:35:03 +01:00
|
|
|
2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14409
|
|
|
|
* pt.c (determine_specialization): For member templates, match also
|
|
|
|
constness.
|
|
|
|
|
|
|
|
PR c++/14448
|
|
|
|
* parser.c (cp_parser_initializer_clause): Fold initializer if it is
|
|
|
|
non-dependent.
|
|
|
|
* pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
|
|
|
|
|
2004-03-09 11:08:40 +01:00
|
|
|
2004-03-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14230
|
|
|
|
* call.c (initialize_reference): Handle initializers that are
|
|
|
|
class-member access expressions applies to rvalues.
|
|
|
|
|
2004-03-09 09:26:14 +01:00
|
|
|
2004-03-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14432
|
|
|
|
* name-lookup.c (supplement_binding): Ignore functions that are
|
|
|
|
marked DECL_ANTICIPATED.
|
|
|
|
|
2004-03-09 09:16:49 +01:00
|
|
|
2004-03-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14401
|
|
|
|
* class.c (check_field_decls): Complain about non-static data
|
|
|
|
members of reference type in unions. Propagate
|
|
|
|
CLASSTYPE_REF_FIELDS_NEED_INIT and
|
|
|
|
CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
|
|
|
|
data members.
|
|
|
|
* init.c (perform_member_init): Complain about mbmers with const
|
|
|
|
type that are not explicitly initialized.
|
|
|
|
|
|
|
|
2004-03-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* class.c (check_methods): Don't use IDENTIFIER_ERROR_LOCUS.
|
|
|
|
* cp-tree.h (DECL_INVALID_OVERRIDER_P): New macro.
|
|
|
|
(lang_identifier): Remove implicit_decl and error_locus.
|
|
|
|
(IDENTIFIER_IMPLICIT_DECL): Remove.
|
|
|
|
(SET_IDENTIFIER_IMPLICTI_DECL): Likewise.
|
|
|
|
(IDENTIFIER_ERROR_LOCUS): Likewise.
|
|
|
|
(SET_IDENTIFIER_ERROR_LOCUS): Likewise.
|
|
|
|
(TYPE_ASSEMBLER_NAME_STRING): Likewise.
|
|
|
|
(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
|
|
|
|
(implicitly_declare): Remove.
|
|
|
|
* decl.c (warn_extern_redeclared_static): Remove check of
|
|
|
|
IDENTIFIER_IMPLICIT_DECL.
|
|
|
|
(duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
|
|
|
|
(implicitly_declare): Remove.
|
|
|
|
(grok_ctor_properties): Don't set IDENTIFIER_ERROR_LOCUS.
|
|
|
|
(start_function): Don't check IDENTIFIER_IMPLICIT_DECL.
|
|
|
|
(start_method): Don't check IDENTIFIER_ERROR_LOCUS.
|
|
|
|
* lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
|
|
|
|
in the innermost scope, rather than at namespace scope.
|
|
|
|
* name-lookup.c (push_local_binding): Give it external linkage.
|
|
|
|
(pushdecl): Remove dead code.
|
|
|
|
* name-lookup.h (push_local_binding): Declare it.
|
|
|
|
* ptree.c (cxx_print_identifier): Don't print
|
|
|
|
IDENTIFIER_IMPLICIT_DECL or IDENTIFIER_ERROR_LOCUS.
|
|
|
|
* search.c (check_final_overrider): Use DECL_INVALID_OVERRIDER_P,
|
|
|
|
not IDENTIFIER_ERROR_LOCUS.
|
|
|
|
* typeck.c (build_function_call): Remove dead code.
|
|
|
|
|
2004-03-08 23:24:45 +01:00
|
|
|
2004-03-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/13170
|
|
|
|
* decl.c (xref_tag): Remove attribute handling.
|
|
|
|
* cp-tree.h: Adjust prototype.
|
|
|
|
* decl.c, parser.c, rtti.c: Adjust callers.
|
|
|
|
* parser.c (cp_parser_class_head): Pass back attributes in the
|
|
|
|
class head.
|
|
|
|
(cp_parser_class_specifier): Adjust.
|
|
|
|
|
2004-03-08 20:03:10 +01:00
|
|
|
2004-03-08 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
PR debug/14079
|
|
|
|
* name-lookup.c (add_decl_to_level): Add extern variables, as well
|
|
|
|
as static, to static_decls array.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
|
2004-03-05 23:38:24 +01:00
|
|
|
2004-03-05 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* tree.c (list_hash_pieces): s/TYPE_HASH/TREE_HASH/.
|
|
|
|
|
2004-03-04 23:43:03 +01:00
|
|
|
2004-03-04 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* decl.c (grokfndecl): Update old incorrect comment.
|
|
|
|
(grokvardecl): Diagnose C++ variables of type with no linkage.
|
|
|
|
|
2004-03-02 06:47:18 +01:00
|
|
|
2004-03-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14369
|
|
|
|
* pt.c (build_non_dependent_expr): Do not create a
|
|
|
|
NON_DEPENDENT_EXPR for a THROW_EXPR.
|
|
|
|
|
2004-03-01 22:04:30 +01:00
|
|
|
2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
PR c++/14369
|
|
|
|
* error.c (dump_expr): Handle THROW_EXPR.
|
|
|
|
|
2004-03-02 03:06:18 +01:00
|
|
|
2004-03-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14360
|
|
|
|
* parser.c (cp_parser_postfix_expression): Do not perform Koenig
|
|
|
|
lookup if ordinary name-lookup finds a non-function.
|
|
|
|
* pt.c (tsubst_copy_and_build): Likewise.
|
|
|
|
|
|
|
|
PR c++/14361
|
|
|
|
* parser.c (cp_parser_late_parsing_default_args): Check that there
|
|
|
|
are no extra tokens after the end of the default-argument
|
|
|
|
expression.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
|
2004-03-01 21:38:31 +01:00
|
|
|
2004-03-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14324
|
|
|
|
* lex.c (retrofit_lang_decl): Treat entities with no linkage as
|
|
|
|
having C++ linkage for name-mangling purposes.
|
|
|
|
|
|
|
|
PR c++/14260
|
|
|
|
* parser.c (cp_parser_direct_declarator): Recognize constructor
|
|
|
|
declarators that use a template-id to name the class being
|
|
|
|
constructed.
|
|
|
|
|
|
|
|
PR c++/14337
|
|
|
|
* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
|
|
|
|
(tsubst_expr): Do not call tsubst_copy, even when
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
processing_template_decl.
|
2004-03-01 21:38:31 +01:00
|
|
|
|
2004-03-01 20:18:01 +01:00
|
|
|
2004-03-01 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
* init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
|
|
|
|
the proper type.
|
|
|
|
|
2004-03-01 07:23:38 +01:00
|
|
|
2004-02-29 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14138
|
|
|
|
* name-lookup.h (push_scope): Change prototype.
|
|
|
|
* name-lookup.c (push_scope): Do not reenter the current class
|
|
|
|
scope.
|
|
|
|
* decl.c (grokfndecl): Check return code from push_scope before
|
|
|
|
calling pop_scope.
|
|
|
|
* decl2.c (check_classfn): Likewise.
|
|
|
|
* parser.c (cp_parser_conversion_function_id): Likewise.
|
|
|
|
(cp_parser_init_declarator): Likewise.
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
(cp_parser_class_specifier): Likewise.
|
|
|
|
(cp_parser_class_head): Likewise.
|
|
|
|
(cp_parser_lookup_name): Likewise.
|
|
|
|
(cp_parser_constructor_declarator_p): Likewise.
|
|
|
|
* pt.c (instantiate_class_template): Likewise.
|
|
|
|
(resolve_typename_type): Likewise.
|
|
|
|
|
2004-03-01 00:10:43 +01:00
|
|
|
2004-02-29 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-03-01 03:25:06 +01:00
|
|
|
PR c++/14267
|
|
|
|
* typeck.c (build_modify_expr): Remove more of the cast-as-lvalue
|
|
|
|
extension.
|
|
|
|
|
2004-03-01 00:10:43 +01:00
|
|
|
PR debug/12103
|
|
|
|
* class.c (update_vtable_entry_for_fn): Do not go through
|
|
|
|
covariance machinery if the type returned by an overrider is the
|
|
|
|
same as the original.
|
|
|
|
|
2004-02-29 23:02:30 +01:00
|
|
|
2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* call.c: Fix a comment typo.
|
|
|
|
|
2004-02-27 22:31:36 +01:00
|
|
|
2004-02-27 Ziemowit Laski <zlaski@apple.com>
|
|
|
|
|
|
|
|
* tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
|
|
|
|
|
2004-02-27 01:31:49 +01:00
|
|
|
2004-02-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14278
|
|
|
|
* parser.c (cp_parser_parameter_declaration_list): Commit
|
|
|
|
to fewer tentative parses.
|
|
|
|
|
2004-02-26 21:46:08 +01:00
|
|
|
2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14284
|
|
|
|
* pt.c (dependent_type_p_r): A template template parameter is a
|
|
|
|
dependent type.
|
|
|
|
|
2004-02-26 03:17:26 +01:00
|
|
|
2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14246
|
|
|
|
* mangle.c (write_template_arg_literal): Don't rely on identity for
|
|
|
|
boolean constants.
|
|
|
|
|
2004-02-24 19:37:29 +01:00
|
|
|
2004-02-24 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* tree.c (build_exception_variant): Use check_qualified_type.
|
|
|
|
|
2004-02-23 22:43:18 +01:00
|
|
|
2004-02-23 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* decl.c (cxx_init_decl_processing): Don't check
|
|
|
|
flag_writable_strings.
|
|
|
|
|
2004-02-23 16:22:04 +01:00
|
|
|
2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
PR c++/14156
|
|
|
|
* typeck.c (maybe_warn_about_returning_address_of_location):
|
|
|
|
Change check for VAR_DECL to use DECL_P instead.
|
|
|
|
|
2004-02-23 13:40:59 +01:00
|
|
|
2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14250
|
|
|
|
* cvt.c (build_expr_type_conversion): Type must be complete before
|
|
|
|
looking up for conversions.
|
|
|
|
|
2004-02-23 06:10:37 +01:00
|
|
|
2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14143
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
* name-lookup.c (arg_assoc_class): Don't look into template
|
2004-02-23 06:10:37 +01:00
|
|
|
arguments if it is not a primary template.
|
|
|
|
|
2004-02-21 00:03:41 +01:00
|
|
|
2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
2004-02-23 06:10:37 +01:00
|
|
|
PR c++/12007
|
2004-02-21 00:03:41 +01:00
|
|
|
* method.c (use_thunk): Always clone function argument tree.
|
|
|
|
|
2004-02-20 09:57:33 +01:00
|
|
|
2004-02-20 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/14199
|
|
|
|
* pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
|
|
|
|
|
|
|
|
PR c++/14173
|
|
|
|
* semantics.c (begin_class_definition): Set TYPE_PACKED correctly
|
|
|
|
for all type variants.
|
|
|
|
|
2004-02-20 07:43:08 +01:00
|
|
|
2004-02-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-02-20 09:57:33 +01:00
|
|
|
PR c++/13927
|
|
|
|
* decl.c (duplicate_decls): Return error_mark_node for invalid
|
|
|
|
redeclarations.
|
|
|
|
* name-lookup.c (push_namespace): Ignore the return value from
|
|
|
|
pushdecl.
|
|
|
|
* pt.c (push_template_decl_real): Robustify.
|
|
|
|
|
2004-02-20 07:43:08 +01:00
|
|
|
PR c++/14186
|
|
|
|
* name-lookup.c (push_class_level_binding): Do not complain about
|
|
|
|
adding a binding for a member whose name is the same as the
|
|
|
|
enclosing class if the member is located in a base class of the
|
|
|
|
current class.
|
|
|
|
|
2004-02-19 04:06:09 +01:00
|
|
|
2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/14181
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
* parser.c (cp_parser_new_expression): Parse an ill-formed
|
2004-02-19 04:06:09 +01:00
|
|
|
direct-new-declarator after a parenthesized type-id to emit good
|
|
|
|
diagnostic.
|
|
|
|
|
cfgloop.h, [...]: Update copyright.
gcc/
* cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
config/mips/linux64.h, config/pa/pa-64.h,
config/rs6000/aix51.h, config/rs6000/aix52.h,
config/rs6000/spe.md, config/sparc/linux.h,
config/sparc/linux64.h: Update copyright.
gcc/cp/
* cp-tree.def, cvt.c: Update copyright.
From-SVN: r78032
2004-02-18 16:05:17 +01:00
|
|
|
2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* cp-tree.def, cvt.c: Update copyright.
|
|
|
|
|
2004-02-17 19:32:45 +01:00
|
|
|
2004-02-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/11326
|
|
|
|
* cp-tree.h (abi_version_at_least): Remove.
|
|
|
|
* mangle.c: Include flags.h.
|
|
|
|
|
2004-02-16 03:35:50 +01:00
|
|
|
2004-02-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13971
|
|
|
|
* call.c (build_conditional_expr): Handle conversions between
|
|
|
|
class types which result in differently cv-qualified type
|
|
|
|
variants.
|
|
|
|
|
|
|
|
PR c++/14086
|
|
|
|
* class.c (delete_duplicate_fields_1): Remove.
|
|
|
|
(delete_duplicate_fields): Likewise.
|
|
|
|
(finish_struct_anon): Remove check for members with the same name
|
|
|
|
as their enclosing class.
|
|
|
|
(check_field_decls): Do not call duplicate_fields.
|
|
|
|
* decl.c (grokdeclarator): Remove check for static data members
|
|
|
|
with the same name as their enclosing class.
|
|
|
|
* name-lookup.c (push_class_level_binding): Check for members with
|
|
|
|
the same name as their enclosing class.
|
|
|
|
|
2004-02-15 16:00:54 +01:00
|
|
|
2004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
PR c++/14085
|
|
|
|
* error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
|
|
|
|
|
2004-02-14 12:29:01 +01:00
|
|
|
2004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/13635
|
|
|
|
* pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
|
|
|
|
has full set of arguments.
|
|
|
|
|
2004-02-14 03:11:22 +01:00
|
|
|
2004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13927
|
|
|
|
* error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
|
|
|
|
|
2004-02-13 21:11:35 +01:00
|
|
|
2004-02-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-02-14 01:49:15 +01:00
|
|
|
PR c++/14122
|
|
|
|
* cp-tree.h (delete_sanity): Change prototype.
|
|
|
|
* decl2.c (delete_sanity): Make doing_vec a bool, not an int.
|
|
|
|
Remove dead code. Adjust code to warn about deleting an array.
|
|
|
|
* typekc.c (decay_conversion): Use build_address and build_nop.
|
|
|
|
|
|
|
|
PR c++/14108
|
|
|
|
* search.c (accessible_p): Do not check access in thunks.
|
|
|
|
|
2004-02-13 21:11:35 +01:00
|
|
|
PR c++/14083
|
|
|
|
* call.c (build_conditional_expr): Call force_rvalue on the
|
|
|
|
non-void operand in the case that one result is a throw-expression
|
|
|
|
and the other is not.
|
|
|
|
|
2004-02-13 17:11:39 +01:00
|
|
|
2004-02-13 Ian Lance Taylor <ian@wasabisystems.com>
|
|
|
|
|
|
|
|
PR c++/9851
|
|
|
|
* parser.c (cp_parser_pseudo_destructor_name): Check for errors on
|
|
|
|
the type name and look ahead for ::~, and bail out early with a
|
|
|
|
better error message if the parse is going to fail.
|
|
|
|
|
2004-02-13 08:19:25 +01:00
|
|
|
2004-02-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* call.c (conversion_kind): New type.
|
|
|
|
(conversion_rank): Likewise.
|
|
|
|
(conversion): Likewise.
|
|
|
|
(CONVERSION_RANK): New macro.
|
|
|
|
(conversion_obstack): New variable.
|
|
|
|
(obstack_initialized): Likewise.
|
|
|
|
(z_candidate): Change type of convs and second_conv.
|
|
|
|
(candidate_warning): New type.
|
|
|
|
(IDENTITY_RANK): Remove.
|
|
|
|
(EXACT_RANK): Likewise.
|
|
|
|
(PROMO_RANK): Likewise.
|
|
|
|
(STD_RANK): Likewise.
|
|
|
|
(PBOOL_RANK): Likewise.
|
|
|
|
(USER_RANK): Likewise.
|
|
|
|
(ELLIPSIS_RANK): Likewise.
|
|
|
|
(BAD_RANK): Likewise.
|
|
|
|
(ICS_RANK): Likewise.
|
|
|
|
(ICS_STD_RANK): Likewise.
|
|
|
|
(ICS_USER_FLAG): Likewise.
|
|
|
|
(ICS_ELLIPSIS_FLAG): Likewise.
|
|
|
|
(ICS_THIS_FLAG): Likewise.
|
|
|
|
(ICS_BAD_FLAG): Likewise.
|
|
|
|
(NEED_TEMPORARY_P): Likewise.
|
|
|
|
(CHECK_COPY_CONSTRUCTOR_P): Likewise.
|
|
|
|
(USER_CONV_CAND): Likewise.
|
|
|
|
(USER_CONV_FN): Likewise.
|
|
|
|
(conversion_obstack_alloc): New function.
|
|
|
|
(alloc_conversion): Likewise.
|
|
|
|
(validate_conversion_obstack): Likewise.
|
|
|
|
(alloc_conversions): Likewise.
|
|
|
|
(build_conv): Adjust to deal with new conversion data structures.
|
|
|
|
(build_identity_conv): New function.
|
|
|
|
(build_ambiguous_conv): Likewise.
|
|
|
|
(standard_conversion): Adjust to deal with new conversion data
|
|
|
|
structures.
|
|
|
|
(convert_class_to_reference): Likewise.
|
|
|
|
(direct_reference_binding): Likewise.
|
|
|
|
(reference_binding): Likewise.
|
|
|
|
(implicit_conversion): Likewise.
|
|
|
|
(add_candidate): Likewise.
|
|
|
|
(add_function_candidate): Likewise.
|
|
|
|
(add_conv_candidate): Likewise.
|
|
|
|
(build_builtin_candidate): Likewise.
|
|
|
|
(print_z_candidate): Likewise.
|
|
|
|
(merge_conversion_sequences): Likewise.
|
|
|
|
(build_user_type_conversion_1): Likewise.
|
|
|
|
(build_user_type_conversion): Likewise.
|
|
|
|
(build_new_function_call): Likewise.
|
|
|
|
(build_object_call): Likewise.
|
|
|
|
(conditional_conversion): Likewise.
|
|
|
|
(build_conditional_expr): Likewise.
|
|
|
|
(build_new_op): Likewise.
|
|
|
|
(build_op_delete_call): Likewise.
|
|
|
|
(convert_like_real): Likewise.
|
|
|
|
(build_over_call): Likewise.
|
|
|
|
(build_new_method_call): Likewise.
|
|
|
|
(is_subseq): Likewise.
|
|
|
|
(maybe_handle_implicit_object): Likewise.
|
|
|
|
(maybe_handle_ref_bind): Likewise.
|
|
|
|
(compare_ics): Likewise.
|
|
|
|
(source_type): Likewise.
|
|
|
|
(add_warning): Likewise.
|
|
|
|
(joust): Likewise.
|
|
|
|
(can_convert_arg): Likewise.
|
|
|
|
(can_convert_arg_bad): Likewise.
|
|
|
|
(perform_implicit_conversion): Likewise.
|
|
|
|
(perform_direct_initialization_if_possible): Likewise.
|
|
|
|
(initialize_reference): Likewise.
|
|
|
|
* cp-lang.c (cp_tree_size): Do not handle WRAPPER.
|
|
|
|
* cp-tree.def (WRAPPER): Likewise.
|
|
|
|
(IDENTITY_CONV): Remove.
|
|
|
|
(LVALUE_CONV): Likewise.
|
|
|
|
(QUAL_CONV): Likewise.
|
|
|
|
(STD_CONV): Likewise.
|
|
|
|
(PTR_CONV): Likewise.
|
|
|
|
(PMEM_CONV): Likewise.
|
|
|
|
(BASE_CONV): Likewise.
|
|
|
|
(REF_BIND): Likewise.
|
|
|
|
(USER_CONV): Likewise.
|
|
|
|
(AMBIG_CONV): Likewise.
|
|
|
|
(RVALUE_CONV): Likewise.
|
|
|
|
* cp-tree.h (tree_wrapper): Remove.
|
|
|
|
(WRAPPER_ZC): Remove.
|
|
|
|
(lang_tree_node): Remove wrapper.
|
|
|
|
(LOOKUP_SPECULATIVELY): Remove.
|
|
|
|
(build_op_delete_call): Adjust prototype.
|
|
|
|
(validate_conversion_obstack): Declare.
|
|
|
|
(build_zc_wrapper): Remove.
|
|
|
|
* cvt.c (convert_to_reference): Remove dead code.
|
|
|
|
(ocp_convert): Likewise.
|
|
|
|
* decl.c (redeclaration_error_message): Correct handling of
|
|
|
|
templates.
|
|
|
|
(finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
|
|
|
|
(cp_tree_node_structure): Remove WRAPPER case.
|
|
|
|
* decl2.c (finish_file): Call validate_conversion_obstack.
|
|
|
|
* init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
|
|
|
|
(build_op_delete_call): Likewise.
|
|
|
|
(build_x_delete): Likewise.
|
|
|
|
(build_delete): Adjust call to build_op_delete_call.
|
|
|
|
* pt.c (tsubst_friend_declaration): Adjust code to determine
|
|
|
|
whether or not a friend template is a definition.
|
|
|
|
(tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
|
|
|
|
* tree.c (build_zc_wrapper): Remove.
|
PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding. Declare
c_override_bindings_to_false. Update prototypes.
(struct lang_identifier): Update comments. Change fields to be
struct c_binding *.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
* c-common.h: Update prototypes.
* c-decl.c (struct c_scope): Update commentary. Remove names,
names_last, parms, parms_last, tags, and shadowed fields. Add
bindings and depth fields.
(scope_freelist): Move to more appropriate location.
(c_print_identifier): Update for changes to struct lang_identifier.
(objc_mark_locals_volatile): Update for new bindings structures.
(global_bindings_p): Honor c_override_global_bindings_to_false.
(pushlevel): Rename to push_scope; take no arguments; use the
scope_freelist; initialize scope->depth and check for overflow.
(poplevel): Rename to pop_scope; totally rewritten for new bindings
structures.
(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
Improve some commentary. Adjust handling of forward parm decls.
(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
Preserve C_DECL_IN_EXTERNAL_SCOPE.
(warn_if_shadowing): Correct indentation. Improve diagnostics.
(pushdecl): Remove unnecessary assertion. Short-circuit anonymous
decls. Rewrite for new bindings structures. Improve commentary.
Eliminate the copy_node call.
(implicit_decl_warning): Use the "diag" idiom (as seen in
locate_old_decl) to reduce code duplication; call locate_old_decl
if appropriate. Relocate to remove need for forward declaration.
(implicitly_declare): Adjust for new bindings structures. Kludge
around Objective-C not-really-builtin functions.
(undeclared_variable): Improve diagnostics. If current_function_decl
is nonnull but current_function_scope is null, use current_scope.
Use bind.
(lookup_tag): Adjust for new bindings structures. Kludge around
Objective-C's tag declarations that wind up in the external scope.
(lookup_name): Adjust for new bindings structures. Kludge around
c-common.c's pseudo-typedefs that wind up in the external scope.
(lookup_name_current_level): Rename lookup_name_in_scope; take a
second argument indicating the scope to examine; rewrite for
new bindings structures.
(c_init_decl_processing): Adjust for renamed functions. Do not
initialize current_file_decl, first_builtin_decl, last_builtin_decl.
First scope pushed is the external scope, not the global scope.
(builtin_function): Use bind, not pushdecl. Adjust other bits
for new data structures. Keep track of builtins that should be
made visible automatically.
(start_decl): Adjust diagnostics. Remove unnecessary call to
expand_decl.
(grokparms): Return 0 if arg_types is error_mark_node.
(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
reversed sense. Rewrite for new bindings structures. Do not
leave any decls in the scope, to prevent pop_scope from doing
contradictory things with them.
(finish_struct, finish_enum): Remove redundant diagnostics.
(build_enumerator): Don't cascade diagnostics for error_mark_node.
Mark location where -pedantic changes the meaning of the program.
(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
parameter decls into the function's scope structure using bind.
Warn here about function definitions in the wrong style.
Adjust diagnostics.
(store_parm_decls): Correct the determination of whether a
function was defined with a prototype.
(c_write_global_declarations): Operate on all file decls and on
the external scope. Split body of the loop to...
(c_write_global_declarations_1): ... this new function, to avoid
code duplication.
(truly_local_externals, first_builtin_decl, last_builtin_decl)
(make_scope, pop_scope, in_parm_level_p, set_block)
(any_external_decl, record_external_decl, bind_label, getdecls)
(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
(c_reset_state): Delete.
(visible_builtins, c_override_global_bindings_to_false)
(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
(external_scope, binding_freelist, bind, free_binding_and_advance)
(push_file_scope, pop_file_scope): New.
(pushtag, pushdecl_top_level, lookup_label, declare_label)
(define_label, c_make_fname_decl, finish_decl)
(mark_forward_parm_decls, build_compound_literal)
(grokdeclarator, start_function, check_for_loop_decls)
(identifier_global_value, record_builtin_type): Minor adjustments
for new bindings structures. Improve diagnostics and commentary.
* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
pushlevel/poplevel respectively.
(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
correct loop over multiple translation units; call fatal_error if
requested to compile more than one file at once. (This disables
IMA temporarily - an up-front error being preferable to a crash.)
* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
(all actions): Adjust calls to pushlevel/poplevel.
(parsing_iso_function_signature): Delete.
(extdef_1): Fold into extdef.
(old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
warn here about function definitions in the wrong style.
(after_tyle_declarator, parm_declarator_starttypename)
(parm_declarator_nostarttypename, notype_declarator): Remove
commented-out productions.
(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
an empty TREE_LIST node. Adjust calls to get_parm_info.
(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
to suppress -Wold-style-definition after this error.
(c_parse_file): Don't clear the binding stack or call
finish_fname_decls here. Correct comment.
* c-typeck.c (same_translation_unit_p): Export.
(common_type): Use c_override_global_bindings_to_false, not
pushlevel/poplevel/declare_parm_level.
* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
and LANG_HOOKS_GETDECLS with do-nothing stubs.
* objc/objc-lang.c: Likewise.
* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
get_parm_info.
(OBJC_VOID_AT_END): Delete; replace all uses
with void_list_node.
(generate_forward_declaration_to_string_table): Delete.
* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
* coverage.c (create_coverage): Don't pushdecl anything.
* langhooks.c (lhd_clear_binding_stack): Call
lang_hooks.decls.poplevel, not poplevel.
* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
circular list rather than going into an infinite loop.
cp:
* cp-lang.c (c_reset_state): Delete.
(push_file_scope, pop_file_scope): New stubs.
* parser.c (c_parse_file): Call sorry() here if called more than once.
testsuite:
* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
Adjust error regexps.
* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
* gcc.dg/noncompile/undeclared-1.c: New test cases.
* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
* gcc.dg/local1.c: Add explanatory comment.
From-SVN: r79883
2004-03-24 00:47:53 +01:00
|
|
|
|
2004-02-12 22:42:28 +01:00
|
|
|
2004-02-12 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
|
|
|
|
* cp-tree.h: Don't declare cxx_builtin_type_decls.
|
|
|
|
* decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
|
|
|
|
(record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
|
|
|
|
|
2004-02-11 02:47:06 +01:00
|
|
|
2004-02-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* typeck.c (lookup_destructor): Fix typo in error message.
|
|
|
|
|
2004-02-09 15:56:00 +01:00
|
|
|
2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* call.c, parser.c, tree.c: Fix comment typos.
|
|
|
|
|
2004-02-08 02:59:11 +01:00
|
|
|
2004-02-07 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
Bug 13856
|
|
|
|
* optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
|
|
|
|
* decl.c (duplicate_decls, start_function): Likewise.
|
|
|
|
|
|
|
|
2004-02-07 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* name-lookup.c (pushdecl): Issue shadow warnings directly.
|
|
|
|
* parser.c (free_parser_stacks): Delete.
|
|
|
|
|
c-ppoutput.c, [...]: Update copyright.
gcc/
* c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
config/m32r/linux.h, config/rs6000/ppc64-fp.c,
config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
Update copyright.
cp/
* rtti.c: Update copyright.
From-SVN: r77449
2004-02-07 15:14:54 +01:00
|
|
|
2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* rtti.c: Update copyright.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
2004-02-07 03:08:36 +01:00
|
|
|
|
|
|
|
PR c++/14033
|
|
|
|
* decl.c (require_complete_types_for_parms): Do not insert
|
|
|
|
error_mark_node in the parameter list.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
2004-02-06 18:24:31 +01:00
|
|
|
|
|
|
|
PR c++/14028
|
|
|
|
* parser.c (cp_parser_enclosed_template_argument_list): Emit straight
|
|
|
|
error when terminator can not be found.
|
|
|
|
|
2004-02-06 02:02:31 +01:00
|
|
|
2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
|
|
|
|
|
|
|
|
Make-lang.in (po-generated): Delete.
|
|
|
|
|
2004-02-05 23:07:33 +01:00
|
|
|
2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
|
|
|
|
targetm.calls.promote_prototypes.
|
|
|
|
|
2004-02-05 22:56:38 +01:00
|
|
|
2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR middle-end/13750
|
|
|
|
Revert:
|
|
|
|
2004-01-15 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
PR pch/13361
|
|
|
|
* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
|
|
|
|
(handle_pragma_implementation): Likewise.
|
|
|
|
|
2004-02-05 20:45:47 +01:00
|
|
|
2004-02-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13714
|
|
|
|
* typeck.c (lookup_destructor): Tweak error message.
|
|
|
|
|
2004-02-05 20:01:20 +01:00
|
|
|
2004-02-05 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
|
|
|
|
functions.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
2004-02-05 17:48:54 +01:00
|
|
|
|
|
|
|
PR c++/14008
|
2004-02-08 02:59:11 +01:00
|
|
|
* parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
|
2004-02-05 17:48:54 +01:00
|
|
|
code, only emits the diagnostic now. Added lookup of the identifier
|
|
|
|
and support for qualified ids.
|
|
|
|
(cp_parser_parse_and_diagnose_invalid_type_name): New function.
|
|
|
|
Parse an (invalid) type name as id-expression within a declarator.
|
|
|
|
(cp_parser_simple_declaration): Use it.
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
(cp_parser_make_typename_type): New function. Handle errors through
|
|
|
|
cp_parser_diagnose_invalid_typename.
|
|
|
|
(cp_parser_elaborated_type_specifier): Use it.
|
|
|
|
|
2004-02-05 06:22:21 +01:00
|
|
|
2004-02-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13932
|
|
|
|
* call.c (convert_like_real): Use "converting" rather than
|
|
|
|
"argument" as the descriptive keyword to
|
|
|
|
dubious_conversion_warnings.
|
|
|
|
* typeck.c (convert_for_assignment): Do not call
|
|
|
|
dubious_conversion_warnings.
|
|
|
|
|
2004-02-05 03:48:31 +01:00
|
|
|
2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13086
|
|
|
|
* init.c (build_delete): Emit a more informative error message in
|
|
|
|
case of an incomplete type, and on the correct source line.
|
|
|
|
|
alloc-pool.h, [...]: Update copyright.
gcc/
* alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
caller-save.c, df.h, genconfig.c, global.c, lcm.c,
ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
config/arm/fpa.md, config/arm/iwmmxt.md,
config/arm/netbsd-elf.h, config/arm/netbsd.h,
config/m68hc11/m68hc11.md, config/mips/iris5.h,
config/mn10300/mn10300.md, config/rs6000/altivec.md,
config/sparc/netbsd-elf.h: Update copyright.
cp/
* error.c, search.c: Update copyright.
java/
* typeck.c: Update copyright.
From-SVN: r77265
2004-02-04 20:15:30 +01:00
|
|
|
2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* error.c, search.c: Update copyright.
|
|
|
|
|
2004-02-05 02:58:10 +01:00
|
|
|
2004-02-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/9941
|
|
|
|
* rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
|
|
|
|
linkage for the typeinfo name string.
|
|
|
|
|
2004-02-04 19:35:18 +01:00
|
|
|
2004-02-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13969
|
|
|
|
* cp-tree.h (fold_non_dependent_expr): New function.
|
|
|
|
* parser.c (cp_parser_fold_non_dependent_expr): Remove.
|
|
|
|
(cp_parser_template_argument): Use fold_non_dependent_expr.
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
* pt.c (fold_non_dependent_expr): New function.
|
|
|
|
(convert_nontype_argument): Use it.
|
|
|
|
(tsubst_qualified_id): Simplify.
|
|
|
|
(tsubst_copy_and_build): Likewise.
|
|
|
|
|
2004-02-04 13:22:42 +01:00
|
|
|
2004-02-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* decl.c (cxx_push_function_context): Do not set
|
|
|
|
current_function_is_thunk.
|
|
|
|
* method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
|
|
|
|
actual function.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
2004-02-04 12:26:26 +01:00
|
|
|
|
2004-02-04 12:30:20 +01:00
|
|
|
PR c++/13997
|
2004-02-04 12:26:26 +01:00
|
|
|
* pt.c (more_specialized_class): Increase processing_template_decl
|
|
|
|
while partial ordering.
|
|
|
|
|
2004-02-03 21:01:59 +01:00
|
|
|
2004-02-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13925
|
|
|
|
* decl.c (start_function): Do not call pushdecl for any
|
|
|
|
instantiation or specialization of a primary template.
|
|
|
|
|
2004-02-03 18:59:58 +01:00
|
|
|
2004-02-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-02-03 21:00:47 +01:00
|
|
|
PR c++/13950
|
|
|
|
* parser.c (cp_parser_class_name): Robustify.
|
|
|
|
|
|
|
|
PR c++/13970
|
|
|
|
* parser.c (cp_parser_cache_group): Do not consume the EOF token.
|
|
|
|
|
2004-02-03 18:59:58 +01:00
|
|
|
PR c++/14002
|
|
|
|
* semantics.c (finish_id_expression): Do not return an
|
|
|
|
IDENTIFIER_NODE when lookup finds a PARM_DECL.
|
|
|
|
|
2004-02-03 17:53:27 +01:00
|
|
|
2004-02-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13978
|
|
|
|
* pt.c (build_non_dependent_expr): Do not build
|
|
|
|
NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
|
|
|
|
|
|
|
|
PR c++/13968
|
|
|
|
* semantics.c (finish_id_expression): Do not return an
|
|
|
|
IDENTIFIER_NODE when lookup finds a VAR_DECL.
|
|
|
|
|
|
|
|
PR c++/13975
|
|
|
|
* parser.c (cp_parser_simple_declaration): When skipping to the
|
|
|
|
end of the statement swallow the terminating semicolon.
|
|
|
|
|
2004-02-02 17:53:17 +01:00
|
|
|
2004-02-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13113
|
|
|
|
* init.c (build_offset_ref): Improve error recovery for invalid
|
|
|
|
uses of non-static member functions.
|
|
|
|
|
|
|
|
PR c++/13854
|
|
|
|
* cp-tree.h (cp_build_type_attribute_variant): New function.
|
|
|
|
* class.c (build_clone): Use cp_build_type_attribute_variant.
|
|
|
|
* decl.c (duplicate_decls): Likewise.
|
|
|
|
* pt.c (copy_default_args_to_explicit_spec): Likewise.
|
|
|
|
(tsubst_function_type): Likewise.
|
|
|
|
* tree.c (build_exception_variant): Check attributes before
|
|
|
|
concluding that two types are the same.
|
|
|
|
(cp_build_type-attribute_variant): New method.
|
|
|
|
* typeck.c (merge_types): Use cp_build_type_attribute_variant.
|
|
|
|
|
|
|
|
PR c++/13907
|
|
|
|
* call.c (convert_class_to_reference): Keep better track of
|
|
|
|
pedantically invalid user-defined conversions.
|
|
|
|
|
2004-02-02 02:09:22 +01:00
|
|
|
2004-02-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13957
|
|
|
|
* pt.c (tsubst_qualified_id): Improved error message when a type
|
|
|
|
is expected but not found.
|
|
|
|
|
2004-01-31 18:58:53 +01:00
|
|
|
2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* class.c: Fix comment typos.
|
|
|
|
* decl.c: Likewise.
|
|
|
|
* error.c: Likewise.
|
|
|
|
* parser.c: Likewise.
|
|
|
|
* pt.c: Likewise.
|
|
|
|
* search.c: Likewise.
|
|
|
|
* typeck.c: Likewise.
|
|
|
|
|
2004-01-31 00:37:39 +01:00
|
|
|
2004-01-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
2004-02-08 02:59:11 +01:00
|
|
|
PR c++/13693
|
|
|
|
* method.c (use_thunk): Don't force_target_expr for void thunks.
|
|
|
|
* tree.c (build_target_expr_with_type): Assert non-void type.
|
|
|
|
(force_target_expr): Likewise.
|
2004-01-31 00:37:39 +01:00
|
|
|
|
2004-01-30 18:01:29 +01:00
|
|
|
2004-01-30 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_labeled_statement): Accept case ranges.
|
|
|
|
|
2004-01-30 17:35:03 +01:00
|
|
|
2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
DR206
|
|
|
|
PR c++/13813
|
|
|
|
* decl.c (grokdeclarator): Check immediatly type completeness for
|
|
|
|
non-dependent types.
|
|
|
|
|
2004-01-30 16:08:37 +01:00
|
|
|
2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13683
|
|
|
|
* call.c (convert_arg_to_ellipsis): Don't emit a warning if within
|
|
|
|
a sizeof expression.block
|
|
|
|
|
2004-01-29 17:47:14 +01:00
|
|
|
2004-01-29 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13883
|
|
|
|
* mangle.c (write_encoding): Correct encoding of member template
|
|
|
|
constructors.
|
|
|
|
|
2004-01-29 05:23:37 +01:00
|
|
|
2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
2004-02-08 02:59:11 +01:00
|
|
|
* parser.c (cp_parser_template_id): Parse tentatively `[:' after a
|
2004-01-29 05:23:37 +01:00
|
|
|
template name as it was `<::' (digraph typo).
|
|
|
|
(cp_parser_nth_token_starts_template_argument_list_p): New function.
|
|
|
|
(cp_parser_id_expression): Use it.
|
|
|
|
(cp_parser_nested_name_specifier_opt): Likewise.
|
|
|
|
(cp_parser_template_name): Likewise.
|
|
|
|
(cp_parser_class_name): Likewise.
|
|
|
|
(cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
|
|
|
|
|
2004-01-29 02:29:03 +01:00
|
|
|
2004-01-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-29 03:21:51 +01:00
|
|
|
PR c++/13791
|
|
|
|
* typeck.c (merge_types): Do not merge attributes into
|
|
|
|
TYPENAME_TYPEs.
|
|
|
|
|
2004-01-29 02:29:03 +01:00
|
|
|
PR c++/13736
|
|
|
|
* parser.c (cp_parser_direct_declarator): Do not prevent
|
|
|
|
backtracking inside a parenthesized declarator.
|
|
|
|
(cp_parser_parameter_declaration): Fix typo in comment.
|
|
|
|
|
2004-01-28 21:15:40 +01:00
|
|
|
2004-01-28 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* semantics.c (expand_body) Do emit_associated_thunks before
|
|
|
|
expansion.
|
|
|
|
|
2004-01-27 21:36:02 +01:00
|
|
|
2004-01-27 Devang Patel <dpatel@apple.com>
|
|
|
|
|
|
|
|
* name-lookup.c: Include "debug.h"
|
|
|
|
(do_namespace_alias): Invoke debug_hooks to emit debug info
|
|
|
|
for namespace alias.
|
2004-02-08 02:59:11 +01:00
|
|
|
(do_local_using_decl): Invoke debug_hooks to emit debug info
|
2004-01-27 21:36:02 +01:00
|
|
|
for using decl.
|
|
|
|
(do_class_using_decl): Same.
|
|
|
|
(do_toplevel_using_decl): Same.
|
|
|
|
(do_using_directive): Same.
|
|
|
|
(cp_emit_debug_info_for_using): New function.
|
|
|
|
* Make-lang.in (cp/parser.o): Depend on debug.h
|
|
|
|
(cp/name-lookup.o): Same.
|
|
|
|
|
2004-01-27 03:33:22 +01:00
|
|
|
2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
* cp-tree.h (language_function, lang_type_header): Use
|
|
|
|
BOOL_BITFIELD.
|
|
|
|
* name-lookup.h (cp_binding_level): Likewise.
|
|
|
|
|
2004-01-26 18:41:50 +01:00
|
|
|
2004-01-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-26 21:11:46 +01:00
|
|
|
PR c++/13663
|
|
|
|
* semantics.c (finish_for_expr): Check for unresolved overloaded
|
|
|
|
functions.
|
|
|
|
|
2004-01-26 18:41:50 +01:00
|
|
|
* class.c (add_method): Just check processing_template_decl to
|
|
|
|
determine whether or not we are within a template.
|
|
|
|
* decl2.c (maybe_retrofit_in_chrg): Likewise.
|
|
|
|
* init.c (decl_constant_value): Check the type of the declaration,
|
|
|
|
not TREE_READONLY.
|
|
|
|
* name-lookup.c (maybe_push_to_top_level): Rename to ...
|
|
|
|
(push_to_top_level): ... this.
|
|
|
|
* name-lookup.h (maybe_push_to_top_level): Do not declare it.
|
|
|
|
* pt.c (push_template_decl_real): Reorder condition for speed.
|
|
|
|
(convert_template_argument): Use dependency-checking functions in
|
|
|
|
place of uses_template_parms.
|
|
|
|
(lookup_template_class): Avoid calling uses_template_parms more
|
|
|
|
than once.
|
|
|
|
(uses_template_parms): Reimplement, using dependency-checking
|
|
|
|
functions.
|
|
|
|
(instantiate_class_template): Use push_to_top_level, not
|
|
|
|
maybe_push_to_top_level.
|
|
|
|
(type_unification_real): Simplify.
|
|
|
|
(type_dependent_expression_p): Handle OFFSET_REFs and
|
|
|
|
TEMPLATE_DECLs.
|
|
|
|
(any_dependent_template_arguments_p): Handle multiple levels of
|
|
|
|
template argument.
|
|
|
|
* semantics.c (expand_or_defer_fn): Do not check
|
|
|
|
uses_template_parms for template instantiations.
|
|
|
|
* typeck.c (comptypes): Avoid calling cp_type_quals.
|
|
|
|
|
2004-01-26 04:13:49 +01:00
|
|
|
2004-01-25 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13833
|
|
|
|
* call.c (build_over_call): Do not convert arguments when
|
|
|
|
processing a template.
|
|
|
|
* pt.c (build_non_dependent_expr): Do not build a
|
|
|
|
NON_DEPENDENT_EXPR for arithmetic constants.
|
|
|
|
|
2004-01-25 23:43:08 +01:00
|
|
|
2004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13810
|
2004-02-08 02:59:11 +01:00
|
|
|
* parser.c (cp_parser_type_parameter): When cp_parser_id_expression
|
2004-01-25 23:43:08 +01:00
|
|
|
returns a TYPE_DECL. no further lookup is required.
|
|
|
|
* semantics.c (check_template_template_default_arg): A TYPE_DECL
|
|
|
|
is invalid. Rework to give better diagnostics.
|
|
|
|
|
2004-01-25 16:03:09 +01:00
|
|
|
2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
2004-01-25 15:18:19 +01:00
|
|
|
|
|
|
|
PR c++/13797
|
|
|
|
* pt.c (instantiate_class_template): Add an error_mark_node
|
|
|
|
check.
|
|
|
|
(tsubst_decl) <TEMPLATE_DECL case>: Likewise.
|
|
|
|
|
2004-01-23 23:57:07 +01:00
|
|
|
2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
PR c++/13701
|
|
|
|
* decl.c (finish_function): Move the call to
|
|
|
|
finish_fname_decls below the call to
|
|
|
|
finish_eh_spec_block.
|
|
|
|
|
2004-01-22 01:03:52 +01:00
|
|
|
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* optimize.c, typeck2.c: Update copyright.
|
|
|
|
|
2004-01-21 21:52:28 +01:00
|
|
|
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
* Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
|
|
|
|
init.c, mangle.c, typeck.c: Update copyright.
|
|
|
|
|
2004-01-21 08:41:49 +01:00
|
|
|
2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_class_specifier): Prevent garbage collection.
|
|
|
|
|
re PR other/12730 (manual page install broken with old Pod::man)
gcc/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12730
* configure.ac: Delete definition and subsitution of docdir.
Add info, man, srcman and srcinfo to target hooks. Create doc/
directory.
* configure: Regenerate.
* Makefile.in: Don't substitute docdir and delete all references
throughout.
(MAKEINFOFLAGS): Define.
(stmp-docobjdir): Delete.
(INFOFILES, MANFILES): Define.
(info): Call lang.info, srcinfo and lang.srcinfo.
(generated-manpages): Call lang.man, srcman and lang.srcman.
(srcinfo, srcman): New rules to copy back files to source directory.
(doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
(install-man): Revamp rule.
(clean): Update dvi directory.
(distclean): Delete TAGS from front end directorys.
(maintainer-clean): Delete all document files in source directory.
objc/Make-lang.in (objc.man, objc.info): Dummy entries.
(objc.srcman, objc.srcinfo): Likewise.
gcc/ada/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in: Replace $(docdir) with doc.
(doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
to use consistent MAKEINFO rule.
(ada.man, ada.srcman): Dummy entry.
(ADA_INFOFILES): Define.
(ada.info, ada.srcinfo): New rules.
gcc/cp/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in: Replace $(docdir) with doc.
(c++.info, c++.srcinfo): Dummy entry.
(c++.man, c++.srcman): New rules.
(c++.install-man): Revamp rule.
gcc/f/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in: Replace $(docdir) with doc.
(TEXI_G77_FILES): Define.
(f77.rebuilt): Delete.
(f77.srcextra): Add dependencies on f/BUGS and f/NEWS.
(f77.srcman, f77.srcinfo, f77.man, f77.info): New rules.
(doc/g77.info, doc/g77.dvi): Depend on TEXI_G77_FILES. Always build in
doc directory. Use $(MAKEINFOFLAGS).
(info, dvi, generated_manpages): Update to look in doc directory.
(f/BUGS, f/NEWS): Generate in build directory.
(f77.mostlyclean): Delete BUGS and NEWS from build directory.
(f77.maintainer-clean): Adjust to delete from source directory.
(f77.install-man): Revamp rule.
gcc/java/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in: Replace $(docdir) with doc.
(java.info, java.srcinfo, java.man, java.srcman): New rules.
(java.install-man): Revamp rule.
gcc/treelang/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in: Replace $(docdir) with doc.
(treelang.info, treelang.srcinfo): New rules.
(treelang.man, treelang.man): Dummy entries.
maintainer-scripts/
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* gcc_release (build_sources): Delete call to make f77.rebuilt.
From-SVN: r76249
2004-01-21 03:01:55 +01:00
|
|
|
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
|
|
|
|
|
|
|
|
* Make-lang.in: Replace $(docdir) with doc.
|
|
|
|
(c++.info, c++.srcinfo): Dummy entry.
|
|
|
|
(c++.man, c++.srcman): New rules.
|
|
|
|
(c++.install-man): Revamp rule.
|
|
|
|
|
Makefile.in (target_noncanonical, [...]): Use immediate define instead of deferred.
gcc/
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (target_noncanonical, program_transform_name): Use
immediate define instead of deferred.
(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
deferred backquote.
gcc/cp
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
immediate $(shell) instead of deferred backquote.
gcc/f
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (G77_INSTALL_NAME): Define via a immediate $(shell)
instead of deferred backquote.
gcc/java
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
instead of deferred backquote.
From-SVN: r76193
2004-01-20 02:52:02 +01:00
|
|
|
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
|
|
|
|
|
2004-02-08 02:59:11 +01:00
|
|
|
* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
|
Makefile.in (target_noncanonical, [...]): Use immediate define instead of deferred.
gcc/
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (target_noncanonical, program_transform_name): Use
immediate define instead of deferred.
(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
deferred backquote.
gcc/cp
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
immediate $(shell) instead of deferred backquote.
gcc/f
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (G77_INSTALL_NAME): Define via a immediate $(shell)
instead of deferred backquote.
gcc/java
2004-01-16 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
instead of deferred backquote.
From-SVN: r76193
2004-01-20 02:52:02 +01:00
|
|
|
CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
|
|
|
|
immediate $(shell) instead of deferred backquote.
|
|
|
|
|
2004-01-19 21:33:29 +01:00
|
|
|
2004-01-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-19 23:10:31 +01:00
|
|
|
PR c++/13651
|
|
|
|
* parser.c (cp_parser_postfix_expression): When encountering
|
|
|
|
incomplete type on left-hand side of "->" or ".", treat the entire
|
|
|
|
expression as erroneous.
|
|
|
|
|
2004-01-19 21:33:29 +01:00
|
|
|
PR c++/13592
|
|
|
|
* call.c (build_field_call): Remove.
|
|
|
|
(n_build_method_call): Likewise.
|
|
|
|
(build_method_call): Likewise.
|
|
|
|
(build_new_method_call): Do not call build_field_call.
|
|
|
|
* class.c (n_build_method_call): Remove.
|
|
|
|
(print_class_statistics): Do not print it.
|
|
|
|
* cp-tree.h (build_method_call): Remove declaration.
|
|
|
|
(finish_object_call_expr): Likewise.
|
|
|
|
(build_new_1): Do not use build_method_call.
|
|
|
|
* parser.c (cp_parser_postfix_expression): Use finish_call_expr
|
|
|
|
when the function appearing on the right-hand-side of "." or "->"
|
|
|
|
is not actually a function.
|
|
|
|
* pt.c (tsubst_copy_and_build): Likewise.
|
|
|
|
* semantics.c (finish_object_call_expr): Remove.
|
|
|
|
|
2004-01-19 01:47:59 +01:00
|
|
|
2004-01-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-19 01:51:56 +01:00
|
|
|
PR c++/13710
|
2004-01-19 01:47:59 +01:00
|
|
|
* pt.c (tsubst): Use finish_typeof.
|
|
|
|
|
2004-02-20 23:55:14 +01:00
|
|
|
2004-01-18 Jason Merrill <jason@redhat.com>
|
2004-01-18 16:38:08 +01:00
|
|
|
|
|
|
|
PR c++/11725
|
|
|
|
* except.c (build_throw): In a template, set
|
|
|
|
current_function_returns_abnormally.
|
|
|
|
|
2004-01-17 20:04:05 +01:00
|
|
|
2004-01-17 Fred Fish <fnf@intrinsity.com>
|
2004-01-17 19:59:46 +01:00
|
|
|
|
|
|
|
PR c++/11895
|
|
|
|
* decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
|
|
|
|
except don't call array_type_nelts() with a VECTOR_TYPE.
|
|
|
|
|
re PR target/13608 (Incorrect code with -O3 -ffast-math)
* i386.md (load_tp_di): Fix pasto.
PR opt/13608
* i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
* c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
pp_c_character_constant, pp_c_floating_constant,
pp_c_additive_expression, pp_c_shift_expression,
pp_c_equality_expression, pp_c_and_expression,
pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
pp_c_logical_and_expression): Remove inline modifier.
* dwarf2out.c (get_AT): Likewise.
* et-forest.c (et_splay): Likewise.
* ra.h (ra_alloc, ra_calloc): Likewise
* mangle.c (write_mangled_name): Remove inline modifier.
From-SVN: r75988
2004-01-16 19:53:51 +01:00
|
|
|
2004-01-16 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* mangle.c (write_mangled_name): Remove inline modifier.
|
|
|
|
|
2004-01-16 17:59:30 +01:00
|
|
|
2004-01-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-16 20:28:11 +01:00
|
|
|
PR c++/13574
|
|
|
|
* decl.c (compute_array_index_type): Fix grammar in comment.
|
|
|
|
* init.c (build_zero_init): Handle zero-sized arrays correctly.
|
|
|
|
|
2004-01-16 19:39:58 +01:00
|
|
|
PR c++/13178
|
|
|
|
* call.c (name_as_c_string): Print conversion operator names
|
|
|
|
correctly.
|
|
|
|
|
2004-01-16 17:59:30 +01:00
|
|
|
PR c++/13478
|
2004-01-16 18:54:25 +01:00
|
|
|
* call.c (initialize_reference): Pass -1 for inner parameter to
|
|
|
|
convert_like_real.
|
2004-01-16 17:59:30 +01:00
|
|
|
|
2004-01-16 13:29:40 +01:00
|
|
|
2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13407
|
|
|
|
* parser.c (cp_parser_base_specifier): Check for an invalid
|
|
|
|
keyword `typename' and emit an user-friendly error message.
|
|
|
|
|
2004-01-16 08:20:38 +01:00
|
|
|
2004-01-15 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
PR pch/13361
|
|
|
|
* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
|
|
|
|
(handle_pragma_implementation): Likewise.
|
|
|
|
|
2004-01-16 00:41:41 +01:00
|
|
|
2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/9259
|
|
|
|
* typeck.c (build_class_member_access_expr): Allow to access members
|
|
|
|
of the currently open class.
|
|
|
|
(finish_class_member_access_expr): Likewise.
|
|
|
|
|
2004-01-15 15:45:15 +01:00
|
|
|
2004-01-15 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
PR c++/13659
|
|
|
|
* name-lookup.c (validate_nonmember_using_decl): Take scope and
|
|
|
|
name by value, instead of computing them.
|
|
|
|
(do_local_using_decl, do_toplevel_using_decl): Add scope and name
|
|
|
|
arguments. Pass them to validate_nonmember_using_decl.
|
|
|
|
* name-lookup.h (do_local_using_decl): Adjust.
|
|
|
|
(do_toplevel_using_decl): Likewise.
|
|
|
|
* parser.c (cp_parser_using_declaration): Likewise.
|
|
|
|
* pt.c (tsubst_expr): Likewise.
|
|
|
|
|
2004-01-15 15:41:48 +01:00
|
|
|
2004-01-15 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
PR c++/13594
|
|
|
|
PR c++/13658
|
|
|
|
* name-lookup.c (qualified_lookup_using_namespace): Search
|
|
|
|
strongly-associated namespaces first, and only then try other
|
|
|
|
namespaces.
|
|
|
|
|
re PR bootstrap/12744 (A GCC release tarball can no longer be built without bison/flex)
gcc/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir. Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule. Don't substitute
parsedir and delete all references throughout. Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.
* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.
gcc/ada/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (ada.srcextra): Dummy entry.
gcc/cp/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (c++.srcextra): Dummy entry.
gcc/f/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (f77.srcextra): Dummy entry.
gcc/java/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
(java.srcextra): Copy above back to source directory if requested.
(po-generated): Delete reference to $(parsedir).
(java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
Use implicit rule.
gcc/treelang/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir).
(treelang/parse.o, treelang/lex.o): Look for sources in build
directory. Use implicit rule.
(treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in
doc directory.
(treelang.srcextra): Copy above back to source directory if requested.
From-SVN: r75903
2004-01-15 05:02:24 +01:00
|
|
|
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
|
|
|
|
|
|
|
|
* Make-lang.in (c++.srcextra): Dummy entry.
|
|
|
|
|
2004-01-15 02:39:58 +01:00
|
|
|
2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/8856
|
2004-02-08 02:59:11 +01:00
|
|
|
* parser.c (cp_parser_template_name): Don't try to parse a
|
2004-01-15 02:39:58 +01:00
|
|
|
conversion-function-id, as it cannot be a template-name.
|
|
|
|
(cp_parser_simple_type_specifier): Check for invalid template-ids
|
|
|
|
even after a built-in type.
|
|
|
|
|
2004-01-14 12:34:37 +01:00
|
|
|
2004-01-14 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
PR c++/12850
|
|
|
|
* pt.c (instantiate_decl): Do not increase function_depth.
|
|
|
|
|
2004-01-14 08:27:07 +01:00
|
|
|
2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/9021
|
2004-05-30 20:04:30 +02:00
|
|
|
PR c++/11005
|
2004-01-14 08:27:07 +01:00
|
|
|
* parser.c (cp_parser_elaborated_type_specifier): Warn about
|
|
|
|
attributes and discard.
|
|
|
|
* decl.c (xref_tag): Don't overwite existing attributes with
|
|
|
|
NULL_TREE.
|
|
|
|
|
2004-01-14 05:50:30 +01:00
|
|
|
2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/12335
|
|
|
|
* parser.c (cp_parser_lookup_name): Return error_mark_node if there
|
|
|
|
is no destructor while looking up a BIT_NOT_EXPR.
|
|
|
|
|
2004-01-14 04:02:35 +01:00
|
|
|
2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
|
|
|
|
|
|
|
|
* cxxfilt.c: Remove unused file.
|
|
|
|
|
2004-01-14 00:59:19 +01:00
|
|
|
2004-01-14 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
Partial fix to PR c++/12850
|
|
|
|
* decl2.c (mark_used): Do not proactively instantiate templates
|
|
|
|
when compiling in unit-at-a-time or not optimizing.
|
|
|
|
* optimize.c (maybe_clone_body): Do not increase function depth.
|
|
|
|
|
2004-01-13 02:02:27 +01:00
|
|
|
2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/13474
|
|
|
|
* pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
|
|
|
|
|
2004-06-18 04:24:43 +02:00
|
|
|
2004-01-12 Steven Bosscher <stevenb@suse.de>
|
2004-01-13 01:44:51 +01:00
|
|
|
|
|
|
|
PR c++/13558
|
|
|
|
* parser.c (cp_parser_member_declaration): Any non-type is also
|
|
|
|
not a class or a function.
|
|
|
|
|
2004-01-13 01:01:46 +01:00
|
|
|
2004-01-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
PR c++/12815
|
|
|
|
* class.c (build_base_path): Do not mark vtable references as
|
|
|
|
TREE_CONSTANT.
|
|
|
|
(build_vtbl_ref_1): Likewise.
|
|
|
|
|
2004-01-12 22:38:04 +01:00
|
|
|
2004-01-12 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR opt/10776
|
|
|
|
* typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
|
|
|
|
(store_init_value): Use it.
|
|
|
|
* decl.c (check_initializer): Expect full initialization code
|
|
|
|
from store_init_value.
|
|
|
|
* init.c (expand_aggr_init_1): Likewise.
|
|
|
|
* decl2.c (maybe_emit_vtables): Abort if runtime init needed.
|
|
|
|
|
2004-01-12 21:36:45 +01:00
|
|
|
2004-01-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* class.c (layout_class_type): For non-POD class types, also copy
|
|
|
|
the DECL_SIZE and DECL_MODE of fields to the base class type.
|
|
|
|
|
2004-01-12 21:10:19 +01:00
|
|
|
2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/13289
|
|
|
|
* pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
|
|
|
|
calling regenerate_decl_from_template.
|
|
|
|
|
2004-01-12 17:14:41 +01:00
|
|
|
2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
|
|
|
|
|
|
|
|
PR c++/4100
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
|
|
|
|
decl-specifier occurring along with a class definition.
|
|
|
|
|
2004-01-12 16:25:16 +01:00
|
|
|
2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Add parenthetical
|
|
|
|
clauses to comments describing declares_class_or_enum.
|
|
|
|
(cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
|
|
|
|
false.
|
|
|
|
|
2004-01-12 14:18:13 +01:00
|
|
|
2004-01-12 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
* pt.c (for_each_template_parm): Do not check for duplicates.
|
|
|
|
(for_each_template_parm): Use walk_tree duplicate checking code.
|
|
|
|
|
2004-01-11 21:33:35 +01:00
|
|
|
2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
|
|
|
|
|
|
|
|
PR c++/3478
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
|
|
|
|
is error_mark_node, don't add any more decl_specs.
|
|
|
|
(cp_parser_init_declarator): After committing to a declaration, if
|
|
|
|
the decl_specifiers start with error_mark_node, issue an error and
|
|
|
|
change the type to "int".
|
|
|
|
|
2004-01-10 02:30:39 +01:00
|
|
|
2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR bootstrap/7817
|
|
|
|
* Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
|
|
|
|
|
2004-01-10 02:18:08 +01:00
|
|
|
2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
DR 337
|
|
|
|
PR c++/9256
|
2004-02-08 02:59:11 +01:00
|
|
|
* pt.c (tsubst): Substitution must fail if we are attempting to
|
2004-01-10 02:18:08 +01:00
|
|
|
create an array with element type that is an abstract class type.
|
|
|
|
* decl.c (cp_finish_decl): Strip pointers and array types recursively
|
|
|
|
before calling abstract_virtuals_error.
|
|
|
|
|
2004-01-09 22:30:31 +01:00
|
|
|
2004-01-09 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
* name-lookup.c (qualified_lookup_using_namespace): Consider
|
|
|
|
strong using directives even if we've already found a binding.
|
|
|
|
|
2004-01-09 20:55:13 +01:00
|
|
|
2004-01-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
* cp-tree.h (cxx_expand_expr): Change prototype.
|
|
|
|
* expr.c (cxx_expand_expr): Add alt_rtl parameter.
|
|
|
|
|
2004-01-08 12:52:41 +01:00
|
|
|
2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR c++/12573
|
|
|
|
* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
|
|
|
|
looking into them recursively. They can be there because of the
|
|
|
|
new __offsetof__ extension.
|
|
|
|
|
2004-01-08 08:50:46 +01:00
|
|
|
2004-01-07 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
* parser.c (cp_parser_save_member_function_body): Mark the
|
|
|
|
definition static.
|
|
|
|
|
2004-01-05 20:54:35 +01:00
|
|
|
2004-01-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-06 03:26:13 +01:00
|
|
|
PR c++/13057
|
|
|
|
* class.c (build_clone): Copy type attributes from the original
|
|
|
|
function to the clone.
|
2004-01-08 08:50:46 +01:00
|
|
|
|
2004-01-06 01:52:36 +01:00
|
|
|
PR c++/12815
|
2004-01-06 01:52:10 +01:00
|
|
|
* class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
|
|
|
|
references as constant.
|
|
|
|
|
2004-01-05 22:07:22 +01:00
|
|
|
PR c++/12132
|
|
|
|
* parser.c (cp_parser_explicit_instantiation): Improve error
|
|
|
|
recovery.
|
|
|
|
(cp_parser_require): Improve indication of the error location.
|
|
|
|
|
2004-01-05 20:54:35 +01:00
|
|
|
PR c++/13451
|
|
|
|
* parser.c (cp_parser_class_head): Reorder logic to check for
|
|
|
|
invalid qualification.
|
|
|
|
|
2004-01-05 07:24:47 +01:00
|
|
|
2004-01-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
PR c++/13157
|
|
|
|
* name-lookup.c (lookup_using_namespace): Remove spacesp
|
|
|
|
parameter.
|
|
|
|
(unqualified_namespace_lookup): Likewise.
|
|
|
|
(lookup_qualified_name): Adjust accordingly.
|
|
|
|
(lookup_name_real): Likewise.
|
|
|
|
(lookup_arg_dependent): Do not eliminate the namespace of the
|
|
|
|
functions found by unqualified name lookup unless that is the
|
|
|
|
current namespace.
|
|
|
|
|
2004-01-05 06:47:16 +01:00
|
|
|
2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
* semantics.c (push_deferring_access_checks): Fix format.
|
|
|
|
(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.
|
|
|
|
|
2004-01-05 06:37:06 +01:00
|
|
|
2004-01-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* call.c (build_over_call): Don't create a save_expr of an
|
|
|
|
aggregate, but rather its address.
|
|
|
|
|
2004-01-04 23:42:22 +01:00
|
|
|
2004-01-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
2004-01-05 02:52:57 +01:00
|
|
|
PR c++/13529
|
|
|
|
* parser.c (cp_parser_postfix_expression): Allow "." to appear in
|
|
|
|
an offsetof expression.
|
|
|
|
|
2004-01-05 02:30:10 +01:00
|
|
|
* parser.c (cp_parser_parameter_declaration): Fix comment.
|
|
|
|
|
2004-01-04 23:42:22 +01:00
|
|
|
PR c++/12226
|
|
|
|
* call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
|
|
|
|
(reference_binding): Set it when appropriate.
|
|
|
|
(build_temp): New function, split out from ...
|
|
|
|
(convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
|
|
|
|
(initialize_reference): Likewise.
|
|
|
|
|
|
|
|
PR c++/13536
|
|
|
|
* parser.c (cp_parser): Add in_type_id_in_expr_p.
|
|
|
|
(cp_parser_new): Initialize it.
|
|
|
|
(cp_parser_postfix_expression): Set it.
|
|
|
|
(cp_parser_sizeof_operand): Likewise.
|
|
|
|
(cp_parser_parameteR_declaration): Do not commit early to tenative
|
|
|
|
parsers when in_type_id_in_expr_p is set.
|
|
|
|
|
2004-01-03 09:25:38 +01:00
|
|
|
2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/13094
|
|
|
|
* parser.c (cp_parser_template_argument): Don't call
|
|
|
|
make_unbound_class_template directly.
|
|
|
|
(cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
|
|
|
|
UNBOUND_CLASS_TEMPLATE tree node.
|
|
|
|
|
2004-01-02 16:54:08 +01:00
|
|
|
2004-01-02 Richard Sandiford <rsandifo@redhat.com>
|
|
|
|
|
|
|
|
PR target/12729
|
|
|
|
* method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
|
|
|
|
|
2004-01-02 12:41:51 +01:00
|
|
|
2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
PR c++/13520
|
|
|
|
* cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
|
|
|
|
(DECL_FUNCTION_TEMPLATE_P): Use it.
|
|
|
|
(DECL_CLASS_TEMPLATE_P): Likewise.
|
|
|
|
* parser.c (cp_parser_lookup_name): Add is_template parameter.
|
|
|
|
(cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
|
|
|
|
(cp_parser_template_name): Likewise.
|
|
|
|
(cp_parser_elaborated_type_specifier): Likewise.
|
|
|
|
(cp_parser_namespace_name): Likewise.
|
|
|
|
(cp_parser_class_name): Likewise.
|
|
|
|
(cp_parser_lookup_name_simple): Likewise.
|
2003-12-30 11:07:13 +01:00
|
|
|
|
2004-01-01 01:48:12 +01:00
|
|
|
See ChangeLog.3 for earlier changes.
|