blob: 5fc717d15a9ae5ee46cb89b161bc64da49b30a54 [file] [log] [blame]
2014-11-28 Bernd Schmidt <>
(gfor_io_src, gfor_heper_src, gfor_src): Split into minimal and
always included sources.
* Regenerate.
* configure: Regenerate.
* caf/single.c (caf_runtime_error): Don't print messages if
* runtime/compile_options.c (fatal_error_in_progress,
show_signal, backtrace_handler, maybe_find_addr2line): Guard with
(set_options): Likewise for the backtrace code.
* runtime/minimal.c: New file.
2014-11-25 Uros Bizjak <>
* intrinsics/env.c (getenv): Remove unused variable res_len.
2014-11-24 John David Anglin <>
* Guard include of <ieeefp.h>.
* configure: Rebuilt.
2014-11-21 H.J. Lu <>
PR bootstrap/63784
* configure: Regenerated.
2014-11-16 Janne Blomqvist <>
PR libfortran/60324
* intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
macro instead of a variable.
(random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
related changes.
(random_seed_i8): KISS_SIZE related changes.
2014-11-13 Marek Polacek <>
* intrinsics/access.c: Include <stdlib.h>.
* intrinsics/chdir.c: Likewise.
* intrinsics/chmod.c: Likewise.
* intrinsics/link.c: Likewise.
* intrinsics/perror.c: Likewise.
* intrinsics/rename.c: Likewise.
* intrinsics/symlnk.c: Likewise.
* intrinsics/unlink.c: Likewise.
2014-11-13 Janne Blomqvist <>
PR libfortran/60324
* configure: Regenerated.
* (AM_CFLAGS): Add Werror=vla.
* libgfortran.h (gfc_alloca): Remove macro.
(fc_strdup_notrim): New prototype.
* intrinsics/access.c (access_func): Use fc_strdup rather than
stack allocation.
* intrinsics/chdir.c (chdir_i4_sub): Likewise.
(chdir_i8_sub): Likewise.
* intrinsics/chmod.c (chmod_internal): New function, move logic
(chmod_func): Call chmod_internal.
* intrinsics/env.c (getenv): Use fc_strdup rather than stack
(get_environment_variable_i4): Likewise.
* intrinsics/execute_command_line.c (execute_command_line):
* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
rather than VLA.
(hostnm_i4_sub): Call hostnm_0.
(hostnm_i8_sub): Likewise.
(hostnm): Likewise.
* intrinsics/link.c (link_internal): New function, use fc_strdup
rather than stack allocation.
(link_i4_sub): Call link_internal.
(link_i8_sub): Likewise.
(link_i4): Likewise.
(link_i8): Likewise.
* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/random.c (random_seed_i4): Use static buffer rather
than VLA, use _Static_assert to make sure it's big enough.
* intrinsics/rename.c (rename_internal): New function, use
fc_strdup rather than stack allocation.
(rename_i4_sub): Call rename_internal.
(rename_i8_sub): Likewise.
(rename_i4): Likewise.
(rename_i8): Likewise.
* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
stack allocation.
(stat_i8_sub_0): Likewise.
* intrinsics/symlink.c (symlnk_internal): New function, use
fc_strdup rather than stack allocation.
(symlnk_i4_sub): Call symlnk_internal.
(symlnk_i8_sub): Likewise.
(symlnk_i4): Likewise.
(symlnk_i8): Likewise.
* intrinsics/system.c (system_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/unlink.c (unlink_i4_sub): Likewise.
* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* io/read.c (read_f): Likewise.
* io/transfer.c (MAX_READ): Make it a macro rather than variable.
(WRITE_CHUNK): Likewise.
* io/write_float.def (write_float): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* runtime/string.c (fc_strdup_notrim): New function.
2014-11-11 Francois-Xavier Coudert <>
PR target/63610
* configure: Regenerate.
2014-11-10 Janne Blomqvist <>
PR libfortran/47007
PR libfortran/61847
* Regenerated.
* configure: Regenerated.
* (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
* io/io.h (locale.h): Include.
(xlocale.h): Include if present.
(c_locale): New variable.
(old_locale): New variable.
(old_locale_ctr): New variable.
(old_locale_lock): New variable.
(st_parameter_dt): Add old_locale member.
* io/transfer.c (data_transfer_init): Set locale to "C" if doing
formatted transfer.
(finalize_transfer): Reset locale to previous.
* io/unit.c (c_locale): New variable.
(old_locale): New variable.
(old_locale_ctr): New variable.
(old_locale_lock): New variable.
(init_units): Init c_locale, init old_locale_lock.
(close_units): Free c_locale.
* runtime/error.c (locale.h): Include.
(xlocale.h): Include if present.
(gf_strerror): Use strerror_l if available. Reset locale to
LC_GLOBAL_LOCALE for strerror_r branch.
2014-10-20 Janne Blomqvist <>
PR libfortran/63589
* Check for strtok_r.
* runtime/main.c (gfstrtok_r): Fallback implementation of
(find_addr2line): Use strtok_r to split PATH.
* Regenerated.
* configure: Regenerated.
2014-10-09 Francois-Xavier Coudert <>
* ieee/ieee_helper.c (ieee_is_finite_*, ieee_is_nan_*,
ieee_is_negative_*, ieee_is_normal_*, ieee_copy_sign_*,
ieee_unordered_*, ieee_logb_*, ieee_rint_*, ieee_scalb_*,
ieee_rem_*, ieee_next_after_*): Remove functions.
* (GFORTRAN_1.5): Remove corresponding symbols.
2014-10-05 Jerry DeLisle <>
PR libgfortran/63460
* io/unit.c (init_units): Initialize the DELIM flag to
UNSPECIFIED for the STDIN unit so that the flag is
correctly set later.
2014-10-01 Janne Blomqvist <>
* intrinsics/pack_generic.c (pack_s_internal): Fix
-Wmaybe-uninitialized warning.
* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
(unpack1_'rtype_code`): Likewise.
* generated/unpack_*.m4: Regenerated.
2014-09-30 Janne Blomqvist <>
* (AM_CFLAGS): Add
* Regenerated.
* aclocal.m4: Regenerated.
* configure: Regenerated.
2014-09-25 Tobias Burnus <>
* caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
* caf/single.c (_gfortran_caf_co_broadcast): New.
2014-09-18 Janne Blomqvist <>
PR libfortran/62768
* io/inquire.c (inquire_via_unit): Use gfc_unit.filename also when
HAVE_TTYNAME{_R} is not defined.
2014-09-17 Janne Blomqvist <>
PR libfortran/62768
* io/io.h (gfc_unit): Store C string for the filename.
* io/close.c (st_close): Use gfc_unit.filename.
* io/inquire.c (inquire_via_unit): Likewise.
* io/open.c (new_unit): Likewise.
(already_open): Likewise, unlink file before freeing filename.
* io/unit.c (init_units): Likewise.
(close_unit_1): Likewise.
(filename_from_unit): Likewise.
* io/unix.c (compare_file_filename): Likewise.
(find_file0): Likewise.
(delete_file): Likewise.
2014-09-10 Janne Blomqvist <>
* io/transfer.c (read_block_form): Fix pad status check (found by
Thomas Schwinge with -Wlogical-not-parentheses).
2014-08-31 Tobias Burnus <>
* caf/libcaf.h (_gfortran_caf_send, _gfortran_caf_get,
_gfortran_caf_sendget): Update prototype.
* caf/single.c (_gfortran_caf_send, _gfortran_caf_get,
_gfortran_caf_sendget): Handle may_require_tmp.
2014-08-20 Steven G. Kargl <>
PR libgfortran/62188
* m4/bessel.m4: Avoid indexing off the end of an array.
* generated/bessel_r10.c: Regenerated.
* generated/bessel_r16.c: Ditto.
* generated/bessel_r4.c: Ditto.
* generated/bessel_r8.c: Ditto.
2014-08-14 Tobias Burnus <>
* caf/libcaf.h (caf_register_t): Update for critical.
(_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
(_gfortran_caf_lock, _gfortran_caf_unlock): Add.
* caf/single.c (_gfortran_caf_register): Handle locking
(_gfortran_caf_sendget): Re-name args for consistency.
(_gfortran_caf_lock, _gfortran_caf_unlock): Add.
2014-08-04 Jakub Jelinek <>
* runtime/memory.c (xmallocarray): Avoid division for the common case.
2014-07-20 Jerry DeLisle <>
PR libgfortran/61632
* io/format.c (format_error): Avoid invalid string pointer by
using the fortran string length values to generate error string.
(parse_format): Allocate the null terminator for the format
2014-07-12 Tobias Burnus <>
* caf/libcaf.h (_gfortran_caf_atomic_define,
_gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
_gfortran_caf_atomic_cas): New prototypes.
* caf/single.c (_gfortran_caf_atomic_define,
_gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
_gfortran_caf_atomic_cas): New functions.
2014-07-10 Francois-Xavier Coudert <>
* config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
support_fpu_rounding_mode): Clean up, mark unreachable code as such.
2014-07-09 Francois-Xavier Coudert <>
* libgfortran.h (support_fpu_underflow_control,
get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
* config/fpu-*.h (support_fpu_underflow_control,
get_fpu_underflow_mode, set_fpu_underflow_mode):
New functions.
* ieee/ieee_arithmetic.F90: Support underflow control.
2014-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
FP_RM, FP_RZ unconditionally.
(set_fpu_rounding_mode): Likewise.
2014-07-07 Francois-Xavier Coudert <>
* libgfortran.h: Assume __GNUC__.
2014-07-07 Francois-Xavier Coudert <>
* runtime/stop.c: Use C11 _Noreturn.
* libgfortran.h: Use C11 _Noreturn in prototypes.
* intrinsics/c99_functions.c: ... here.
2014-07-07 Francois-Xavier Coudert <>
* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
config/fpu-glibc.h: Use static assertions.
2014-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure, Regenerate.
* config/fpu-sysv.h: Include <assert.h>.
2014-07-02 Francois-Xavier Coudert <>
* config/fpu-glibc.h: Fix comment about FE_DENORMAL.
2014-07-02 Uros Bizjak <>
* (ieee_flags): Add -mieee for alpha*.
* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
2014-06-29 Francois-Xavier Coudert <>
* config/fpu-387.h (my_fenv_t): Amend structure so it also works
on mingw32.
2014-06-28 Jerry DeLisle <>
PR libgfortran/61640
* io/list_read.c (next_char_internal): Adjust the read length to
a single wide character. (eat_spaces): Add missing paren.
* io/unix.c (mem_read4): Use the correct mem_alloc function for
wide character internal reads.
2014-06-28 Francois-Xavier Coudert <>
PR fortran/29383
* Add checks for IEEE support, rework priorities.
* Define IEEE_SUPPORT, check for fpsetsticky and
* configure: Regenerate.
* Build new ieee files, install IEEE_* modules.
* Regenerate.
* (GFORTRAN_1.6): Add new symbols.
* libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
* config/fpu-*.h (get_fpu_trap_exceptions,
set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
set_fpu_state): New functions.
* ieee/ieee_features.F90: New file.
* ieee/ieee_exceptions.F90: New file.
* ieee/ieee_arithmetic.F90: New file.
* ieee/ieee_helper.c: New file.
2014-06-26 Jerry DeLisle <>
PR libgfortran/61499
* io/list_read.c (eat_spaces): Use a 'for' loop instead of
'while' loop to skip the loop if there are no bytes left in the
string. Only seek if actual spaces can be skipped.
2014-06-25 Tobias Burnus <>
* caf/single.c (assign_char4_from_char1, assign_char1_from_char4,
convert_type): New static functions.
(_gfortran_caf_get, _gfortran_caf_send): Use them.
2014-06-19 Tobias Burnus <>
* caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
_gfortran_caf_co_min): Fix stat setting.
2014-06-17 Tobias Burnus <>
* caf/libcaf.h (gfc_descriptor_t): New typedef.
(caf_vector_t): Update.
(_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
Remove vector-subscript argument.
(_gfortran_caf_co_send, _gfortran_caf_co_get,
_gfortran_caf_co_sendget): New.
* caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
_gfortran_caf_co_min): Remove vector-subscript argument.
(_gfortran_caf_co_send, _gfortran_caf_co_get,
_gfortran_caf_co_sendget): New.
2014-06-17 Janne Blomqvist <>
* libgfortran.h (xmallocarray): New prototype.
* runtime/memory.c (xmallocarray): New function.
(xcalloc): Check for nonzero separately instead of multiplying.
* generated/*.c: Regenerated.
* intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
* intrinsics/eoshift0.c (eoshift0): Likewise.
* intrinsics/eoshift2.c (eoshift2): Likewise.
* intrinsics/pack_generic.c (pack_internal): Likewise.
(pack_s_internal): Likewise.
* intrinsics/reshape_generic.c (reshape_internal): Likewise.
* intrinsics/spread_generic.c (spread_internal): Likewise.
(spread_internal_scalar): Likewise.
* intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
(string_minmax): Likewise.
* intrinsics/transpose_generic.c (transpose_internal): Likewise.
* intrinsics/unpack_generic.c (unpack_internal): Likewise.
* io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
* io/transfer.c (st_set_nml_var): Call xmallocarray instead of
* io/unit.c (get_internal_unit): Likewise.
(filename_from_unit): Don't cast xmalloc return value.
* io/write.c (nml_write_obj): Likewise, formatting.
* m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
instead of xmalloc.
(besse_yn_r'rtype_kind`): Likewise.
* m4/cshift1.m4 (cshift1): Likewise.
* m4/eoshift1.m4 (eoshift1): Likewise.
* m4/eoshift3.m4 (eoshift3): Likewise.
* m4/iforeach.m4: Likewise.
* m4/ifunction.m4: Likewise.
* m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
* m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
* m4/matmul.m4 (matmul_'rtype_code`): Likewise.
* m4/matmull.m4 (matmul_'rtype_code`): Likewise.
* m4/pack.m4 (pack_'rtype_code`): Likewise.
* m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
* m4/shape.m4 (shape_'rtype_kind`): Likewise.
* m4/spread.m4 (spread_'rtype_code`): Likewise.
(spread_scalar_'rtype_code`): Likewise.
* m4/transpose.m4 (transpose_'rtype_code`): Likewise.
* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
(unpack1_'rtype_code`): Likewise.
* runtime/convert_char.c (convert_char1_to_char4): Likewise.
(convert_char4_to_char1): Simplify.
* runtime/environ.c (init_unformatted): Call xmallocarray instead
of xmalloc.
* runtime/in_pack_generic.c (internal_pack): Likewise.
2014-06-15 Francois-Xavier Coudert <>
PR libfortran/60468
* Include <math.h> when checking for fp_except_t
and fp_rnd_t types.
* configure: Regenerate.
2014-06-08 Janne Blomqvist <>
PR libfortran/56981
* io/unix.h (struct stream_vtable): Add new member function,
(smarkeor): New inline function.
(flush_if_unbuffered): Remove prototype.
* io/unix.c (raw_markeor): New function.
(raw_vtable): Initialize markeor member.
(buf_markeor): New function.
(buf_vtable): Initialize markeor member.
(mem_vtable): Likewise.
(mem4_vtable): Likewise.
(flush_if_unbuffered): Remove function.
* io/transfer.c (next_record): Call smarkeor instead of
2014-05-27 Uros Bizjak <>
* intrinsics/getcwd.c: Include stdlib.h.
2014-05-26 Janne Blomqvist <>
* libgfortran.h (xrealloc): New prototype.
* runtime/memory.c (xrealloc): New function.
* io/fbuf.c (fbuf_alloc): Use xrealloc.
* io/list_read.c (push_char_default): Likewise.
(push_char4): Likewise.
2014-05-26 Janne Blomqvist <>
PR libfortran/61310
* intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
instead of strftime.
(fdate): Use gf_ctime.
(fdate_sub): Likewise.
(ctime): Likewise.
(ctime_sub): Likewise.
2014-05-26 Jerry DeLisle <>
PR libgfortran/55117
* io/list_read.c (extended_look_ahead): New helper function to
scan the namelist name and look for matches with the new '+'
extended type parent indicator. (str_comp_extended): New
helper function to compare the namelist name with the varname
namelist. (find_nml_name): Use the new helper functions to match
the extended type varnames.
2014-05-23 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/61173
* io/list_read.c (eat_spaces): If the next character pointed to
is a space, don't seek, must be at the end.
2014-05-23 Hans-Peter Nilsson <>
* [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
* configure: Regenerate.
2014-05-23 Janne Blomqvist <>
PR libfortran/60324
* runtime/string.c: Include stdlib.h.
2014-05-22 Janne Blomqvist <>
PR libfortran/60324
* Regenerated.
* configure: Regenerated.
* (AC_CHECK_FUNCS_ONCE): Check for strnlen and
* libgfortran.h (fc_strdup): New prototype.
* runtime/string.c (strnlen): New fallback function.
(strndup): New fallback function.
(fc_strdup): New function.
* io/close.c (st_close): Use fc_strdup.
* io/open.c (new_unit): Likewise.
(already_open): Likewise.
* io/unit.c (filename_from_unit): Likewise.
* io/unix.c (unpack_filename): Remove function.
(regular_file): Rename to regular_file2, add path argument.
(regular_file): New function calling regular_file2.
(compare_file_filename): Use fc_strdup.
(find_file): Likewise.
(delete_file): Likewise.
(file_exists): Likewise.
(file_size): Likewise.
(inquire_sequential): Likewise.
(inquire_direct): Likewise.
(inquire_formatted): Likewise.
(inquire_access): Likewise.
* io/unix.h (unpack_filename): Remove prototype.
* runtime/main.c (please_free_exe_path_when_done): Change type to
(store_exe_path): Use malloced buffer, grow as needed.
2014-05-17 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/52539
* io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
and *push_char_fn_ptr.
*io/list_read.c (next_char): Create macro with this name to call
the new function pointer. Split the original next_char function
into three new functions. (next_char_default, next_char_internal,
next_char_utf8): New functions. (push_char): Create macro with
this name to call new function pointer. Split the original
push_char into three new functions. (push_char_default,
push_char_internal, push_char4): New functions. (set_workers):
New function to initilize the function pointers depending on the
type of IO to be performed. (list_formatted_read_scalar): Use
set_workers function. (finish_list_read): Likewise.
(namelist_read): Likewise.
(nml_get_obj_data): Use push_char_default.
2014-05-16 Janne Blomqvist <>
PR libfortran/61187
* io/unix.c (raw_close): Check if s->fd is -1.
(fd_to_stream): Check return value of fstat(), handle error.
2014-05-12 Janne Blomqvist <>
PR libfortran/61035
* intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
stack allocation, avoid extra copying in the common case.
2014-05-12 Janne Blomqvist <>
* (AM_CFLAGS): Use -std=gnu11.
(CFLAGS): Likewise.
* configure: Regenerated.
2014-05-11 Tobias Burnus <>
* caf/libcaf.h (_gfortran_caf_num_images): Change type of
second argument to int.
* caf/mpi.c (_gfortran_caf_num_images): Ditto.
* caf/single.c (_gfortran_caf_num_images): Ditto.
2014-05-08 Tobias Burnus <>
* caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
_gfortran_caf_co_min, _gfortran_caf_co_max): Declare
* caf/single.c
2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/61049
* io/list_read.c (list_formatted_read_scalar): Use eat_separator
and delete extraneous code.
2014-04-30 Tobias Burnus <>
* caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
New prototypes.
(_gfortran_caf_init): Change prototype.
(mpi_token_t): New typedef.
(TOKEN): New define.
* caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
New functions.
(_gfortran_caf_init): Update.
(_gfortran_caf_finalize, _gfortran_caf_register,
_gfortran_caf_deregister): Use mpi_token_t.
* caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
New functions.
(_gfortran_caf_init): Update.
(_gfortran_caf_finalize, _gfortran_caf_register,
_gfortran_caf_deregister): Use mpi_token_t, simplify.
2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/52539
* io/list_read.c: Add uchar typedef. (push_char4): New function
to save kind=4 character. (next_char_utf8): New function to read
a single UTF-8 encoded character value. (read_chracter): Update
to use the new functions for reading UTF-8 strings.
(list_formatted_read_scalar): Update to handle list directed
reads of UTF-8 strings. (nml_read_obj): Likewise update for
UTF-8 strings in namelists.
* io/write.c (nml_write_obj): Add kind=4 character support for
namelist writes.
2014-04-24 Kyrylo Tkachov <>
* Quote usage of ac_cv_func_clock_gettime in if test.
* configure: Regenerate.
2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
2014-04-11 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60810
io/unit.c (is_trim_ok): If internal unit is array, do not trim.
2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60148
* io/transfer.c (data_transfer_init): If std= was specified, set
delim status to DELIM_NONE of no other was specified.
2014-03-18 Ulrich Weigand <>
* Check for presence of fcntl.
* configure: Regenerate.
* Regenerate.
* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
2014-03-17 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/48600
* io/list_read.c (list_formatted_read_scalar): Do not use
eat_separator. Explicitly set the comma and end-of-line flags.
Check for END condition from finish_separator.
2014-03-15 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/58324
* io/list_read.c (finish_list_read): Read one character to check
for the end of the file. If it is the end, then issue the file
end error message. If not, use eat_line to reach the end
without giving error. The next attempt to read will then
issue the error as described above.
2014-03-12 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/38199
* io/read.c (read_decimal): Quickly skip spaces to avoid calls
to next_char.
* io/unit.c (is_trim_ok): New helper function to check various
conditions to see if its OK to trim the internal unit string.
(get_internal_unit): Use LEN_TRIM to shorten selected internal
unit strings for optimizing READ. Enable this optimization for
formatted READ.
* io/list_read.c (finish_list_read): Don't call eat_line for
internal units.
2014-03-08 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/38199
* io/list_read.c (next_char): Mark unlikely error checks.
(eat_spaces): For character array reading, skip ahead over
spaces rather than call next_char multiple times.
2014-03-08 Tobias Burnus <>
* libgfortran.h (unlikely, likely): Add usage comment.
2014-03-08 Dominique d'Humieres <>
PR libgfortran/60128
* io/write_float.def (output_float): Remove unused variable
nzero_real. Replace a double space with a single one.
(determine_en_precision): Fix wrong handling of the EN format.
2014-03-03 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60148
* io/inquire.c (inquire_via_unit): In the case of
DELIM_UNSPECIFIED set inquire return string to "NONE".
* io/list_read.c (read_character): In the case of DELIM_NONE and
namelists, complete the character read using the namelist
variable length.
* io/open.c (new_unit): Don't set delim status to none if not
specified so that DELIM_UNSPECIFIED can be used later.
* io/transfer.c (data_transfer_init): For namelist I/O, if the
unit delim status is unspecified set the current status to quote.
Otherwise, set current status to the unit status.
* io/unit.c (get_internel_unit, init_unit): Remember to set
flags_delim initially to DELIM_UNSPECIFIED so defaults come out
* io/write.c (write_character): Add a new function argument
"mode" to signify that raw output is to be used vs output with
delimiters. If the mode is set to DELIM (1) proceed with
delimiters. (list_formatted_write_scalar): Write the separator
only if a delimiter was previously specified. Update the call to
write_character with the mode argument given.
(namelist_write_newline): Use the mode argument. (nml_write_obj):
Use the mode argument. Remove use of tmp_delim. Write the
semi-colon or comma correctly only when needed with using
delimiters. Cleanup whitespace.
(namelist_write): If delim is not specified in namelist I/O,
default to using quotes. Get rid of the tmp_delim variable and
use the new mode argument in write_character.
2014-02-21 Tobias Burnus <>
PR fortran/60286
* libgfortran/io/inquire.c (yes, no): New static const char vars.
(inquire_via_unit): Use them. Use OPEN mode instead of using
POSIX's access to query about write=, read= and readwrite=.
2014-01-20 Jerry DeLisle <jvdelisle@gcc.gnu>
Dominique d'Humieres <>
* io/write_float.def (output_float): Remove inadvertent test
code from previous patch.
2014-01-19 Jerry DeLisle <jvdelisle@gcc.gnu>
Dominique d'Humieres <>
PR libfortran/59771
PR libfortran/59774
PR libfortran/59836
* io/write_float.def (output_float): Fix wrong handling of the
Fw.0 format.
(output_float_FMT_G_): Fixes rounding issues with -m32.
2014-01-11 Jerry DeLisle <jvdelisle@gcc.gnu>
Dominique d'Humieres <>
Steven G. Kargl <>
PR libfortran/59700
PR libfortran/59764
* io/io.h (struct st_parameter_dt): Assign expanded_read flag to
unused bit. Define new variable line_buffer_pos.
* io/list_read.c (free_saved, next_char, l_push_char,
read_logical, read_real): Replace use of item_count with
line_buffer_pos for line_buffer look ahead.
(read_logical, read_integer, parse_real, read_real, check_type):
Adjust location of free_line to after generating error messages
to retain the correct item count for the message.
2014-01-02 Richard Sandiford <>
Update copyright years
Copyright (C) 2014 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.