1. 16 Dec, 2002 1 commit
  2. 22 Aug, 2002 1 commit
    • c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR. · d65b1d77
              * c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
              * c-common.def: Adjust.
              * c-dump.c (c_dump_tree): Adjust.
              * c-semantics.c (genrtl_return_stmt): Adjust.
              * c-pretty-print.c (pp_c_statement): Adjust.
              * tree-inline.c (copy_body_r): Adjust.
      
      2002-08-22  Jason Merrill  <jason@redhat.com>
      
              * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
              * semantics.c (nullify_returns_r): Likewise.
      
      From-SVN: r56523
      Jason Merrill committed
  3. 26 Jul, 2002 1 commit
    • c-dump.c: Resurrect. · 558ee214
              * c-dump.c: Resurrect.
              * tree-dump.c: Move C-specific stuff to c-dump.c.
              * c-common.h: Declare c_dump_tree.
              * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
              * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
              (c-dump.o): New rule.
      cp/
              * dump.c (cp_dump_tree): Call c_dump_tree.
              * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
      
      From-SVN: r55776
      Jason Merrill committed
  4. 22 Nov, 2001 1 commit
    • tree-dump.c: Rename from c-dump.c. · 89d684bb
      	* tree-dump.c: Rename from c-dump.c. Include c-tree.h, not c-common.h.
      	(lang_type_quals): Declare.
      	(dequeue_and_dump): Use lang_hooks.tree_dump.type_quals function to
      	retrieve language-specific qualifiers for a type node, instead of
      	C_TYPE_QUALS. Likewise for lang_hooks.tree_dump.dump_tree instead of
      	lang_dump_tree.
      	* tree-dump.h: Rename from c-dump.h.
      	* c-common.h (C_TYPE_QUALS): Removed.
      	Move declarations for tree-dump.c interface to...
      	* tree.h: ... here. Remove lang_dump_tree.
      	* langhooks.h (struct lang_hooks_for_tree_dump): New.
      	(struct lang_hooks): Add tree_dump hooks.
      	* langhooks.c (lhd_tree_dump_dump_tree): New function.
      	(lhd_tree_dump_type_quals): New function.
      	* langhooks-def.h (lhd_tree_dump_dump_tree, lhd_tree_dump_type_quals):
      	Declare.
      	(LANG_HOOKS_INITIALIZER): Add tree_dump hooks.
      	* Makefile.in: Move tree-dump.o to language-independent back-end.
      
      cp:
      	* cp-tree.h (CP_TYPE_QUALS): Removed.
      	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
      	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
      	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
      	* dump.c (cp_dump_tree): Use void* dump_info argument to match
      	lang-hooks prototype.
      	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
      	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
      	CP_TYPE_QUALS changed to cp_type_quals.
      	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
      	(CXX_C_OBJS): Remove c-dump.o.
      
      From-SVN: r47257
      Bryce McKinlay committed
  5. 29 Oct, 2001 1 commit
  6. 09 Oct, 2001 1 commit
    • c-common.h: Fix comment formatting. · 2ba84f36
      	* c-common.h: Fix comment formatting.
      	* c-dump.c: Likewise.
      	* cfg.c: Likewise.
      	* diagnostic.h: Likewise.
      	* except.c: Likewise.
      	* gcc.h: Likewise.
      	* gcov-io.h: Likewise.
      	* genattrtab.c: Likewise.
      	* output.h: Likewise.
      	* predict.h: Likewise.
      	* reload1.c: Likewise.
      	* reload.h: Likewise.
      	* resource.h: Likewise.
      	* scan.h: Likewise.
      	* system.h: Likewise.
      	* tree.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tsystem.h: Likewise.
      	* varasm.c: Likewise.
      	* xcoffout.h: Likewise.
      
      From-SVN: r46122
      Kazu Hirata committed
  7. 07 Oct, 2001 1 commit
    • builtins.c (expand_builtin_setjmp_receiver): Const-ify. · 8b60264b
      	* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
      	* c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
      	Likewise.
      	* c-dump.c (dump_option_value_info): Likewise.
      	* c-format.c (format_length_info, format_char_info,
      	format_flag_spec, format_flag_pair, format_kind_info): Likewise.
      	* collect2.c (names): Likewise.
      	* cppdefault.h (default_include): Likewise.
      	* cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
      	* flow.c (life_analysis): Likewise.
      	* gcc.c (dir_separator_str, modify_target, option_map,
      	target_option_translations, spec_list_1, extra_specs_1,
      	init_spec): Likewise.
      	* gcov.c (gcov_version_string): Likewise.
      	* genattr.c (write_units): Likewise.
      	* genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
      	* gengenrtl.c (rtx_definition, defs): Likewise.
      	* genrecog.c (pred_table): Likewise.
      	* global.c (global_alloc): Likewise.
      	* lcm.c (optimize_mode_switching): Likewise.
      	* local-alloc.c (find_free_reg): Likewise.
      	* params.h (param_info): Likewise.
      	* predict.c (predictor_info): Likewise.
      	* protoize.c (unexpansion_struct): Likewise.
      	* real.c (bmask): Likewise.
      	* recog.h (insn_operand_data, insn_data): Likewise.
      	* regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
      	* stmt.c (expand_nl_goto_receiver): Likewise.
      	* toplev.c (da, debug_args, lang_opt, documented_lang_options,
      	target_switches, target_options): Likewise.
      	* tradcif.y (token, tokentab2, yylex): Likewise.
      	* tree.h (attribute_spec): Likewise.
      
      	* alpha.c (override_options, alpha_lookup_xfloating_lib_func):
      	Likewise.
      	* arc.c (arc_output_function_epilogue): Likewise.
      	* arm.c (processors, all_cores, all_architectures,
      	arm_override_options, isr_attribute_arg, isr_attribute_args,
      	arm_isr_value): Likewise.
      	* avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
      	Likewise.
      	* c4x.c (c4x_int_reglist): Likewise.
      	* d30v.c (override_options): Likewise.
      	* h8300.c (shift_insn): Likewise.
      	* i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
      	pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
      	ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
      	builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
      	ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
      	* i386.h (processor_costs, ix86_cost): Likewise.
      	* m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
      	* m68hc11.h (processor_costs, m68hc11_cost): Likewise.
      	* m68k.c (codes_68881, codes_FPA): Likewise.
      	* m88k.c (mode_from_align, max_from_align, all_from_align,
      	best_from_align, m_options): Likewise.
      	* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
      	* mcore.c (mode_from_align): Likewise.
      	* mips/elf64.h (UNIQUE_SECTION): Likewise.
      	* mips/iris6gld.h (UNIQUE_SECTION): Likewise.
      	* mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
      	* mips.h (mips_regno_to_class): Likewise.
      	* ns32k.c (scales): Likewise.
      	* pa.c (import_string, magic_milli): Likewise.
      	* rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
      	* sparc.c (leaf_reg_remap, sparc_override_options,
      	reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
      	Likewise.
      	* sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
      
      cp:
      	* class.c (build_vtable_entry_ref): Const-ify.
      	* decl.c (predefined_identifier,
      	initialize_predefined_identifiers): Likewise.
      	* init.c (build_new_1): Likewise.
      	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
      	Likewise.
      
      f:
      	* bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
      	* bld.c (ffebld_arity_op_): Likewise.
      	* bld.h (ffebld_arity_op_): Likewise.
      	* com.c (ffecom_init_0): Likewise.
      	* intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
      	_ffeintrin_imp_, names, gens, imps, specs, cc_pair,
      	cc_descriptions, cc_summaries): Likewise.
      	* intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
      	_ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
      	ffeintrin_imps_, ffeintrin_specs_): Likewise.
      
      java:
      	* jcf-io.c (format_uint): Const-ify.
      	* lang.c (java_tree_code_type, java_tree_code_length): Likewise.
      	* lex.c (java_get_line_col): Likewise.
      	* parse.y (build_incdec): Likewise.
      
      From-SVN: r46062
      Kaveh R. Ghazi committed
  8. 06 Sep, 2001 1 commit
    • for some reason this was missed in the · baff6e54
      2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
      
      	* c-common.h (tree_dump_index): Add more comments.
      	* c-dump.c (dump_files): Name flags `tree' rather than `ast'.
      	(dump_option_value_info): New struct.
      	(dump_options): New array.
      	(dump_switch_p): Parse switch options symbolically.
      	* doc/invoke.texi (-fdump-ast): Rename to ...
      	(-fdump-tree): ... here. Document that options are symbolic, and
      	not all are applicable.
      commit
      
      From-SVN: r45433
      Nathan Sidwell committed
  9. 22 Aug, 2001 1 commit
    • Makefile.in, [...]: replace "GNU CC" with "GCC". · 1322177d
      	* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
      	bitmap.h, builtin-types.def, builtins.c, builtins.def,
      	c-aux-info.c, c-common.c, c-common.def, c-common.h,
      	c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
      	c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
      	c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
      	caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
      	conditions.h, config.gcc, configure.frag, configure.in,
      	conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
      	cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
      	dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
      	doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
      	dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
      	emit-rtl.c, errors.c, errors.h, except.c, except.h,
      	exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
      	fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
      	function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
      	gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
      	gencheck.c, gencodes.c, genconfig.c, genemit.c,
      	genextract.c, genflags.c, gengenrtl.c, genmultilib,
      	genopinit.c, genoutput.c, genpeep.c, genrecog.c,
      	gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
      	ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
      	graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
      	gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
      	gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
      	hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
      	integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
      	libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
      	machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
      	mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
      	mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
      	params.h, predict.c, predict.def, predict.h, prefix.c,
      	prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
      	read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
      	regclass.c, regmove.c, regrename.c, regs.h, reload.c,
      	reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
      	rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
      	sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
      	sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
      	ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
      	stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
      	tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
      	tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
      	unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
      	unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
      	xcoffout.h: replace "GNU CC" with "GCC".
      
      From-SVN: r45105
      Lars Brinkhoff committed
  10. 01 Aug, 2001 1 commit
    • alias.c: Fix comment formatting. · ec5c56db
      	* alias.c: Fix comment formatting.
      	* bitmap.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* c-common.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-dump.c: Likewise.
      	* c-lex.c: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* conflict.c: Likewise.
      	* cppfiles.c: Likewise.
      	* cppinit.c: Likewise.
      	* cpplex.c: Likewise.
      	* cpplib.c: Likewise.
      	* cppmacro.c: Likewise.
      	* cppspec.c: Likewise.
      	* c-pragma.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* c-semantics.c: Likewise.
      	* c-typeck.c: Likewise.
      
      From-SVN: r44547
      Kazu Hirata committed
  11. 02 Jul, 2001 1 commit
    • c-common.h (TDI_inlined): New ast dump phase. · 6be77748
      	* c-common.h (TDI_inlined): New ast dump phase.
      	(dump_flag_name): New function.
      	* c-dump.c (dump_files): Add inlined phase.
      	(dump_flag_name): Define.
      	* doc/invoke.texi (-fdump-ast-inlined): Document.
      cp:
      	* optimize.c (optimize_inline_calls): New function, broken out
      	of ...
      	(optimize_function): ... here. Call it. Don't inline if it is
      	a thunk.
      	(dump_function): Print name of dump flag causing this dump.
      	* semantics.c (expand_body): Move thunk inline check to
      	optimize_function.
      
      From-SVN: r43687
      Nathan Sidwell committed
  12. 05 Jun, 2001 1 commit
    • c-common.h (flag_dump_translation_unit): Remove. · b7442fb5
      	* c-common.h (flag_dump_translation_unit): Remove.
      	(enum tree_dump_index): Define.
      	(TDF_ADDRESS, TDF_SLIM): New #defines.
      	(dump_node_to_file): Remove.
      	(dump_node): Make extern. Add flags.
      	(dump_flag, dump_enabled_p, dump_begin, dump_end,
      	dump_switch_p): Prototype.
      	* c-common.c (flag_dump_translation_unit): Remove.
      	* c-decl.c (c_decode_option): Remove -fdump-translation-unit
      	logic. Use dump_switch_p.
      	* c-dump.h (struct dump_info): Add node and user fields.
      	(dump_pointer): Declare.
      	* c-dump.c (dump_node): Make extern. Add flags.
      	(SOL_COLUMN, EOL_COLUMN, COLUMN_ALIGNMENT): New #defines.
      	(dump_new_line, dump_maybe_newline): Use them.
      	(dump_pointer): New function.
      	(dequeue_and_dump): Check TDF_SLIM before dumping a _DECL's
      	chain or function's body. Dump address, if TDF_ADDRESS set.
      	(dump_flag): Define.
      	(dump_node_to_file): Remove.
      	(struct dump_file_info): New struct.
      	(dump_files): New array.
      	(dump_begin, dump_end, dump_enabled_p, dump_switch_p): Define.
      	* c-lang.c (finish_file): Adjust dumping.
      	* toplev.h (dump_base_name): Make extern.
      	* invoke.texi: Document new flags.
      cp:
      	* class.c (maybe_indent_hierarchy): New function.
      	(dump_class_hierarchy_r): Add flags. Dump extra binfo
      	information, if enabled. Use maybe_indent_hierarchy. Adjust
      	output format.
      	(dump_class_hierarchy): Adjust prototype. Adjust output format.
      	(dump_array, dump_vtable, dump_vtt): New functions.
      	(finish_struct_1): Adjust hierarchy dumping.
      	(initialize_vtable): Call dump_vtable.
      	(build_vtt): Call dump_vtt.
      	(build_ctor_vtbl_group): Call dump_vtable.
      	* decl2.c (flag_dump_class_layout): Remove.
      	(cxx_decode_option): Remove dump translation unit
      	and dump class hierarchy check. Call dump_switch_p.
      	(finish_file): Adjust dumping.
      	(dump.c): Only dump base classes if not TDF_SLIM.
      	Only dump namespace members if not TDF_SLIM.
      	* optimize.c (dump_function): New function.
      	(optimize_function): Call dump_function.
      	* semantics.c (expand_body): Use dump_enabled_p.
      
      From-SVN: r42896
      Nathan Sidwell committed
  13. 03 May, 2001 1 commit
  14. 10 Nov, 2000 2 commits
    • c-dump.c (dequeue_and_dump): Dump function bodies. · 13507bd8
      	* c-dump.c (dequeue_and_dump): Dump function bodies.
      
      	* dump.c (cp_dump_tree): Don't dump function bodies here.
      
      From-SVN: r37359
      Mark Mitchell committed
    • Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o. · 0a7394bc
      	* Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
      	(c-dump.o): New target.
      	* c-common.h (flag_dump_translation_unit): New variable.
      	(C_TYPE_QUALS): New macro.
      	(strip_array_types): New function.
      	(DECL_C_BIT_FIELD): New macro.
      	(SET_DECL_C_BIT_FIELD): Likewise.
      	(CLEAR_DECL_C_BIT_FIELD): Likewise.
      	(dump_info_p): New typedef.
      	(dump_tree_fn): Likewise.
      	(lang_dump_tree): New variable.
      	(dump_node_to_file): New function.
      	* c-common.c (flag_dump_translation_unit): Define it.
      	(strip_array_types): New function.
      	* c-decl.c (c_decode_option): Handle -fdump-translation-unit.
      	* c-lang.c (finish_file): Call dump_node_to_file if
      	flag_dump_translation_unit.
      	* c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
      	* c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
      	* c-dump.c: New file.
      
      	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
      	(dump.o): Update dependency list.
      	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
      	(flag_dump_translation_unit): Likewise.
      	(CP_TYPE_QUALS): Adjust definition.
      	(DECL_C_BIT_FIELD): Remove.
      	(SET_DECL_C_BIT_FIELD): Likewise.
      	(CLEAR_DECL_C_BIT_FIELD): Likewise.
      	(add_maybe_template): Likewise.
      	(strip_array_types): Likewise.
      	(dump_node_to_file): Likewise.
      	(cp_dump_tree): New function.
      	* decl.c (init_decl_processing): Set lang_dump_tree.
      	* decl2.c (flag_dump_translation_unit): Remove.
      	* dump.c: Move most of it to ../c-dump.c.
      	(cp_dump_tree): New function.
      	* pt.c (add_maybe_template): Remove.
      	* typeck.c (strip_array_types): Likewise.
      
      From-SVN: r37358
      Mark Mitchell committed
  15. 02 Nov, 2000 1 commit
    • * collect2.c (main, write_c_file_stat), gcc.c (translate_options, · 9473c522
      	process_command, main), gcov.c (open_files, output_data), tlink.c
      	(frob_extension, scan_linker_output), toplev.c
      	(file_name_nondirectory): Use strchr () and strrchr () instead of
      	index () and rindex ().
      
      cp:
      	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
      	(build_overload_value), repo.c (open_repo_file), xref.c
      	(open_xref_file): Use strchr () and strrchr () instead of index ()
      	and rindex ().
      
      f:
      	* com.c (open_include_file, ffecom_open_include_): Use strchr ()
      	and strrchr () instead of index () and rindex ().
      
      From-SVN: r37206
      Joseph Myers committed
  16. 18 Oct, 2000 2 commits
    • c-common.h (flag_no_builtin): Declare. · 6bcedb4e
      	* c-common.h (flag_no_builtin): Declare.
      	(flag_no_nonansi_builtin): Likewise.
      	(c_common_nodes_and_builtins): Change prototype.
      	* c-common.c (flag_no_builtin): New variable.
      	(flag_no_nonansi_builtin): Likewise.
      	(c_common_nodes_and_builtins): Remove parameters.  Adjust
      	accordingly.
      	* c-decl.c (flag_no_builtin): Remove.
      	(flag_no_nonansi_builtin): Likewise.
      	(init_decl_processing): Adjust call to
      	c_common_nodes_and_builtins.
      
      	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
      	(fake_std_node): New macro.
      	* decl.c (in_std): Rename to ...
      	(in_fake_std): ... this.
      	(flag_no_builtin): Remove.
      	(flag_no_nonansi_builtin): Likewise.
      	(walk_namespaces_r): Use fake_std_node.
      	(push_namespace): Use std_identifier.
      	(pop_namespace): Use in_fake_std.
      	(lookup_name_real): Use fake_std_node.
      	(init_decl_processing): When -fhonor-std, create the `std'
      	namespace.  Don't create a dummy fake_std_node in that case.
      	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
      	(builtin_function): Put builtins whose names don't begin
      	with `_' in the std namespace.
      	* decl2.c (flag_no_builtin): Remove.
      	(flag_no_nonansi_builtin): Likewise.
      	(set_decl_namespace): Use fake_std_node.
      	(validate_nonmember_using_decl): Likewise.
      	(do_using_directive): Likewise.
      	(handle_class_head): Likewise.
      	* dump.c (dequeue_and_dump): Likewise.
      	* except.c (init_exception_processing): Use std_identifier.
      	* init.c (build_member_call): Use fake_std_node.
      	* rtti.c (init_rtti_processing): Use std_identifier.
      
      From-SVN: r36940
      Mark Mitchell committed
    • c-common.c (back_end_hook): New variable. · 67673f5c
      	* c-common.c (back_end_hook): New variable.
      	* c-common.h (back_end_hook): Declare it.
      	* c-lang.c (finish_file): Use it.
      
      	* emit-rtl.c (init_emit_once): Initialize the const_int_htab
      	earlier.
      
      	* cp-tree.h (back_end_hook): Remove declaration.
      	* decl2.c (back_end_hook): Remove definition.
      
      	* dump.c (dequeue_and_dump): Dump TREE_USED.
      
      From-SVN: r36928
      Mark Mitchell committed
  17. 23 Jun, 2000 1 commit
    • cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. · 31f8e4f3
      	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
      	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
      	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
      	a tree, not an int.
      	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
      	(make_thunk): Change prototype.
      	(emit_thunk): Rename to use_thunk.
      	(mangle_thunk): Change prototype.
      	* class.c (get_derived_offset): Simplify.
      	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
      	BV_GENERATE_THUNK_WITH_VTABLE_P.
      	(build_primary_vtable): Simplify.
      	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
      	(dfs_find_base): Remove.
      	(update_vtable_entry_for_fn): Correct bug in finding the base
      	where a virtual function was first declared.  Figure out whether
      	or not to emit a vcall-thunk with the vtables in which it appears.
      	Correct logic for deciding whether to use an ordinary thunk, or a
      	vcall thunk.
      	(finish_struct_1): Remove unnecssary code.
      	(build_vtbl_initializer): Use ssize_int for the running counter of
      	negative indices.
      	(build_vtbl_initializer): Only use vcall thunks where necessary.
      	Mark thunks as needing to be emitted with their vtables, or not.
      	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
      	indices.  Use size_binop.
      	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
      	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
      	size_binop.
      	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
      	(build_vtable_entry): Mark thunks as needing to be emitted with
      	their vtables, or not.
      	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
      	* decl2.c (mark_vtable_entries): Use use_thunk instead of
      	emit_thunk.
      	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
      	information.
      	* error.c (dump_expr): Use BV_FN.
      	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
      	not an int.
      	* method.c (make_thunk): Likewise.
      	(emit_thunk): Rename to use_thunk.  Allow callers to decide
      	whether or not to actually emit the thunk.  Adjust for changes in
      	representation of vcall offsets.
      	* search.c (dfs_get_pure_virtuals): Use BV_FN.
      	* semantics.c (emit_associated_thunks): New function.
      	(expand_body): Use it.
      	* ir.texi: Adjust decriptions of thunks.
      
      From-SVN: r34656
      Mark Mitchell committed
  18. 16 Jun, 2000 1 commit
    • cp-tree.h (struct language_function): Remove x_base_init_list and x_member_init_list. · fd74ca0b
      	* cp-tree.h (struct language_function): Remove x_base_init_list
      	and x_member_init_list.
      	(current_base_init_list): Remove.
      	(current_member_init_list): Likewise.
      	(setup_vtbl_ptr): Change prototype.
      	(emit_base_init): Likewise.
      	(expand_member_init): Likewise.
      	(reinit_parse_for_function): Remove.
      	* decl.c (save_function_data): Don't clear x_base_init_list and
      	x_member_init_list.
      	(mark_language_function): Don't mark them.
      	* init.c (perform_member_init): Tweak comment.
      	(sort_member_init): Take the list of initializers as an argument.
      	(sort_base_init): Likewise.
      	(emit_base_init): Likewise.
      	(expand_member_init): Return the initializer.  Don't use global
      	variables.
      	* lex.c (reinit_parse_for_function): Remove.
      	* method.c (build_template_parm_names): Correct substitution.
      	(do_build_copy_constructor): Don't use current_member_init_list
      	and current_base_init_list.
      	(synthesize_method): Likewise.
      	* parse.y (base_init): Split mem-initializers into
      	base-initializers and field-initializers.
      	(member_init_list): Build up the list here.
      	(member_init): Return the initializer.
      	(fn.depfn): Don't use reinit_parse_for_function.
      	* parse.c: Regenerated.
      	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
      	ERROR_MARK.
      	(tsubst_expr): Don't use current_member_init_list
      	and current_base_init_list.
      	(tsubst_expr_values): Rename to ...
      	(tsubst_initializer_list): ... this.  Use convert_from_reference.
      	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
      	and current_base_init_list.
      	(begin_function_definition): Don't call reinit_parse_for_function.
      
      	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.
      
      	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
      	correctly.
      
      From-SVN: r34571
      Mark Mitchell committed
  19. 03 Jun, 2000 1 commit
    • cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. · f9a7ae04
      	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
      	(INNERMOST_TEMPLATE_ARGS): New macro.
      	(innermost_args): Remove.
      	(get_innermost_template_args): New function.
      	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
      	* error.c (dump_function_decl): Be caution when using
      	most_general_template.
      	* method.c (build_template_parm_names):  Use
      	INNERMOST_TEMPLATE_ARGS.
      	* pt.c (add_to_template_args): Tidy comment
      	(get_innermost_template_args): New function.
      	(check_explicit_specialization): Clear DECL_INITIAL for a new
      	specialization.
      	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
      	Tidy.
      	(push_template_decl): Always register specializations of the most
      	general template.
      	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
      	(coerce_template_parms): Likewise.
      	(lookup_template_class): Likewise.
      	(innermost_args): Remove.
      	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
      	(tsubst_decl): Handle tricky specializations.  Use
      	get_innermost_template_args.
      	(instantiate_template): Simplify handling of partial
      	instantiations.
      	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
      	(most_general_template): Reimplement, in a more straightforward
      	manner.
      	(regenerate_decl_from_template): Tweak formatting.  Use
      	TMPL_ARGS_DEPTH for clarity.
      	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.
      
      	* dump.c (dequeue_and_dump): Dump information about thunks.
      
      From-SVN: r34384
      Mark Mitchell committed
  20. 22 May, 2000 1 commit
    • cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. · 421844e7
      	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
      	(DECL_CONV_FN_P): Simplify.
      	(DECL_OPERATOR): Remove.
      	(language_to_string): Declare.
      	* decl.c (duplicate_decls): Fix typo in comment.
      	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
      	(grok_op_properties): Use DECL_CONV_FN_P instead of
      	IDENTIFIER_TYPENAME_P.
      	* dump.c (dequeue_and_dump): Dump the language linkage of
      	declarations.
      	* error.c (language_to_string): Give it external linkage.
      	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
      	(implicitly_declare_fn): Set DECL_LANGUAGE.
      	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
      	IDENTIFIER_TYPENAME_P.
      	(tsubst_decl): Likewise.
      	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
      	* semantics.c (finish_member_declaration): Don't mark members of
      	classes declared in an extern "C" region as extern "C".
      
      From-SVN: r34095
      Mark Mitchell committed
  21. 03 May, 2000 1 commit
    • cp-tree.def (THUNK_DECL): Remove. · eb68cb58
      	* cp-tree.def (THUNK_DECL): Remove.
      	* cp-tree.h (DECL_THUNK_P): New macro.
      	(DECL_NON_THUNK_FUNCTION_P): Likewise.
      	(DECL_EXTERN_C_FUNCTION_P): Likewise.
      	(SET_DECL_THUNK_P): Likewise.
      	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
      	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
      	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
      	* decl.c (decls_match): Use DECL_EXTERN_C_P.
      	(duplicate_decls): Likewise.
      	(pushdecl): Likewise.  Adjust thunk handling.
      	(grokfndecl): Use DECL_EXTERN_C_P.
      	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
      	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
      	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
      	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
      	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
      	DECL_NO_STATIC_CHAIN.
      	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
      	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
      	* search.c (covariant_return_p): Remove THUNK_DECL handling.
      	* ir.texi: Update.
      
      From-SVN: r33647
      Mark Mitchell committed
  22. 11 Apr, 2000 1 commit
    • cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. · db9b2174
      	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
      	(complete_dtor_identifier): New macro.
      	(CLASSTYPE_FIRST_CONVERSION): Remove.
      	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
      	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
      	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
      	(CLASSTYPE_CONSTRUCTORS): Likewise.
      	(CLASSTYPE_DESTRUCTORS): Likewise.
      	(lang_decl): Add cloned_function.
      	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
      	(DECL_BASE_CONSTRUCTOR_P): Likewise.
      	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
      	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
      	(DECL_CLONED_FUNCTION_P): Likewise.
      	(DECL_CLONED_FUNCTION): Likewise.
      	(clone_function_decl): Declare.
      	(maybe_clone_body): Likewise.
      	* call.c (build_user_type_conversion_1): Call complete object
      	constructors in the new ABI.
      	(build_new_method_call): Don't add in-charge parameters under the
      	new ABI.
      	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
      	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
      	CLASSTYPE_DESTRUCTOR_SLOT.
      	(build_clone): New function.
      	(clone_function_decl): Likewise.
      	(clone_constructors_and_destructors): Likewise.
      	(check_bases_and_members): Use it.
      	* decl.c (iniitialize_predefined_identifiers): Initialize
      	complete_dtor_identifier.
      	(finish_function): Don't add extra code to a clone.
      	(lang_mark_tree): Mark cloned_function.
      	* decl2.c (mark_used): Don't bother trying to instantiate things
      	we synthesized.
      	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
      	* method.c (set_mangled_name_for_decl): Don't treat clones as
      	constructors.
      	(synthesize_method): Sythesize cloned functions, not the clones.
      	* optimize.c (inline_data): Update comment on ret_label.
      	(remap_block): Don't assume DECL_INITIAL exists.
      	(copy_body_r): Allow ret_label to be NULL.
      	(maybe_clone_body): Define.
      	* pt.c (tsubst_decl): Handle clones.
      	(instantiate_clone): New function.
      	(instantiate_template): Use it.
      	(set_mangled_name_for_template_decl): Don't treat clones as
      	constructors.
      	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
      	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
      	* semantics.c (expand_body): Clone function bodies as necessary.
      
      From-SVN: r33084
      Mark Mitchell committed
  23. 06 Apr, 2000 1 commit
    • final.c (final): Use xcalloc to allocate line_note_exists. · bedda2da
      	* final.c (final): Use xcalloc to allocate line_note_exists.
      	* function.c (free_after_compilation): Free the temp_slots.
      	(assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
      	(combine_temp_slot): Free temp_slots when they get combined.
      	(purge_addressof): Fix typo in comment.
      	* stmt.c (mark_goto_fixup): Mark the fixup itself.
      	(expand_fixup): Allocate the fixup with ggc_alloc_obj.
      
      	* ggc.h: Include varray.h.
      	(ggc_pending_trees): Declare.
      	(ggc_mark_tree_children): Remove declaration.
      	(ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
      	* ggc-common.c (ggc_pending_trees): New variable.
      	(ggc_mark_roots): Call ggc_mark_trees.
      	(ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
      	the ggc_pending_trees.
      	* Makefile.in (GGC_H): New variable.  Use it throughout in place
      	of ggc.h.
      
      	* Makefile.in (GGC_H): New variable.  Use it throughout in place
      	of ggc.h.
      
      	* call.c: Don't include obstack.h.  Include ggc.h.
      	(obstack_chunk_alloc): Don't define.
      	(obstack_chunk_free): Likewise.
      	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
      	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
      	(pop_switch): Free it.
      
      	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
      
      	* dump.c (dequeue_and_dump): Don't try to print the bit_position
      	if we don't have a DECL_FIELD_OFFSET.
      
      	* Makefile.in (GGC_H): Add varray.h.
      
      From-SVN: r32956
      Mark Mitchell committed
  24. 26 Mar, 2000 1 commit
  25. 25 Mar, 2000 3 commits
    • * Rework fields used to describe positions of bitfields and · 770ae6cc
      	modify sizes to be unsigned and use HOST_WIDE_INT.
      	* alias.c (reg_known_value_size): Now unsigned.
      	* c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
      	(really_start_incremental_init): Use bitsize_zero_node.
      	(push_init_level, pop_init_level, output_init_element): Likewise.
      	Use bitsize_unit_node and bitsize_one_node.
      	(output_pending_init_elements, process_init_element): Likewise.
      	* combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
      	(make_extraction): Position and length HOST_WIDE_INT and unsigned
      	HOST_WIDE_INT, respectively.
      	(get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
      	(num_sign_bit_copies): Returns unsigned.
      	BITWIDTH now unsigned; rework arithmetic.
      	Remove recursive call from arg to MAX.
      	(combine_instructions, init_reg_last_arrays): NREGS now unsigned.
      	(setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
      	REGNO now unsigned.
      	(set_nonzero_bit_and_sign_copies): NUM now unsigned.
      	(find_split_point, expand_compound_operation, make_extraction): LEN
      	now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
      	(make_field_assignment): Likewise.
      	(combine_simplify_rtx): Add cast.
      	(expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
      	(force_to_mode): WIDTH now unsigned; add cast.
      	(if_then_else_cond): SIZE now unsigned.
      	(nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
      	(extended_count): Now returns unsigned.
      	(simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
      	Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
      	(simplify_comparison): MODE_WIDTH now unsigned.
      	(update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
      	(mark_used_regs_combine): Likewise; rework arithmetic.
      	(record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
      	(record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
      	(record_promoted_value): REGNO now unsigned.
      	(get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
      	(get_last_value): REGNO now unsigned.
      	(use_crosses_set_p): REGNO and ENDREGNO now unsigned.
      	(reg_dead_regno, reg_dead_endregno): Now unsigned.
      	(remove_death): Arg REGNO now unsigned.
      	(move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
      	(reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
      	now unsigned.
      	* convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
      	* cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
      	(struct cse_reg_info): REGNO now unsigned.
      	(cached_regno): Now unsigned.
      	(REGNO_QTY_VALID_P): Add cast.
      	(make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
      	(remove_invalid_regs): Likewise.
      	(remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
      	as are variables END and I.
      	(get_cse_reg_info, insert): Likewise.
      	(mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
      	(canon_hash): Likewise.
      	(insert_regs, lookup_for_remove): REGNO now unsigned.
      	(invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
      	New variable RN.
      	* dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
      	* dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
      	* emit-rtl.c (subreg_realpart_p): Add cast.
      	(operand_subword): Arg I is now unsigned as is var PARTWORDS.
      	(operand_subword_force): Arg I is now unsigned.
      	* except.c (eh_regs): Variable I is now unsigned.
      	* explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
      	* expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
      	length is unsigned HOST_WIDE_INT; likewise for internal variables.
      	(store_split_bit_field, extract_fixed_bit_field): Likewise.
      	(extract_split_bit_field, store_bit_field, extract_bit_field):
      	Likewise.
      	* expr.c (store_constructor_fields, store_constructor, store_field):
      	Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
      	(expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
      	(do_jump): Likewise.
      	(move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
      	MAX_SIZE is now unsigned.
      	(emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
      	(emit_group_store): Likewise.
      	(emit_move_insn): I now unsigned.
      	(store_constructor): Use host_integerp, tree_low_cst, and
      	bitsize_unit_node.
      	(get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
      	Rework all calculations to use trees and new fields.
      	* expr.h (promoted_input_arg): Regno now unsigned.
      	(store_bit_field, extract_bit_field): Adjust types of pos and size.
      	(mark_seen_cases): Arg is HOST_WIDE_INT.
      	* flow.c (verify_wide_reg_1): REGNO now unsigned.
      	* fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
      	precisions and alignments are unsigned.
      	(optimize_bit_field_compare, fold_truthop): Likewise.
      	(int_const_binop): Adjust threshold for size_int_type_wide call.
      	(fold_convert): Likewise.
      	(size_int_type_wide): Make table larger and fix thinko that only
      	had half of table used.
      	(all_ones_mask_p, fold): Precisions are unsigned.
      	* function.c (put_reg_info_stack): REGNO is unsigned.
      	(instantiate_decl): Size is HOST_WIDE_INT.
      	(instantiate_virtual_regs): I is unsigned.
      	(assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
      	(promoted_input_arg): REGNO is unsigned.
      	* function.h (struct function): x_max_parm_reg is now unsigned.
      	* gcse.c (max_gcse_regno): Now unsigned.
      	(struct null_pointer_info): min_reg and max_reg now unsigned.
      	(lookup_set, next_set): REGNO arg now unsigned.
      	(compute_hash_table): REGNO and I now unsigned.
      	(handle_avail_expr): regnum_for_replacing now unsigned.
      	(cprop_insn): REGNO now unsigned.
      	(delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
      	* ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
      	* global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
      	* hard-reg-set.h (reg_class_size): Now unsigned.
      	* integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
      	* jump.c (mark_modified_reg): I now unsigned; add cast.
      	(rtx_equal_for_thread_p): Add cast.
      	* loop.c (max_reg_before_loop): Now unsigned.
      	(struct_movable): REGNO now unsigned.
      	(try_copy_prop): REGNO arg unsigned.
      	(regs_match_p): XN and YN now unsigned.
      	(consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
      	(strength_reduce): Likewise; NREGS also unsigned.
      	(first_increment_giv, last_increment_giv unsigned): Now unsigned.
      	* loop.h (struct iv_class): REGNO now unsigned.
      	(max_reg_before_loop, first_increment_giv, last_increment_giv):
      	Now unsigned.
      	* machmode.h (mode_size, mode_unit_size): Now unsigned.
      	(mode_for_size, smallest_mode_for_size): Pass size as unsigned.
      	* optabs.c (expand_binop): I and NWORDS now unsigned.
      	(expand_unop): I now unsigned.
      	* print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
      	print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
      	* real.c (significand_size): Now returns unsigned.
      	* real.h (significand_size): Likewise.
      	* regclass.c (reg_class_size): Now unsigned.
      	(choose_hard_reg_mode): Both operands now unsigned.
      	(record_reg_classes): REGNO and NR now unsigned.
      	(reg_scan): NREGS now unsigned.
      	(reg_scan_update): old_max_regno now unsigned.
      	(reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
      	* reload.c (find_valid_class): BEST_SIZE now unsigned.
      	(find_dummy_reload): REGNO, NWORDS, and	I now unsigned.
      	(hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
      	Likewise for variable R.
      	(refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
      	as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
      	(find_equiv_reg): Add casts.
      	(regno_clobbered_p): Arg REGNO now unsigned.
      	* reload.h (struct reload): NREGS now unsigned.
      	(refers_to_regno_for_reload_p): Regno args are unsigned.
      	(regno_clobbered_p): Likewise.
      	* reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
      	(compute_use_by_pseudos): REGNO now unsigned.
      	(find_reg): I and J now unsigned, new variable K, and change loop
      	variables accordingly; THIS_NREGS now unsigned.
      	(alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
      	(spill_hard_reg): REGNO arg now unsigned; add casts.
      	(forget_old_reloads_1): REGNO, NR, and I now unsigned.
      	(mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
      	(clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
      	END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
      	(reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
      	(choose_reload_regs): MAX_GROUP_SIZE now unsigned.
      	(emit_reload_insns): REGNO now unsigned.
      	(reload_cse_move2add): Add cast.
      	(move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
      	and rework loop.
      	* resource.c (mark_referenced_resources, mark_set_resources): New
      	variable R; REGNO and LAST_REGNO now unsigned.
      	(mark_target_live_regs): J and REGNO now unsigned.
      	* rtl.c (mode_size, mode_unit_size): Now unsigned.
      	* rtl.h (union rtunion_def): New field rtuint.
      	(XCUINT): New macro.
      	(ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
      	(operand_subword, operand_subword_force): Word number is unsigned.
      	(choose_hard_reg_mode): Operands are unsigned.
      	(refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
      	(find_regno_note, find_regno_fusage, replace_regs): Likewise.
      	(regno_use_in, combine_instructions, remove_death): Likewise.
      	(reg_scan, reg_scan_update): Likewise.
      	(extended_count): Return is unsigned.
      	* rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
      	INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
      	(reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
      	(reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
      	(reg_reg_last_1): FIRS and LAST now unsigned.
      	(dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
      	(dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
      	now unsigned.
      	(find_regno_note, regno_use_in): Arg REGNO now unsigned.
      	(find_regno_fusage): Likewise; also var REGNOTE now unsigned.
      	(find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
      	(replace_regs): Arg NREGS now unsigned.
      	* sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
      	* simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
      	(simplify_binary_operation): Likewise.
      	(cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
      	THIS_LAST now unsigned.
      	(cselib_record_set): Add cast.
      	* ssa.c (ssa_max_reg_num): Now unsigned.
      	(rename_block): REGNO now unsigned.
      	* stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
      	sizes now unsigned.
      	(all_cases_count): Just return -1 not -2.
      	COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
      	Rework tests to use trees whenever possible.
      	Use host_integerp and tree_low_cst.
      	(mark_seen_cases): COUNT arg now HOST_WIDE_INT;
      	Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
      	(check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
      	* stor-layout.c (mode_for_size): SIZE arg now unsigned.
      	(smallest_mode_for_size): Likewise.
      	(layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
      	KNOWN_ALIGN is now an alignment, so simplify code.
      	Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
      	(start_record_layout): Renamed from new_record_layout_info.
      	Update to new fields.
      	(debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
      	New functions.
      	(place_union_field): Renamed from layout_union_field.
      	Update to use new fields in rli.
      	(place_field): Renamed from layout_field.
      	Major rewrite to use new fields in rli; pass alignment to layout_decl.
      	(finalize_record_size): Rework to use new fields in rli and handle
      	union.
      	(compute_record_mode): Rework to simplify and to use new DECL fields.
      	(finalize_type_size): Make rounding more consistent.
      	(finish_union_layout): Deleted.
      	(layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
      	(layout_type, case RECORD_TYPE): Call new function names.
      	(initialize_sizetypes): Set TYPE_IS_SIZETYPE.
      	(set_sizetype): Set TYPE_IS_SIZETYPE earlier.
      	(get_best_mode): UNIT is now unsigned; remove casts.
      	* tree.c (bit_position): Compute from new fields.
      	(byte_position, int_byte_position): New functions.
      	(print_type_hash_statistics): Cast to remove warning.
      	(build_range_type): Use host_integerp and tree_low_cst to try to hash.
      	(build_index_type): Likewise; make subtype of sizetype.
      	(build_index_2_type): Pass sizetype to build_range_type.
      	(build_common_tree_nodes): Use size_int and bitsize_int to
      	initialize nodes; add bitsize_{zero,one,unit}_node.
      	* tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
      	(DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
      	(DECL_PACKED, DECL_BIT_FIELD): Likewise.
      	(DECL_FIELD_BITPOS): Deleted.
      	(DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
      	(DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
      	(DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
      	(DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
      	(DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
      	(DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
      	(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
      	(DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
      	(DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
      	(DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
      	(DECL_ALIGN): Adjust to new field in union.
      	(DECL_OFFSET_ALIGN): New field.
      	(DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
      	(DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
      	(union tree_decl): Add struct for both aligns.
      	(enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
      	(bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
      	(struct record_layout_info): Rework fields to have offset
      	alignment and byte and bit position.
      	(start_record_layout, place_field): Renamed from old names.
      	(rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
      	(byte_position, int_byte_position): Likewise.
      	(get_inner_reference): Change types of position and length.
      	* unroll.c (unroll_loop): New variable R; use for some loops.
      	MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
      	(calculate_giv_inc): Arg REGNO now unsigned.
      	(copy_loop_body): REGNO and SRC_REGNO now unsigned.
      	* varasm.c (assemble_variable): Clean up handling of size using
      	host_integerp and tree_low_cst.
      	(decode_addr_const): Use byte, not bit, position.
      	(output_constructor): bitpos and offsets are HOST_WIDE_INT;
      	use tree_low_cst and int_bit_position.
      	* objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
      	* ch/actions.c (check_missing_cases): BYTES_NEEDED is HOST_WIDE_INT.
      	* ch/typeck.c (expand_constant_to_buffer): Use int_byte_position.
      	(extract_constant_from_buffer): Likewise.
      	* cp/class.c (build_vbase_pointer_fields): layout_field now
      	place_field.
      	(get_vfield_offset): Use byte_position.
      	(set_rtti_entry): Set OFFSET to ssizetype zero.
      	(get_binfo_offset_as_int): Deleted.
      	(dfs_record_base_offsets): Use tree_low_cst.
      	(dfs_search_base_offsets): Likewise.
      	(layout_nonempty_base_or_field): Reflect changes in RLI format
      	and call byte_position.
      	(layout_empty_base): Convert offset to ssizetype.
      	(build_base_field): use rli_size_unit_so_far.
      	(dfs_propagate_binfo_offsets): Do computation in proper type.
      	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
      	(layout_class_type): Reflect changes in RLI names and fields.
      	(finish_struct_1): Set DECL_FIELD_OFFSET.
      	* cp/dump.c (dequeue_and_dump): Call bit_position.
      	* cp/expr.c (cplus_expand_constant): Use byte_position.
      	* cp/rtti.c (expand_class_desc): Use bitsize_one_node.
      	* cp/typeck.c (build_component_addr): Use byte_position and don't
      	special case for zero offset.
      	* f/com.c (ffecom_tree_canonize_ptr_): Use bitsize_zero_node.
      	(ffecom_tree_canonize_ref_): Likewise.
      	* java/class.c (make_field_value): Use byte_position.
      	* java/expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
      	(java_array_data_offset): Likewise.
      	* java/java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
      	bzero call.
      
      From-SVN: r32742
      Richard Kenner committed
    • Remove accidental commit · 370af2d5
      From-SVN: r32740
      Mark Mitchell committed
    • Fix typo in ChangeLog · e5361bbe
      From-SVN: r32739
      Mark Mitchell committed
  26. 05 Mar, 2000 1 commit
  27. 27 Feb, 2000 1 commit
    • cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. · 27d26ee7
      	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
      	(import_export_class): Remove declaration.
      	* decl2.c (import_export_class): Make it static.
      	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
      	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
      	EXPR_WITH_FILE_LOCATION.
      	* lex.c (check_newline): Tweak filename/lineno setting.
      	* semantics.c (begin_while_stmt): Fix typo in comment.
      
      From-SVN: r32208
      Mark Mitchell committed
  28. 17 Feb, 2000 1 commit
  29. 16 Feb, 2000 1 commit
    • Make DECL_CONTEXT mean the class in which a member function was declared, even… · 4f1c5b7d
      Make DECL_CONTEXT mean the class in which a member function was declared, even for a virtual function.
      
      	Make DECL_CONTEXT mean the class in which a member function was
      	declared, even for a virtual function.
      	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
      	(DECL_FRIEND_CONTEXT): New macro.
      	(DECL_REAL_CONTEXT): Remove.
      	(SET_DECL_FRIEND_CONTEXT): Likewise.
      	(DECL_VIRTUAL_CONTEXT): Adjust.
      	(DECL_CLASS_SCOPE_P): Use TYPE_P.
      	(add_friends): Remove.
      	(hack_decl_function_context): Likewise.
      	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
      	CP_DECL_CONTEXT.
      	(build_over_call): Fix indentation.  Use DECL_CONTEXT
      	instead of DECL_CLASS_CONTEXT.
      	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
      	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
      	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
      	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
      	(build_base_field): Likewise.
      	(finish_struct_1): Likewise.
      	(build_self_reference): Likewise.
      	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	(pushtag): Use decl_function_context, not
      	hack_decl_function_context.
      	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
      	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
      	(pushdecl): Remove bogus code.
      	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
      	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
      	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
      	Use decl_function_context, nothack_decl_function_context.
      	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
      	(grokdeclarator): Likewise.  Use decl_function_context, not
      	hack_decl_function_context.
      	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
      	(start_function): Use DECL_FRIEND_CONTEXT, not
      	DECL_CLASS_CONTEXT.  Use decl_function_context, not
      	hack_decl_function_context.
      	(finish_function): Use decl_function_context, not
      	hack_decl_function_context.
      	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
      	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
      	(grokfield): Likewise.
      	(finish_builtin_type): Likewise.
      	(finish_vtable_vardec): Use decl_function_context, not
      	hack_decl_function_context.
      	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
      	(start_static_initialization_or_destruction): Likewise.
      	(finish_static_initialization_or_destruction): Likewise.
      	(mark_used): Adjust logic for deciding when to synthesize methods.
      	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	* error.c (dump_function_decl): Use DECL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	* friend.c (is_friend): Likewise.
      	(add_friends): Remove.
      	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
      	* lex.c (begin_definition_of_inclass_inline): Use
      	decl_function_context, not hack_decl_function_context.
      	(process_next_inline): Likewise.
      	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
      	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
      	DECL_CLASSS_CONTEXT.
      	(hack_identifier): Likewise.
      	(synthesize_method):  Use decl_function_context, not
      	hack_decl_function_context.
      	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	(is_member_template): Use decl_function_context, not
      	hack_decl_function_context.  Use DECL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	(push_template_decl_real): Likewise.
      	(instantiate_class_template): Don't call add_friends.
      	(tsubst_default_argument): Use DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
      	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
      	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	* repo.c (repo_inline_used): Likewise.
      	* search.c (current_scope): Adjust for new _CONTEXT macros.
      	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
      	DECL_REAL_CONTEXT.
      	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
      	(lookup_fnfields_here):Likewise.
      	(check_final_overrider): Likewise.
      	(init_vbase_pointers): Likewise.
      	(virtual_context): Likewise.
      	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
      	(expand_body): Use decl_function_context, not
      	hack_decl_function_context.
      	* tree.c (hack_decl_function_context): Remove.
      	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
      	DECL_CLASS_CONTEXT.
      	* typeck2.c (error_not_base_type): Likewise.
      
      From-SVN: r32018
      Mark Mitchell committed
  30. 26 Jan, 2000 1 commit
    • call.c: PROTO -> PARAMS. · 158991b7
              * call.c: PROTO -> PARAMS.
              * class.c: Likewise.
              * cp-tree.h: Likewise.
              * cvt.c: Likewise.
              * decl.c: Likewise.
              * decl.h: Likewise.
              * decl2.c: Likewise.
              * dump.c: Likewise.
              * errfn.c: Likewise.
              * error.c: Likewise.
              * except.c: Likewise.
              * expr.c: Likewise.
              * init.c: Likewise.
              * input.c: Likewise.
              * lex.c: Likewise.
              * lex.h: Likewise.
              * method.c: Likewise.
              * optimize.c: Likewise.
              * parse.y: Likewise.
              * pt.c: Likewise.
              * repo.c: Likewise.
              * rtti.c: Likewise.
              * search.c: Likewise.
              * semantics.c: Likewise.
              * spew.c: Likewise.
              * tree.c: Likewise.
              * typeck.c: Likewise.
              * typeck2.c: Likewise.
              * xref.c: Likewise.
      
      From-SVN: r31632
      Kaveh R. Ghazi committed
  31. 14 Jan, 2000 1 commit
  32. 22 Dec, 1999 1 commit
  33. 14 Dec, 1999 1 commit
  34. 09 Dec, 1999 1 commit
  35. 25 Nov, 1999 1 commit
    • Make-lang.in (CXX_SRCS): Add optimize.c. · 46e8c075
      1999-11-25  Mark Mitchell  <mark@codesourcery.com>
      
      	* Make-lang.in (CXX_SRCS): Add optimize.c.
      	* Makefile.in (CXX_OBJS): Add optimize.o.
      	(CXX_TREE_H): Add splay-tree.h, system.h, and $(CONFIG_H).
      	(spew.o, lex.o, decl.o, decl2.o, typeck2.o, typeck.o): Adjust.
      	(class.o, call.o, friend.o, init.o, method.o, cvt.o): Likewise.
      	(search.o, tree.o, ptree.o, rtti.o, except.o, expr.o): Likewise.
      	(xref.o, pt.o, error.o, errfn.o, repo.o, semantics.o): Likewise.
      	(dump.o): Likewise.
      	(optimize.o): New target.
      	* class.c: Don't include splay-tree.h.
      	* cp-tree.def (CTOR_COMPLETE): Rename to CTOR_STMT.
      	* cp-tree.h: Include splay-tree.h.
      	(DECL_UNINLINABLE): New macro.
      	(CTOR_BEGIN_P, CTOR_END_P): New macros.
      	(flag_inline_trees): New variable.
      	(local_variable_p): New function.
      	(nonstatic_local_decl_p): Likewise.
      	(optimize_function): Likewise.
      	(cplus_unsave_expr_now): Remove.
      	(copy_tree_r): Declare.
      	(remap_save_expr): Likewise.
      	* decl.c (local_variable_p): Don't
      	make it static.
      	(local_variable_p_walkfn): New function.
      	(make_rtl_for_local_static): Remove code to try to avoid writing
      	out static constants.
      	(emit_local_var): Fix indentation.
      	(nonstatic_local_decl_p): New function.
      	(check_default_argument): Use local_variable_p_walkfn, not
      	local_variable_p, when walking the tree.
      	(start_function): Set the DECL_CONTEXT for automatically generated
      	labels.
      	(finish_constructor_body): Use CTOR_STMT to mark the end of a
      	constructor.
      	* decl2.c: Don't include splay-tree.h.
      	(flag_inline_trees): Define.
      	* dump.c: Don't include
      	splay-tree.h.
      	* except.c (expand_end_catch_block): Fix comment formatting.
      	(expand_end_eh_spec): Set DECL_CONTEXT on temporary variables.
      	(expand_throw): Tidy comment.
      	* init.c (build_vec_delete_1): Use create_temporary_var.
      	* lex.c (cplus_tree_code_type): Make it static.
      	(cplus_tree_code_length): Likewise.
      	(cplus_tree_code_name): Likewise.
      	* optimize.c: New file.
      	* semantics.c (finish_goto_stmt): Set DECL_UNLINABLE for functions
      	with computed gotos.
      	(setup_vtbl_ptr): Mark the beginnings of constructors with
      	CTOR_STMT.
      	(expand_stmt): Handle CTOR_STMT, not CTOR_COMPLETE.
      	(expand_body): Call optimize_function.  Save bodies if we're doing
      	inlining on trees.
      	* tree.c: Don't include splay-tree.h.  Include insn-config.h and
      	integrate.h.
      	(copy_tree_r): Make it public.
      	(statement_code_p): New function.
      	(mark_local_for_remap_r): Likewise.
      	(cp_usave_r): Likewise.
      	(cp_unsave): Likewise.
      	(build_cplus_new): Set DECL_CONTEXT for temporary variables.
      	(walk_tree): Walk into `s' class nodes.  Walk statement chains.
      	(copy_tree_r): Handle 's' class nodes.  Restore chains for
      	statements.  Nullify scopes.  Don't copy types.
      	(init_tree): Set lang_unsave to cp_unsave.
      	(remap_save_expr): Define.
      	* ir.texi: Document CTOR_STMT.
      
      From-SVN: r30669
      Mark Mitchell committed
  36. 03 Nov, 1999 1 commit