1. 06 Oct, 1998 11 commits
    • * Makefile.in (INCLUDES): Make it multilib-friendly · 5e2f657b
      From-SVN: r22871
      Alexandre Oliva committed
    • * collect2.c (main): Initialize ld_file_name. · 0eac1e43
      From-SVN: r22870
      Richard Henderson committed
    • cp-tree.def (PTRMEM_CST): New tree node. · 61a127b3
      	* cp-tree.def (PTRMEM_CST): New tree node.
      	* cp-tree.h (ptrmem_cst): New type.
      	(lang_type): Remove local_typedecls.
      	(dummy): Increase to 12 bits from 11.
      	(CLASSTYPE_LOCAL_TYPEDECLS): Remove.
      	(PTRMEM_CST_CLASS): New macro.
      	(PTRMEM_CST_MEMBER): Likewise.
      	(current_access_specifier): New variable.
      	(current_class_type): Remove duplicate declaration.
      	(finish_struct): Change prototype.
      	(unreverse_member_declarations): New function.
      	(pushdecl_class_level): Change prototype.
      	(grok_enum_decls): Remove.
      	(fixup_anonymous_union): New function.
      	(grok_x_components): Change prototype.
      	(tsubst_chain): Remove.
      	(finish_member_template_decl): Likewise.
      	(check_explicit_specialization): Fix indentation.
      	(finish_class_definition): Change prototype.
      	(finish_member_class_template): Likewise.
      	(finish_member_declaration): New function.
      	(check_multiple_declarators): Likewise.
      	* class.c (class_stack_node_t): New type.
      	(current_class_base): Remove.
      	(current_class_stack): Change type.
      	(current_access_specifier): New variable.
      	(grow_method): Remove.
      	(check_member_decl_is_same_in_complete_scope): Break out from
      	finish_struct.
      	(make_method_vec): New function.
      	(free_method_vec): Likewise.
      	(add_implicitly_declared_members): Break out from finish_struct_1.
      	(free_method_vecs): New variable.
      	(add_method): Rework for direct use from parser.
      	(handle_using_decl): Watch for NULL_TREE while iterating through
      	CLASSTYPE_METHOD_VEC.
      	(finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here;
      	just do some error-checking.
      	(warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC.
      	(finish_struct_1): Simplify.  Use add_implicitly_declared_members.
      	(finish_struct): Change prototype.  Simplify; fields and methods
      	are already set up at this point.
      	(init_class_processing): Set up current_class_stack.
      	(pushclass): Save current_access_specifier.
      	(popclass): Restore it.
      	(currently_open_class): Simplify.
      	(build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS.
      	* decl.c (saved_scope): Add access_specifier.
      	(maybe_push_to_top_level): Save it.
      	(pop_from_top_level): Restore it.
      	(maybe_process_template_type_declaration): Use
      	finish_member_declaration.
      	(pushtag): Likewise.
      	(pushdecl_class_level): Don't return a value.
      	(fixup_anonymous_union): Break out from grok_x_components.
      	(shadow_tag): Use it.
      	(xref_tag): Complain about using an elaborated type specifier to
      	reference a template type parameter or typedef name.
      	(xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
      	(current_local_enum): Remove.
      	(build_enumerator): Call finish_member_declaration.
      	(grok_enum_decls): Remove.
      	* decl2.c (grok_x_components): Simplify.
      	(check_classfn): Change iteration through CLASSTYPE_METHOD_VEC.
      	(grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
      	(merge_functions): Add to comment.
      	(arg_assoc_type): Prototype.
      	(arg_assoc): Pass as many arguments as there are parameters.
      	* error.c (dump_expr): Handle PTRMEM_CST.  Improve handling of
      	OFFSET_REF.
      	* expr.c (cpls_expand_expr): Remove dead code.  Handle
      	PTRMEM_CST.
      	* friend.c (do_friend): Lookup friends when in nested classes.
      	Change comments.
      	* init.c (build_offset_ref): Do lookup even for classes that are
      	only partially defined.
      	(decl_constant_value): Remove dead code.
      	* method.c (build_overload_value): Remove hack where by TYPE was
      	not a TYPE.  Handle PTRMEM_CST.
      	(build_template_parm_names): Don't pass a PARM_DECL where a TYPE
      	should go.
      	* parse.y (components, notype_components, component_decl,
      	component_decl_1, component_declarator, component_declarator0):
      	Now all are itype rather than ttype.  Rework to add members to
      	classes on the fly.
      	(typesqpecqual_reserved): Use check_multiple_declarators.
      	(structsp): Update class to finish_class_definition.
      	(do_xref_defn): Unsplit into named_class_head.
      	(access_specifier): Set current_access_specifier.
      	* pt.c (set_current_access_from_decl): New function.
      	(finish_member_template_decl): Don't take the parameters.
      	(comp_template_args): Make more robust.
      	(lookup_template_class): Don't use current_local_enum.
      	(for_each_template_parm): Handle PTRMEM_CST.
      	(instantiate_class_template): Use set_current_access_from_decl,
      	finish_member_declaration and unreverse_member_declarations.  Set
      	lineno/input_filename before generating implicit member functions.
      	(type_unification_real): Don't assume back-unification happens
      	only for the last argument.
      	(regenerate_decl_from_template): Call pushclass a bit earlier.
      	(tsubst_chain): Remove.
      	(tsubst_enum): Use set_current_access_from_decl.
      	(set_mangled_name_for_template_decl): Fix indentation.
      	* search.c (lookup_fnfields_1): Change iteration through
      	CLASSTYPE_METHOD_VEC.
      	(dfs_pushdecls): Likewise.
      	(dfs_compress_decls): Likewise.
      	(add_conversions): Likewise.
      	* semantics.c (finish_class_definition): Don't take components.
      	Change call to finish_struct.
      	(finish_member_declaration): New function.
      	(finish_member_class_template): Don't take template parameters.
      	Change call to grok_x_components.  Call finish_member_template_decl.
      	(check_multiple_declarators): New function.
      	* sig.c (append_signature_fields): Work from the TYPE_METHODS, not
      	a passed in fieldlist.
      	* tree.c (search_tree): Handle PTRMEM_CST.
      	(mapcar): Likewise.
      	* typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not
      	INTEGER_CSTs, for pointer-to-data members.
      
      From-SVN: r22869
      Mark Mitchell committed
    • sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't check for flag_function_sections. · 1c9a32c2
              * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
              check for flag_function_sections.
      
      From-SVN: r22868
      Catherine Moore committed
    • call.c (resolve_args): Resolve template specializations, if possible. · 683b80da
      	* call.c (resolve_args): Resolve template specializations, if
      	possible.
      
      From-SVN: r22867
      Mark Mitchell committed
    • * cse.c (insert_regs): Fix bug in Sep 24 change. · 37053d1f
      From-SVN: r22866
      J"orn Rennecke committed
    • Cleanup for -fdump-unnumbered: · b707b450
      	* flags.h (flag_dump_unnumbered): Declare.
      	* toplev.c (flag_dump_unnumbered): Don't declare.
      	* print-rtl.c (flags.h): Include.
      	(print_rtl_single): Add return value.
      	* rtl.h (print_rtl_single): Update declaration.
      	* flow.c (flag_dump_unnumbered): Don't declare.
      	(print_rtl_with_bb): Use return value of print_rtl_single.
      
      From-SVN: r22865
      J"orn Rennecke committed
    • Warning fixes: · 87603ed0
              * Makefile.in (spew.o): Depend on toplev.h.
              * call.c (compare_ics): Initialize variables `deref_from_type2',
              `deref_to_type1' and `deref_to_type2'.
              * except.c (get_eh_type): Hide prototype and definition.
              (process_start_catch_block_old): Remove unused static prototype.
              * pt.c (tsubst_decl): Initialize variable `argvec'.
              * spew.c: Include toplev.h.
      
      From-SVN: r22864
      Kaveh R. Ghazi committed
    • Daily bump. · bcd26ca7
      From-SVN: r22863
      Jeff Law committed
    • Makefile.in (stupid.o): Update dependencies. · cad6f7d0
      	* Makefile.in (stupid.o): Update dependencies.
      	(global.o): Likewise.
      	* global.c: Include reload.h
      	(reg_becomes_live): New function.
      	(reg_dies): New function.
      	(build_insn_chain): New function.
      	(global_alloc): Call build_insn_chain before calling reload.
      	* reload.h (struct needs): New structure definition.
      	(struct insn_chain): Likewise.
      	(reload_insn_chain): Declare variable.
      	(new_insn_chain): Declare function.
      	* reload1.c (reload_startobj): New variable.
      	(reload_insn_chain): New variable.
      	(unused_insn_chains): New variable.
      	(new_insn_chain): New function.
      	(init_reload): Initialize reload_startobj, not reload_firstobj.
      	(reload): Initialize reload_firstobj.
      	Before returning, free everything on the reload_obstack.
      	* stupid.c: Include insn-config.h, reload.h and basic-block.h.
      	(reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
      	current_chain): New variables.
      	(reg_where_born): Delete variable.
      	(REG_WHERE_BORN): New macro.
      	(find_clobbered_regs): New function.
      	(stupid_life_analysis): Don't allocate/free reg_where_born.
      	Allocate and free reg_where_born_exact, reg_where_born_clobber,
      	reg_where_dead_chain.
      	Use REG_WHERE_BORN instead of reg_where_born.
      	While processing the insns, build the reload_insn_chain with
      	information about register lifetimes.
      	(stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
      	(stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
      	changed.
      	Compute and information about birth and death of pseudo registers in
      	reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
      	Delete code to set elements of reg_where_born.
      
      From-SVN: r22862
      Bernd Schmidt committed
    • friend35.C: New test. · 0eaae86c
      	* g++.old-deja/g++.pt/friend35.C: New test.  A template function
       	must be declared before its specializations can be named in friend
       	declarations.
      
      From-SVN: r22861
      Alexandre Oliva committed
  2. 05 Oct, 1998 21 commits
  3. 04 Oct, 1998 8 commits