Commit Graph

25 Commits

Author SHA1 Message Date
Richard Henderson
e803a64bc8 rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
* rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
        * rtl.c (note_insn_name): Update.
        * emit-rtl.c (remove_unnecessary_notes): Kill it.
        * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
        to perform loop rotation.
        (expand_exit_loop_top_cond): New.
        * tree.h (expand_exit_loop_top_cond): Declare it.
        * c-semantics.c (genrtl_while_stmt): Use it.
        (genrtl_for_stmt): Likewise.

        * ada/trans.c (tree_transform) [N_Loop_Statement]: Use
        expand_exit_loop_top_cond.

        * f/ste.c (ffeste_begin_iterdo_): Use expand_exit_loop_top_cond.
        (ffeste_R819B): Likewise.

From-SVN: r49364
2002-01-30 22:21:31 -08:00
Richard Henderson
516b69ff81 com.h: Remove FFECOM_targetCURRENT...
* com.h: Remove FFECOM_targetCURRENT, FFECOM_ONEPASS, BUILT_FOR_270,
        BUILT_FOR_280, FFECOM_GCC_INCLUDE, all derivitive defines, and all
        related conditional compilation directives.
        * bad.c, bld.c, bld.h, com.c, equiv.c, equiv.h, global.h, intdoc.c,
        intrin.c, intrin.h, lex.c, parse.c, sta.c, std.c, ste.c, ste.h, stt.c,
        stt.h, stw.h, symbol.c, symbol.h, target.h, top.c: Likewise.

From-SVN: r46324
2001-10-17 15:34:54 -07:00
Mark Mitchell
1f8f4a0b31 Remove obstacks.
* Makefile.in (ggc-callbacks.o): Remove target.
	(flow.o): Depend on GGC_H.
	* alias.c (init_alias_analysis):
	Remove ggc_p conditionals.
	(end_alias_analysis): Likewise.
	* basic-block.h (init_flow): New function.
	(allocate_reg_life_data): Declare.
	* bb-reorder.c	(function_obstack): Replace with ...
	(flow_obstack): ... new variable.
	(fixup_reorder_chain): Use it.
	* c-decl.c (ggc_p): Remove.
	(caller-save.c): Don't call oballoc/obfree.
	* combine.c (struct
	undobuf): Remove storage.
	(try_combine): Don't call oballoc.
	(undo_all): Don't call obfree.
	* cse.c (insert): Use xmalloc, not
	oballoc.
	(cse_main): Adjust accordingly.
	* dwarf2out.c (save_rtx): Remove
	obstack code.
	(dwarf2out_init): Remove ggc_p conditionals.
	* emit-rtl.c (rtl_obstack): Remove.
	(gen_rtx_CONST_INT): Remove ggc_p conditionals.
	(make_insn_raw): Likewise.
	(emit_insn_before): Likewise.
	(emit_insn_after): Likewise.
	(emit_insn): Likewise.
	(gen_sequence): Likewise.
	(copy_insn_1): Remove handling of `b' RTL components.
	(init_emit_once): Remove ggc_p conditionals.
	* except.c (create_rethrow_ref): Don't fool with obstacks.
	(add_partial_entry): Likewise.
	(call_get_eh_context): Likewise.
	(begin_protect_partials): Likewise.
	(protect_with_terminate): Likewise.
	* explow.c
	(plus_constant_wide): Likewise.
	* expr.c (init_expr_once):
	Likewise.
	(emit_block_move): Likewise.
	(clear_storage): Likewise.
	(expand_expr): Likewise.
	* flow.c (function_obstack): Remove.
	(flow_obstack): New variable.
	(flow_firstobj): Likewise.
	(create_base_block): Use the flow_obstack.
	(split_block): Likewise.
	(split_edge): Likewise.
	(calculate_global_regs_live): Likewise.
	(allocate_bb_life_data): Make it static.  Likewiwse.
	(init_flow): New function.
	(size_int_type_wide): Remove ggc_p conditionals.
	* function.c
	(push_function_context_to): Don't call save_tree_status.
	(pop_function_context_from): Or restore_tree_status.
	(assign_stack_local_1): Don't call push_obstacks.
	(find_fixup_replacement): Use xmalloc.
	(fixup_var_refs_insns): Free the storage.
	(insns_for_mem_walk): Don't mess with obstacks.
	(instantiate_decls): Likewise.
	(trampoline_address): Likewise.
	(expand_function_end): Likewise.
	* function.h (sturct function):
	Remove obstack-related variables.
	(save_tree_status): Don't declare.
	(restore_tree_status): Likewise.
	* gcse.c (compute_can_copy):
	Don't call oballoc/obfree.
	* genattrtab.c (operate_exp): Remove
	ggc_p conditionals.
	(simplify_cond): Likewise.
	(simplify_test_exp): Don't mess with obstacks.
	(optimize_attrs): Likewise.
	* gengenrtl.c (gendef): Don't include
	ggc_p conditionals.
	* ggc-callbacks.c (ggc_p): Remove.
	* ggc-none.c (ggc_p): Remove.
	* ggc.h (ggc_p): Don't declare.
	* integrate.c (save_for_inline): Don't mess with obstacks.
	(integrate_decl_tree): Likewise.
	(output_inline_function): Likewise.
	* lists.c
	(init_EXPR_INSN_LIST_cache): Likewise.
	* loop.c (temp_obstack):
	Remove.
	(rtl_obstack): Likewise.
	(init_loop): Don't mess with obstacks.
	(reg_address_cost): Free BIVs and GIVs.
	(check_insns_for_bivs): Use xmalloc, not oballoc.
	(find_mem_givs): Likewise.
	(record_biv): Likewise.
	(general_induction_var): Likewise.
	(product_cheap_p): Likewse.
	* optabs.c (init_one_libfunc): Remove
	ggc_p conditional.
	* print-tree.c (debug_tree): Don't use
	oballoc/obfree.
	(print_node): Likewise.
	* profile.c (output_func_start_profiler):
	Remove call to temporary_allocation.
	* reload1.c
	(eliminate_regs_in_insn): Don't mess with obstacks.
	* resource.c
	(mark_target_live_regs): Use xmalloc.
	(free_resource_info): Free the memory.
	* rtl.c (rtl_obstack):
	Remove.
	(rtvec_alloc): Don't mess with obstacks.
	(rtx_alloc): Likewise.
	(rtx_free): Remove.
	(copy_rtx): Don't handle `b' cases.
	(read_rtx): Use a local rtl_obstack.
	* rtl.h (oballoc): Remove.
	(obfree): Likewise.
	(pop_obstacks): Likewise.
	(push_obstacks): Likewise.
	(allocate_bb_life_data): Likewise.
	(allocate_reg_life_data): Likewise.
	(rtx_free): Likewise.
	* sdbout.c (sdbout_queue_anonymous_type):
	Use tree_cons, not saveable_tree_cons.
	* simplify-rtx.c
	(cselib_init): Don't mess with obstacks.
	* stmt.c
	(mark_block_nesting): Mark the label_chain.
	(epxand_label): Use ggc_alloc, not oballoc.
	(clear_last_expr): Don't mess with obstacks.
	(expand_decl_cleanup): Likewise.
	(expand_dcc_cleanup): Likewise.
	(expand_dhc_cleanup): Likewise.
	(expand_anon_union_decl): Likewise.
	(add_case_node): Use xmalloc, not oballoc.
	(free_case_nodes): New function.
	(expand_end_case): Call it.
	* stor-layout.c (layout_type): Don't
	mess with obstacks.
	(layout_type): Likewise.
	* toplev.c (wrapup_global_declarations):
	Likewise.
	(compile_file): Remove ggc_p conditionals.
	(rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
	(decode_f_option): Remove ggc_p conditionals.
	* tree.c
	(function_maybepermanent_obstack): Remove.
	(maybepermanent_obstack): Likewise.
	(function_obstack): Likewise.
	(tmeporary_obstack): Likewise.
	(momentary_obstack): Likewise.
	(temp_decl_obstack): Likewise.
	(saveable_obstack): Likewise.
	(rtl_obstack): Likewise.
	(current_obstack): Likewise.
	(expression_obstack): Likewise.
	(struct obstack_stack): Likewise.
	(obstack_stack): Likewise.
	(obstack_stack_obstack): Likewise.
	(maybepermanent_firstobj): Likewise.
	(temporary_firstobj): Likewise.
	(momentary_firstobj): Likewise.
	(temp_decl_firstobj): Likewise.
	(momentary_function_firstobj): Likewise.
	(all_types_permanent): Likewise.
	(struct momentary_level): Likewise.
	(momentary_stack): Likewise.
	(init_obstacks): Remove initialization of removed obstacks.
	(save_tree_status): Remove.
	(restore_tree_status): Likewise.
	(temporary_allocation): Liekwise.
	(end_temporary_allocation): Liekwise.
	(resume_temporary_allocation): Likewise.
	(saveable_allocation): Likewise.
	(push_obstacks): Likewise.
	(push_obstacks_nochange): Likewise.
	(pop_obstacks): Likewise.
	(allocation_temporary_p): Likewise.
	(permanent_allocation): Likewise.
	(preserve_data): Likewise.
	(preserve_initializer): Likewise.
	(rtl_in_current_obstack): Likewise.
	(rtl_in_saveable_obstack): Likewise.
	(oballoc): Likewise.
	(obfree): Likewise.
	(savealloc): Likewise.
	(expralloc): Likewise.
	(print_obstack_name): Likewise.
	(debug_obstack): Likewise.
	(object_permanent_p): Likewise.
	(push_momentary): Likewise.
	(perserve_momentary): Likewise.
	(clear_momentary): Likewise.
	(pop_momentary): Likewise.
	(pop_momentary_nofree): Likewise.
	(suspend_momentary): Likewise.
	(resume_momentary): Likewise.
	(make_node): Don't set TREE_PERMANENT.
	(copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
	Don't set TREE_PERMANENT.
	(get_identifier): Remove ggc_p conditionals.
	(build_string): Likewise.
	(make_tree_vec): Likewise.
	(build_decl_list): Remove.
	(build_expr_list): Likewise.
	(tree_cons): Remove ggc_p conditionals.
	(decl_tree_cons): Remove.
	(expr_tree_cons): Likewise.
	(perm_tree_cons): Likewise.
	(temp_tree_cons): Likewise.
	(saveable_tree_cons): Likewise.
	(build1): Remove ggc_p conditionals.
	(build_parse_node): Likewise.
	(build_type_attribute_variant): Don't mess with obstacks.
	(build_type_copy): Likewise.
	(type_hash_canon): Likewise.
	(build_pointer_type): Likewise.
	(build_reference_type): Likewise.
	(build_index_type): Likewise.
	(build_range_type): Likewise.
	(dump_tree_statistics): Don't print obstack information.
	* tree.h
	(struct tree_common): Remove permanent_flag.
	(TREE_PERMANENT): Remove.
	(TREE_SET_PERMANENT): Likewise.
	(TYPE_OBSTACK): Likewise.
	(struct tree_type): Remove obstack.
	(oballoc): Remove.
	(savealloc): Likewise.
	(build_decl_list): Likewise.
	(build_expr_list): Likewise.
	(perm_tree_cons): Likewise.
	(temp_tree_cons): Likewise.
	(saveable_tree_cons): Likewise.
	(decl_tree_cons): Likewise.
	(expr_tree_cons): Likewise.
	(suspend_momentary): Likewise.
	(allocation_temporary_p): Likewise.
	(resume_momentary): Likewise.
	(push_obstacks_nochange): Likewise.
	(permanent_allocation): Likewise.
	(push_momentary): Likewise.
	(clear_momentary): Likewise.
	(pop_momentary): Likewise.
	(end_temporary_allocation): Likewise.
	(pop_obstacks): Likewise.
	(push_obstacks): Likewise.
	(pop_momentary_nofree): LIkewise.
	(preserve_momentary): Likewise.
	(saveable_allocation): Likewise.
	(temporary_allocation): Likewise.
	(resume_temporary_allocation): Likewise.
	(perserve_initializer): Likewise.
	(debug_obstack): Likewise.
	(rtl_in_current_obstack): Likewise.
	(rtl_in_saveable_obstack): Likewise.
	(obfree): Likewise.
	* varasm.c (current_obstack): Remove.
	(saveable_obstack): Remove.
	(rtl_obstack): Remove.
	(immed_double_const): Don't mess with obstacks.
	(immed_real_cons): Likewise.
	(output_constant_def): Likewise.
	(init_varasm_status): Use xcalloc.
	(mark_pool_constant): Mark the pool constant itself.
	(free_varasm_status): Free memory.
	(decode_rtx_const): Call bzero directly, rather than expanding it
	inline.
	(record_rtx_const): Don't mess with obstacks.
	(force_const_mem): Likewise.
	* config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
	conditionals.
	(aof_pic_entry): Likewise.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/m32r/m32r.c (m32r_encode_section_info): Likewise.
	* config/pa/pa.c (saveable_obstack): Remove.
	(rtl_obstack): Likewise.
	(current_obstack): Likewise.
	(output_call): Don't mess with obstacks.
	(hppa_encode_label): Remove ggc_p conditionals.
	* config/romp/romp.c (get_symref): Don't mess with obstacks.
	* config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
	(rs6000_encode_section_info): Likewise.
	* config/sh/sh.c (get_fpscr_rtx): Likewise.

From-SVN: r36856
2000-10-13 06:26:46 +00:00
Zack Weinberg
15a40ced5a Make-lang.in (F77_SRCS): Remove all .j files.
* Make-lang.in (F77_SRCS): Remove all .j files.
	* Makefile.in (ASSERT_H, CONFIG_H, CONVERT_H, FLAGS_H, GGC_H,
	GLIMITS_H, HCONFIG_H, INPUT_H, OUTPUT_H, RTL_H, SYSTEM_H,
	TOPLEV_H, TREE_H): Remove references to .j files.
	(TCONFIG_H, TM_H): Remove entirely.
	(deps-kinda): Delete rule.
	Correct commentary.

	* assert.j, config.j, convert.j. flags.j, ggc.j, glimits.j,
	hconfig.j, input.j, output.j, rtl.j, system.j, toplev.j,
	tree.j, tconfig.j, tree.j: Delete.

	* ansify.c, bad.c, bit.c, com.c, com.h, intdoc.c, lex.c,
	parse.c, proj.c, proj.h, ste.c, target.c, target.h, top.c,
	where.c, where.h: Include parent-directory headers directly.
	* lex.c: Don't include tree.h twice.

From-SVN: r34638
2000-06-21 20:11:14 +00:00
Kaveh R. Ghazi
cd9b42984e * ste.c (gbe_block): Constify.
From-SVN: r34565
2000-06-15 18:05:03 +00:00
Richard Kenner
fed3cef0db builtins.c (c_strlen): Use size_diffop and return ssizetype value.
* builtins.c (c_strlen): Use size_diffop and return ssizetype value.
	(expand_builtin_strcpy): Pass correct type to size_binop.
	(expand_builtin_strcmp): Likewise.
	Clean up conditional structure.
	* c-decl.c (init_decl_processing): Don't call set_sizetype twice.
	(complete_array_type): Don't use size_binop for MAXINDEX.
	* c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
	(c_sizeof_nowarn, c_size_in_bytes): Likewise.
	(c_alignof): Use size_one_node.
	(build_unary_op): Pass arg of proper type to size_binop.
	(really_start_incremental_init, push_init_level): Use sizetype for
	constructor{,_bit,_unfilled}_index.
	(pop_init_label, output_init_element): Likewise.
	(output_pending_init_elements, process_init_element): Likewise.
	* calls.c (compute_argument_block_size): Field VAR is ssizetype.
	* expr.c (store_expr): Use size_int.
	(store_constructor): Use proper types for size_binop args.
	(get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
	(expand_expr_unaligned): Likewise.
	(string_contant): Return object of sizetype.
	* expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
	(ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
	(ARGS_SIZE_TREE): Pass proper types to size_binop.
	* fold-const.c (int_const_binop): Refine when size_int is called.
	(fold_convert): Likewise.
	(size_int_wide): Rework to take KIND as arg, only take low order
	bits, handle new sizetype_tab datatype, and chain entries in
	size_table.
	(size_int_type_wide): New function.
	(size_binop): Validate types of arguments.
	(ssize_binop): Deleted.
	(size_diffop): New function.
	(extract_muldiv): Only fold division into multiplication for sizetypes.
	* function.c (assign_parms): Use size_diffop and make sure
	VAR field is of ssizetype; also pass proper type to size_binop.
	(locate_and_pad_parm, pad_to_arg_alignment): Likewise.
	(round_down): Deleted from here.
	* store-layout.c (sizetype_tab): Now an array.
	(sizetype_set, early_root_list): New variables.
	(variable_size): Use size_one_node.
	(round_up): Pass proper type to size_binop.
	(round_down): Moved to here and corrected as above.
	(layout_record): Pass proper arg types to size_binop.
	(layout_type): Likewise.
	If sizetype_set is zero, record the type just laid out.
	(make_unsigned_type): Don't call set_sizetype;
	(make_signed_type): Likewise; also, call fixup_signed_type.
	(initialize_sizetypes): New function.
	(set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
	set name of bitsizetype to "bit_size_type".
	Fix up type of sizes of all types made before call.
	* tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
	* tree.c (fix_sizetype): Deleted.
	(build_common_tree_nodes): Call initialize_sizetypes.
	(build_common_tree_nodes_2): Don't call fix_sizetype.
	* tree.h (TYPE_IS_SIZETYPE): New macro.
	(initialize_sizetype): New declaration.
	(enum size_type_kind): New type.
	(struct sizetype_tab): Deleted.
	(sizetype_tab): Now array; adjust sizetype macros.
	(size_diffop, size_int_type_wide): New functions.
	(size_int_wide): Change number of args and type; access macros changed.
	(ssize_int, sbitsize_int): New macros.
	* config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
	(ROUND_TYPE_SIZE_UNIT): New macro.
	* ch/actions.c (chill_convert_for_assignment): Don't use size_binop
	for things that aren't sizes.
	(expand_varying_length_assignment): Likewise.
	* ch/convert.c (digest_array_tuple, convert): Likewise.
	* ch/typeck.c (build_chill_slice, smash_dummy_type): Likewise.
	(build_chill_slice_with_range): Likewise.
	(build_chill_slice_with_length): Likewise.
	(build_array_from_set): Adjust types for size_binop.
	* ch/expr.c (build_concat_expr, build_chill_repetition_op): Likewise.
	(build_chill_sizeof): Use TYPE_SIZE_UNIT.
	* ch/tree.c (build_string_type): Pass proper type to size_binop.
	* cp/class.c (dfs_build_vtable_offset_vtbl_entries): Don't use
	size_binop on things that are not sizes; ssize_binop deleted.
	Call size_diffop when appropriate.
	(dfs_build_vcall_offset_vtbl_entries): Likewise.
	(build_primary_vtable, build_secondary_vtable): Likewise.
	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
	Variable I is HOST_WIDE_INT.
	(get_vfield_offset): Pass proper types to size_binop.
	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
	(finish_struct_1): Likewise.
	(skip_rtti_stuff): Arg N is now pointer to signed.
	(layout_class_type): Use size_zero_node.
	* cp/cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
	* cp/cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
	* cp/decl.c (complete_arry_type): Pass proper types to size_binop.
	(xref_basetypes): BINFO_OFFSET is sizetype.
	* cp/error.c (dump_expr): Don't use size_binop non-sizes.
	* cp/expr.c (cplus_expand_constant): Pass proper types to size_binop.
	* cp/init.c (construct_virtual_bases): Fix type error.
	(build_vec_delete_1): Pass proper type to size_binop and don't
	fold result.
	* cp/lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
	* cp/rtti.c (get_base_offset): Pass proper type to size_binop.
	* cp/search.c (dfs_find_vbases): Fix type error.
	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
	* cp/tree.c (debug_binfo): Variable N is signed.
	Use HOST_WIDE_INT_PRINT_DEC.
	* cp/typeck.c (comptypes): sizetype is same as equivalent integer type.
	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
	size_one_node and size_zero_node.
	(c_alignof): Use size_one_node.
	(build_component_addr): Pass proper types to size_binop.
	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
	* f/com.c (ffecom_arrayref_): Convert args to size_binop to proper
	type.
	(ffecom_tree_canonize_ptr_): Don't use size_binop for non-sizes.
	(ffecom_tree_canonize_ref_): Likewise.
	(type_for_mode): Handle TImode.
	* f/ste.c (ffeste_io_dofio_, ffeste_io_douio_): Use TYPE_SIZE_UNIT.
	(ffeste_io_ciclist_): Likewise.
	* java/expr.c (build_java_ret): Pass proper type to size_binop.

From-SVN: r32225
2000-02-27 16:39:40 -05:00
Geoff Keating
7189a4b014 Make the Fortran front-end use garbage collection:
* com.c (ffecom_init_0): Make double_ftype_double,
	float_ftype_float, ldouble_ftype_ldouble,
	ffecom_tree_ptr_to_fun_type_void local.
	(tracker_head): New static variable.
	(mark_tracker_head): New, marker procedure for tracker_head.
	(ffecom_save_tree_forever): New procedure.
	(ffecom_init_zero_): Remove obstack use.
	(ffecom_make_gfrt_): Remove obstack use.
	(ffecom_sym_transform_): Remove obstack use, save appropriate trees.
	(ffecom_transform_common_): Remove obstack use, save appropriate
	trees.
	(ffecom_type_namelist_): Remove obstack use, save appropriate
	trees.
	(ffecom_type_vardesc_): Remove obstack use, save appropriate trees.
	(ffecom_lookup_label): Remove obstack use, save appropriate trees.
	(duplicate_decls): Remove obstack use.
	(finish_function): push & pop ggc context around
	rest_of_compilation when building nested function.
	(mark_binding_level): New function.
	(init_decl_processing): Mark all the GC roots.
	(ggc_p): Set to 1.
	(lang_mark_tree): New function.
	(lang_mark_false_label_stack): New trivial function.
	* com.h (ffecom_save_tree_forever): Declare as external.
	* lex.c (ffelex_hash_): Use GC to allocate the filename string
	even when ffelex_kludge_flag_.
	* ste.c (ffeste_io_ialist_): Register a static root.
	(ffeste_io_inlist_): Likewise.
	(ffeste_io_icilist_): Likewise.
	(ffeste_io_cllist_): Likewise.
	(ffeste_io_cilist_): Likewise.
	(ffeste_io_olist_): Likewise.
	* Makefile.in (OBJS): Don't use ggc-callbacks.o.
	(OBJDEPS): Likewise.
	(GGC_H): New variable.
	Update dependencies.
	* where.c (ffewhere_head): New global.
	(mark_ffewhere_head): New marker procedure for ffewhere_head.
	(ffewhere_file_kill): Use GC to do memory management.
	(ffewhere_file_new): Use GC to do memory management.
	* ggc.j: New file.

From-SVN: r31142
1999-12-30 19:44:13 +00:00
Kaveh R. Ghazi
14657de8f1 com.c (ffecom_get_invented_identifier): Rewrite to take an ellipses.
* com.c (ffecom_get_invented_identifier): Rewrite to take an ellipses.

	(ffecom_char_enhance_arg_, ffecom_do_entry_,
	ffecom_f2c_make_type_, ffecom_gen_sfuncdef_,
	ffecom_start_progunit_, ffecom_start_progunit_,
	ffecom_start_progunit_, ffecom_sym_transform_assign_,
	ffecom_transform_equiv_, ffecom_transform_namelist_,
	ffecom_vardesc_, ffecom_vardesc_array_, ffecom_vardesc_dims_,
	ffecom_end_transition, ffecom_lookup_label, ffecom_temp_label):
	Adjust accordingly.

	* com.h (ffecom_get_invented_identifier): Likewise.

	* sts.c (ffests_printf): New function taking ellipses.
	(ffests_printf_1D, ffests_printf_1U, ffests_printf_1s,
	ffests_printf_2Us): Delete.

	* sts.h: Likewise.

	* std.c (ffestd_R1001dump_, ffestd_R1001dump_1005_1_,
	ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_,
	ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_,
	ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_,
	ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_,
	ffestd_R1001rtexpr_): Call `ffests_printf', not `ffests_printf_*'.

	* ste.c (ffeste_io_ialist_, ffeste_io_cilist_, ffeste_io_cllist_,
	ffeste_io_icilist_, ffeste_io_inlist_, ffeste_io_olist_): Likewise.

From-SVN: r30692
1999-11-29 02:26:49 +00:00
Craig Burley
d59c317754 fix DO WHILE (compile/19990502-1.f)
From-SVN: r26727
1999-05-02 10:04:25 -04:00
Craig Burley
6b55276ed9 support array bounds checking
From-SVN: r26592
1999-04-22 19:01:43 -04:00
Craig Burley
986b2f978b fix DO WHILE
From-SVN: r26553
1999-04-19 17:38:54 -04:00
Craig Burley
c7e4ee3a6d rewrite to use block/scope structure of GBE
From-SVN: r26515
1999-04-17 06:58:35 -04:00
Craig Burley
702edf1d71 fix bugs exposed by --enable-checking
From-SVN: r26181
1999-04-04 19:16:21 -04:00
Kaveh R. Ghazi
04d87103d4 Warning fixes:
* sta.c (ffesta_ffebad_1sp, ffesta_ffebad_1st, ffesta_ffebad_2st):
        Const-ify a char*.
        * sta.h (ffesta_ffebad_1sp, ffesta_ffebad_1st, ffesta_ffebad_2st):
        Likewise.
        * stb.c (ffestb_local_u_): Likewise.
        (ffestb_do, ffestb_dowhile, ffestb_else, ffestb_elsexyz,
        ffestb_else3_, ffestb_endxyz, ffestb_goto, ffestb_let,
        ffestb_type, ffestb_type1_, ffestb_varlist, ffestb_R423B,
        ffestb_R522, ffestb_R528, ffestb_R542, ffestb_R834, ffestb_R835,
        ffestb_R838, ffestb_R841, ffestb_R1102, ffestb_blockdata,
        ffestb_R1212, ffestb_R1228, ffestb_V009, ffestb_module,
        ffestb_R809, ffestb_R810, ffestb_R10014_, ffestb_R10015_,
        ffestb_R10018_, ffestb_R1107, ffestb_R1202, ffestb_R12026_,
        ffestb_S3P4, ffestb_V012, ffestb_V014, ffestb_V025, ffestb_V0255_,
        ffestb_V020, ffestb_dimlist, ffestb_dummy, ffestb_R524,
        ffestb_R547, ffestb_decl_chartype, ffestb_decl_dbltype,
        ffestb_decl_gentype, ffestb_decl_recursive, ffestb_decl_entsp_2_,
        ffestb_decl_func_, ffestb_V003, ffestb_V016, ffestb_V027,
        ffestb_decl_R539): Likewise.
        * stb.h (_ffestb_args_): Likewise.
        * stc.c (ffestc_subr_binsrch_, ffestc_subr_is_present_,
        ffestc_subr_speccmp_, ffestc_R904, ffestc_R907): Likewise.
        * std.c (ffestd_R1001dump_1005_1_, ffestd_R1001dump_1005_2_,
        ffestd_R1001dump_1005_3_, ffestd_R1001dump_1005_4_,
        ffestd_R1001dump_1005_5_, ffestd_R1001dump_1010_1_,
        ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_,
        ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_): Likewise.
        * ste.c (ffeste_begin_iterdo_, ffeste_subr_file_): Likewise.
        * sts.c (ffests_printf_1D, ffests_printf_1U, ffests_printf_1s,
        ffests_printf_2Us, ffests_puts, ffests_puttext): Likewise.
        * sts.h (ffests_printf_1D, ffests_printf_1U, ffests_printf_1s,
        ffests_printf_2Us, ffests_puts, ffests_puttext): Likewise.
        * stt.c (ffestt_exprlist_drive, ffestt_implist_drive,
        ffestt_tokenlist_drive): Add prototype arguments.
        * stt.h (ffestt_exprlist_drive, ffestt_implist_drive,
        ffestt_tokenlist_drive): Likewise.
        * stu.c (ffestu_dummies_transition_): Likewise.
        (ffestu_sym_end_transition): Const-ify a char*.
        * stw.c (ffestw_display_state, ffestw_new, ffestw_pop): Add
        prototype arguments.
        * stw.h (ffestw_display_state, ffestw_new, ffestw_pop): Likewise.
        * version.c (ffe_version_string): Const-ify a char*.
        * version.h (ffe_version_string): Likewise.

From-SVN: r26064
1999-03-30 09:23:52 +00:00
Craig Burley
25d7717e55 delete/change my email address
From-SVN: r25221
1999-02-15 13:18:19 -05:00
Craig Burley
8b45da67d0 Cutover to system.h:
Mon Jun 15 22:21:57 1998  Craig Burley  <burley@gnu.org>
	Cutover to system.h:
	* Make-lang.in:
	* Makefile.in:
	* ansify.c:
	* bad.c:
	* bld.c:
	* com.c:
	* com.h:
	* expr.c:
	* fini.c:
	* g77spec.c:
	* implic.c:
	* intdoc.c:
	* intrin.c:
	* lex.c:
	* lex.h:
	* parse.c:
	* proj.c:
	* proj.h:
	* src.c:
	* src.h:
	* stb.c:
	* ste.c:
	* target.c:
	* top.c:
	* system.j: New file.
	Use toplev.h where appropriate:
	* Make-lang.in:
	* Makefile.in:
	* bad.c:
	* bld.c:
	* com.c:
	* lex.c:
	* ste.c:
	* top.c:
	* toplev.j: New file.
	Conditionalize all dumping/reporting routines so they don't
	get built for gcc/egcs:
	* bld.c:
	* bld.h:
	* com.c:
	* equiv.c:
	* equiv.h:
	* sta.c:
	* stt.c:
	* stt.h:
	* symbol.c:
	* symbol.h:
	Use hconfig.h instead of config.h where appropriate:
	* Makefile.in (proj-h.o): Compile with -DUSE_HCONFIG.
	* fini.c: Define USE_HCONFIG before including proj.h.
	* Makefile.in (deps-kinda): Redirect stderr to stdout,
	to eliminate diagnostics vis-a-vis g77spec.c.
	* Makefile.in: Regenerate dependencies via deps-kinda.
	* lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate
	apparently spurious warnings about uninitialized variables
	`c', `column', and so on.

From-SVN: r20520
1998-06-16 02:23:44 +00:00
Craig Burley
95a1b67649 Restore circa-0.5.22 capabilities of `g77' driver:
Thu May 28 21:32:18 1998  Craig Burley  <burley@gnu.org>
	Restore circa-0.5.22 capabilities of `g77' driver:
	* Make-lang.in (g77spec.o): Depend on f/version.h.
	(g77version.o): New rule to compile g77 version info.
	(g77$(exeext)): Depend on and link in g77version.o.
	* g77spec.c: Rewrite to be more like 0.5.22 version
	of g77.c, making filtering of command line smarter
	so mixed Fortran and C (etc.) can be compiled, verbose
	version info can be obtained, etc.
	* lang-specs.h (f77-version): New "language" to support
	"g77 -v" command under new gcc 2.8 regime.
	* lex.c (ffelex_file_fixed): If -fnull-version, just
	substitute a "source file" that prints out version info.
	* top.c, top.h: Support -fnull-version.
	* lang-specs.h: Use "%O" instead of OO macro to specify
	object extension.  Remove old stringizing cruft.
	* Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext),
	g77-cross$(exeext), f771,
	$(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi,
	$(srcdir)/f/intdoc.texi,
	f77.install-common, f77.install-info, f77.install-man,
	f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2,
	f77.stage3, f77.stage4, f77.distdir): Don't do anything
	unless user specified "f77" or "F77" in $LANGUAGES either
	during configuration or explicitly.  For convenience of
	various tests and to work around lack of the assignment
	"LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command
	of "make bootstrap" in gcc, use a touch file named "lang-f77"
	to communicate whether this is the case.
	* Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro,
	replace with minimal expansion of its former self in
	each of the two instances where it was used.
	* Makefile.in (HOST_CC): Delete this definition.
	* com.c (index, rindex): Delete these declarations.
	* proj.h: (isascii): Delete this.
	* Make-lang.in (f77.install-common): Warn if `f77-install-ok'
	flag-file exists, since it no longer triggers any activity.
	Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
	normalize and simplify g77/libg2c build process:
	* Make-lang.in: Remove all support for overwriting
	/usr/bin/f77 etc., or whatever the actual names are
	via $(prefix) and $(local_prefix).  (g++ overwrites
	/usr/bin/c++, but then it's often the only C++ compiler
	on the system; f77 often exists on systems that are
	installing g77.)
	(f77.realclean): Remove obsolete target.
	(g77.c, g77$(exeext)): Minor changes to look more like g++'s
	stuff.
	(f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be
	more like g++ and such.
	(f/Makefile): Removed, as g++ doesn't need this rule.
	(f77.install-common): No longer install f77, etc.
	(f77.install-man): No longer install f77.1.
	(f77.uninstall): No longer uninstall f77, f77.1, etc.
	(f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work
	only if "f77" appears in $(LANGUAGES).
	(Note: gcc's Makefile.in's bootstrap target should set
	LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.)
	* Makefile.in: Update vis-a-vis gcc/cp/Makefile.in.
	(none): Remove.
	(g77-only): Relocate.
	(all.indirect, f771, *.o): Now assumes current directory
	is this dir (gcc/f), not the parent directory.
	(TAGS): Remove "echo 'parse.y,0'  >> TAGS ;" line.
	* config-lang.in: Delete commented-out code.
	Fix stagestuff definition.  Add more stuff to
	diff_excludes definition.  Don't create any directories.
	Set outputs to f/Makefile, to get variable substition
	to happen (what does that really do, anyway?!).
	* g77spec.c: Rename libf2c to libg2c.
	* com.h: Remove all of the gcc back-end decls,
	since egcs should have all of them correct.
	* com.c: Include "proj.h" before anything else,
	as that's how things are supposed to work.
	* ste.c: Ditto.
	* bad.c: Include "flags.j" here, since some diagnostics
	check flag_pedantic_errors.
	* Makefile.in (f/*.o): Rebuild dependencies via
	deps-kinda.
	* output.j: New source file.
	* Make-lang.in (F77_SRCS): Update accordingly.
	* Makefile.in (OUTPUT_H): Ditto.
	(deps-kinda): Ditto.
	* com.c: Include "output.j" here.
	* lex.c: Ditto.

From-SVN: r20506
1998-06-15 07:37:33 +00:00
Dave Love
deec641e31 JCB: update email in header.
From-SVN: r19876
1998-05-19 10:50:55 +00:00
Dave Love
c39c7b34c4 Layout change.
From-SVN: r19847
1998-05-18 11:17:41 +00:00
Dave Love
e75468d280 Layout change.
From-SVN: r19842
1998-05-18 10:47:05 +00:00
Jeff Law
44d2eabcec Merge in g77-0.5.22.
From-SVN: r18753
1998-03-22 03:06:48 -07:00
Craig Burley
86fc7a6c5d Improve run-time diagnostic for "PRINT '(I1', 42":
* com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_,
        which is now a macro (to avoid lots of changes to other code)
        with new arg, ffecom_char_args_with_null_ being another new
        macro to call same function with different value for new arg.
        This function now appends a null byte to opCONTER expression
        if the new arg is TRUE.
        (ffecom_arg_ptr_to_expr): Support NULL length pointer.
        * ste.c (ffeste_io_cilist_):
        (ffeste_io_icilist_): Pass NULL length ptr for
        FORMAT expression, so null byte gets appended where
        feasible.
        * target.c (ffetarget_character1):
        (ffetarget_concatenate_character1):
        (ffetarget_substr_character1):
        (ffetarget_convert_character1_character1):
        (ffetarget_convert_character1_hollerith):
        (ffetarget_convert_character1_integer4):
        (ffetarget_convert_character1_logical4):
        (ffetarget_convert_character1_typeless):
        (ffetarget_hollerith): Append extra phantom null byte as
        part of FFETARGET-NULL-BYTE kludge.
Yes, even more patches from Craig :-)

From-SVN: r18187
1998-02-22 12:31:54 -07:00
Kaveh R. Ghazi
567f3d3603 com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'.
* com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'.
        * expr.c (ffeexpr_type_combine): Likewise.
        (ffeexpr_reduce_): Likewise.
        (ffeexpr_declare_parenthesized_): Likewise.
        * src.c (ffesrc_strcmp_1ns2i): Likewise.
        (ffesrc_strcmp_2c): Likewise.
        (ffesrc_strncmp_2c): Likewise.
        * stb.c (ffestb_halt1_): Likewise.
        (ffestb_R90910_): Likewise.
        (ffestb_R9109_): Likewise.
        * stc.c (ffestc_R544_equiv_): Likewise.
        * std.c (ffestd_subr_copy_easy_): Likewise.
        (ffestd_R1001dump_): Likewise.
        (ffestd_R1001dump_1005_1_): Likewise.
        (ffestd_R1001dump_1005_2_): Likewise.
        (ffestd_R1001dump_1005_3_): Likewise.
        (ffestd_R1001dump_1005_4_): Likewise.
        (ffestd_R1001dump_1005_5_): Likewise.
        (ffestd_R1001dump_1010_2_): Likewise.
        * ste.c (ffeste_R840): Likewise.
        * sts.c (ffests_puttext): Likewise.
        * symbol.c (ffesymbol_check_token_): Likewise.
        * target.c (ffetarget_real1): Likewise.
        (ffetarget_real2): Likewise.

From-SVN: r17884
1998-02-12 16:18:26 -07:00
Craig Burley
a2977d2db3 Important patch from Burley.
From-SVN: r16291
1997-11-02 23:07:04 -07:00
Jeff Law
5ff904cd27 Initial revision
From-SVN: r14772
1997-08-12 01:47:32 -06:00