Skip to content
Snippets Groups Projects
  1. Mar 27, 2006
  2. Mar 22, 2006
    • Thomas Koenig's avatar
      [multiple changes] · d67ab5ee
      Thomas Koenig authored
      2006-03-22  Thomas Koenig  <Thomas.Koenig@onlien.de>
      
      	PR fortran/19303
      	* gfortran.h (gfc_option_t):  Add record_marker.
      	* lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
      	* trans-decl.c:  Add gfor_fndecl_set_record_marker.
      	(gfc_build_builtin_function_decls): Set
      	gfor_fndecl_set_record_marker.
      	(gfc_generate_function_code):  If we are in the main program
      	and -frecord-marker was provided, call set_record_marker.
      	* options.c (gfc_handle_option):  Add handling for
      	-frecord-marker=4 and -frecord-marker=8.
      	* invoke.texi:  Document -frecord-marker.
      
      2006-03-22  Thomas Koenig  <Thomas.Koenig@onlien.de>
      
      	PR fortran/19303
      	* libgfortran.h (compile_options_t):  Add record_marker.
      	* runtime/compile_options.c (set_record_marker):
      	New function.
      	* io/open.c:  If we have four-byte record markers, use
      	GFC_INTEGER_4_HUGE as default record length.
      	* io/file_pos.c (unformatted_backspace):  Handle
      	different size record markers.
      	* io/transfer.c (us_read):  Likewise.
      	(us_write):  Likewise.
      	(next_record_r):  Likewise.
      	(write_us_marker):  Likewise.
      	(next_record_w):  Likewise.
      
      2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/19303
      	* gfortran.dg/record_marker_1.f90:  New test case.
      	* gfortran.dg/record_marker_2.f:  New test case.
      	* gfortran.dg/record_marker_3.f90:  New test case.
      
      From-SVN: r112290
      d67ab5ee
  3. Mar 10, 2006
  4. Feb 28, 2006
  5. Jan 06, 2006
  6. Dec 28, 2005
  7. Dec 10, 2005
    • Thomas Koenig's avatar
      re PR fortran/23815 (Add -byteswapio flag) · 181c9f4a
      Thomas Koenig authored
      2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/23815
      	* io.c (top level):  Add convert to io_tag.
      	(resolve_tag):  convert is GFC_STD_GNU.
      	(match_open_element):  Add convert.
      	(gfc_free_open):  Likewise.
      	(gfc_resolve_open):  Likewise.
      	(gfc_free_inquire):  Likewise.
      	(match_inquire_element):  Likewise.
      	* dump-parse-tree.c (gfc_show_code_node):  Add
      	convet for open and inquire.
      	gfortran.h: Add convert to gfc_open and gfc_inquire.
      	* trans-io.c (gfc_trans_open):  Add convert.
      	(gfc_trans_inquire):  Likewise.
      	* ioparm.def:  Add convert to open and inquire.
      	* gfortran.texi:  Document CONVERT.
      
      2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/23815
      	* io/file_pos.c (unformatted_backspace):  If flags.convert
      	does not equal CONVERT_NATIVE, reverse the record marker.
      	* io/open.c:  Add convert_opt[].
      	(st_open):  If no convert option is given, set CONVERT_NATIVE.
      	If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to
      	CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have
      	a big- or little-endian system).
      	* io/transfer.c (unformatted_read):  Remove unused attribute
      	from arguments.
      	If we need to reverse
      	bytes, break up large transfers into a loop.  Split complex
      	numbers into its two parts.
      	(unformatted_write):  Likewise.
      	(us_read):  If flags.convert does not equal CONVERT_NATIVE,
      	reverse the record marker.
      	(next_record_w): Likewise.
      	(reverse_memcpy):  New function.
      	* io/inquire.c (inquire_via_unit):  Implement convert.
      	* io/io.h (top level):  Add enum unit_convert.
      	Add convert to st_parameter_open and st_parameter_inquire.
      	Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT.
      	Increase padding for st_parameter_dt.
      	Declare reverse_memcpy().
      
      2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/23815
      	* gfortran.dg/unf_io_convert_1.f90:  New test.
      	* gfortran.dg/unf_io_convert_2.f90:  New test.
      	* gfortran.dg/unf_io_convert_3.f90:  New test.
      
      From-SVN: r108358
      181c9f4a
  8. Nov 21, 2005
    • Jakub Jelinek's avatar
      re PR fortran/14943 (read/write code generation is not thread safe) · 5e805e44
      Jakub Jelinek authored
      gcc/fortran/
      	PR fortran/14943
      	PR fortran/21647
      	* Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
      	* dump-parse-tree.c (gfc_show_code_node): Dump c->block for
      	EXEC_{READ,WRITE,IOLENGTH} nodes.
      	* io.c (terminate_io, match_io, gfc_match_inquire): Put data
      	transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
      	* resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
      	* trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
      	ioparm_list_format, ioparm_library_return, ioparm_iostat,
      	ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
      	ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
      	ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
      	ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
      	ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
      	ioparm_position, ioparm_position_len, ioparm_action,
      	ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
      	ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
      	ioparm_advance_len, ioparm_name, ioparm_name_len,
      	ioparm_internal_unit, ioparm_internal_unit_len,
      	ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
      	ioparm_direct, ioparm_direct_len, ioparm_formatted,
      	ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
      	ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
      	ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
      	ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
      	ioparm_iomsg_len, ioparm_var): Remove.
      	(enum ioparam_type, enum iofield_type, enum iofield,
      	enum iocall): New enums.
      	(gfc_st_parameter_field, gfc_st_parameter): New typedefs.
      	(st_parameter, st_parameter_field, iocall): New variables.
      	(ADD_FIELD, ADD_STRING): Remove.
      	(dt_parm, dt_post_end_block): New variables.
      	(gfc_build_st_parameter): New function.
      	(gfc_build_io_library_fndecls): Use it.  Initialize iocall
      	array rather than ioparm_*, add extra first arguments to
      	the function types.
      	(set_parameter_const): New function.
      	(set_parameter_value): Add type argument, return a bitmask.
      	Changed to set a field in automatic structure variable rather
      	than set a field in a global _gfortran_ioparm variable.
      	(set_parameter_ref): Likewise.  If requested var has different
      	size than what field should point to, call with a temporary and
      	then copy into the user variable.  Add postblock argument.
      	(set_string): Remove var_len argument, add type argument, return
      	a bitmask.  Changed to set fields in automatic structure variable
      	rather than set a field in a global _gfortran_ioparm variable.
      	(set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
      	add var argument.  Return a bitmask.  Changed to set fields in
      	automatic structure variable rather than set a field in a global
      	_gfortran_ioparm variable.
      	(set_flag): Removed.
      	(io_result): Add var argument.  Changed to read common.flags field
      	from automatic structure variable and bitwise AND it with 3.
      	(set_error_locus): Add var argument.  Changed to set fields in
      	automatic structure variable rather than set a field in a global
      	_gfortran_{filename,line} variables.
      	(gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
      	Create a temporary st_parameter_* structure.  Adjust callers of
      	all above mentioned functions.  Pass address of the temporary
      	variable as first argument to the generated function call.
      	Use iocall array rather than ioparm_* separate variables.
      	(gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
      	(build_dt): Likewise.  Change first argument to tree from tree *.
      	Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
      	IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
      	variables and gfc_trans_code the nested data transfer commands
      	in code->block.
      	(gfc_trans_iolength): Just set last_dt and call build_dt immediately.
      	(transfer_namelist_element): Pass address of dt_parm variable
      	to generated functions.  Use iocall array rather than ioparm_*
      	separate variables.
      	(gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
      	gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
      	rather than ioparm_* separate variables.
      	(gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
      	as first argument to generated function.  Adjust io_result caller.
      	Prepend dt_post_end_block before io_result code.
      	(transfer_expr): Use iocall array rather than ioparm_* separate
      	variables.  Pass address of dt_parm variables as first argument
      	to generated functions.
      	* ioparm.def: New file.
      gcc/testsuite/
      	PR fortran/24774
      	* gfortran.dg/inquire_9.f90: New test.
      
      	PR fortran/21647
      	* gfortran.fortran-torture/execute/inquire_5.f90: New test.
      libgfortran/
      	PR fortran/24774
      	PR fortran/14943
      	PR fortran/21647
      	* Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths,
      	add -D_GNU_SOURCE.
      	* Makefile.in: Regenerated.
      	* acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD,
      	LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros.
      	* configure.ac: Add them.
      	* configure: Rebuilt.
      	* config.h.in: Rebuilt.
      	* libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1.
      	* libgfortran.h (library_start, show_locus, internal_error,
      	generate_error, find_option): Add st_parameter_common * argument.
      	(library_end): Change into a dummy macro.
      	* io/io.h: Include gthr.h.
      	(SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK.
      	(CHARACTER): Remove define.
      	(st_parameter, global_t): Remove typedef.
      	(ioparm, g, ionml, current_unit): Remove variables.
      	(init_error_stream): Remove prototype.
      	(CHARACTER1, CHARACTER2): Define.
      	(st_parameter_common, st_parameter_open, st_parameter_close,
      	st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New
      	typedefs.
      	(IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR,
      	IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END,
      	IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK,
      	IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS,
      	IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK,
      	IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION,
      	IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS,
      	IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED,
      	IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED,
      	IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT,
      	IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS,
      	IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK,
      	IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION,
      	IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD,
      	IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL,
      	IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED,
      	IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ,
      	IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE,
      	IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE,
      	IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH,
      	IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE,
      	IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME,
      	IOPARM_DT_IONML_SET): Define.
      	(gfc_unit): Add lock, waiting and close fields.  Change file
      	from flexible array member into pointer to char.
      	(open_external): Add st_parameter_open * argument.
      	(find_file, file_exists): Add file and file_len arguments.
      	(flush_all_units): New prototype.
      	(max_offset, unit_root, unit_lock): New variable.
      	(is_internal_unit, is_array_io, next_array_record,
      	parse_format, next_format, unget_format, format_error,
      	read_block, write_block, next_record, convert_real,
      	read_a, read_f, read_l, read_x, read_radix, read_decimal,
      	list_formatted_read, finish_list_read, namelist_read,
      	namelist_write, write_a, write_b, write_d, write_e, write_en,
      	write_es, write_f, write_i, write_l, write_o, write_x, write_z,
      	list_formatted_write, get_unit): Add st_parameter_dt * argument.
      	(insert_unit): Remove prototype.
      	(find_or_create_unit, unlock_unit): New prototype.
      	(new_unit): Return gfc_unit *.  Add st_parameter_open *
      	and gfc_unit * arguments.
      	(free_fnodes): Remove prototype.
      	(free_format_data): New prototype.
      	(scratch): Remove.
      	(init_at_eol): Remove prototype.
      	(free_ionml): New prototype.
      	(inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked):
      	New inline functions.
      	* io/unit.c (max_offset, unit_root, unit_lock): New variables.
      	(insert): Adjust os_error caller.
      	(insert_unit): Made static.  Allocate memory here, initialize
      	lock and after inserting it return it, locked.
      	(delete_unit): Adjust for deletion of g.
      	(find_unit_1): New function.
      	(find_unit): Use it.
      	(find_or_create_unit): New function.
      	(get_unit): Add dtp argument, change meaning of the int argument
      	as creation request flag.  Adjust for different st_* calling
      	conventions, lock internal unit's lock before returning it
      	and removal of g.  Call find_unit_1 instead of find_unit.
      	(is_internal_unit, is_array_io): Add dtp argument, adjust for
      	removal of most of global variables.
      	(init_units): Initialize unit_lock.  Adjust insert_unit callers
      	and adjust for g removal.
      	(close_unit_1): New function.
      	(close_unit): Use it.
      	(unlock_unit): New function.
      	(close_units): Lock unit_lock, use close_unit_1 rather than
      	close_unit.
      	* io/close.c (st_close): Add clp argument.  Adjust for new
      	st_* calling conventions and internal function API changes.
      	* io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush):
      	Add fpp argument.  Adjust for new st_* calling conventions and
      	internal function API changes.
      	(formatted_backspace, unformatted_backspace): Likewise.  Add
      	u argument.
      	* io/open.c (edit_modes, st_open): Add opp argument.  Adjust for
      	new st_* calling conventions and internal function API changes.
      	(already_open): Likewise.  If not HAVE_UNLINK_OPEN_FILE, unlink
      	scratch file.  Instead of calling close_unit just call sclose,
      	free u->file if any and clear a few u fields before calling
      	new_unit.
      	(new_unit): Return gfc_unit *.  Add opp and u arguments.
      	Adjust for new st_* calling conventions and internal function
      	API changes.  Don't allocate unit here, rather than work with
      	already created unit u already locked on entry.  In case
      	of failure, close_unit it.
      	* io/unix.c: Include unix.h.
      	(BUFFER_SIZE, unix_stream): Moved to unix.h.
      	(unit_to_fd): Add unlock_unit call.
      	(tempfile): Add opp argument, use its fields rather than ioparm.
      	(regular_file): Likewise.
      	(open_external): Likewise.  Only unlink file if fd >= 0.
      	(init_error_stream): Add error argument, set structure it points
      	to rather than filling static variable and returning its address.
      	(FIND_FILE0_DECL, FIND_FILE0_ARGS): Define.
      	(find_file0): Use them.  Don't crash if u->s == NULL.
      	(find_file): Add file and file_len arguments, use them instead
      	of ioparm.  Add locking.  Pass either an array of 2 struct stat
      	or file and file_len pair to find_file0.
      	(flush_all_units_1, flush_all_units): New functions.
      	(file_exists): Add file and file_len arguments, use them instead
      	of ioparm.
      	* io/unix.h: New file.
      	* io/lock.c (ioparm, g, ionml): Remove variables.
      	(library_start): Add cmp argument, adjust for new st_* calling
      	conventions.
      	(library_end): Remove.
      	(free_ionml): New function.
      	* io/inquire.c (inquire_via_unit, inquire_via_filename,
      	st_inquire): Add iqp argument, adjust for new st_* calling
      	conventions and internal function API changes.
      	* io/format.c (FARRAY_SIZE): Decrease to 64.
      	(fnode_array, format_data): New typedefs.
      	(avail, array, format_string, string, error, saved_token, value,
      	format_string_len, reversion_ok, saved_format): Remove variables.
      	(colon_node): Add const.
      	(free_fnode, free_fnodes): Remove.
      	(free_format_data): New function.
      	(next_char, unget_char, get_fnode, format_lex, parse_format_list,
      	format_error, parse_format, revert, unget_format, next_test): Add
      	fmt or dtp arguments, pass it all around, adjust for internal
      	function API changes and adjust for removal of global variables.
      	(next_format): Likewise.  Constify return type.
      	(next_format0): Constify return type.
      	* io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos,
      	skips, pending_spaces, scratch, line_buffer, advance_status,
      	transfer): Remove variables.
      	(transfer_integer, transfer_real, transfer_logical,
      	transfer_character, transfer_complex, transfer_array, current_mode,
      	read_sf, read_block, read_block_direct, write_block,
      	write_block_direct, unformatted_read, unformatted_write,
      	type_name, write_constant_string, require_type,
      	formatted_transfer_scalar, us_read, us_write, pre_position,
      	data_transfer_init, next_record_r, next_record_w, next_record,
      	finalize_transfer, iolength_transfer, iolength_transfer_init,
      	st_iolength, st_iolength_done, st_read, st_read_done, st_write,
      	st_write_done, st_set_nml_var, st_set_nml_var_dim,
      	next_array_record): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	* io/list_read.c (repeat_count, saved_length, saved_used,
      	input_complete, at_eol, comma_flag, last_char, saved_string,
      	saved_type, namelist_mode, nml_read_error, value, parse_err_msg,
      	nml_err_msg, prev_nl): Remove variables.
      	(push_char, free_saved, next_char, unget_char, eat_spaces,
      	eat_separator, finish_separator, nml_bad_return, convert_integer,
      	parse_repeat, read_logical, read_integer, read_character,
      	parse_real, read_complex, read_real, check_type,
      	list_formatted_read_scalar, list_formatted_read, finish_list_read,
      	find_nml_node, nml_untouch_nodes, nml_match_name, nml_query,
      	namelist_read): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	(nml_parse_qualifier): Likewise.  Add parse_err_msg argument.
      	(nml_read_obj): Likewise.  Add pprev_nl, nml_err_msg, clow and
      	chigh arguments.
      	(nml_get_obj_data): Likewise.  Add pprev_nl and nml_err_msg
      	arguments.
      	(init_at_eol): Removed.
      	* io/read.c (convert_real, read_l, read_a, next_char, read_decimal,
      	read_radix, read_f, read_x): Add dtp argument, pass it all around,
      	adjust for internal function API changes and removal of global
      	variables.
      	(set_integer): Adjust internal_error caller.
      	* io/write.c (no_leading_blank, nml_delim): Remove variables.
      	(write_a, calculate_sign, calculate_G_format, output_float,
      	write_l, write_float, write_int, write_decimal, write_i, write_b,
      	write_o, write_z, write_d, write_e, write_f, write_en, write_es,
      	write_x, write_char, write_logical, write_integer, write_character,
      	write_real, write_complex, write_separator,
      	list_formatted_write_scalar, list_formatted_write, nml_write_obj,
      	namelist_write): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	(extract_int, extract_uint, extract_real): Adjust internal_error
      	callers.
      	* runtime/fpu.c (_GNU_SOURCE): Don't define here.
      	* runtime/error.c: Include ../io/unix.h.
      	(filename, line): Remove variables.
      	(st_printf): Pass address of a local variable to init_error_stream.
      	(show_locus): Add cmp argument.  Use fields it points to rather than
      	filename and line variables.
      	(os_error, runtime_error): Remove show_locus calls.
      	(internal_error): Add cmp argument.  Pass it down to show_locus.
      	(generate_error): Likewise.  Use flags bitmask instead of non-NULL
      	check for iostat and iomsg parameter presence, adjust for st_*
      	calling convention changes.
      	* runtime/stop.c (stop_numeric, stop_string): Remove show_locus
      	calls.
      	* runtime/pause.c (pause_numeric, pause_string): Likewise.
      	* runtime/string.c: Include ../io/io.h.
      	(find_option): Add cmp argument.  Pass it down to generate_error.
      	* intrinsics/flush.c (recursive_flush): Remove.
      	(flush_i4, flush_i8): Use flush_all_units.  Add unlock_unit
      	call.
      	* intrinsics/rand.c: Include ../io/io.h.
      	(rand_seed_lock): New variable.
      	(srand, irand): Add locking.
      	(init): New constructor function.
      	* intrinsics/random.c: Include ../io/io.h.
      	(random_lock): New variable.
      	(random_r4, random_r8, arandom_r4, arandom_r8): Add locking.
      	(random_seed): Likewise.  open failed if fd < 0.  Set i correctly.
      	(init): New constructor function.
      	* intrinsics/system_clock.c (tp0, t0): Remove.
      	(system_clock_4, system_clock_8): Don't subtract tp0/t0 from current
      	time, use just integer arithmetics.
      	* intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add
      	unlock_unit calls.
      
      From-SVN: r107328
      5e805e44
  9. Aug 17, 2005
  10. Aug 07, 2005
  11. Apr 08, 2005
  12. Apr 03, 2005
  13. Jan 12, 2005
    • Toon Moene's avatar
      re PR libfortran/19280 (Inconsistent licensing of libgfortran) · 57dea9f6
      Toon Moene authored
      2005-01-12  Toon Moene  <toon@moene.indiv.nluug.nl>
      
      	PR libfortran/19280
      	c99_protos.h: License changed to GPL+exception.
      	libgfortran.h: Ditto.
      	intrinsics/abort.c: Ditto.
      	intrinsics/args.c: Ditto.
      	intrinsics/associated.c: Ditto.
      	intrinsics/bessel.c: Ditto.
      	intrinsics/c99_functions.c: Ditto.
      	intrinsics/cpu_time.c: Ditto.
      	intrinsics/cshift0.c: Ditto.
      	intrinsics/date_and_time.c: Ditto.
      	intrinsics/env.c: Ditto.
      	intrinsics/eoshift0.c: Ditto.
      	intrinsics/eoshift2.c: Ditto.
      	intrinsics/erf.c: Ditto.
      	intrinsics/etime.c: Ditto.
      	intrinsics/exit.c: Ditto.
      	intrinsics/flush.c: Ditto.
      	intrinsics/fnum.c: Ditto.
      	intrinsics/getXid.c: Ditto.
      	intrinsics/getcwd.c: Ditto.
      	intrinsics/ishftc.c: Ditto.
      	intrinsics/mvbits.c: Ditto.
      	intrinsics/pack_generic.c: Ditto.
      	intrinsics/rand.c: Ditto.
      	intrinsics/random.c: Ditto.
      	intrinsics/reshape_generic.c: Ditto.
      	intrinsics/reshape_packed.c: Ditto.
      	intrinsics/size.c: Ditto.
      	intrinsics/spread_generic.c: Ditto.
      	intrinsics/stat.c: Ditto.
      	intrinsics/string_intrinsics.c: Ditto.
      	intrinsics/system.c: Ditto.
      	intrinsics/system_clock.c: Ditto.
      	intrinsics/transpose_generic.c: Ditto.
      	intrinsics/umask.c: Ditto.
      	intrinsics/unlink.c: Ditto.
      	intrinsics/unpack_generic.c: Ditto.
      	io/backspace.c: Ditto.
      	io/close.c: Ditto.
      	io/endfile.c: Ditto.
      	io/format.c: Ditto.
      	io/inquire.c: Ditto.
      	io/io.h: Ditto.
      	io/list_read.c: Ditto.
      	io/lock.c: Ditto.
      	io/open.c: Ditto.
      	io/read.c: Ditto.
      	io/rewind.c: Ditto.
      	io/transfer.c: Ditto.
      	io/unit.c: Ditto.
      	io/unix.c: Ditto.
      	io/write.c: Ditto.
      	m4/all.m4: Ditto.
      	m4/any.m4: Ditto.
      	m4/cexp.m4: Ditto.
      	m4/chyp.m4: Ditto.
      	m4/count.m4: Ditto.
      	m4/cshift1.m4: Ditto.
      	m4/ctrig.m4: Ditto.
      	m4/dotprod.m4: Ditto.
      	m4/dotprodc.m4: Ditto.
      	m4/dotprodl.m4: Ditto.
      	m4/eoshift1.m4: Ditto.
      	m4/eoshift3.m4: Ditto.
      	m4/exponent.m4: Ditto.
      	m4/fraction.m4: Ditto.
      	m4/head.m4: Ditto.
      	m4/iforeach.m4: Ditto.
      	m4/ifunction.m4: Ditto.
      	m4/in_pack.m4: Ditto.
      	m4/in_unpack.m4: Ditto.
      	m4/iparm.m4: Ditto.
      	m4/matmul.m4: Ditto.
      	m4/matmull.m4: Ditto.
      	m4/maxloc0.m4: Ditto.
      	m4/maxloc1.m4: Ditto.
      	m4/maxval.m4: Ditto.
      	m4/minloc0.m4: Ditto.
      	m4/minloc1.m4: Ditto.
      	m4/minval.m4: Ditto.
      	m4/mtype.m4: Ditto.
      	m4/nearest.m4: Ditto.
      	m4/pow.m4: Ditto.
      	m4/product.m4: Ditto.
      	m4/reshape.m4: Ditto.
      	m4/set_exponent.m4: Ditto.
      	m4/shape.m4: Ditto.
      	m4/specific.m4: Ditto.
      	m4/specific2.m4: Ditto.
      	m4/sum.m4: Ditto.
      	m4/transpose.m4: Ditto.
      	m4/types.m4: Ditto.
      	runtime/environ.c: Ditto.
      	runtime/error.c: Ditto.
      	runtime/in_pack_generic.c: Ditto.
      	runtime/in_unpack_generic.c: Ditto.
      	runtime/main.c: Ditto.
      	runtime/memory.c: Ditto.
      	runtime/normalize.c: Ditto.
      	runtime/pause.c: Ditto.
      	runtime/select.c: Ditto.
      	runtime/stop.c: Ditto.
      	runtime/string.c: Ditto.
      	generated/_abs_c4.f90: Regenerated.
      	generated/_abs_c8.f90: Regenerated.
      	generated/_abs_i4.f90: Regenerated.
      	generated/_abs_i8.f90: Regenerated.
      	generated/_abs_r4.f90: Regenerated.
      	generated/_abs_r8.f90: Regenerated.
      	generated/_acos_r4.f90: Regenerated.
      	generated/_acos_r8.f90: Regenerated.
      	generated/_aint_r4.f90: Regenerated.
      	generated/_aint_r8.f90: Regenerated.
      	generated/_anint_r4.f90: Regenerated.
      	generated/_anint_r8.f90: Regenerated.
      	generated/_asin_r4.f90: Regenerated.
      	generated/_asin_r8.f90: Regenerated.
      	generated/_atan2_r4.f90: Regenerated.
      	generated/_atan2_r8.f90: Regenerated.
      	generated/_atan_r4.f90: Regenerated.
      	generated/_atan_r8.f90: Regenerated.
      	generated/_conjg_c4.f90: Regenerated.
      	generated/_conjg_c8.f90: Regenerated.
      	generated/_cos_c4.f90: Regenerated.
      	generated/_cos_c8.f90: Regenerated.
      	generated/_cos_r4.f90: Regenerated.
      	generated/_cos_r8.f90: Regenerated.
      	generated/_cosh_r4.f90: Regenerated.
      	generated/_cosh_r8.f90: Regenerated.
      	generated/_dim_i4.f90: Regenerated.
      	generated/_dim_i8.f90: Regenerated.
      	generated/_dim_r4.f90: Regenerated.
      	generated/_dim_r8.f90: Regenerated.
      	generated/_exp_c4.f90: Regenerated.
      	generated/_exp_c8.f90: Regenerated.
      	generated/_exp_r4.f90: Regenerated.
      	generated/_exp_r8.f90: Regenerated.
      	generated/_log10_r4.f90: Regenerated.
      	generated/_log10_r8.f90: Regenerated.
      	generated/_log_c4.f90: Regenerated.
      	generated/_log_c8.f90: Regenerated.
      	generated/_log_r4.f90: Regenerated.
      	generated/_log_r8.f90: Regenerated.
      	generated/_mod_i4.f90: Regenerated.
      	generated/_mod_i8.f90: Regenerated.
      	generated/_mod_r4.f90: Regenerated.
      	generated/_mod_r8.f90: Regenerated.
      	generated/_sign_i4.f90: Regenerated.
      	generated/_sign_i8.f90: Regenerated.
      	generated/_sign_r4.f90: Regenerated.
      	generated/_sign_r8.f90: Regenerated.
      	generated/_sin_c4.f90: Regenerated.
      	generated/_sin_c8.f90: Regenerated.
      	generated/_sin_r4.f90: Regenerated.
      	generated/_sin_r8.f90: Regenerated.
      	generated/_sinh_r4.f90: Regenerated.
      	generated/_sinh_r8.f90: Regenerated.
      	generated/_sqrt_c4.f90: Regenerated.
      	generated/_sqrt_c8.f90: Regenerated.
      	generated/_sqrt_r4.f90: Regenerated.
      	generated/_sqrt_r8.f90: Regenerated.
      	generated/_tan_r4.f90: Regenerated.
      	generated/_tan_r8.f90: Regenerated.
      	generated/_tanh_r4.f90: Regenerated.
      	generated/_tanh_r8.f90: Regenerated.
      	generated/all_l4.c: Regenerated.
      	generated/all_l8.c: Regenerated.
      	generated/any_l4.c: Regenerated.
      	generated/any_l8.c: Regenerated.
      	generated/count_4_l4.c: Regenerated.
      	generated/count_4_l8.c: Regenerated.
      	generated/count_8_l4.c: Regenerated.
      	generated/count_8_l8.c: Regenerated.
      	generated/cshift1_4.c: Regenerated.
      	generated/cshift1_8.c: Regenerated.
      	generated/dotprod_c4.c: Regenerated.
      	generated/dotprod_c8.c: Regenerated.
      	generated/dotprod_i4.c: Regenerated.
      	generated/dotprod_i8.c: Regenerated.
      	generated/dotprod_l4.c: Regenerated.
      	generated/dotprod_l8.c: Regenerated.
      	generated/dotprod_r4.c: Regenerated.
      	generated/dotprod_r8.c: Regenerated.
      	generated/eoshift1_4.c: Regenerated.
      	generated/eoshift1_8.c: Regenerated.
      	generated/eoshift3_4.c: Regenerated.
      	generated/eoshift3_8.c: Regenerated.
      	generated/exp_c4.c: Regenerated.
      	generated/exp_c8.c: Regenerated.
      	generated/exponent_r4.c: Regenerated.
      	generated/exponent_r8.c: Regenerated.
      	generated/fraction_r4.c: Regenerated.
      	generated/fraction_r8.c: Regenerated.
      	generated/hyp_c4.c: Regenerated.
      	generated/hyp_c8.c: Regenerated.
      	generated/in_pack_i4.c: Regenerated.
      	generated/in_pack_i8.c: Regenerated.
      	generated/in_unpack_i4.c: Regenerated.
      	generated/in_unpack_i8.c: Regenerated.
      	generated/matmul_c4.c: Regenerated.
      	generated/matmul_c8.c: Regenerated.
      	generated/matmul_i4.c: Regenerated.
      	generated/matmul_i8.c: Regenerated.
      	generated/matmul_l4.c: Regenerated.
      	generated/matmul_l8.c: Regenerated.
      	generated/matmul_r4.c: Regenerated.
      	generated/matmul_r8.c: Regenerated.
      	generated/maxloc0_4_i4.c: Regenerated.
      	generated/maxloc0_4_i8.c: Regenerated.
      	generated/maxloc0_4_r4.c: Regenerated.
      	generated/maxloc0_4_r8.c: Regenerated.
      	generated/maxloc0_8_i4.c: Regenerated.
      	generated/maxloc0_8_i8.c: Regenerated.
      	generated/maxloc0_8_r4.c: Regenerated.
      	generated/maxloc0_8_r8.c: Regenerated.
      	generated/maxloc1_4_i4.c: Regenerated.
      	generated/maxloc1_4_i8.c: Regenerated.
      	generated/maxloc1_4_r4.c: Regenerated.
      	generated/maxloc1_4_r8.c: Regenerated.
      	generated/maxloc1_8_i4.c: Regenerated.
      	generated/maxloc1_8_i8.c: Regenerated.
      	generated/maxloc1_8_r4.c: Regenerated.
      	generated/maxloc1_8_r8.c: Regenerated.
      	generated/maxval_i4.c: Regenerated.
      	generated/maxval_i8.c: Regenerated.
      	generated/maxval_r4.c: Regenerated.
      	generated/maxval_r8.c: Regenerated.
      	generated/minloc0_4_i4.c: Regenerated.
      	generated/minloc0_4_i8.c: Regenerated.
      	generated/minloc0_4_r4.c: Regenerated.
      	generated/minloc0_4_r8.c: Regenerated.
      	generated/minloc0_8_i4.c: Regenerated.
      	generated/minloc0_8_i8.c: Regenerated.
      	generated/minloc0_8_r4.c: Regenerated.
      	generated/minloc0_8_r8.c: Regenerated.
      	generated/minloc1_4_i4.c: Regenerated.
      	generated/minloc1_4_i8.c: Regenerated.
      	generated/minloc1_4_r4.c: Regenerated.
      	generated/minloc1_4_r8.c: Regenerated.
      	generated/minloc1_8_i4.c: Regenerated.
      	generated/minloc1_8_i8.c: Regenerated.
      	generated/minloc1_8_r4.c: Regenerated.
      	generated/minloc1_8_r8.c: Regenerated.
      	generated/minval_i4.c: Regenerated.
      	generated/minval_i8.c: Regenerated.
      	generated/minval_r4.c: Regenerated.
      	generated/minval_r8.c: Regenerated.
      	generated/nearest_r4.c: Regenerated.
      	generated/nearest_r8.c: Regenerated.
      	generated/pow_c4_i4.c: Regenerated.
      	generated/pow_c4_i8.c: Regenerated.
      	generated/pow_c8_i4.c: Regenerated.
      	generated/pow_c8_i8.c: Regenerated.
      	generated/pow_i4_i4.c: Regenerated.
      	generated/pow_i4_i8.c: Regenerated.
      	generated/pow_i8_i4.c: Regenerated.
      	generated/pow_i8_i8.c: Regenerated.
      	generated/pow_r4_i4.c: Regenerated.
      	generated/pow_r4_i8.c: Regenerated.
      	generated/pow_r8_i4.c: Regenerated.
      	generated/pow_r8_i8.c: Regenerated.
      	generated/product_c4.c: Regenerated.
      	generated/product_c8.c: Regenerated.
      	generated/product_i4.c: Regenerated.
      	generated/product_i8.c: Regenerated.
      	generated/product_r4.c: Regenerated.
      	generated/product_r8.c: Regenerated.
      	generated/reshape_i4.c: Regenerated.
      	generated/reshape_i8.c: Regenerated.
      	generated/set_exponent_r4.c: Regenerated.
      	generated/set_exponent_r8.c: Regenerated.
      	generated/shape_i4.c: Regenerated.
      	generated/shape_i8.c: Regenerated.
      	generated/sum_c4.c: Regenerated.
      	generated/sum_c8.c: Regenerated.
      	generated/sum_i4.c: Regenerated.
      	generated/sum_i8.c: Regenerated.
      	generated/sum_r4.c: Regenerated.
      	generated/sum_r8.c: Regenerated.
      	generated/transpose_i4.c: Regenerated.
      	generated/transpose_i8.c: Regenerated.
      	generated/trig_c4.c: Regenerated.
      	generated/trig_c8.c: Regenerated.
      
      From-SVN: r93235
      57dea9f6
  14. Dec 12, 2004
    • Richard Henderson's avatar
      acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New. · 7d7b8bfe
      Richard Henderson authored
              * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
              (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
              (LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
              * configure.ac: Use them.
              * configure, config.h.in, aclocal.m4: Rebuild.
              * libgfortran.h (prefix): Remove.
              (PREFIX, IPREFIX): New.
              (sym_rename, sym_rename1, sym_rename2): New.
              (internal_proto, export_proto, export_proto_np): New.
              (iexport_proto, iexport): New.
              (iexport_data_proto, iexport_data): New.
              * intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
              intrinsics/cpu_time.c, intrinsics/cshift0.c,
              intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
              intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
              intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
              intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
              intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
              intrinsics/reshape_generic.c, intrinsics/size.c,
              intrinsics/spread_generic.c, intrinsics/stat.c,
              intrinsics/string_intrinsics.c, intrinsics/system.c,
              intrinsics/system_clock.c, intrinsics/transpose_generic.c,
              intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
              io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
              io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
              m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
              m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
              m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
              m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
              m4/transpose.m4, runtime/environ.c, runtime/error.c,
              runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
              runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
              runtime/stop.c: Use them to mark symbols internal or external.
              * generated/*: Rebuild.
      
      From-SVN: r92045
      7d7b8bfe
  15. Dec 07, 2004
    • Richard Henderson's avatar
      c99_functions.c, [...]: Whitespace fixes. · f21edfd6
      Richard Henderson authored
              * intrinsics/c99_functions.c, intrinsics/eoshift0.c,
              intrinsics/eoshift2.c, intrinsics/exit.c, intrinsics/flush.c,
              intrinsics/ishftc.c, intrinsics/mvbits.c, intrinsics/pack_generic.c,
              intrinsics/random.c, intrinsics/reshape_generic.c, intrinsics/size.c,
              intrinsics/spread_generic.c, intrinsics/stat.c,
      	intrinsics/string_intrinsics.c, intrinsics/system_clock.c,
              intrinsics/transpose_generic.c, intrinsics/unlink.c,
              intrinsics/unpack_generic.c, io/backspace.c, io/format.c,
              io/list_read.c, io/lock.c, io/open.c, io/transfer.c, io/unix.c,
              io/write.c, runtime/environ.c, runtime/error.c,
              runtime/in_pack_generic.c, runtime/in_unpack_generic.c, runtime/main.c,
              runtime/memory.c, runtime/pause.c, runtime/stop.c,
              runtime/string.c: Whitespace fixes.
      
      From-SVN: r91794
      f21edfd6
  16. Dec 02, 2004
    • Bud Davis's avatar
      re PR libfortran/18284 (BACKSPACE broken) · 78579b60
      Bud Davis authored
      2004-12-02  Bud Davis  <bdavis9659@comcast.net>
      
              PR libfortran/18284
              * io/unix.c (fd_alloc_w_at): Update file_length when extending.
              * io/backspace.c (formatted_backspace): Reset endfile after backspace.
      
              PR fortran/18284
              * gfortran.dg/backspace.f90
      
      From-SVN: r91612
      78579b60
  17. Jun 09, 2004
  18. May 18, 2004
    • Tobias Schlüter's avatar
      re PR libfortran/15235 (libgfortran doesn't build on Solaris 10) · 81f4be3c
      Tobias Schlüter authored
      PR fortran/15235
      * gfortran.h (offset_t): Rename to ...
      (gfc_offset): ... this.
      * io/backspace.c (formatted_backspace, unformatted_backspace),
      io/io.h (stream, gfc_unit, global_t, file_length, file_position),
      transfer.c (us_read, us_write, next_record_r, next_record_w),
      io/unit.c (init_units), unix.c (unix_stream, fd_alloc,
      fd_alloc_r_at, fd_alloc_w_at, fd_seek, mmap_alloc,
      mmap_alloc_r_at, mmap_alloc_w_at, mmap_seek, mem_alloc_r_at,
      mem_alloc_w_at, mem_seek, file_length, file_position): Replace all
      occurences of offset_t by gfc_offset.
      
      From-SVN: r81994
      81f4be3c
  19. May 15, 2004
    • Tobias Schlüter's avatar
      re PR libfortran/15234 (libgfortran doesn't compile on Tru64 UNIX V4.0F) · 909087e0
      Tobias Schlüter authored
      PR fortran/15234
      * io/io.h (unit_t): Rename to ...
      (gfc_unit) ... this.
      (unit_root, current_unit, find_file, find_unit, get_unit): Now
      of type gfc_unit.
      (delete_file, insert_unit, close_unit): Argument now of type
      gfc_unit.
      * backspace.c (st_backspace), close.c (st_close), endfile.c
      (st_endfile), inquire.c (inquire_via_unit, st_inquire), open.c
      (test_endfile, edit_modes, new_unit, already_open, st_open),
      rewind.c (st_rewind), transfer.c (current_unit), unit.c
      (internal_unit, unit_cache, rotate_left, rotate_right, insert,
      insert_unit, delete_root, delete_treap, delete_unit, find_unit,
      get_unit, init_units, close_unit), unix.c (find_file0,
      find_file, delete_file): Replace all occurences of unit_t by
      gfc_unit.
      
      From-SVN: r81903
      909087e0
  20. May 13, 2004
Loading