mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-18 11:08:26 +00:00
2923 lines
104 KiB
Plaintext
2923 lines
104 KiB
Plaintext
|
2005-12-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25594
|
|||
|
PR libfortran/25419
|
|||
|
* io/list_read.c (list_formatted_read_scalar): Test for comma to return
|
|||
|
a null value (default). Revert patch of 25419 on 2005-12-28.
|
|||
|
|
|||
|
2005-12-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25139
|
|||
|
* io/unix.c (fd_truncate): Set s->active to zero.
|
|||
|
PR libfortran/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.
|
|||
|
|
|||
|
2005-12-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25550
|
|||
|
* io/file_pos.c (st_rewind): Reset bytes left so no error occurs in
|
|||
|
next_record_r.
|
|||
|
|
|||
|
2005-12-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25419
|
|||
|
* io/list_read.c (list_formatted_read_scalar): Allow comma to return a
|
|||
|
null value (default).
|
|||
|
|
|||
|
2005-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25307
|
|||
|
* io/list_read.c (next_char): Handle end-of-file conditions for
|
|||
|
internal units and add support for internal character array units.
|
|||
|
|
|||
|
2005-12-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25463
|
|||
|
* io/transfer.c (finalize_transfer): Fix execution order so that
|
|||
|
next_record is set to zero in all cases.
|
|||
|
|
|||
|
2005-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25264
|
|||
|
PR libfortran/25349
|
|||
|
* io/unit.c (get_unit): Delete code that cleared the string when the
|
|||
|
unit was opened, which is too soon.
|
|||
|
* io/transfer.c (next_record_w): Pass done flag in. Change logic for
|
|||
|
setting max_pos. Add code to position unit and pad record as needed.
|
|||
|
|
|||
|
2005-12-13 Richard Sandiford <richard@codesourcery.com>
|
|||
|
Victor Leikehman <LEI@il.ibm.com>
|
|||
|
|
|||
|
* m4/matmul.m4: Use a different order in the special case of a
|
|||
|
transposed first argument.
|
|||
|
* generated/matmul_c4.c, generated/matmul_c8.c, generated/matmul_c10.c,
|
|||
|
* generated/matmul_c16.c, generated/matmul_i4.c, generated/matmul_i8.c,
|
|||
|
* generated/matmul_i10.c, generated/matmul_r4.c, generated/matmul_r8.c
|
|||
|
* generated/matmul_r10.c, generated/matmul_r16.c: Regenerated.
|
|||
|
|
|||
|
2005-12-10 Janne Blomqvist <jb@gcc.gnu.org>
|
|||
|
|
|||
|
* Makefile.am: Enable loop unrolling for matmul.
|
|||
|
* configure: Regenerated.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
* aclocal.m4: Regenerated.
|
|||
|
|
|||
|
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-09 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
PR libfortran/24991
|
|||
|
* acinclude.m4: Include acx.m4 and no-executables.m4.
|
|||
|
* configure.ac: Add GCC_TOPLEVEL_SUBDIRS.
|
|||
|
* configure: Rebuilt.
|
|||
|
* Makefile.am (AM_CPPFLAGS): Use $(host_subdir) in build dir
|
|||
|
path.
|
|||
|
* Makefile.in: Rebuilt.
|
|||
|
|
|||
|
2005-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25039
|
|||
|
* io/io.h: Create a new flag sf_read_comma to control comma
|
|||
|
separators in numeric reads.
|
|||
|
* io/transfer.c (formatted_transfer_scalar): Initialize the flag.
|
|||
|
(read_sf): Check for commas coming in and if the flag is set,
|
|||
|
shortcut the read.
|
|||
|
* io/read.c (read_a) (read_x): Clear the flag for character reads and
|
|||
|
reset it after the reads.
|
|||
|
|
|||
|
2005-12-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/format.c: Removing unused code.
|
|||
|
* intrinsics/random.c: Likewise.
|
|||
|
|
|||
|
2005-12-02 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/25116
|
|||
|
* io/transfer.c (data_transfer_init): Don't set the default for
|
|||
|
namelist I/O on preconnected files to UNFORMATTED.
|
|||
|
|
|||
|
2005-11-30 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|||
|
|
|||
|
* libgfortran.h (ILP32 typedefs): Define _UINT8_T, _UINT32_T and
|
|||
|
_UINT64_T on Solaris.
|
|||
|
|
|||
|
2005-11-28 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR libfortran/25149
|
|||
|
* intrinsics/abort.c: Add external abort_ to allow linking when
|
|||
|
invoking -std=f95 in testsuite.
|
|||
|
|
|||
|
2005-11-28 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
PR libfortran/24991
|
|||
|
* acinclude.m4 (LIBGFOR_CHECK_PRAGMA_WEAK): Rename to...
|
|||
|
(LIBGFOR_GTHREAD_WEAK): ... this. Define SUPPORTS_WEAK rather
|
|||
|
than HAVE_PRAGMA_WEAK. Define GTHREAD_USE_WEAK to 0 on hosts
|
|||
|
that shouldn't use weak in gthr.h.
|
|||
|
* configure.ac: Use LIBGFOR_GTHREAD_WEAK instead of
|
|||
|
LIBGFOR_CHECK_PRAGMA_WEAK.
|
|||
|
* config.h.in: Regenerated.
|
|||
|
* configure: Regenerated.
|
|||
|
* io/io.h (SUPPORTS_WEAK): Don't define here.
|
|||
|
|
|||
|
* intrinsics/ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
|
|||
|
* intrinsics/fget.c (fgetc, fputs): Likewise.
|
|||
|
* intrinsics/tty.c (ttynam): Likewise.
|
|||
|
|
|||
|
2005-11-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/25109
|
|||
|
* io/unit.c (init_units): Set default flag to BLANK_NULL per
|
|||
|
requirement of F95 standard. Set PAD_YES for stdin.
|
|||
|
|
|||
|
2005-11-27 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
* intrinsics/random.c: Include config.h
|
|||
|
* io/size_from_kind.c: Include config.h and libgfortran.h
|
|||
|
* io/io.h: Revert 2005-11-21 change.
|
|||
|
|
|||
|
2005-11-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/write.c (namelist_write): Correct type in previous
|
|||
|
commit.
|
|||
|
|
|||
|
2005-11-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/24919
|
|||
|
* io/list_read.c (eat_separator, finish_separator,
|
|||
|
read_character): Handle CRLF separators correctly during reads.
|
|||
|
(nml_query): Use the HAVE_CRLF macro to print adequate newlines.
|
|||
|
* io/io.h (st_parameter_dt): Add comment about the possible
|
|||
|
values for sf_seen_eor.
|
|||
|
* io/unix.c (tempfile, regular_file): HAVE_CRLF doesn't imply
|
|||
|
that O_BINARY is defined, so we add that condition.
|
|||
|
(stream_at_bof): Fix typo in comment.
|
|||
|
* io/transfer.c (read_sf): Handle correctly CRLF, setting
|
|||
|
sf_seen_eor value to 2 instead of 1.
|
|||
|
(formatted_transfer_scalar): Use the sf_seen_eor value to
|
|||
|
handle CRLF the right way.
|
|||
|
* io/write.c (nml_write_obj, namelist_write): Use CRLF as newline
|
|||
|
when HAVE_CRLF is defined.
|
|||
|
|
|||
|
2005-11-27 Janne Blomqvist <jb@gcc.gnu.org>
|
|||
|
|
|||
|
* m4/ifunction.m4: Add const restrict to function arguments.
|
|||
|
* m4/iforeach.m4: Likewise.
|
|||
|
* m4/eoshift1.m4: Likewise.
|
|||
|
* m4/eoshift3.m4: Likewise.
|
|||
|
* m4/dotprod.m4: Likewise.
|
|||
|
* m4/dotprodc.m4: Likewise.
|
|||
|
* m4/dotprodl.m4: Likewise.
|
|||
|
* m4/shape.m4: Likewise.
|
|||
|
* m4/cshift1.m4: Likewise.
|
|||
|
* m4/reshape.m4: Likewise.
|
|||
|
* m4/transpose.m4: Likewise.
|
|||
|
* generated/eoshift*: Regenerated
|
|||
|
* generated/dotprod*: Likewise.
|
|||
|
* generated/shape*: Likewise.
|
|||
|
* generated/cshift1*: Likewise.
|
|||
|
* generated/reshape*: Likewise.
|
|||
|
* generated/transpose*: Likewise.
|
|||
|
|
|||
|
2005-11-26 Richard Henderson <rth@redhat.com>
|
|||
|
|
|||
|
* io/list_read.c (nml_parse_qualifier): Use ssize_t instead of int
|
|||
|
in dtp->u.p.value.
|
|||
|
|
|||
|
2005-11-26 Janne Blomqvist <jb@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/24945
|
|||
|
* io/open.c (edit_modes): Check for STATUS_UNKNOWN flag.
|
|||
|
|
|||
|
2005-11-25 Richard Henderson <rth@redhat.com>
|
|||
|
|
|||
|
* io/list_read.c (nml_parse_qualifier): Use memcpy to extract
|
|||
|
values from dtp->u.p.value.
|
|||
|
* io/io.h (struct st_parameter_dt): Change reversion_flag, first_item,
|
|||
|
seen_dollar, sf_seen_eor, eor_condition, no_leading_blank, char_flag,
|
|||
|
input_complete, at_eol, comma_flag, namelist_mode, nml_read_error to
|
|||
|
single-bit fields. Move value to where it'll be at least pointer
|
|||
|
aligned.
|
|||
|
|
|||
|
2005-11-23 Alan Modra <amodra@bigpond.net.au>
|
|||
|
|
|||
|
* io/open.c (new_unit): Use the right unit number when checking
|
|||
|
for stdin, stdout, stderr.
|
|||
|
|
|||
|
2005-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/24794
|
|||
|
* io/list_read.c (read_character): Add auto completion on short
|
|||
|
namelist reads.
|
|||
|
|
|||
|
2005-11-21 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
* io/io.h (_LARGE_FILES): Undefine for AIX.
|
|||
|
(_LARGE_FILE_API): Define for AIX.
|
|||
|
|
|||
|
2005-11-21 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
2005-11-20 Richard Henderson <rth@redhat.com>
|
|||
|
|
|||
|
* Makefile.am: Revert 2005-11-14 change. Enable -free-vectorize
|
|||
|
via gmake per-target variables.
|
|||
|
* Makefile.in, aclocal.m4: Regenerate.
|
|||
|
|
|||
|
2005-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* configure.ac: Add "-I ." to the AM_FCFLAGS.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-11-18 Hans-Peter Nilsson <hp@axis.com>
|
|||
|
|
|||
|
* config/fpu-glibc.h (set_fpu): Only call fedisableexcept for
|
|||
|
nonzero FE_ALL_EXCEPT.
|
|||
|
|
|||
|
2005-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR fortran/24892
|
|||
|
* io/io.h (unit_access): Add ACCESS_APPEND.
|
|||
|
* io/open.c (access_opt): Add APPEND value for ACCESS keyword.
|
|||
|
(st_open): Use that new value to set the POSITION accordingly.
|
|||
|
|
|||
|
2005-11-14 Janne Blomqvist <jb@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/21468
|
|||
|
* Makefile.am: Add -ftree-vectorize for compiling matmul.
|
|||
|
* m4/matmul.m4: Add const and restrict to type declarations as
|
|||
|
appropriate.
|
|||
|
* m4/matmull.m4: Likewise.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
* generated/matmul_*.c: Likewise.
|
|||
|
|
|||
|
2005-11-13 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* intrinsics/fget.c: New file.
|
|||
|
* intrinsics/ftell.c: New file.
|
|||
|
* io/unix.c (stream_offset): New function.
|
|||
|
* io/io.h: Add prototype for stream_offset.
|
|||
|
* Makefile.am: Add intrinsics/fget.c and intrinsics/ftell.c.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-11-12 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR libfortran/24787
|
|||
|
* intrinsics/string_intrinsics.c (string_scan): Off by one; Fix typos
|
|||
|
in nearby comment.
|
|||
|
|
|||
|
2005-11-10 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* libgfortran.h: Add proper defines where needed.
|
|||
|
|
|||
|
2005-11-10 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* libgfortran.h: Add missing prototypes for internal_pack
|
|||
|
functions.
|
|||
|
|
|||
|
2005-11-06 Janne Blomqvist <jb@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/24174
|
|||
|
PR fortran/24305
|
|||
|
* io/io.h: Add argument to prototypes, add prototypes for
|
|||
|
size_from_*_kind functions.
|
|||
|
* io/list_read.c (read_complex): Add size argument, use
|
|||
|
it.
|
|||
|
(list_formatted_read): Add size argument, cleanup.
|
|||
|
(list_formatted_read_scalar): Add size argument.
|
|||
|
(nml_read_obj): Fix for padding.
|
|||
|
* io/transfer.c: Add argument to transfer function pointer.
|
|||
|
(unformatted_read): Add size argument.
|
|||
|
(unformatted_write): Likewise.
|
|||
|
(formatted_transfer_scalar): Fix for padding with complex(10).
|
|||
|
(formatted_transfer): Add size argument, cleanup.
|
|||
|
(transfer_integer): Add size argument to transfer call.
|
|||
|
(transfer_real): Likewise.
|
|||
|
(transfer_logical): Likewise.
|
|||
|
(transfer_character): Likewise.
|
|||
|
(transfer_complex): Likewise.
|
|||
|
(transfer_array): New kind argument, use it.
|
|||
|
(data_transfer_init): Add size argument to formatted_transfer
|
|||
|
call.
|
|||
|
(iolength_transfer): Add size argument, cleanup.
|
|||
|
* io/write.c (write_complex): Add size argument, fix for padding
|
|||
|
with complex(10).
|
|||
|
(list_formatted_write): Add size argument, cleanup.
|
|||
|
(list_formatted_write_scalar): Add size argument, use it.
|
|||
|
(nml_write_obj): Fix for size vs. kind issue.
|
|||
|
* io/size_from_kind.c: New file.
|
|||
|
* Makefile.am: Add io/size_from_kind.c.
|
|||
|
* configure: Regenerate.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-11-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* intrinsics/ctime.c: New file.
|
|||
|
* configure.ac: Add check for ctime.
|
|||
|
* Makefile.am: Add ctime.c
|
|||
|
* configure: Regenerate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-11-05 Richard Guenther <rguenther@suse.de>
|
|||
|
|
|||
|
* configure.ac: Use AM_FCFLAGS for extra flags, not FCFLAGS.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-11-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* intrinsics/tty.c (ttynam): New function.
|
|||
|
|
|||
|
2005-11-04 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR fortran/24636
|
|||
|
* runtime/stop.c (stop_numeric): Use stop_code = -1.
|
|||
|
|
|||
|
2005-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/22298
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-11-01 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/14994
|
|||
|
* libgfortran/intrinsics/date_and_time.c: Add interface to
|
|||
|
the functions date_and_time for the intrinsic function secnds.
|
|||
|
|
|||
|
2005-10-31 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/24584
|
|||
|
* io/list_read.c (free_saved): Set saved_used to zero.
|
|||
|
|
|||
|
2005-10-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20179
|
|||
|
* io/unix.c (flush_if_preconnected): New function.
|
|||
|
* io/io.h: Add prototype for flush_if_preconnected.
|
|||
|
* io/transfer.c (data_transfer_init): Use flush_if_preconnected
|
|||
|
to workaround buggy mixed C-Fortran code.
|
|||
|
|
|||
|
2005-10-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* Makefile.am: Add intrinsics/malloc.c file.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* intrinsics/malloc.c: New file, with implementations for free
|
|||
|
and malloc library functions.
|
|||
|
|
|||
|
2005-10-29 Mike Stump <mrs@apple.com>
|
|||
|
|
|||
|
* Makefile.am (kinds.h): Remove target, if command fails.
|
|||
|
(selected_int_kind.inc): Likewise.
|
|||
|
(selected_real_kind.inc): Likewise.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-10-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
|
|||
|
* Makefile.am (intrinsics): Add signal.c.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* configure.ac: Checks for signal and alarm.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
* intrinsics/signal.c: New file for SIGNAL and ALARM intrinsics.
|
|||
|
|
|||
|
2005-10-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check.
|
|||
|
* configure.ac: Check for floatingpoint.h, fptrap.h and float.h
|
|||
|
headers. Use LIBGFOR_CHECK_FPSETMASK. Check for fp_trap and
|
|||
|
fp_enable functions.
|
|||
|
* configure.host: Add case for systems with fpsetmask and systems
|
|||
|
with fp_trap/fp_enable.
|
|||
|
* config/fpu-sysv.h: New file, FPU code using fpsetmask.
|
|||
|
* config/fpu-aix.h: New file, FPU code for AIX using fp_trap and
|
|||
|
fp_enable.
|
|||
|
* aclocal.m4: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
|
|||
|
2005-10-24 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/24224
|
|||
|
* libgfortran.h: Remove array stride error code.
|
|||
|
* runtime/error.c: Remove array stride error.
|
|||
|
* io/io.h: Change name of 'nml_loop_spec' to 'array_loop_spec' to be
|
|||
|
generic. Add pointer to array_loop_spec and rank to gfc_unit
|
|||
|
structure.
|
|||
|
* io/list_read.c: Revise nml_loop_spec references to array_loop_spec.
|
|||
|
* io/transfer.c (init_loop_spec): New function to initialize
|
|||
|
an array_loop_spec.
|
|||
|
(next_array_record): New function to return the index to the next array
|
|||
|
record by incrementing through the array_loop_spec.
|
|||
|
(next_record_r): Use new function.
|
|||
|
(next_record_w): Use new function.
|
|||
|
(finalize_transfer): Free memory allocated for array_loop_spec.
|
|||
|
* io/unit.c (get_array_unit_len): Delete this function. Use new
|
|||
|
function init_loop_spec to initialize the array_loop_spec.
|
|||
|
|
|||
|
2005-10-24 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/24416
|
|||
|
* libgfortran/io/list_read.c (namelist_read): Exit with call to
|
|||
|
free_saved () so that character strings do not accumulate.
|
|||
|
|
|||
|
2005-10-23 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/24489
|
|||
|
* io/transfer.c (read_block): Change the order of execution to not read
|
|||
|
past end-of-record.
|
|||
|
(read_block_direct): Same change.
|
|||
|
|
|||
|
2005-10-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23272
|
|||
|
* acinclude.m4 (LIBGFOR_CHECK_WORKING_STAT): New check.
|
|||
|
* configure.ac: Use LIBGFOR_CHECK_WORKING_STAT.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* aclocal.m4: Regenerate.
|
|||
|
* io/unix.c (compare_file_filename): Add fallback case for
|
|||
|
systems without working stat.
|
|||
|
* io/open.c (already_open): Correct call to
|
|||
|
compare_file_filename.
|
|||
|
* io/io.h: Correct proto for compare_file_filename.
|
|||
|
|
|||
|
2005-10-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* runtime/fpu.c: Add _GNU_SOURCE definition.
|
|||
|
* config/fpu-glibc.h: Remove __USE_GNU definition.
|
|||
|
|
|||
|
2005-10-23 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/24384
|
|||
|
* intrinsics/spread_generic.c (spread_internal_scalar): New
|
|||
|
function that handles the special case of spread with a scalar
|
|||
|
source. This has new interface functions -
|
|||
|
(spread_scalar, spread_char_scalar): New functions to interface
|
|||
|
with the calls specified in gfc_resolve_spread.
|
|||
|
|
|||
|
2005-10-21 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/24383
|
|||
|
* io/unix.c: Add fallback definition for SSIZE_MAX.
|
|||
|
|
|||
|
2005-10-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* c99_protos.h: Define preprocessor HAVE_ macros with value 1
|
|||
|
instead of empty value.
|
|||
|
* intrinsics/c99_functions.c: Likewise.
|
|||
|
* intrinsics/getXid.c: Define HAVE_GETPID with value 1 instead of
|
|||
|
empty value.
|
|||
|
* intrinsics/sleep.c: Define HAVE_SLEEP with value 1 instead of
|
|||
|
empty value.
|
|||
|
|
|||
|
2005-10-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/24432
|
|||
|
* c99_protos.h: Define HAVE_ macros for all provided functions.
|
|||
|
|
|||
|
2005-10-14 Uros Bizjak <uros@kss-loka.si>
|
|||
|
|
|||
|
* config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
|
|||
|
Change cw and cw_sse variables to unsigned.
|
|||
|
(SSE): New definition.
|
|||
|
(has_sse): Use it.
|
|||
|
|
|||
|
2005-10-13 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
* io/unix.c(fd_alloc_r_at): Use read() instead of do_read()
|
|||
|
only in case of special files (e.g. terminals).
|
|||
|
|
|||
|
2005-10-13 Uros Bizjak <uros@kss-loka.si>
|
|||
|
|
|||
|
* config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
|
|||
|
|
|||
|
2005-10-12 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* 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.
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-10-12 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
* io/unix.c(fd_alloc_r_at): Remove parts of patch of 2005/10/07 that
|
|||
|
cause input from the terminal to hang.
|
|||
|
|
|||
|
2005-10-11 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR libfortran/24313
|
|||
|
* c99_functions.c (csqrtf, csqrt): Fix choice of branch cut. Note
|
|||
|
csqrt{f} were imported from glibc, and this bug is still present
|
|||
|
there. glibc PR is 1146.
|
|||
|
|
|||
|
2005-10-07 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
PR fortran/16339
|
|||
|
PR fortran/23363
|
|||
|
* io/io.h: Add read and write members to stream, define access
|
|||
|
macros.
|
|||
|
* io/transfer.c (read_block_direct): New function.
|
|||
|
(write_block_direct): New function.
|
|||
|
(unformatted_read): Change to use read_block_direct.
|
|||
|
(unformatted_write): Change to use write_block_direct.
|
|||
|
* io/unix.c: Remove mmap includes and defines.
|
|||
|
(writen): Remove.
|
|||
|
(readn): Remove.
|
|||
|
(reset_stream): New function.
|
|||
|
(do_read): New function.
|
|||
|
(do_write): New function.
|
|||
|
(fd_flush): Change to use do_write() instead of writen().
|
|||
|
(fd_alloc_r_at): Change to use do_read().
|
|||
|
(fd_seek): Change return type to try, as the prototype. Add check
|
|||
|
to avoid syscall overhead if possible.
|
|||
|
(fd_read): New function.
|
|||
|
(fd_write): New function.
|
|||
|
(fd_open): Set pointers for new functions.
|
|||
|
(mem_read): New function.
|
|||
|
(mem_write): New function.
|
|||
|
(open_internal): Set pointers for new functions.
|
|||
|
(is_seekable): Clean up comment.
|
|||
|
|
|||
|
2005-10-07 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
* io/transfer.c (write_block): Add test for end-of-file condition,
|
|||
|
removed from mem_alloc_w_at. (next_record_w): Clean up checks for
|
|||
|
NULL pointer returns from s_alloc_w.
|
|||
|
* io/unix.c (mem_alloc_w_at): Remove call to generate_error end-of-file.
|
|||
|
* io/write.c (write_float): Add checks for NULL pointer returns from
|
|||
|
write_block calls. (write_integer): Same.
|
|||
|
|
|||
|
2005-10-03 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
* runtime/memory.c (allocate_size): Malloc 1 byte if size == 0.
|
|||
|
|
|||
|
2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19308
|
|||
|
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.
|
|||
|
|
|||
|
2005-10-01 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
* runtime/memory.c (malloc_t): Remove.
|
|||
|
(GFC_MALLOC_MAGIC, HEADER_SIZE, DATA_POINTER, DATA_HEADER): Remove.
|
|||
|
(mem_root, runtime_cleanup, malloc_with_header): Remove.
|
|||
|
(internal_malloc_size): Use just get_mem if size != 0, return NULL
|
|||
|
otherwise.
|
|||
|
(internal_free): Just free if non-NULL.
|
|||
|
(internal_realloc_size): Remove debugging stuff.
|
|||
|
(allocate_size): Use malloc directly, remove debugging stuff.
|
|||
|
(deallocate): Use free directly, fix error message wording.
|
|||
|
|
|||
|
* libgfortran.h (GFC_ITOA_BUF_SIZE, GFC_XTOA_BUF_SIZE,
|
|||
|
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.
|
|||
|
|
|||
|
2005-09-30 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
PR 24112
|
|||
|
* io/open.c (edit_modes): Check for correct flag.
|
|||
|
|
|||
|
2005-09-29 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
* runtime/string.c (find_option): Change 3rd argument to
|
|||
|
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 [].
|
|||
|
|
|||
|
2005-09-27 Steve Ellcey <sje@cup.hp.com>
|
|||
|
|
|||
|
PR target/23552
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-09-24 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
* io.h: Changed prototypes of list_formatted_{read|write}.
|
|||
|
* list_read.c (list_formatted_read): Renamed to
|
|||
|
list_formatted_read_scalar and made static.
|
|||
|
(list_formatted_read): New function.
|
|||
|
* transfer.c: Prototype for transfer_array. Changed transfer
|
|||
|
function pointer.
|
|||
|
(unformatted_read): Add nelems argument, use it.
|
|||
|
(unformatted_write): Likewise.
|
|||
|
(formatted_transfer): Changed name to formatted_transfer_scalar.
|
|||
|
(formatted_transfer): New function.
|
|||
|
(transfer_integer): Add nelems argument to transfer call, move
|
|||
|
updating item count to transfer functions.
|
|||
|
(transfer_real): Likewise.
|
|||
|
(transfer_logical): Likewise.
|
|||
|
(transfer_character): Likewise.
|
|||
|
(transfer_complex): Likewise.
|
|||
|
(transfer_array): New function.
|
|||
|
(data_transfer_init): Call formatted_transfer with new argument.
|
|||
|
(iolength_transfer): New argument, use it.
|
|||
|
* write.c (list_formatted_write): Renamed to
|
|||
|
list_formatted_write_scalar, made static.
|
|||
|
(list_formatted_write): New function.
|
|||
|
|
|||
|
2005-09-26 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
* configure.ac: Add check for __clog.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-09-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* c99_protos.h: Add prototypes for C99 complex functions.
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-09-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
Danny Smith <dannysmith@users.sourceforge.net>
|
|||
|
|
|||
|
PR libfortran/23803
|
|||
|
* intrinsics/getXid.c: Add getpid wrapper for MinGW.
|
|||
|
* intrinsics/getlog.c: Add getlogin wrapper for MinGW.
|
|||
|
* intrinsics/hostnm.c: Add gethostname wrapper for MinGW.
|
|||
|
|
|||
|
2005-09-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23802
|
|||
|
* intrinsics/sleep.c: Add correct sleep macro for MinGW.
|
|||
|
|
|||
|
2005-09-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23380
|
|||
|
* intrinsics/cpu_time.c (__cpu_time_1): Provide a MS Windows
|
|||
|
version.
|
|||
|
|
|||
|
2005-09-14 Jerry DeLisle <jvdelisle@verizon.net
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
2005-09-13 Richard Sandiford <richard@codesourcery.com>
|
|||
|
|
|||
|
PR target/19269
|
|||
|
* intrinsics/cshift0.c (cshift0): Add an extra size argument.
|
|||
|
(cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
|
|||
|
implementations with...
|
|||
|
(DEFINE_CSHIFT): ...this new macro. Define character versions too.
|
|||
|
* intrinsics/eoshift0.c (zeros): Delete.
|
|||
|
(eoshift0): Add extra size and filler arguments. Use memset if no
|
|||
|
bound is provided.
|
|||
|
(eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
|
|||
|
implementations with...
|
|||
|
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
|
|||
|
* intrinsics/eoshift2.c (zeros): Delete.
|
|||
|
(eoshift2): Add extra size and filler arguments. Use memset if no
|
|||
|
bound is provided.
|
|||
|
(eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
|
|||
|
implementations with...
|
|||
|
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
|
|||
|
* intrinsics/pack.c (pack_internal): New static function, reusing
|
|||
|
the contents of pack and adding an extra size argument. Change
|
|||
|
"mptr" rather than "m" when calculating the array size.
|
|||
|
(pack): Redefine as a forwarder to pack_internal.
|
|||
|
(pack_s_internal): New static function, reusing the contents of
|
|||
|
pack_s and adding an extra size argument.
|
|||
|
(pack_s): Redefine as a forwarder to pack_s_internal.
|
|||
|
(pack_char, pack_s_char): New functions.
|
|||
|
* intrinsics/reshape.c (reshape_internal): New static function,
|
|||
|
reusing the contents of reshape and adding an extra size argument.
|
|||
|
(reshape): Redefine as a forwarder to reshape_internal.
|
|||
|
(reshape_char): New function.
|
|||
|
* intrinsics/spread.c (spread_internal): New static function,
|
|||
|
reusing the contents of spread and adding an extra size argument.
|
|||
|
(spread): Redefine as a forwarder to spread_internal.
|
|||
|
(spread_char): New function.
|
|||
|
* intrinsics/transpose.c (transpose_internal): New static function,
|
|||
|
reusing the contents of transpose and adding an extra size argument.
|
|||
|
(transpose): Redefine as a forwarder to transpose_internal.
|
|||
|
(transpose_char): New function.
|
|||
|
* intrinsics/unpack.c (unpack_internal): New static function, reusing
|
|||
|
the contents of unpack1 and adding extra size and fsize arguments.
|
|||
|
(unpack1): Redefine as a forwarder to unpack_internal.
|
|||
|
(unpack0): Call unpack_internal instead of unpack1.
|
|||
|
(unpack1_char, unpack0_char): New functions.
|
|||
|
* m4/cshift1.m4 (cshift1): New static function, reusing the contents
|
|||
|
of cshift1_<kind> and adding an extra size argument.
|
|||
|
(cshift1_<kind>): Redefine as a forwarder to cshift1.
|
|||
|
(cshift1_<kind>_char): New function.
|
|||
|
* m4/eoshift1.m4 (zeros): Delete.
|
|||
|
(eoshift1): New static function, reusing the contents of
|
|||
|
eoshift1_<kind> and adding extra size and filler arguments.
|
|||
|
Fix calculation of hstride. Use memset if no bound is provided.
|
|||
|
(eoshift1_<kind>): Redefine as a forwarder to eoshift1.
|
|||
|
(eoshift1_<kind>_char): New function.
|
|||
|
* m4/eoshift3.m4 (zeros): Delete.
|
|||
|
(eoshift3): New static function, reusing the contents of
|
|||
|
eoshift3_<kind> and adding extra size and filler arguments.
|
|||
|
Use memset if no bound is provided.
|
|||
|
(eoshift3_<kind>): Redefine as a forwarder to eoshift3.
|
|||
|
(eoshift3_<kind>_char): New function.
|
|||
|
* generated/cshift1_4.c, generated/cshift1_8.c,
|
|||
|
* generated/eoshift1_4.c, generated/eoshift1_8.c,
|
|||
|
* generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.
|
|||
|
|
|||
|
2005-09-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20179
|
|||
|
* io/unix.c (is_preconnected): Add function to test if a stream
|
|||
|
corresponds to a preconnected unit.
|
|||
|
* io/io.h: Add prototype for is_preconnected.
|
|||
|
* io/transfer.c (data_transfer_init): Do not truncate
|
|||
|
preconnected units.
|
|||
|
|
|||
|
2005-09-10 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
* io/unix.c: Remove mmap code.
|
|||
|
|
|||
|
2005-09-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23784
|
|||
|
* io/close.c (st_close): Call library_end even in case of error.
|
|||
|
|
|||
|
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
* io/io.h: Add iomsg as last field of st_parameter.
|
|||
|
* runtime/error.c (generate_error): If iomsg is present, copy
|
|||
|
the message there.
|
|||
|
|
|||
|
2005-09-09 Richard Sandiford <richard@codesourcery.com>
|
|||
|
|
|||
|
PR fortran/12840
|
|||
|
* runtime/memory.c (internal_malloc_size): Return a null pointer
|
|||
|
if the size is zero.
|
|||
|
(internal_free): Do nothing if the pointer is null.
|
|||
|
(internal_realloc_size, internal_realloc, internal_realloc64): New.
|
|||
|
|
|||
|
2005-09-07 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23262
|
|||
|
* acinclude.m4 (LIBGFOR_CHECK_CRLF): New check.
|
|||
|
* configure.ac: Use new check.
|
|||
|
* configure.in: Regenerate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
* io/transfer.c (next_record_w): Add case for CRLF as line
|
|||
|
terminator.
|
|||
|
* io/unix.c (tempfile, regular_file): Open files with
|
|||
|
O_BINARY on systems with CRLF.
|
|||
|
|
|||
|
2005-09-07 Steve Ellcey <sje@cup.hp.com>
|
|||
|
|
|||
|
PR libfortran/23419
|
|||
|
* io/write.c (extract_int): Use memcpy to access buffer.
|
|||
|
(extract_uint): Ditto.
|
|||
|
(extract_real): Ditto.
|
|||
|
|
|||
|
2005-09-05 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
* io/list_read.c: Adjust size of of value to 32 (to hold
|
|||
|
kind=16 complex values).
|
|||
|
|
|||
|
2005-09-04 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/23321
|
|||
|
* io/transfer.c(data_transfer_init): Check for a too-large
|
|||
|
record number. Return if sseek failed.
|
|||
|
|
|||
|
2005-09-03 Jakub Jelinek <jakub@redhat.com>
|
|||
|
|
|||
|
* io/read.c (read_x): Take int argument instead of fnode * and
|
|||
|
digging the N from F->u.n.
|
|||
|
* io/io.h (read_x): Adjust prototype.
|
|||
|
* io/transfer.c (formatted_transfer): Adjust callers. Don't clobber
|
|||
|
f->u.n for FMT_T.
|
|||
|
|
|||
|
2005-09-02 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/unix.c (stream_ttyname): Protect use of ttyname by
|
|||
|
HAVE_TTYNAME macro.
|
|||
|
* configure.ac: Add check for ttyname.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-09-02 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* libgfortran.h: Add prototype for init_compile_options.
|
|||
|
|
|||
|
* io/io.h: Add prototype for notify_std.
|
|||
|
|
|||
|
2005-08-31 Steve Ellcey <sje@cup.hp.com>
|
|||
|
|
|||
|
* io/read.c (set_integer): Use memcpy to fill buffer.
|
|||
|
|
|||
|
2005-08-31 Steve Ellcey <sje@cup.hp.com>
|
|||
|
|
|||
|
PR target/23556
|
|||
|
* io/read.c (convert_real): Use memcpy to fill buffer.
|
|||
|
|
|||
|
2005-08-29 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/23598
|
|||
|
* io/lock.c(library_start): If ioparm.iostat is present, clear
|
|||
|
it unconditionally.
|
|||
|
|
|||
|
2005-08-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see
|
|||
|
if target can unlink open files.
|
|||
|
* configure.ac: Use this new test.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* aclocal.ac: Regenerate.
|
|||
|
* io/io.h: Add prototype for unpack_filename.
|
|||
|
* io/close.c (st_close): Delete file after closing unit if
|
|||
|
HAVE_UNLINK_OPEN_FILE is not defined.
|
|||
|
* io/unix.c (unpack_filename): Unlink scratch file after opening
|
|||
|
it only if HAVE_UNLINK_OPEN_FILE is defined.
|
|||
|
|
|||
|
2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
|
|||
|
|
|||
|
* All files: Update FSF address.
|
|||
|
|
|||
|
2005-08-16 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/23428
|
|||
|
* io/transfer.c (iolength_transfer): Remove __attribute__ ((unused))
|
|||
|
from type. Return correct length for inquire(iolength=)
|
|||
|
for complex variables.
|
|||
|
|
|||
|
2005-08-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
Steven Bosscher <stevenb@suse.de>
|
|||
|
|
|||
|
PR libfortran/20006
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-08-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
* Makefile.am: Add file intrinsics/tty.c to Makefile process.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* io/io.h: Prototypes for new functions stream_isatty and
|
|||
|
stream_ttyname.
|
|||
|
* io/unix (stream_isatty, stream_ttyname): New functions to call
|
|||
|
isatty() and ttyname() on a given unit.
|
|||
|
* intrinsics/tty.c: New file to implement g77 intrinsics TTYNAM
|
|||
|
and ISATTY.
|
|||
|
|
|||
|
2005-08-08 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/23154
|
|||
|
* io/transfer.c (data_transfer_init): Initialize
|
|||
|
current_unit->bytes_left for a read.
|
|||
|
|
|||
|
2005-08-07 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
PR fortran/22390
|
|||
|
* io/backspace.c: File removed, contents moved to ...
|
|||
|
* io/endfile.c: Ditto.
|
|||
|
* io/rewind.c: Ditto.
|
|||
|
* io/file_pos.c: New file, ... here.
|
|||
|
* Makefile.am: Add file_pos.c to list, remove obsolete files.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
|
|||
|
2005-08-07 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/io.h: Change DEFAULT_TEMPDIR to /tmp instead of /var/tmp.
|
|||
|
* io/unix.c (tempfile): Look at the TEMP environment variable
|
|||
|
to find the temporary files directory. Whitespace correction.
|
|||
|
|
|||
|
2005-08-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/unix.c: Add O_RDWR to open() call.
|
|||
|
|
|||
|
2005-08-04 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
* transfer.c (data_transfer_init): Truncate file in
|
|||
|
sequential WRITE when last_record == 0, rather than
|
|||
|
current_record. Cures problem on RH9.
|
|||
|
|
|||
|
2005-08-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* libgfortran.h: When isfinite is not provided by the system,
|
|||
|
define it as a macro, so that it can accept any floating point
|
|||
|
type.
|
|||
|
|
|||
|
2005-08-01 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/23178
|
|||
|
* intrinsics/flush.c (flush_i8): Add function flush_i8. Update
|
|||
|
copyright years.
|
|||
|
|
|||
|
2005-07-31 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/21787
|
|||
|
* intrinsics/abort.c (abort): Close units before aborting.
|
|||
|
Updated copyright years.
|
|||
|
|
|||
|
2005-07-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/22436
|
|||
|
* io/write.c (write_real): Add default formats for real(10) and
|
|||
|
real(16).
|
|||
|
|
|||
|
2005-07-30 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR fortran/22570 and related issues.
|
|||
|
* transfer.c (formatted_transfer): Make sure that there
|
|||
|
really is data present before X- or T- editing. Move all
|
|||
|
treatment of tabbing during writes to start of next data
|
|||
|
producing format. Suppress incorrect zeroing of bytes_left
|
|||
|
in slash formating. Insert int cast for assignment of a
|
|||
|
difference of two gfc_offsets.
|
|||
|
|
|||
|
2005-07-23 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
* io/write.c (write_float): Revise output of IEEE exceptional
|
|||
|
values to comply with F95 and F2003 standards.
|
|||
|
|
|||
|
2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/22570
|
|||
|
* io/unit.c (init_units): Replace BLANK_ZERO with
|
|||
|
BLANK_UNSPECIFIED.
|
|||
|
|
|||
|
2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/21875 (FM111.f)
|
|||
|
* io/read.c (next_char): Return a ' ' character when BLANK_ZERO
|
|||
|
or BLANK_NULL are active.
|
|||
|
(read_decimal): Interpret ' ' character correctly for BZ or BN.
|
|||
|
(read_radix): Interpret ' ' character correctly for BZ or BN.
|
|||
|
(read_f): Interpret ' ' character correctly for BZ or BN.
|
|||
|
|
|||
|
2005-07-22 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/22570
|
|||
|
* read.c (read_x): Correct the condition for doing the
|
|||
|
x-editing during formatted input.
|
|||
|
* transfer.c (formatted_transfer): Cast offset difference
|
|||
|
as int, clean-up arithmetic with new variable, bytes_used,
|
|||
|
zero counters for FMT_SLASH,
|
|||
|
(data_transfer_init) Zero X- and T-editing counters
|
|||
|
unconditionally.
|
|||
|
(next_record_w) Zero X- and T-editing counters.
|
|||
|
unconditionally.
|
|||
|
|
|||
|
2005-07-17 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
* io/write.c (write_float): Fix field width checks for
|
|||
|
printing 'Infinity' or 'Inf'.
|
|||
|
(output_float): Fix typo in comment.
|
|||
|
|
|||
|
2005-07-12 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/16435
|
|||
|
* transfer.c (formatted_transfer): Correct the problems
|
|||
|
with X- and T-editting that caused TLs followed by TRs
|
|||
|
to overwrite data, which caused NIST FM908.FOR to fail
|
|||
|
on many tests.
|
|||
|
(data_transfer_init): Zero X- and T-editting counters at
|
|||
|
the start of formatted IO.
|
|||
|
* write.c (write_x): Write specified number of skips with
|
|||
|
specified number of spaces at the end.
|
|||
|
|
|||
|
2005-07-13 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
* io/read.c (read_complex): Prevent X formatting during reads
|
|||
|
from going beyond EOR to fix NIST fm908.FOR failure.
|
|||
|
* io/list_read.c (read_complex): Allow complex data in list-
|
|||
|
directed reads to have eols either side of the comma to
|
|||
|
fix NIST FM906.FOR failure.
|
|||
|
|
|||
|
2005-07-12 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21593
|
|||
|
* io/unix.c: Add member special_file to type unix_stream.
|
|||
|
(fd_truncate): Don't call ftruncate or chsize if
|
|||
|
s refers to a special file.
|
|||
|
(fd_to_stream): initialize s->special_file.
|
|||
|
|
|||
|
2005-07-11 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
PR libfortran/22412
|
|||
|
* io/write.c (otoa): Bias p by SCRATCH_SIZE, not
|
|||
|
sizeof (SCRATCH_SIZE).
|
|||
|
(btoa): Same.
|
|||
|
|
|||
|
2005-07-09 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/21875 (FM111.f)
|
|||
|
* io/read.c (next_char): Return a ' ' character when BLANK_ZERO or
|
|||
|
BLANK_NULL are active.
|
|||
|
(read_decimal): Interpret ' ' character correctly for BZ or BN.
|
|||
|
(read_radix): Interpret ' ' character correctly for BZ or BN.
|
|||
|
(read_f): Interpret ' ' character correctly for BZ or BN.
|
|||
|
* gfortran.dg/test (fmt_read_bz_bn.f90): New test case.
|
|||
|
|
|||
|
2005-07-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/22217
|
|||
|
* io/write.c (extract_unit): New function; extract
|
|||
|
ints as unsigned signed int of the correct size.
|
|||
|
(write_int): Use it.
|
|||
|
* runtime/error.c: Adjust copyright years.
|
|||
|
Adjust size of buffer to maximum that can occur.
|
|||
|
|
|||
|
2005-07-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
* libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
|
|||
|
'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:
|
|||
|
|
|||
|
2005-07-07 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21594
|
|||
|
* intrinsics/eoshift0.c: If abs(shift) > len, fill the
|
|||
|
the whole array with the boundary value, but don't overrun it.
|
|||
|
* intrinsics/eoshift2.c: Likewise.
|
|||
|
* m4/eoshift1.m4: Likewise.
|
|||
|
* m4/eoshift3.m4: Likewise.
|
|||
|
* generated/eoshift1_4.c: Regenerated.
|
|||
|
* generated/eoshift1_8.c: Regenerated.
|
|||
|
* generated/eoshift3_4.c: Regenerated.
|
|||
|
* generated/eoshift3_8.c: Regenerated.
|
|||
|
|
|||
|
2005-07-07 Feng Wang <fengwang@nudt.edu.cn>
|
|||
|
|
|||
|
PR fortran/16531
|
|||
|
* io/transfer.c (formatted_transfer): Enable FMT_A on other types to
|
|||
|
support Hollerith constants.
|
|||
|
|
|||
|
2005-07-01 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* intrinsics/unpack_generic.c: Remove const from parameter.
|
|||
|
|
|||
|
* io/transfer.c (formatted_transfer): Remove unused variable.
|
|||
|
|
|||
|
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/22142
|
|||
|
* m4/eoshift1.m4: Correct bstride (it needs to be multiplied
|
|||
|
by size since it's a char pointer).
|
|||
|
* m4/eoshift1_4.c: Regenerated.
|
|||
|
* m4/eoshift1_8.c: Regenerated.
|
|||
|
|
|||
|
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/22142
|
|||
|
* m4/eoshift3.m4: Correct bstride (it needs to be multiplied
|
|||
|
by size since it's a char pointer).
|
|||
|
* m4/eoshift3_4.c: Regenerated.
|
|||
|
* m4/eoshift3_8.c: Regenerated.
|
|||
|
|
|||
|
2005-06-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/22170
|
|||
|
* io/transfer.c (formatted_transfer): Do not iterate on the
|
|||
|
repeat count of a FMT_SLASH, since this is already done in
|
|||
|
next_format().
|
|||
|
|
|||
|
2005-06-25 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/22144
|
|||
|
* m4/cshift1.m4: Remove const from argument ret.
|
|||
|
Populate return array descriptor if ret->data is NULL.
|
|||
|
* m4/eoshift1.m4: Likewise.
|
|||
|
* m4/eoshift3.m4: Likewise.
|
|||
|
* generated/cshift1_4.c: Regenerated.
|
|||
|
* generated/cshift1_8.c: Regenerated.
|
|||
|
* generated/eoshift1_4.c: Regenerated.
|
|||
|
* generated/eoshift1_8.c: Regenerated.
|
|||
|
* generated/eoshift3_4.c: Regenerated.
|
|||
|
* generated/eoshift3_8.c: Regenerated.
|
|||
|
|
|||
|
2005-06-24 Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
PR libfortran/21915
|
|||
|
* Makefile.am: Include intrinsics/hyper.c.
|
|||
|
* c99_protos.h: Add prototypes for single precision versions of
|
|||
|
acosh, asinh, and atanh for platforms that do not have these.
|
|||
|
* config.h.in: Add #undef for wrappers.
|
|||
|
* configure.ac: Add checks for single precision versions.
|
|||
|
* aclocal.m4: Regenerated.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
* configure: Regenerated.
|
|||
|
* intrinsics/hyper.c: New file, adds new wrapper functions.
|
|||
|
|
|||
|
2005-06-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* intrinsics/c99_functions.c (log10l): New log10l function for
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
2005-06-18 Janne Blomqvist <jblomqvi@cc.hut.fi>
|
|||
|
|
|||
|
* unix.c (stream_at_bof): Don't assume that all non-mmapped files
|
|||
|
are non-seekable.
|
|||
|
(stream_at_eof): Likewise.
|
|||
|
|
|||
|
2005-06-18 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19155
|
|||
|
* io/read.c (convert_real): strtod can set errno to EINVAL on an
|
|||
|
empty string, but we shouldn't have an error in that case.
|
|||
|
|
|||
|
2005-06-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19216
|
|||
|
* io/list_read.c (eat_separator): No need to call next_record,
|
|||
|
even in non-namelist_mode.
|
|||
|
|
|||
|
2005-06-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* io/transfer.c (formatted_transfer): Fix typo in error message.
|
|||
|
|
|||
|
2005-06-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/16436
|
|||
|
* io/transfer.c (read_sf): Correct updating of bytes_left field.
|
|||
|
(formatted_transfer): Correct updating of bytes_left field and
|
|||
|
reformatting code (comments and whitespace).
|
|||
|
* io/unix.c (move_pos_offset): "active" field should not be
|
|||
|
changed here. Whitespace corrections.
|
|||
|
|
|||
|
2005-06-15 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/21950
|
|||
|
* intrinsics/c99_functions.c (scalbn): Provide fallback
|
|||
|
implementation for scalbn.
|
|||
|
* c99_protos.h: Prototype for scalbn.
|
|||
|
* configure.ac: Add check for scalbn.
|
|||
|
* configure: Regenerate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
|
|||
|
2005-06-14 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
* intrinsics/eoshift0.c: Removed prototype for eoshift0.
|
|||
|
* intrinsics/eoshift2.c: Removed prototype for eoshift2.
|
|||
|
|
|||
|
2005-06-14 Tom Tromey <tromey@redhat.com>
|
|||
|
|
|||
|
PR libgcj/19877:
|
|||
|
* configure, aclocal.m4, Makefile.in: Rebuilt.
|
|||
|
|
|||
|
2005-06-12 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21594
|
|||
|
* intrinsics/eoshift0.c: Add prototype for eoshift0.
|
|||
|
* intrinsics/eoshift2.c: Add prototype for eoshift2.
|
|||
|
|
|||
|
2005-06-12 Steven G. Kargl <kargls@comcast.net>
|
|||
|
Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/PR21797
|
|||
|
* m4/cexp.m4 (csqrt`'q): Add type qualifyer to
|
|||
|
sqrt and fabs.
|
|||
|
* generated/exp_c4.c: Regenerated.
|
|||
|
|
|||
|
2005-06-12 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19155
|
|||
|
* io/read.c (read_f): Take care of spaces after initial sign.
|
|||
|
|
|||
|
2005-06-11 Thomas Koenig <Thomas.Koenig@onlinde.de>
|
|||
|
|
|||
|
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-06-09 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21480
|
|||
|
* m4/reshape.m4: Use sizeof (rtype_name) for sizes to be passed
|
|||
|
to reshape_packed.
|
|||
|
* generated/reshape_c4.c: Regenerated.
|
|||
|
* generated/reshape_c8.c: Regenerated.
|
|||
|
* generated/reshape_i4.c: Regenerated.
|
|||
|
* generated/reshape_i8.c: Regenerated.
|
|||
|
|
|||
|
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21926
|
|||
|
* m4/matmul.m4: Correct zeroing of result for non-packed
|
|||
|
arrays with lowest stride is one.
|
|||
|
* generated/matmul_c4.c: Regenerated.
|
|||
|
* generated/matmul_c8.c: Regenerated.
|
|||
|
* generated/matmul_i4.c: Regenerated.
|
|||
|
* generated/matmul_i8.c: Regenerated.
|
|||
|
* generated/matmul_r4.c: Regenerated.
|
|||
|
* generated/matmul_r8.c: Regenerated.
|
|||
|
|
|||
|
2005-05-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20179
|
|||
|
* io/unix.c (fd_close): Add test so that we don't close()
|
|||
|
stdout and stderr.
|
|||
|
|
|||
|
2005-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20006
|
|||
|
* io/format.c (parse_format_list): Set repeat count of $ format
|
|||
|
node to 1.
|
|||
|
* io/transfer.c (read_sf): Add g.seen_dollar to the test
|
|||
|
concerning advancing I/O.
|
|||
|
(data_transfer_init): Likewise.
|
|||
|
(finalize_transfer): Likewise.
|
|||
|
|
|||
|
2005-05-27 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
* runtime/in_pack_generic.c: Adjust copyright years.
|
|||
|
(in_pack_generic): Change dimension of auxiliary arrays from
|
|||
|
GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
|
|||
|
* runtime/in_unpack_generic.c: Adjust copyright years.
|
|||
|
(in_unpack_generic): Change dimension of auxiliary arrays from
|
|||
|
GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
|
|||
|
|
|||
|
2005-05-26 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/17283
|
|||
|
* intrinsics/unpack_generic.c: Fix name of routine
|
|||
|
on top. Update copyright years.
|
|||
|
(unpack1): Remove const from return array descriptor.
|
|||
|
rs: New variable, for calculating return sizes.
|
|||
|
Populate return array descriptor if ret->data is NULL.
|
|||
|
|
|||
|
2005-05-22 Peter Wainwright <prw@ceiriog1.demon.co.uk>
|
|||
|
|
|||
|
PR libfortran/21376
|
|||
|
* io/write.c (output_float): Rework logic to avoid call to log10
|
|||
|
with argument equal to zero.
|
|||
|
|
|||
|
2005-05-21 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|||
|
|
|||
|
* configure.ac: Check for trunc and truncf in libm.
|
|||
|
* configure: Regenerate.
|
|||
|
* config.h.in: Likewise.
|
|||
|
* intrinsics/c99_functions.c (trunc, truncf): New functions.
|
|||
|
* c99_protos.h (trunc, truncf): Declare them.
|
|||
|
|
|||
|
2005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21127
|
|||
|
* Makefile.am: Really commit.
|
|||
|
* Makefile.in: Really commit.
|
|||
|
|
|||
|
2005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21127
|
|||
|
* Makefile.am: Add generated/reshape_c4.c and
|
|||
|
generated/reshape_c8.c.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
* m4/iparm.m4: Define rtype_ccode to be c4 or c8 for
|
|||
|
complex types, 4 or 8 otherwise.
|
|||
|
* m4/reshape.m4: Use rtype_ccode instead of rtype_kind
|
|||
|
in function name.
|
|||
|
* generated/reshape_c4.c: New file.
|
|||
|
* generated/reshape_c8.c: New file.
|
|||
|
|
|||
|
2005-05-16 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* configure.ac: Add additional warning flags.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
* io/write.c (calculate_G_format): Remove unused parameter.
|
|||
|
(output_float): Remove unused parameter.
|
|||
|
(write_float): Change callers.
|
|||
|
(nml_write_obj): Avoid signed warning.
|
|||
|
Make variable const to support -Wwrite-strings.
|
|||
|
|
|||
|
* io/unix.c (fd_alloc, mmap_open, mmap_sfree, mem_sfree,
|
|||
|
mem_truncate): Mark argument as unused.
|
|||
|
|
|||
|
* io/unit.c (get_unit): Mark argument as unused.
|
|||
|
(init_units): Avoid warning about signed comparision.
|
|||
|
|
|||
|
* io/transfer.c (next_record_r): Remove unused parameter.
|
|||
|
(next_record_w): Remove unused parameter.
|
|||
|
(next_record): Change callers.
|
|||
|
(iolength_transfer): Mark arguments as unused.
|
|||
|
|
|||
|
* io/open.c: Add initializer.
|
|||
|
|
|||
|
* io/list_read.c (read_character): Mark argument as unused.
|
|||
|
(nml_match_name): Add const to make compile with -Wwrite-strings.
|
|||
|
|
|||
|
* io/format.c: Add initializer.
|
|||
|
|
|||
|
2005-05-15 Andreas Jaeger <aj@suse.de>
|
|||
|
|
|||
|
* m4/eoshift1.m4: Initialize variables to avoid warnings.
|
|||
|
* m4/eoshift3.m4: Initialize variables to avoid warnings.
|
|||
|
* generated/eoshift1_4.c, generated/eoshift1_8.c,
|
|||
|
generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerated.
|
|||
|
|
|||
|
* intrinsics/spread_generic.c (spread): Initialize variables to
|
|||
|
avoid warnings.
|
|||
|
|
|||
|
* intrinsics/eoshift0.c (eoshift0): Initialize variables to avoid
|
|||
|
warnings.
|
|||
|
* intrinsics/eoshift2.c (eoshift2): Initialize variables to avoid
|
|||
|
warnings.
|
|||
|
|
|||
|
* io/list_read.c (nml_get_obj_data): Initialize variables to avoid
|
|||
|
warnings.
|
|||
|
|
|||
|
* intrinsics/pack_generic.c (pack): Remove unneeded calculation.
|
|||
|
|
|||
|
* m4/matmull.m4 (matmul_): Remove unneeded calculations, fix
|
|||
|
pointer cast to avoid warning.
|
|||
|
* generated/matmul_l4.c: Regenerated.
|
|||
|
* generated/matmul_l8.c: Regenerated.
|
|||
|
|
|||
|
* Makefile.am: Remove AM_CFLAGS here.
|
|||
|
* configure.ac: Define AM_CFLAGS and AM_FCFLAGS so that warnings
|
|||
|
are set. Set additionally -Wstrict-prototypes for CFLAGS.
|
|||
|
* Makefile.in: Regenerated.
|
|||
|
* aclocal.m4: Regenerated.
|
|||
|
* configure: Regenerated.
|
|||
|
|
|||
|
* intrinsics/system_clock.c (system_clock_4, system_clock_8): Add
|
|||
|
missing returns, reformat a bit.
|
|||
|
|
|||
|
* io/write.c (nml_write_obj): Use %d again - and cast to int,
|
|||
|
st_sprintf does not handle %ld.
|
|||
|
|
|||
|
* io/unit.c (is_internal_unit): Add void as parameter list.
|
|||
|
|
|||
|
* io/transfer.c: Move prototype declarations before the functions.
|
|||
|
|
|||
|
* runtime/normalize.c (almostone_r4, almostone_r8): Fix parameter
|
|||
|
list.
|
|||
|
|
|||
|
* intrinsics/random.c (KISS_DEFAULT_SEED): Remove extra semicolon.
|
|||
|
|
|||
|
* io/transfer.c: Do not use empty initializers for global objects.
|
|||
|
Add missing initializers.
|
|||
|
|
|||
|
* io/lock.c: Do not use empty initializers for global objects.
|
|||
|
|
|||
|
* io/close.c: Add missing initializers.
|
|||
|
|
|||
|
* runtime/environ.c: Add missing initializers. Do not use empty
|
|||
|
initializers for global object.
|
|||
|
(init_string): Mark argument as unused.
|
|||
|
|
|||
|
* runtime/main.c (cleanup): Fix parameter list.
|
|||
|
|
|||
|
* io/io.h: Fix parameter lists.
|
|||
|
|
|||
|
* m4/transpose.m4, m4/matmul.m4: Fix pointer cast to avoid
|
|||
|
warning.
|
|||
|
|
|||
|
* generated/transpose_c4.c, generated/transpose_c8.c,
|
|||
|
generated/transpose_i4.c, generated/transpose_i8.c,
|
|||
|
generated/matmul_c4.c, generated/matmul_c8.c,
|
|||
|
generated/matmul_i4.c, generated/matmul_i8.c,
|
|||
|
generated/matmul_r4.c, generated/matmul_r8.c: Regenerated.
|
|||
|
|
|||
|
* io/write.c (nml_write_obj): Fix 64-bit problem.
|
|||
|
|
|||
|
* io/list_read.c (nml_get_obj_data): Add missing braces around
|
|||
|
initializer to avoid warnings.
|
|||
|
|
|||
|
* intrinsics/etime.c (etime_sub): Remove unused variable.
|
|||
|
|
|||
|
* intrinsics/chdir.c, intrinsics/getlog.c, intrinsics/link.c,
|
|||
|
intrinsics/symlnk.c, intrinsics/perror.c: Include <string.h> for
|
|||
|
prototypes.
|
|||
|
|
|||
|
* runtime/string.c (compare0): Remove unused variable.
|
|||
|
* io/unit.c (init_units): Remove unused variables.
|
|||
|
* intrinsics/getcwd.c (getcwd_i4_sub): Remove unused variable.
|
|||
|
* intrinsics/unlink.c (unlink_i4_sub): Remove unused variable.
|
|||
|
* intrinsics/stat.c (stat_i4_sub, fstat_i8_sub, fstat_i4_sub,
|
|||
|
stat_i8_sub): Remove unused variable.
|
|||
|
|
|||
|
2005-05-12 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21324
|
|||
|
* runtime/memory.c: Don't define GFC_CLEAR_MEMORY (it's a
|
|||
|
performance hog).
|
|||
|
* io/open.c (new_unit): Zero freshly allocated memory for
|
|||
|
unit structure.
|
|||
|
* io/unit.c (init_units): Zero freshly allocated memory for
|
|||
|
STDIN, STDOUT and STDERR.
|
|||
|
* io/unix.c (open_internal): Zero freshly allocated memory
|
|||
|
for unix_stream.
|
|||
|
(fd_to_stream): Likewise.
|
|||
|
|
|||
|
2005-05-11 Bud Davis <bdavis@gfortran.org>
|
|||
|
|
|||
|
PR fortran/19478
|
|||
|
* io/unix.c (fd_truncate): update positions when ftruncate
|
|||
|
fails (like writing to /dev/null).
|
|||
|
|
|||
|
2005-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/21471
|
|||
|
* open.c (new_unit): Take care of the case where POSITION_APPEND
|
|||
|
is specified (sseek to the end, and set u>-endfile).
|
|||
|
|
|||
|
2005-05-10 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
PR fortran/20178
|
|||
|
* Makefile.am (gfor_specific_src): Add 'intrinsics/f2c_intrinsics.F90'
|
|||
|
to dependencies.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* intrinsics/f2c_specific.F90: New file.
|
|||
|
|
|||
|
2005-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20788
|
|||
|
* io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating
|
|||
|
we don't we to mmap this stream. Use fd_open instead of mmap_open
|
|||
|
in that case.
|
|||
|
(open_external): Call fd_to_stream with avoid_mmap = 0.
|
|||
|
(input_stream): Call fd_to_stream with avoid_mmap = 1.
|
|||
|
(output_stream): Likewise.
|
|||
|
(error_stream): Likewise.
|
|||
|
|
|||
|
2005-05-09 Mike Stump <mrs@apple.com>
|
|||
|
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-05-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19155
|
|||
|
* io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
|
|||
|
non-blank characters of a real number.
|
|||
|
|
|||
|
2005-05-04 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21354
|
|||
|
* m4/cshift1.m4: Change dimension of auxiliary arrays from
|
|||
|
GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
|
|||
|
* m4/eoshift1.m4: Likewise.
|
|||
|
* m4/eoshift3.m4: Likewise.
|
|||
|
* m4/ifunction.m4: Likewise.
|
|||
|
* m4/in_pack.m4: Likewise.
|
|||
|
* m4/in_unpack.m4: Likewise.
|
|||
|
* intrinsics/cshift0.c: Likewise.
|
|||
|
* intrinsics/eoshift0.c: Likewise.
|
|||
|
* intrinsics/eoshift2.c: Likewise.
|
|||
|
* intrinsics/random.c: Likewise.
|
|||
|
* intrinsics/spread_generic.c: Likewise.
|
|||
|
* intrinsics/stat.c: Likewise.
|
|||
|
* 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/eoshift1_4.c: Regenerated.
|
|||
|
* generated/eoshift1_8.c: Regenerated.
|
|||
|
* generated/eoshift3_4.c: Regenerated.
|
|||
|
* generated/eoshift3_8.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/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/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/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.
|
|||
|
|
|||
|
2005-04-30 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/18958
|
|||
|
libgfortran.h: Change typedef of index_type from size_t
|
|||
|
to ssize_t.
|
|||
|
|
|||
|
2005-04-30 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/18857
|
|||
|
* generated/matmul_r8.c: Remove incorrect assertions.
|
|||
|
* generated/matmul_c4.c: Regenerate
|
|||
|
* generated/matmul_c8.c: Regenerate
|
|||
|
* generated/matmul_i4.c: Regenerate
|
|||
|
* generated/matmul_i8.c: Regenerate
|
|||
|
* generated/matmul_r4.c: Regenerate
|
|||
|
* generated/matmul_r8.c: Regenerate
|
|||
|
|
|||
|
2005-04-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* configure.ac: Check for ftruncate and chsize.
|
|||
|
* io/unix.c (fd_truncate): Provide chsize as alternative to
|
|||
|
ftruncate.
|
|||
|
* config.h.in: Regenerate.
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-04-29 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
* intrinsics/rename.c: Add missing #includes.
|
|||
|
|
|||
|
2005-04-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
* AUTHORS, COPYING, INSTALL, NEWS, README: Remove.
|
|||
|
|
|||
|
2005-04-26 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
PR libfortran/20930
|
|||
|
* io/rewind.c (st_rewind): Flush the stream when resetting the mode
|
|||
|
from WRITING to READING.
|
|||
|
|
|||
|
2005-04-22 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
Jerry DeLisle <jvdelisle@verizon.net>
|
|||
|
|
|||
|
* io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
|
|||
|
* io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
|
|||
|
call for ext_name. These fix the bug reported by Jerry DeLisle to
|
|||
|
the fortran list and are based on his suggested fix.
|
|||
|
|
|||
|
2005-04-22 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/20074
|
|||
|
PR libfortran/20436
|
|||
|
PR libfortran/21108
|
|||
|
* m4/reshape.m4 (reshape_`'rtype_kind): rs, rex: New
|
|||
|
variables, to be used in calculation of return array sizes.
|
|||
|
Populate return array descriptor if ret->data is NULL.
|
|||
|
Fix condition for early return (it used to test something
|
|||
|
undefined if order was used).
|
|||
|
Remove duplicate check wether pad is used.
|
|||
|
* intrinsics/reshape_generic.c (reshape_generic): Likewise.
|
|||
|
Fix a few places where the wrong variables were set.
|
|||
|
* generated/reshape_i4.c: Regenerated.
|
|||
|
* generated/reshape_i8.c: Regenerated.
|
|||
|
|
|||
|
2005-04-18 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
* io/list_read.c (nml_touch_nodes, nml_read_obj,
|
|||
|
nml_get_obj_data): Fix memory leaks in code for derived types.
|
|||
|
|
|||
|
2005-04-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20950
|
|||
|
* io/inquire.c (inquire_via_unit): Check for the gfc_unit being
|
|||
|
NULL when setting ioparm.sequential.
|
|||
|
|
|||
|
2005-04-17 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/21075
|
|||
|
* m4/reshape.m4 (reshape_`'rtype_kind): Change dimension
|
|||
|
of auxiliary arrays from GFC_MAX_DIMENSIONS - 1 to
|
|||
|
GFC_MAX_DIMENSIONS.
|
|||
|
* intrinsics/reshape_generic.c (reshape_generic): Likewise.
|
|||
|
* generated/reshape_i4.c: Regenerated.
|
|||
|
* generated/reshape_i8.c: Regenerated.
|
|||
|
|
|||
|
2005-04-17 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
* io/list_read.c (eat_separator): at_eol = 1 replaced
|
|||
|
(zapped at some time?).
|
|||
|
|
|||
|
2005-04-17 Paul Thomas <pault@gcc.gnu.org>
|
|||
|
|
|||
|
PR libfortran/12884
|
|||
|
PR libfortran/17285
|
|||
|
PR libfortran/18122
|
|||
|
PR libfortran/18210
|
|||
|
PR libfortran/18392
|
|||
|
PR libfortran/18591
|
|||
|
PR libfortran/18879
|
|||
|
* io/io.h (nml_ls): Declare.
|
|||
|
(namelist_info): Modify for arrays.
|
|||
|
* io/list_read.c (namelist_read): Reduced to call to new functions.
|
|||
|
(match_namelist_name): Simplified.
|
|||
|
(nml_query): Handles stdin queries ? and =?. New function.
|
|||
|
(nml_get_obj_data): Parses object name. New function.
|
|||
|
(touch_nml_nodes): Marks objects for read. New function.
|
|||
|
(untouch_nml_nodes): Resets objects. New function.
|
|||
|
(parse_qualifier): Parses and checks qualifiers. New function
|
|||
|
(nml_read_object): Reads and stores object data. New function.
|
|||
|
(eat_separator): No new_record on '/' in namelist.
|
|||
|
(finish_separator): No new_record on '/' in namelist.
|
|||
|
(read_logical): Error return for namelist.
|
|||
|
(read_integer): Error return for namelist.
|
|||
|
(read_complex): Error return for namelist.
|
|||
|
(read_real): Error return for namelist.
|
|||
|
* io/lock.c (library_end): Free extended namelist_info types.
|
|||
|
* io/transfer.c (st_set_nml_var): Modified for arrays.
|
|||
|
(st_set_nml_var_dim): Dimension descriptors. New function.
|
|||
|
* io/write.c (namelist_write): Reduced to call to new functions.
|
|||
|
(nml_write_obj): Writes output for object. New function.
|
|||
|
(write_integer): Suppress leading blanks for repeat counts.
|
|||
|
(write_int): Suppress leading blanks for repeat counts.
|
|||
|
(write_float): Suppress leading blanks for repeat counts.
|
|||
|
(output_float): Suppress leading blanks for repeat counts.
|
|||
|
|
|||
|
2005-04-15 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/18495
|
|||
|
* intrinsics/spread_generic.c (spread): Remove const from
|
|||
|
return array descriptor.
|
|||
|
New variables: rrank (rank of return array), rs (for
|
|||
|
calculating the size of the return array), srank (rank
|
|||
|
of the source array).
|
|||
|
Generate runtime error if the dim= argument is larger than
|
|||
|
the rank of the return array.
|
|||
|
Generate runtime error if the needed rank of the return
|
|||
|
array is larger than 7.
|
|||
|
If ret->data is null, populate the return array descriptor
|
|||
|
and initialize the variables for the actual operation.
|
|||
|
Otherwise, set ret->dim[0].stride to one if it is zero.
|
|||
|
Change second, independent use of variable dim to srank.
|
|||
|
|
|||
|
2005-04-12 Mike Stump <mrs@apple.com>
|
|||
|
|
|||
|
* configure: Regenerate.
|
|||
|
|
|||
|
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/19106
|
|||
|
* m4/iforeach.c (name`'rtype_qual`_'atype_code): Add TODO
|
|||
|
that setting correct strides is a front end job.
|
|||
|
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
|
|||
|
a lowest stride of 0, adjust to 1.
|
|||
|
* m4/ifunction.c (name`'rtype_qual`_'atype_code): Add TODO
|
|||
|
that setting correct strides is a front end job.
|
|||
|
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
|
|||
|
a lowest stride of 0, adjust to 1.
|
|||
|
* maxloc0_4_i4.c: Regenerated
|
|||
|
* maxloc0_4_i8.c: Regenerated
|
|||
|
* maxloc0_4_r4.c: Regenerated
|
|||
|
* maxloc0_4_r8.c: Regenerated
|
|||
|
* maxloc0_8_i4.c: Regenerated
|
|||
|
* maxloc0_8_i8.c: Regenerated
|
|||
|
* maxloc0_8_r4.c: Regenerated
|
|||
|
* maxloc0_8_r8.c: Regenerated
|
|||
|
* maxloc1_4_i4.c: Regenerated
|
|||
|
* maxloc1_4_i8.c: Regenerated
|
|||
|
* maxloc1_4_r4.c: Regenerated
|
|||
|
* maxloc1_4_r8.c: Regenerated
|
|||
|
* maxloc1_8_i4.c: Regenerated
|
|||
|
* maxloc1_8_i8.c: Regenerated
|
|||
|
* maxloc1_8_r4.c: Regenerated
|
|||
|
* maxloc1_8_r8.c: Regenerated
|
|||
|
* maxval_i4.c: Regenerated
|
|||
|
* maxval_i8.c: Regenerated
|
|||
|
* maxval_r4.c: Regenerated
|
|||
|
* maxval_r8.c: Regenerated
|
|||
|
* minloc0_4_i4.c: Regenerated
|
|||
|
* minloc0_4_i8.c: Regenerated
|
|||
|
* minloc0_4_r4.c: Regenerated
|
|||
|
* minloc0_4_r8.c: Regenerated
|
|||
|
* minloc0_8_i4.c: Regenerated
|
|||
|
* minloc0_8_i8.c: Regenerated
|
|||
|
* minloc0_8_r4.c: Regenerated
|
|||
|
* minloc0_8_r8.c: Regenerated
|
|||
|
* minloc1_4_i4.c: Regenerated
|
|||
|
* minloc1_4_i8.c: Regenerated
|
|||
|
* minloc1_4_r4.c: Regenerated
|
|||
|
* minloc1_4_r8.c: Regenerated
|
|||
|
* minloc1_8_i4.c: Regenerated
|
|||
|
* minloc1_8_i8.c: Regenerated
|
|||
|
* minloc1_8_r4.c: Regenerated
|
|||
|
* minloc1_8_r8.c: Regenerated
|
|||
|
* minval_i4.c: Regenerated
|
|||
|
* minval_i8.c: Regenerated
|
|||
|
* minval_r4.c: Regenerated
|
|||
|
* minval_r8.c: Regenerated
|
|||
|
* product_c4.c: Regenerated
|
|||
|
* product_c8.c: Regenerated
|
|||
|
* product_i4.c: Regenerated
|
|||
|
* product_i8.c: Regenerated
|
|||
|
* product_r4.c: Regenerated
|
|||
|
* product_r8.c: Regenerated
|
|||
|
* sum_c4.c: Regenerated
|
|||
|
* sum_c8.c: Regenerated
|
|||
|
* sum_i4.c: Regenerated
|
|||
|
* sum_i8.c: Regenerated
|
|||
|
* sum_r4.c: Regenerated
|
|||
|
* sum_r8.c: Regenerated
|
|||
|
|
|||
|
2005-04-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20788
|
|||
|
* runtime/environ.c (init_unsigned_integer): Function for
|
|||
|
environment variables we want to be positive.
|
|||
|
(init_integer): Function to allow negative environment
|
|||
|
variables (e.g. for GFORTRAN_STDIN_UNIT).
|
|||
|
|
|||
|
2005-04-10 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/17992
|
|||
|
PR libfortran/19568
|
|||
|
PR libfortran/19595
|
|||
|
PR libfortran/20005
|
|||
|
PR libfortran/20092
|
|||
|
PR libfortran/20131
|
|||
|
PR libfortran/20661
|
|||
|
PR libfortran/20744
|
|||
|
* io/transfer.c (top level): eor_condition: New static variable.
|
|||
|
(read_sf): Remove unnecessary zeroing of buffer (there is enough
|
|||
|
information in its length).
|
|||
|
Return a string of length 0 (to be padded by caller) if EOR was
|
|||
|
seen previously.
|
|||
|
Remove erroneous special casing of EOR for standard input.
|
|||
|
Set eor_condition for non-advancing I/O if an end of line was
|
|||
|
detected.
|
|||
|
Increment ioparm.size if necessary.
|
|||
|
(formatted_transfer): Skip the function if there is an EOR condition.
|
|||
|
(data_transfer_init): Initialize eor_condition to zero (false).
|
|||
|
(next_record_r): Clear sf_seen_eor if a \n has been seen already.
|
|||
|
(finalize_transfer): If there is an EOR condition, raise the error.
|
|||
|
|
|||
|
2005-04-09 Bud Davis <bdavis@gfortran.org>
|
|||
|
Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR fortran/19872
|
|||
|
* io/transfer.c (data_transfer_init): truncate an existing
|
|||
|
file on the first write.
|
|||
|
|
|||
|
2005-04-09 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/19106
|
|||
|
PR libfortran/19014
|
|||
|
* m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
|
|||
|
If retarray->data is NULL (i.e. the front end does not
|
|||
|
know the rank and dimenson of the array), fill in its
|
|||
|
properties and allocate memory.
|
|||
|
Change the assertions about rank and dimension of retarray into
|
|||
|
runtime errors and only check them for retarray->data != NULL.
|
|||
|
Do the same for correcting the stride from 0 to 1 in retarray.
|
|||
|
(`m'name`'rtype_qual`_'atype_code): Likewise.
|
|||
|
* m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
|
|||
|
Change assertion about rank of array to runtime error.
|
|||
|
(`m'name`'rtype_qual`_'atype_code): Likewise.
|
|||
|
* 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/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/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/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.
|
|||
|
|
|||
|
2005-04-09 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/20163
|
|||
|
* runtime/string.c (compare0): Use fstrlen() to
|
|||
|
strip trailing blanks from option string.
|
|||
|
|
|||
|
2005-04-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|||
|
|
|||
|
PR fortran/13257
|
|||
|
* format.c (parse_format_list): Allow an optional comma
|
|||
|
between descriptors.
|
|||
|
|
|||
|
2005-04-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|||
|
|
|||
|
* io/backspace.c (unformatted_backspace): Do not dereference
|
|||
|
the pointer to the stream.
|
|||
|
|
|||
|
2005-04-07 Andrew Pinski <pinskia@physics.uc.edu>
|
|||
|
|
|||
|
PR libfortran/20766
|
|||
|
* configure.ac (extra_ldflags_libgfortran): Set for *-darwin* to
|
|||
|
"-Wl,-single_module".
|
|||
|
* configure: Regenerate.
|
|||
|
* Makefile.am (libgfortran_la_LDFLAGS): Add extra_ldflags_libgfortran.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20755
|
|||
|
* write.c (write_float): A G edit descriptor may locally change
|
|||
|
the scale factor, but it needs to be restored afterwards.
|
|||
|
|
|||
|
2005-04-03 Dale Ranta <dir@lanl.gov>
|
|||
|
Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20068
|
|||
|
PR libfortran/20125
|
|||
|
PR libfortran/20156
|
|||
|
PR libfortran/20471
|
|||
|
* io/backspace.c (unformatted_backspace): Fix error in arithmetic.
|
|||
|
(st_backspace): When in WRITING mode, we flush and falling back
|
|||
|
into READING mode. In all cases, correctly position the stream.
|
|||
|
|
|||
|
2005-03-31 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20660
|
|||
|
* io/inquire.c (inquire_via_unit): Non-opened units should still be
|
|||
|
reported by an INQUIRE statement as existing.
|
|||
|
* io/transfer.c (data_transfer_init): Never accept negative units.
|
|||
|
|
|||
|
2005-03-29 Dale Ranta <dir@lanl.gov>
|
|||
|
Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20163
|
|||
|
* io/open.c (st_open): call library_end() before returning even if
|
|||
|
an error arises.
|
|||
|
|
|||
|
2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/19678
|
|||
|
* list_read.c (next_char, eat_separator, finish_separator, read_real)
|
|||
|
(namelist_read): Add support for '\r' as well as '\n' as EOL
|
|||
|
character.
|
|||
|
|
|||
|
PR libfortran/19679
|
|||
|
* list_read.c (read_sf): Add a '\r' in a test to support DOS
|
|||
|
line-endings when line length is exceeded.
|
|||
|
|
|||
|
2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/15332
|
|||
|
* io/format.c (parse_format_list): format node for colon edit
|
|||
|
descriptor needs a repeat counter set to 1.
|
|||
|
|
|||
|
2005-02-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* config.h.in: Regenerate.
|
|||
|
|
|||
|
2005-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/18025
|
|||
|
* write.c (output_float): Handling the "F0.d" format similarly as
|
|||
|
commercial compilers.
|
|||
|
|
|||
|
2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
* Makefile.am: Added new files.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* aclocal.m4: Regenerate.
|
|||
|
* configure.ac: add checks for signal.h headers file, as well as
|
|||
|
following functions: chdir, strerror, getlogin, gethostname, kill,
|
|||
|
link, symlink, perror, sleep, time.
|
|||
|
* configure: Regenerate.
|
|||
|
* intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
|
|||
|
intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
|
|||
|
intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
|
|||
|
intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
|
|||
|
implementend g77 intrinsics.
|
|||
|
|
|||
|
2005-03-21 Zack Weinberg <zack@codesourcery.com>
|
|||
|
|
|||
|
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
|
|||
|
In all substitutions, leave gcc_version to be expanded by the Makefile.
|
|||
|
* aclocal.m4, configure: Regenerate.
|
|||
|
* Makefile.am: Set gcc_version.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
|
|||
|
2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20257
|
|||
|
* open.c (new_unit): set record length to max_offset rather than
|
|||
|
using a hard-coded limit (which was too low).
|
|||
|
|
|||
|
2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20480
|
|||
|
* write.c (output_float): special check when writing 0.0 with
|
|||
|
EN and ES formats.
|
|||
|
|
|||
|
2005-03-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20124
|
|||
|
* write.c (output_float): Adds a nzero_real variable to store
|
|||
|
the number of leading zeros whatever the format width is. Corrects
|
|||
|
the rounding of numbers less than 10^(-width). Fixes typo in an
|
|||
|
error message. Updates copyright years
|
|||
|
|
|||
|
2005-02-27 Toon Moene <toon@moene.indiv.nluug.nl>
|
|||
|
|
|||
|
* runtime/environ.c: Update copyright years.
|
|||
|
|
|||
|
2005-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
* io/write.c: Update copyright years.
|
|||
|
|
|||
|
2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|||
|
|
|||
|
PR libfortran/20101
|
|||
|
* io/write.c (output_float): Added special check for value 0.0 in
|
|||
|
PE format.
|
|||
|
|
|||
|
2005-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
* io/write.c (output_float): Fix typo in condition.
|
|||
|
|
|||
|
2005-02-25 Peter O'Gorman <peter@pogma.com>
|
|||
|
Toon Moene <toon@moene.indiv.nluug.nl>
|
|||
|
|
|||
|
PR libfortran/17748
|
|||
|
* runtime/environ.c: Remove references to environ.
|
|||
|
(show_variables): remove GFORTRAN_UNBUFFERED_* and
|
|||
|
GFORTRAN_NAME_* because they require environ.
|
|||
|
(pattern_scan): Remove function.
|
|||
|
|
|||
|
2005-02-22 Paul Thomas <paulthomas2@wannado.fr>
|
|||
|
Bud Davis <bdavis@gfortran.org>
|
|||
|
|
|||
|
* io/list_read.c (read_real): Handle separators properly
|
|||
|
in list directed read.
|
|||
|
|
|||
|
2005-02-21 Bud Davis <bdavis@gfortran.org>
|
|||
|
|
|||
|
PR fortran/20086
|
|||
|
* io/transfer.c (write_constant_string): accept an 'h' as
|
|||
|
the start of a hollerith format string.
|
|||
|
|
|||
|
2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|||
|
|
|||
|
PR libfortran/19302
|
|||
|
* intrinsics/c99_functions.c (nextafterf): Special-case infinite
|
|||
|
numbers.
|
|||
|
|
|||
|
2005-02-21 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
* io/write.c (output_float): Typo in error meesage.
|
|||
|
|
|||
|
2005-02-20 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
PR 20085
|
|||
|
* intrinsic/args.c (iargc): Off by 1.
|
|||
|
|
|||
|
2005-02-19 Steven G. Kargl <kargls@comcast.net>
|
|||
|
|
|||
|
* intrinsic/date_and_time.c: Fix conformance problems.
|
|||
|
|
|||
|
2005-02-01 Paul Thomas <paulthomas2@wanadoo.fr>
|
|||
|
|
|||
|
PR libfortran/19363
|
|||
|
PR libfortran/19691
|
|||
|
* libgfortran.h (isfinite): Work around broken isfinite(x) in Cygwin.
|
|||
|
|
|||
|
2005-01-30 Bud Davis <bdavis@gfortran.org>
|
|||
|
|
|||
|
PR fortran/19647
|
|||
|
* io/inquire.c (inquire_via_unit): Use correct variable for
|
|||
|
pad.
|
|||
|
|
|||
|
2005-01-29 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/19595
|
|||
|
* io/transfer.c (data_transfer_init): eor requires advance="NO".
|
|||
|
|
|||
|
2005-01-25 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
PR libfortran/19524
|
|||
|
* io/read.c (read_f): Don't free uninitialized pointer.
|
|||
|
|
|||
|
2005-01-23 James A. Morrison <phython@gcc.gnu.org>
|
|||
|
Paul Brook <paul@codesourcery.com>
|
|||
|
|
|||
|
PR fortran/19294
|
|||
|
* Makefile.am: Add transpose_c4.c and transpose_c8.c.
|
|||
|
* intrinsics/cshift0.c: Use separate optimized loops for complex types.
|
|||
|
* m4/transpose.m4: Include type letter in function name.
|
|||
|
* Makefile.in: Regenerate.
|
|||
|
* generated/transpose_*.c: Regenerate.
|
|||
|
|
|||
|
2005-01-22 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/19451
|
|||
|
* io/transfer.c (finalize_transfer): Don't do anything if
|
|||
|
there is an error condition.
|
|||
|
|
|||
|
2005-01-22 David Edelsohn <edelsohn@gnu.org>
|
|||
|
|
|||
|
PR libfortran/19052
|
|||
|
* 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.
|
|||
|
|
|||
|
2005-01-22 Thomas Koenig <Thomas.Koenig@online.de>
|
|||
|
|
|||
|
PR libfortran/18982
|
|||
|
* io/unix.c (regular_file): No need to change flags->action
|
|||
|
if an error occurs. Document this.
|
|||
|
No need to call stat() for STATUS_OLD, open() will
|
|||
|
fail anyway.
|
|||
|
For ACTION_UNSPECIFIED, try open for read-write, then for
|
|||
|
read-only if open fails with EACCES, then for write-only
|
|||
|
if that fails with EACCES again.
|
|||
|
* io/unix.c (open_external): Document changed behavior of
|
|||
|
regular_file.
|
|||
|
|
|||
|
2005-01-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
|||
|
|
|||
|
PR fortran/19194
|
|||
|
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
|
|||
|
use CHARACTER macro for definition of string valued paramters.
|
|||
|
|
|||
|
2005-01-22 Bud Davis <bdavis9659@comcast.net>
|
|||
|
|
|||
|
PR fortran/19314
|
|||
|
* io/inquire.c(inquire_via_unit): implement POSITION=.
|
|||
|
* io/transfer.c(next_record): update position for
|
|||
|
INQUIRE.
|
|||
|
* io/rewind.c(st_rewind): update position for
|
|||
|
INQUIRE.
|
|||
|
|
|||
|
2005-01-16 Bud Davis <bdavis9659@comcast.net>
|
|||
|
|
|||
|
PR fortran/18778
|
|||
|
* io/transfer.c (us_read): no bytes available is not a
|
|||
|
runtime error.
|
|||
|
|
|||
|
2005-01-15 Bud Davis <bdavis9659@comcast.net>
|
|||
|
|
|||
|
PR fortran/18983
|
|||
|
* io/transfer.c (st_write_done): only truncate when it
|
|||
|
is required.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
2005-01-07 Bud Davis <bdavis9659@comcast.net>
|
|||
|
|
|||
|
PR fortran/18398
|
|||
|
* transfer.c (next_record_r): always skip the
|
|||
|
eol search if it was found during sf_read.
|
|||
|
|
|||
|
|
|||
|
Copyright (C) 2005 Free Software Foundation, Inc.
|
|||
|
|
|||
|
Copying and distribution of this file, with or without modification,
|
|||
|
are permitted in any medium without royalty provided the copyright
|
|||
|
notice and this notice are preserved.
|