Skip to content
Snippets Groups Projects
  1. Dec 28, 2005
    • jvdelisle's avatar
      2005-12-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> · 8c39329b
      jvdelisle authored
      	PR libgfortran/25139
      	* io/unix.c (fd_truncate): Set s->active to zero.
      	PR libgfortran/25510
      	* libgfortran.h: Add ERROR_INTERNAL and ERROR_INTERNAL_UNIT.
      	* runtime/error.c (translate_error): Add messages for new errors.
      	* io/list_read.c (next_char): Use new errors.
      	* io/transfer.c (next_record_r) (next_record_w): Use new errors.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109122 138bc75d-0d04-0410-961f-82ee72b054a4
      8c39329b
  2. Nov 30, 2005
  3. Nov 21, 2005
    • jakub's avatar
      gcc/fortran/ · 60c514ba
      jakub authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107328 138bc75d-0d04-0410-961f-82ee72b054a4
      60c514ba
  4. Nov 10, 2005
  5. Nov 04, 2005
    • fxcoudert's avatar
      PR libfortran/22298 · 76875ccb
      fxcoudert authored
      	* runtime/main.c (stupid_function_name_for_static_linking): New
      	function.
      	* runtime/error.c (internal_error): Call
      	stupid_function_name_for_static_linking.
      	* libgfortran.h: Add prototype for
      	stupid_function_name_for_static_linking.
      
      	* gcc/testsuite/lib/target-supports.exp
      	(check_effective_target_static_libgfortran): New
      	static_libgfortran effective target.
      	* gcc/testsuite/gfortran.dg/static_linking_1.f: New test.
      	* gcc/testsuite/gfortran.dg/static_linking_1.c: New file.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106484 138bc75d-0d04-0410-961f-82ee72b054a4
      76875ccb
  6. Oct 25, 2005
  7. Oct 12, 2005
    • fxcoudert's avatar
      * gfortran.h: Add bitmasks for different FPE traps. Add fpe · 8c84a5de
      fxcoudert authored
      	member to options_t.
      	* invoke.texi: Document the new -ffpe-trap option.
      	* lang.opt: Add -ffpe-trap option.
      	* options.c (gfc_init_options): Initialize the FPE option.
      	(gfc_handle_fpe_trap_option): New function to parse the argument
      	of the -ffpe-trap option.
      	(gfc_handle_option): Add case for -ffpe-trap.
      	* trans-decl.c: Declare a tree for the set_fpe library function.
      	(gfc_build_builtin_function_decls): Build this tree.
      	(gfc_generate_function_code): Generate a call to set_fpe at
      	the beginning of the main program.
      	* trans.h: New tree for the set_fpe library function.
      
      	* Makefile.am: Add fpu.c to the build process, and
      	target-dependent code as fpu-target.h.
      	* Makefile.in: Regenerate.
      	* configure.ac: Add call to configure.host to set
      	FPU_HOST_HEADER.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure.host: New script to determine which host-dependent
      	code should go in.
      	* libgfortran.h: Add fpe option, remove previous fpu_ options.
      	Add bitmasks for different FPE traps. Add prototype for set_fpu.
      	* runtime/environ.c: Remove environment variables to control
      	fpu behaviour.
      	* runtime/fpu.c (set_fpe): New function for the front-end.
      	* runtime/main.c (init): Set FPU state.
      	* config: New directory to store host-dependent code.
      	* config/fpu-387.h: New file with code handling the i387 FPU.
      	* config/fpu-glibc.h: New file with code for glibc systems.
      	* config/fpu-generic.h: Fallback for the most generic host. Issue
      	warnings.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105328 138bc75d-0d04-0410-961f-82ee72b054a4
      8c84a5de
  8. Oct 03, 2005
    • fxcoudert's avatar
      PR libfortran/19308 · 920e54ef
      fxcoudert authored
      	PR fortran/20120
      	PR libfortran/22437
      
      	* Makefile.am: Add generated files for large real and integers
      	kinds. Add a rule to create the kinds.inc c99_protos.inc files.
      	Use kinds.inc to preprocess Fortran generated files.
      	* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
      	GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
      	gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
      	gfc_array_l16.
      	* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
      	HAVE_GFC_COMPLEX_* when these types are available.
      	* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
      	* m4/all.m4, m4/any.m4, m4/count.m4, 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/in_pack.m4, m4/in_unpack.m4,
      	m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
      	m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
      	m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
      	m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
      	m4/sum.m4, m4/transpose.m4: Protect generated functions with
      	appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
      	* Makefile.in: Regenerate.
      	* all files in generated/: Regenerate.
      
      	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
      	double builtin function.
      	(gfc_init_builtin_functions): Add mfunc_longdouble,
      	mfunc_clongdouble and func_clongdouble_longdouble trees. Build
      	them for round, trunc, cabs, copysign and pow functions.
      	* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
      	case for kind 10 and 16.
      	* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
      	exponent10 and exponent16.
      	(gfc_build_intrinsic_function_decls): Build nodes for int16,
      	real10, real16, complex10 and complex16 types. Build all possible
      	combinations for function _gfortran_pow_?n_?n. Build function
      	calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
      	* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
      	real(10) and real(16).
      	* trans-intrinsic.c: Add suppport for long double builtin
      	functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
      	macros.
      	(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
      	real(16) kinds.
      	(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
      	and real16_decl in library functions.
      	(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
      	kinds 10 and 16.
      	(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
      	kinds.
      	(gfc_conv_intrinsic_sign): Likewise.
      	(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
      	* trans-types.c (gfc_get_int_type, gfc_get_real_type,
      	gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
      	the case of kinds not available.
      	* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
      	exponent10 and exponent16.
      
      	* gfortran.dg/large_real_kind_2.F90: New test.
      	* gfortran.dg/large_integer_kind_2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104889 138bc75d-0d04-0410-961f-82ee72b054a4
      920e54ef
  9. Oct 01, 2005
    • jakub's avatar
      * libgfortran.h (GFC_ITOA_BUF_SIZE, GFC_XTOA_BUF_SIZE, · 556d0269
      jakub authored
      	GFC_OTOA_BUF_SIZE, GFC_BTOA_BUF_SIZE): Define.
      	(gfc_itoa, xtoa): Add 2 extra arguments.
      	* runtime/environ.c: Include stdio.h.
      	(check_buffered): Use sprintf.
      	* runtime/error.c: Include assert.h.
      	(gfc_itoa, xtoa): Add 2 extra arguments, avoid using static
      	buffers.
      	(st_printf, st_sprintf): Adjust callers.
      	* io/write.c (otoa, btoa): Add 2 extra arguments, avoid using
      	static buffers.
      	(write_int, write_decimal): Add 2 extra arguments to conv
      	function pointer, adjust caller.
      	(write_integer): Adjust gfc_itoa caller.
      
      	* io/unit.c (get_array_unit_len): Return 0 rather than NULL.
      
      	* io/read.c (read_f): Remove spurious pointer dereference.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104855 138bc75d-0d04-0410-961f-82ee72b054a4
      556d0269
  10. Sep 29, 2005
    • jakub's avatar
      * runtime/string.c (find_option): Change 3rd argument to · fb35179a
      jakub authored
      	const st_option *.
      	* libgfortran.h (find_option): Likewise.
      	* runtime/environ.c (rounding, precision, signal_choices): Constify.
      	(init_choice, show_choice): Change 2nd argument to const choice *.
      	* io/open.c (access_opt, action_opt, blank_opt, delim_opt, form_opt,
      	position_opt, status_opt, pad_opt): Constify.
      	* io/transfer.c (advance_opt): Likewise.
      	* io/inquire.c (undefined): Likewise.
      	* io/close.c (status_opt): Likewise.
      	* io/format.c (posint_required, period_required, nonneg_required,
      	unexpected_element, unexpected_end, bad_string, bad_hollerith,
      	reversion_error): Likewise.
      	* io/unix.c (yes, no, unknown): Change from const char *
      	into const char [].
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104773 138bc75d-0d04-0410-961f-82ee72b054a4
      fb35179a
  11. Sep 27, 2005
    • sje's avatar
      PR target/23552 · 839904a0
      sje authored
      	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): New.
      	(LIBGFOR_CHECK_FOR_BROKEN_ISNAN): New.
      	(LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): New.
      	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): Add use.
      	(LIBGFOR_CHECK_FOR_BROKEN_ISNAN): Add use.
      	(LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): Add use.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* libgfortan.h (isfinite): undef if broken, set if needed.
      	(isnan): undef if broken, set if needed.
              (fpclassify): undef if broken, set if needed.
      	* io/write.c: Remove TODO comment about working isfinite.
      	* intrinsics/c99_functions.c (round): Use isfinite instead
      	of fpclassify.
      	* intrinsics/c99_functions.c (roundf): Ditto.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104710 138bc75d-0d04-0410-961f-82ee72b054a4
      839904a0
  12. Sep 25, 2005
    • fxcoudert's avatar
      * c99_protos.h: Add prototypes for C99 complex functions. · d213114b
      fxcoudert authored
      	* libgfortran.h: Include complex.h before c99_protos.h.
      	* intrinsics/c99_functions.c: Define HAVE_ macros for the
      	fallback functions we provide.
      	(cabsf, cabs, cabsl, cargf, carg, cargl, cexpf, cexp, cexpl,
      	clogf, clog, clogl, clog10f, clog10, clog10l, cpowf, cpow, cpowl,
      	cqsrtf, csqrt, csqrtl, csinhf, csinh, csinhl, ccoshf, ccosh,
      	ccoshl, ctanhf, ctanh, ctanhl, csinf, csin, csinl, ccosf, ccos,
      	ccosl, ctanf, ctan, ctanl): New fallback functions.
      	* Makefile.am (gfor_math_trig_c, gfor_math_trig_obj,
      	gfor_specific_c, gfor_cmath_src, gfor_cmath_obj): Remove.
      	* Makefile.in: Regenerate.
      	* configure.ac: Remove checks for csin. Add checks for all C99
      	complex functions.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* aclocal.m4: Regenerate.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104626 138bc75d-0d04-0410-961f-82ee72b054a4
      d213114b
  13. Sep 14, 2005
    • jvdelisle's avatar
      2005-09-14 Jerry DeLisle <jvdelisle@verizon.net · 2639e4cd
      jvdelisle authored
      	PR fortran/21875 Internal Unit Array I/O, NIST
      	* libgfortran.h: Add run time error code for array stride.
      	* runtime/error.c (translate_error): Add error message for
      	array stride.
      	* io/io.h: Add array descriptor pointer to IOPARM structure.
      	Add prtotypes for two new functions.
      	* io/transfer.c (data_transfer_init): Removed initialization and
      	moved to unit.c (get_unit)
      	* io/transfer.c (next_record_r): Include internal unit read
      	functionality.
      	* io/transfer.c (next_record_w): Include internal unit write
      	functionality, including padding of character array records.
      	* io/unit.c (get_array_unit_len): New function to return the number
      	of records in the character array 'file' from the array descriptor.
      	* io/unit.c (get_unit): Gathered initialization code from
      	init_data_transfer for internal units and added initialization of
      	character array unit.
      	* io/unit.c (is_array_io): New function to determine if internal unit
      	is an array.
      	* io/unix.c (mem_alloc_w_at): Add error checks for bad record length
      	and end of file.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104276 138bc75d-0d04-0410-961f-82ee72b054a4
      2639e4cd
  14. Sep 02, 2005
  15. Aug 17, 2005
  16. Aug 11, 2005
    • fxcoudert's avatar
      PR libfortran/20006 · 64fc3c4c
      fxcoudert authored
      	* gfortran.h: Add is_main_program member to symbol_attribute.
      	* trans-decl: Add a gfor_fndecl_set_std tree.
      	(gfc_build_builtin_function_decls): Create it.
      	(gfc_generate_function_code): Add this call at the beginning of
      	the main program.
      	* trans.c (gfc_generate_code): Move main_program and attr.
      	* trans.h: Add declaration for gfor_fndecl_set_std.
      
      	* Makefile.am: Add file runtime/compile_options.c.
      	* Makefile.in: Regenerate.
      	* libgfortran.h: Create structure compile_options_t. Define the
      	compile_options variable and GFC_STD_ macros.
      	* runtime/compile_options.c: New file.
      	* runtime/error.c (notify_std): New function.
      	* runtime/main.c (init): Call init_compile_options during
      	initialization.
      	* io/format.c: Use the new notify_std function for the $
      	descriptor extension.
      
      	* gfortran.dg/runtime_warning_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102990 138bc75d-0d04-0410-961f-82ee72b054a4
      64fc3c4c
  17. Aug 03, 2005
  18. Jul 07, 2005
    • tobi's avatar
      * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by · 93830de1
      tobi authored
      	'size_t offset'.
      	* intrinsics/cshift0.c, intrinsics/eoshift0.c,
      	intrinsics/eoshift2.c,intrinsics/pack_generic.c,
      	intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
      	intrinsics/transpose_generic.c, intrinsics/unpack_generic,
      	m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
      	m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
      	m4,transpose.m4: Set renamed field 'offset' to zero instead of
      	'base'.
      	* generated/all_l4.c, generated/all_l8.c,
      	generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
      	generated/count_4_l8.c, generated/count_8_l4.c,
      	generated/count_8_l8.c, generated/chift1_4.c,
      	generated/cshift1_8.c, generated/eoshift1_4.c,
      	generated/eoshift1_8.c, generated/eoshift3_4.c,
      	generated/eoshift3_8.c, generated/matmul_c4.c,
      	generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
      	generated/matmul_l4.c, generated/matmul_l8.c,
      	generated/matmul_r4.c, generated/matmul_r8.c,
      	generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
      	generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
      	generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
      	generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
      	generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
      	generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
      	generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
      	generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
      	generated/maxval_i4.c, generated/maxval_i8.c,
      	generated/maxval_r4.c, generated/maxval_r8.c,
      	generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
      	generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
      	generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
      	generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
      	generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
      	generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
      	generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
      	generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
      	generated/minval_i4.c, generated/minval_i8.c,
      	generated/minval_r4.c, generated/minval_r8.c,
      	generated/product_c4.c, generated/product_c8.c,
      	generated/product_i4.c, generated/product_i8.c,
      	generated/product_r4.c, generated/product_r8.c,
      	generated/reshape_c4.c, generated/reshape_c8.c,
      	generated/reshape_i4.c, generated/reshape_i8.c,
      	generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
      	generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
      	generated/transpose_c4.c, generated/transpose_c8.c,
      	generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101739 138bc75d-0d04-0410-961f-82ee72b054a4
      93830de1
  19. Jun 23, 2005
    • fxcoudert's avatar
      * intrinsics/c99_functions.c (log10l): New log10l function for · 14c3c235
      fxcoudert authored
      	systems where this is not available.
      	* c99_protos.h: Prototype for log10l function.
      	* libgfortran.h: Use generated kinds.h to define GFC_INTEGER_*,
      	GFC_UINTEGER_*, GFC_LOGICAL_*, GFC_REAL_*, GFC_COMPLEX_*. Update
      	prototypes for gfc_itoa and xtoa.
      	* io/io.h: Update prototypes for set_integer and max_value.
      	* io/list_read.c (convert_integer): Use new
      	GFC_(INTEGER|REAL)_LARGEST type.
      	* io/read.c (set_integer): Likewise.
      	(max_value): Likewise.
      	(convert_real): Likewise.
      	(real_l): Likewise.
      	(next_char): Likewise.
      	(read_decimal): Likewise.
      	(read_radix): Likewise.
      	(read_f): Likewise.
      	* io/write.c (extract_int): Use new GFC_INTEGER_LARGEST type.
      	(extract_real): Use new GFC_REAL_LARGEST type.
      	(calculate_exp): Likewise.
      	(calculate_G_format): Likewise.
      	(output_float): Likewise. Use log10l for long double values.
      	Add comment for sprintf format. Use GFC_REAL_LARGEST_FORMAT.
      	(write_l): Use new GFC_INTEGER_LARGEST type.
      	(write_float): Use new GFC_REAL_LARGEST type.
      	(write_int): Remove useless special case for (len < 8).
      	(write_decimal): Use GFC_INTEGER_LARGEST.
      	(otoa): Use GFC_UINTEGER_LARGEST as argument.
      	(btoa): Use GFC_UINTEGER_LARGEST as argument.
      	* runtime/error.c (gfc_itoa): Use GFC_INTEGER_LARGEST as
      	argument.
      	(xtoa): Use GFC_UINTEGER_LARGEST as argument.
      	* Makefile.am: Use mk-kinds-h.sh to generate header kinds.h
      	with all Fortran kinds available.
      	* configure.ac: Check for strtold and log10l.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* mk-kinds-h.sh: Configuration script for available integer
      	and real kinds.
      	* lib/target-supports.exp: Add
      	check_effective_target_fortran_large_real and
      	check_effective_target_fortran_large_int to check for
      	corresponding effective targets.
      	* gfortran.dg/large_integer_kind_1.f90: New test.
      	* gfortran.dg/large_real_kind_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101274 138bc75d-0d04-0410-961f-82ee72b054a4
      14c3c235
  20. Jun 11, 2005
    • tkoenig's avatar
      2005-06-11 Thomas Koenig <Thomas.Koenig@onlinde.de> · f27ef643
      tkoenig authored
      	PR libfortran/21333
      	* Makefile.am: Add in_pack_c4.c, in_pack_c8.c, in_unpack_c4.c
      	and in_unpack_c8.c.
      	* Makefile.in: Regenerate.
      	* libgfortran.h:  Declare internal_pack_c4, internal_pack_c8,
      	internal_unpack_c4 and internal_unpack_c8.
      	* m4/in_pack.m4: Use rtype_ccode insteald of rtype_kind
      	in function name.
      	Use sizeof (rtype_name) as size for memory allocation.
      	* m4/in_unpack.m4: Use rtype_ccode insteald of rtype_kind
      	in function name.
      	Use sizeof (rtype_name) for calculation of sizes for memcpy.
      	* runtime/in_pack_generic.c:  For real, integer and logical
      	call internal_pack_4 if size==4 and internal_pack_8 if
      	size==8.
      	For complex, call internal_pack_c4 if size==8 and
      	internal_pack_c8 if size==16.
      	* runtime/in_unpack_generic.c: For real, integer and logical
              call internal_unpack_4 if size==4 and internal_unpack_8 if
              size==8.
              For complex, call internal_unpack_c4 if size==8 and
              internal_unpack_c8 if size==16.
      	* 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/in_pack_c4.c:  New file.
      	* generated/in_pack_c8.c:  New file.
      	* generated/in_unpack_c4.c:  New file.
      	* generated/in_unpack_c8.c:  New file.
      
      2005-05-11  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	* gfortran.fortran-torture/execute/in-pack.f90:  New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100842 138bc75d-0d04-0410-961f-82ee72b054a4
      f27ef643
  21. Apr 30, 2005
  22. Feb 01, 2005
  23. Jan 23, 2005
    • dje's avatar
      PR libgfortran/19052 · ff81ee3b
      dje authored
              * libgfortran.h (options_t): Add stderr_unit.
              * io/io.h (error_stream): Declare.
              * io/open.c (new_unit): Do not terminate abnormally if opening
              file preconnected to stdin, stdout, or stderr.
              * io/unit.c (init_units): Initialize stderr_unit.
              * io/unix.c (error_stream): New function.
              * runtime/environ.c (GFORTRAN_STDERR_UNIT): New environment variable.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94090 138bc75d-0d04-0410-961f-82ee72b054a4
      ff81ee3b
  24. Jan 12, 2005
    • toon's avatar
      2005-01-12 Toon Moene <toon@moene.indiv.nluug.nl> · b417ea8c
      toon authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93235 138bc75d-0d04-0410-961f-82ee72b054a4
      b417ea8c
  25. Dec 27, 2004
    • tobi's avatar
      gcc/fortran/ · 4d66f715
      tobi authored
      * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
      logicalshift.  Call fold.  Remove 0-bit shift shortcut.
      (gfc_conv_intrinsic_ishftc): Convert first argument to at least
      4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
      result if width(arg 1) < 4 bytes.  Call fold.
      
      libgfortran/
      * libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
      Define.
      * intrinsics/ishftc.c: Update copyright years.
      (ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
      * intrinsics/mvbits.c: Correcty non-ASCII character in my name.
      Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.
      
      gcc/testsuite/
      * gfortran.dg/g77/f90-intrinsic-bit.f: New.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92642 138bc75d-0d04-0410-961f-82ee72b054a4
      4d66f715
  26. Dec 19, 2004
  27. Dec 14, 2004
    • steven's avatar
      PR libfortran/18966 · 800c028f
      steven authored
              * gfortran.h: typedef GFC_INTEGER_1 and GFC_INTEGER_2
              * intrinsics/cshift0.c (cshift0_1,cshift0_2): New functions.
              * intrinsics/eoshift0.c (eoshift0_1,eoshift0_2): New functions.
              * intrinsics/eoshift2.c (eoshift2_1,eoshift2_2): New functions.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92132 138bc75d-0d04-0410-961f-82ee72b054a4
      800c028f
  28. Dec 12, 2004
    • rth's avatar
      * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New. · 7b6cb5bd
      rth authored
              (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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92045 138bc75d-0d04-0410-961f-82ee72b054a4
      7b6cb5bd
  29. Dec 07, 2004
  30. Nov 23, 2004
    • danglin's avatar
      PR libfortran/15960 · fd48ced8
      danglin authored
      	* configure.ac: Check for finite in libm.
      	* libgfortran.h: Define isfinite macro if not defined.
      	* intrinsics/c99_functions.c: Use defined(fpclassify) instead of
      	HAVE_FPCLASSIFY.
      	* io/write.c (write_float): Use isfinite instead of finite.
      	* configure, config.h.in: Rebuilt.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91064 138bc75d-0d04-0410-961f-82ee72b054a4
      fd48ced8
  31. Nov 20, 2004
    • ebotcazou's avatar
      PR target/16135 · c436f700
      ebotcazou authored
      	* acinclude.m4 (LIBGFOR_TARGET_ILP32): New check.
      	* configure.ac: Include LIBGFOR_TARGET_ILP32.
      	* configure: Regenerate.
      	* config.h.in: Likewise.
      	* libgfortran.h: Provide default definitions for C99 types
      	on ILP32 targets that don't have them.
      
      	PR target/17999
      	* configure.ac: Check for snprintf.
      	* configure: Regenerate.
      	* config.h.in: Likewise.
      	* intrinsics/date_and_time.c (date_and_time): Do not
      	use snprinf if it is not available.
      	* io/write.c (output_float): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90964 138bc75d-0d04-0410-961f-82ee72b054a4
      c436f700
  32. Sep 21, 2004
  33. Aug 31, 2004
    • tobi's avatar
      fortran/ · 9ad09405
      tobi authored
      * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
      all occurences of 'gfc_strlen_type_node' by
      'gfc_charlen_type_node'.
      * trans-types.h: Same. Also update comment accordingly.
      
      libgfortran/
      * libgfortran.h: Replace 'gfc_strlen_type' by
      'gfc_charlen_type'. Update comment accordingly.
      * intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
      Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86828 138bc75d-0d04-0410-961f-82ee72b054a4
      9ad09405
  34. Aug 30, 2004
  35. Aug 28, 2004
    • pbrook's avatar
      PR libfortran/17195 · a2784d66
      pbrook authored
      	* libgfortran.h (rtoa): Remove prototype.
      	* runtime/error.c (rtoa): Remove.
      	* io/write.c (calculate_G_format): Don't add blanks if E format is
      	used.  Add correct number of blanks when exponent width is specified.
      	(output_float): Rewrite.
      testsuite/
      	* gfortran.dg/edit_real_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86701 138bc75d-0d04-0410-961f-82ee72b054a4
      a2784d66
  36. Aug 04, 2004
  37. Jul 04, 2004
    • pbrook's avatar
      PR fortran/15280 · 9b057c29
      pbrook authored
      	PR fortran/15665
      	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
      	GFC_ISYM_COMMAND_ARGUMENT_COUNT.
      	* intrinsic.c (add_functions):  Identify iargc.  Add
      	command_argument_count.
      	(add_subroutines): Resolve getarg.  Add get_command and
      	get_command_argument.
      	* intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
      	gfc_resolve_get_command_argument): Add prototypes.
      	* iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
      	gfc_resolve_get_command_argument): New functions.
      	* trans-decl.c (gfor_fndecl_iargc): New variable.
      	(gfc_build_intrinsic_function_decls): Set it.
      	* trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
      	(gfc_conv_intrinsic_function): Use it.
      	* trans.h (gfor_fndecl_iargc): Declare.
      libgfortran/
      	* libgfortran.h (gfc_strlen_type): Define.
      	* intrinsics/args.c (getarg): Rename ...
      	(getarg_i4): ... to this.
      	(getarg_i8, get_command_argument_i4, get_command_argument_i8,
      	get_command_i4, get_command_i8): New functions.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84087 138bc75d-0d04-0410-961f-82ee72b054a4
      9b057c29
  38. Jun 13, 2004
    • pbrook's avatar
      * Makefile.am (gfor_helper_src): Add runtime/normalize.f90. · 4db2deda
      pbrook authored
      	* configure.ac: Add checks for nextafter and nextafterf.
      	* Makefile.in, config.h.in, configure: Regenerate.
      	* libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare.
      	* intrinsics/rand.c (rand): Use normalize_r4_i4.
      	* intrinsics/random.c (random_r4): Use normalize_r4_i4.
      	(random_r8): Use normalize_r8_i8.
      	* runtime/normalize.c: New file.
      testsuite/
      	* gfortran.fortran-torture/execute/random_2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83070 138bc75d-0d04-0410-961f-82ee72b054a4
      4db2deda
  39. Jun 12, 2004
    • pbrook's avatar
      PR fortran/14923 · 8db86b90
      pbrook authored
      	* intrinsics/date_and_time.c: New file.
      	* Makefile.am (gfor_helper_src): Add intrinsics/date_and_time.c.
      	* Makefile.in, aclocal.m4: Regenerate.
      	* libgfortran.h: Prototype date_and_time().
      testsuite/
      	* gfortran.fortran-torture/execute/date_time_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83032 138bc75d-0d04-0410-961f-82ee72b054a4
      8db86b90
Loading