Commit Graph

14 Commits

Author SHA1 Message Date
Mark Mitchell
aea0083a2d com.h (FFECOM_f2cINTEGER): Avoid using LONG_TYPE_SIZE as a preprocessor constant.
* com.h (FFECOM_f2cINTEGER): Avoid using LONG_TYPE_SIZE as a
	preprocessor constant.
	(FFECOM_f2cLOGICAL): Likewise.
	(FFECOM_f2cLONGINT): Likewise.

From-SVN: r33130
2000-04-12 22:08:32 +00:00
Jeff Law
3852e8afcc Fix copyrights
From-SVN: r32182
2000-02-26 13:02:01 -07: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
b0791fa925 com.c (ffecom_file_, [...]): Constify a char*.
* com.c (ffecom_file_, ffecom_file, file_buf,
        ffecom_open_include_): Constify a char*.
        (ffecom_possible_partial_overlap_): Mark parameter `expr2' with
        ATTRIBUTE_UNUSED.
        (ffecom_init_0): Use a fully prototyped cast in call to bsearch.
        (lang_print_error_function): ANSI-fy.

        * com.h (ffecom_file): Constify a char*.

        * fini.c (main): Call return, not exit.

        * g77spec.c (lang_specific_driver): Use non-const *in_argv in
        assignment.

        * intrin.c (ffeintrin_cmp_name_): Don't needlessly cast away
        const-ness.

From-SVN: r30693
1999-11-29 02:50:04 +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
Bernd Schmidt
81b3411cdf Move declarations and building code for common tree nodes to tree.[ch]
From-SVN: r29266
1999-09-10 10:36:02 +00:00
Craig Burley
c7e4ee3a6d rewrite to use block/scope structure of GBE
From-SVN: r26515
1999-04-17 06:58:35 -04:00
Kaveh R. Ghazi
26f096f9e5 Warning fixes:
* bad.c (_ffebad_message_, ffebad_string_, ffebad_message_,
        ffebad_bufputs_, ffebad_bufputs_, ffebad_start_, ffebad_string,
        ffebad_finish): Const-ify a char*.
        * bld.c (ffebld_op_string_, ffebld_op_string): Likewise.
        * bld.h (ffebld_op_string): Likewise.
        * com.c (ffecom_arglist_expr_, ffecom_build_f2c_string_,
        ffecom_debug_kludge_, ffecom_f2c_make_type_,
        ffecom_get_appended_identifier_, ffecom_get_identifier_,
        ffecom_gfrt_args_): Likewise.
        (ffecom_convert_narrow_, ffecom_convert_widen_): Add prototype.
        (builtin_function, ffecom_gfrt_name_, ffecom_gfrt_argstring_,
        ffecom_arglist_expr_, ffecom_build_f2c_string_,
        ffecom_debug_kludge_, ffecom_f2c_make_type_,
        ffecom_get_appended_identifier_, ffecom_get_external_identifier_,
        ffecom_get_identifier_, ffecom_decl_field,
        ffecom_get_invented_identifier, lang_print_error_function,
        skip_redundant_dir_prefix, read_name_map, print_containing_files):
        Const-ify a char*.
        (savestring): Remove, use `xstrdup' instead.
        * com.h (ffecom_decl_field, ffecom_get_invented_identifier):
        Const-ify a char*.
        * data.c (ffebld, ffedata_gather_): Make explicitly static.
        * expr.c (ffeexpr_isdigits_, ffeexpr_percent_,
        ffeexpr_reduced_concatenate_, ffeexpr_nil_real_,
        ffeexpr_nil_number_, ffeexpr_nil_number_period_,
        ffeexpr_nil_number_real_, ffeexpr_token_real_,
        ffeexpr_token_number_, ffeexpr_token_number_period_,
        ffeexpr_token_number_real_): Const-ify a char*.
        * fini.c (xspaces): Likewise.
        * global.c (ffeglobal_type_string_): Likewise.
        (ffeglobal_drive): Protoize.
        (ffeglobal_proc_def_arg): Const-ify a char*.
        * global.h (ffeglobal_drive): Protoize.
        (ffeglobal_proc_def_arg): Const-ify a char*.
        * implic.c (ffeimplic_none, ffeimplic_peek_symbol_type):
        Likewise.
        * implic.h (ffeimplic_peek_symbol_type): Likewise.
        * info.c (ffeinfo_basictype_string_, ffeinfo_kind_message_,
        ffeinfo_kind_string_, ffeinfo_kindtype_string_,
        ffeinfo_where_string_, ffeinfo_basictype_string,
        ffeinfo_kind_message, ffeinfo_kind_string,
        ffeinfo_kindtype_string, ffeinfo_where_string): Likewise.
        * info.h (ffeinfo_basictype_string, ffeinfo_kind_message,
        ffeinfo_kind_string, ffeinfo_kindtype_string,
        ffeinfo_where_string): Likewise.
        * intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
        _ffeintrin_imp_, ffeintrin_check_, ffeintrin_cmp_name_,
        ffeintrin_fulfill_specific, ffeintrin_init_0,
        ffeintrin_is_actualarg, ffeintrin_is_intrinsic,
        ffeintrin_name_generic, ffeintrin_name_implementation,
        ffeintrin_name_specific): Likewise.
        * intrin.h (ffeintrin_is_intrinsic, ffeintrin_name_generic,
        ffeintrin_name_implementation, ffeintrin_name_specific): Likewise.
        * lex.c (ffelex_type_string_, ffelex_token_new_character,
        ffelex_token_new_name, ffelex_token_new_names,
        ffelex_token_new_number): Likewise.
        * lex.h (ffelex_token_new_character, ffelex_token_new_name,
        ffelex_token_new_names, ffelex_token_new_number): Likewise.
        * malloc.c (malloc_types_, malloc_pool_new, malloc_new_inpool_,
        malloc_new_zinpool_): Likewise.
        * malloc.h (malloc_new_inpool_, malloc_new_zinpool_,
        malloc_pool_new): Likewise.
        * name.c (ffename_space_drive_global, ffename_space_drive_symbol):
        Protoize.
        * name.h (ffename_space_drive_global, ffename_space_drive_symbol):
        Likewise.
        * symbol.c (ffesymbol_state_name_, ffesymbol_attr_name_,
        ffesymbol_attrs_string): Const-ify a char*.
        (ffesymbol_drive, ffesymbol_drive_sfnames): Protoize.
        (ffesymbol_state_string): Const-ify a char*.
        * symbol.h (ffesymbol_attrs_string): Likewise.
        (ffesymbol_drive, ffesymbol_drive_sfnames): Protoize.
        (ffesymbol_state_string): Const-ify a char*.
        * target.c (ffetarget_layout): Likewise.
        * target.h (ffetarget_layout): Likewise.

From-SVN: r26013
1999-03-27 10:24:06 +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
Jeff Law
82d109f263 Update to 0.5.22-19970929.
From-SVN: r15818
1997-10-01 01:28:03 -06:00
Jeff Law
5ff904cd27 Initial revision
From-SVN: r14772
1997-08-12 01:47:32 -06:00