Commit Graph

1522 Commits

Author SHA1 Message Date
John David Anglin
67c4c16420 configure.ac: Guard include of <ieeefp.h>.
* configure.ac: Guard include of <ieeefp.h>.
	* configure: Rebuilt.

From-SVN: r218032
2014-11-24 23:27:36 +00:00
H.J. Lu
a699d67255 Always use PIC option with -shared in libtool
Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/63784
	* configure: Regenerated.

From-SVN: r217937
2014-11-21 08:49:17 -08:00
Janne Blomqvist
cb9365ac6a PR 60324 VLA related fixes to random number generator.
2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>

	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.

From-SVN: r217623
2014-11-16 03:56:54 +02:00
Marek Polacek
47bf94b79a access.c: Include <stdlib.h>.
* 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.

From-SVN: r217514
2014-11-13 18:07:44 +00:00
Janne Blomqvist
581d232670 PR 60324 Unbounded stack allocations in libgfortran.
2014-11-13  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* configure: Regenerated.
	* configure.ac (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
	here.
	(chmod_func): Call chmod_internal.
	* intrinsics/env.c (getenv): Use fc_strdup rather than stack
	allocation.
	(get_environment_variable_i4): Likewise.
	* intrinsics/execute_command_line.c (execute_command_line):
	Likewise.
	* 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.

From-SVN: r217480
2014-11-13 14:05:01 +02:00
Francois-Xavier Coudert
ebf6d33b73 re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14))
toplevel:
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* libtool.m4: Fix globbing of darwin versions.

boehm-gc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

gcc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libatomic/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libbacktrace/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libcc1/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libcilkrts/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libffi/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libgfortran/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libgomp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libitm/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libobjc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libquadmath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libsanitizer/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libssp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libstdc++-v3/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libvtv/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

lto-plugin/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libjava/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libjava/classpath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

zlib/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

From-SVN: r217366
2014-11-11 20:25:18 +00:00
Janne Blomqvist
9cbecd06be PR 47007 and 61847 Locale failures in libgfortran.
2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/47007
	PR libfortran/61847
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
	(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
	strerror_l.
	* 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-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/47007
	PR libfortran/61847
	* gfortran.texi: Add note about locale issues to thread-safety
	section.

From-SVN: r217273
2014-11-10 02:17:16 +02:00
Janne Blomqvist
70480968b4 PR 63589 Fix splitting of PATH in find_addr2line.
2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/63589
	* configure.ac: Check for strtok_r.
	* runtime/main.c (gfstrtok_r): Fallback implementation of
	strtok_r.
	(find_addr2line): Use strtok_r to split PATH.
	* config.h.in: Regenerated.
	* configure: Regenerated.

From-SVN: r216449
2014-10-20 10:53:37 +03:00
Francois-Xavier Coudert
3b7ea188c0 f95-lang.c (gfc_init_builtin_functions): Add more floating-point built-ins.
* f95-lang.c (gfc_init_builtin_functions): Add more floating-point
	built-ins.
	* mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
	remainder, rint and signbit.
	* trans-decl.c (save_fp_state, restore_fp_state): Move to
	trans-intrinsic.c
	(gfc_generate_function_code): Use new names for these two functions.
	* trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
	emit code from the front-end.
	* trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
	conv_ieee_function_args, conv_intrinsic_ieee_builtin,
	conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
	conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
	conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
	conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
	New functions.
	* trans.h (gfc_conv_ieee_arithmetic_function,
	gfc_save_fp_state, gfc_restore_fp_state): New prototypes.

	* 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.map (GFORTRAN_1.5): Remove corresponding symbols.

From-SVN: r216036
2014-10-09 09:47:25 +00:00
Jerry DeLisle
c0c8f05093 re PR libfortran/63460 (Some namelists cannot be read from stdin (unit 5): Fortran runtime error: End of file)
2014-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        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.

From-SVN: r215908
2014-10-05 21:11:37 +00:00
Janne Blomqvist
47f233ef24 Fix typo in ChangeLog
From-SVN: r215743
2014-10-01 00:23:40 +03:00
Janne Blomqvist
b95216f778 Fix -Wmaybe-uninitialized warnings.
2014-10-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* 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.

From-SVN: r215742
2014-10-01 00:15:58 +03:00
Janne Blomqvist
6c02304107 Add -Werror=implicit-function-declaration to AM_CFLAGS.
2014-09-30  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac (AM_CFLAGS): Add
	-Werror=implicit-function-declaration.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* configure: Regenerated.

From-SVN: r215741
2014-09-30 23:05:33 +03:00
Tobias Burnus
a16ee37946 check.c (check_co_collective): Renamed from
2014-09-25  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Renamed from
        * check_co_minmaxsum,
        handle co_reduce.
        (gfc_check_co_minmax, gfc_check_co_sum): Update call.
        (gfc_check_co_broadcast, gfc_check_co_reduce): New.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
        GFC_ISYM_CO_REDUCE.
        * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
        * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
        proto types.
        * intrinsic.texi (CO_BROADCAST): Add.
        * trans.h (gfor_fndecl_co_broadcast): New.
        * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
        (gfc_build_builtin_function_decls): Add decl for it,
        * trans-intrinsic.c (conv_co_collective): Renamed from
        conv_co_minmaxsum. Handle co_reduce.
        (gfc_conv_intrinsic_subroutine): Handle co_reduce.

gcc/testsuite/
        * gfortran.dg/coarray/collectives_3.f90: New.
        * gfortran.dg/coarray_collectives_9.f90: New.
        * gfortran.dg/coarray_collectives_10.f90: New.
        * gfortran.dg/coarray_collectives_11.f90: New.
        * gfortran.dg/coarray_collectives_12.f90: New.

libgfortran/
        * caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
        * caf/single.c (_gfortran_caf_co_broadcast): New.

From-SVN: r215579
2014-09-25 08:07:15 +02:00
Janne Blomqvist
f5aa660f90 Fix indentation
From-SVN: r215340
2014-09-18 00:59:09 +03:00
Janne Blomqvist
010718fc37 PR libfortran/62768 Use gfc_unit.filename also when HAVE_TTYNAME{_R} is not defined.
2014-09-18  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/62768
	* io/inquire.c (inquire_via_unit): Use gfc_unit.filename also when
	HAVE_TTYNAME{_R} is not defined.

From-SVN: r215338
2014-09-18 00:44:15 +03:00
Janne Blomqvist
0e05c303e5 PR libfortran/62768 Handle filenames with embedded null characters.
testsuite ChangeLog:

2014-09-17  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/62768
	* gfortran.dg/filename_null.f90: New test.

libgfortran ChangeLog:

2014-09-17  Janne Blomqvist  <jb@gcc.gnu.org>

	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.

From-SVN: r215307
2014-09-17 00:40:28 +03:00
Janne Blomqvist
00c7a3c72a Fix pad status check.
2014-09-10  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/transfer.c (read_block_form): Fix pad status check (found by
	Thomas Schwinge with -Wlogical-not-parentheses).

From-SVN: r215092
2014-09-10 00:23:25 +03:00
Tobias Burnus
93e2e0465e trans-decl.c (gfc_build_builtin_function_decls): Add may_require_tmp dummy argument.
2014-08-31  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * trans-decl.c (gfc_build_builtin_function_decls): Add
        may_require_tmp dummy argument.
        * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
        conv_caf_send): Handle may_require_tmp argument.
        (gfc_conv_intrinsic_function): Update call.
        * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
        _gfortran_caf_sendget): Update interface description.

gcc/testsuite/
        * gfortran.dg/coarray_lib_comm_1.f90: New.

libgfortran/
        * 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.

From-SVN: r214764
2014-08-31 08:32:06 +02:00
Steven G. Kargl
0d43a91d22 re PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)
2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	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.

From-SVN: r214229
2014-08-20 16:18:27 +00:00
Tobias Burnus
bc0229f9f6 gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
gcc/fortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
        (_gfortran_caf_register): Update for locking/critical.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
        * resolve.c (resolve_critical): New.
        (gfc_resolve_code): Call it.
        * trans-decl.c (gfor_fndecl_caf_critical,
        gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
        (gfc_build_builtin_function_decls): Remove critical,
        assign locking declarations.
        (generate_coarray_sym_init): Handle locking and
        critical variables.
        * trans-stmt.c (gfc_trans_critical): Add calls to
        lock/unlock libcaf functions.
        * trans.h (gfc_coarray_type): Update locking, add
        critical enum values.
        (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.

libgfortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * 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
        variables.
        (_gfortran_caf_sendget): Re-name args for consistency.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.

From-SVN: r213979
2014-08-14 20:39:15 +02:00
Jakub Jelinek
62c986afde * runtime/memory.c (xmallocarray): Avoid division for the common case.
From-SVN: r213593
2014-08-04 17:46:33 +02:00
Jerry DeLisle
dbb400d707 re PR fortran/61632 (Improve error locus on large format strings)
2014-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	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
	string.

From-SVN: r212875
2014-07-20 20:03:41 +00:00
Tobias Burnus
42a8246dbd libgfortran.h (libcaf_atomic_codes): Add.
2014-07-12  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * libgfortran.h (libcaf_atomic_codes): Add.
        * trans-decl.c (gfor_fndecl_caf_atomic_def,
        gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
        gfor_fndecl_caf_atomic_op): New variables.
        (gfc_build_builtin_function_decls): Initialize them.
        * trans.h (gfor_fndecl_caf_atomic_def,
        gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
        gfor_fndecl_caf_atomic_op): New variables.
        * trans-intrinsic.c (conv_intrinsic_atomic_op,
        conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
        Add library calls with -fcoarray=lib.

libgfortran/
        * 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.

From-SVN: r212484
2014-07-12 21:02:57 +02:00
Francois-Xavier Coudert
56710419ba fpu-*.h (get_fpu_rounding_mode, [...]): Clean up, mark unreachable code as such.
* config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
	support_fpu_rounding_mode): Clean up, mark unreachable code as such.

From-SVN: r212423
2014-07-10 08:45:38 +00:00
Francois-Xavier Coudert
f5168e47a8 libgfortran.h (support_fpu_underflow_control, [...]): New prototypes.
* 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.

	* gfortran.dg/ieee/underflow_1.f90: New file.

From-SVN: r212407
2014-07-09 20:32:12 +00:00
Rainer Orth
7f7563747e Use FP_RN etc. unconditionally
* config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
	FP_RM, FP_RZ unconditionally.
	(set_fpu_rounding_mode): Likewise.

From-SVN: r212350
2014-07-08 09:08:49 +00:00
Francois-Xavier Coudert
afe31cdb2c * libgfortran.h: Assume __GNUC__.
From-SVN: r212328
2014-07-07 11:59:27 +00:00
Francois-Xavier Coudert
77777b33a8 stop.c: Use C11 _Noreturn.
* runtime/stop.c: Use C11 _Noreturn.
	* libgfortran.h: Use C11 _Noreturn in prototypes.
	Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
	* intrinsics/c99_functions.c: ... here.

From-SVN: r212327
2014-07-07 09:13:48 +00:00
Francois-Xavier Coudert
a709346f06 fpu-387.h, [...]: Use static assertions.
* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
	config/fpu-glibc.h: Use static assertions.

From-SVN: r212323
2014-07-07 07:47:41 +00:00
Rainer Orth
de51fc1b15 Restore Solaris/SPARC bootstrap
* configure, config.h.in: Regenerate.
	* config/fpu-sysv.h: Include <assert.h>.

From-SVN: r212307
2014-07-05 20:43:07 +00:00
Uros Bizjak
1680a43208 * config/fpu-sysv.h (void set_fpu): Remove stalled comment.
From-SVN: r212235
2014-07-02 18:11:46 +02:00
Francois-Xavier Coudert
4a72ba02f4 * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
From-SVN: r212226
2014-07-02 09:17:04 +00:00
Uros Bizjak
5b0936da94 configure.host (ieee_flags): Add -mieee for alpha*.
libgfortran/ChangeLog:

	* configure.host (ieee_flags): Add -mieee for alpha*.

	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.

testsuite/ChangeLog:

	* gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0.
	* gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add.

From-SVN: r212224
2014-07-02 10:45:08 +02:00
Francois-Xavier Coudert
25ef060ae0 fpu-387.h (my_fenv_t): Amend structure so it also works on mingw32.
* config/fpu-387.h (my_fenv_t): Amend structure so it also works
	on mingw32.

From-SVN: r212126
2014-06-29 19:51:59 +00:00
Jerry DeLisle
9389649842 re PR libfortran/61640 (KIND=4 Character Array Internal Unit Read Fail)
2014-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	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.

From-SVN: r212118
2014-06-29 02:49:45 +00:00
Francois-Xavier Coudert
8b19810222 re PR fortran/29383 (Fortran 2003/F95[TR15580:1999]: Floating point exception (IEEE) support)
PR fortran/29383

gcc/fortran/
	* gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
	* libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
	both C and Fortran.
	* expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
	* simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
	* module.c (mio_symbol): Keep track of symbols which came from
	intrinsic modules.
	(gfc_use_module): Keep track of the IEEE modules.
	* trans-decl.c (gfc_get_symbol_decl): Adjust code since
	we have new intrinsic modules.
	(gfc_build_builtin_function_decls): Build decls for
	ieee_procedure_entry and ieee_procedure_exit.
	(is_from_ieee_module, is_ieee_module_used, save_fp_state,
	restore_fp_state): New functions.
	(gfc_generate_function_code): Save and restore floating-point
	state on procedure entry/exit, when IEEE modules are used.
	* intrinsic.texi: Document the IEEE modules.

libgfortran/
	* configure.host: Add checks for IEEE support, rework priorities.
	* configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
	fpresetsticky.
	* configure: Regenerate.
	* Makefile.am: Build new ieee files, install IEEE_* modules.
	* Makefile.in: Regenerate.
	* gfortran.map (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
	prototypes.
	* 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.

gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_fortran_ieee): 
	New function.
	* gfortran.dg/ieee/ieee.exp: New file.
	* gfortran.dg/ieee/ieee_1.F90: New file.
	* gfortran.dg/ieee/ieee_2.f90: New file.
	* gfortran.dg/ieee/ieee_3.f90: New file.
	* gfortran.dg/ieee/ieee_4.f90: New file.
	* gfortran.dg/ieee/ieee_5.f90: New file.
	* gfortran.dg/ieee/ieee_6.f90: New file.
	* gfortran.dg/ieee/ieee_7.f90: New file.
	* gfortran.dg/ieee/ieee_rounding_1.f90: New file.

From-SVN: r212102
2014-06-28 14:17:41 +00:00
Jerry DeLisle
b896e6744e re PR libfortran/61499 (Internal read of negative integer broken)
2014-06-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	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.

From-SVN: r212059
2014-06-27 04:23:36 +00:00
Tobias Burnus
5c75088c80 resolve.c (resolve_ordinary_assign): Don't invoke caf_send when assigning a coindexed RHS scalar to a noncoindexed...
2014-06-25  Tobias Burnus  <burnus@net-b.de>

fortran/
        * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
        when assigning a coindexed RHS scalar to a noncoindexed LHS
        array.
        * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
        for a noncoindexed scalar RHS.

gcc/testsuite/
        * gfortran.dg/coarray/coindexed_1.f90: New.

libgfortran/
        * caf/single.c (assign_char4_from_char1,
        * assign_char1_from_char4,
        convert_type): New static functions.
        (_gfortran_caf_get, _gfortran_caf_send): Use them.

From-SVN: r211993
2014-06-25 22:31:32 +02:00
Tobias Burnus
7f6c4159bf trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.
gcc/fortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
        passing.

gcc/testsuite/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/collectives_2.f90: Extend
        and make valid.

libgfortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
        _gfortran_caf_co_min): Fix stat setting.

From-SVN: r211816
2014-06-19 09:16:34 +02:00
Tobias Burnus
b511626828 check.c (gfc_check_atomic, [...]): Use argument for GFC_ISYM_CAF_GET.
gcc/fortran/
2014-06-17  Tobias Burnus  <burnus@net-b.de>

        * check.c (gfc_check_atomic, gfc_check_atomic_def):
        Use argument for GFC_ISYM_CAF_GET.
        * resolve.c (resolve_variable): Enable CAF_GET insertion.
        (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
        (resolve_ordinary_assign): Enable CAF_SEND insertion.
        * trans-const.c (gfc_build_string_const,
        gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
        * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
        gfor_fndecl_caf_sendget): New global variables.
        (gfc_build_builtin_function_decls): Initialize them;
        update co_min/max/sum initialization.
        * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
        get_tree_for_caf_expr and removed static.
        (gfc_conv_procedure_call): Update call.
        * trans-intrinsic.c (caf_get_image_index,
        conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
        get_caf_token_offset, gfc_conv_intrinsic_caf_get,
        conv_caf_send): New.
        (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
        gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
        (conv_co_minmaxsum): Update call for remove unused vector
        subscript.
        (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
        Skip a CAF_GET of the argument.
        * trans-types.c (gfc_get_caf_vector_type): New.
        * trans-types.h (gfc_get_caf_vector_type): New.
        * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
        gfor_fndecl_caf_sendget): New global variables.
        (gfc_get_tree_for_caf_expr): New prototypes.

libgfortran/
2014-06-17  Tobias Burnus  <burnus@net-b.de>

        * 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.

gcc/testsuite/
2014-06-17  Tobias Burnus  <burnus@net-b.de>
            Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>

        * gfortran.dg/coarray/send_array.f90: New.
        * gfortran.dg/coarray/get_array.f90: New.
        * gfortran.dg/coarray/sendget_array.f90: New.
        * gfortran.dg/coarray/collectives_1.f90: Correct subroutine
        names.
        * gfortran.dg/coarray/collectives_2.f90: New.



Co-Authored-By: Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>

From-SVN: r211748
2014-06-17 22:54:14 +02:00
Richard Sandiford
31107d5d29 Rotate ChangeLog for 2013.
From-SVN: r211722
2014-06-17 06:55:59 +03:00
Janne Blomqvist
92e6f3a43e Introduce xmallocarray, an overflow checking variant of xmalloc.
2014-06-17  Janne Blomqvist  <jb@gcc.gnu.org>

	* 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
	xmalloc.
	* 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
	xmalloc.
	* 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):
	Likewise.
	* 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.

From-SVN: r211721
2014-06-17 06:50:34 +03:00
Francois-Xavier Coudert
6faf47517f re PR libfortran/60468 (./fpu-target.h:93:3: error: unknown type name 'choke')
PR libfortran/60468
	* configure.ac: Include <math.h> when checking for
	fp_except_t and fp_rnd_t types.
	* configure: Regenerate.

From-SVN: r211685
2014-06-15 09:44:04 +00:00
Janne Blomqvist
89a862b40a PR 56981 Flush buffer at record boundary if possible.
2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/56981
	* io/unix.h (struct stream_vtable): Add new member function,
	markeor.
	(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
	flush_if_unbuffered.

From-SVN: r211353
2014-06-08 08:43:29 +03:00
Uros Bizjak
d9f99ec416 getcwd.c: Include stdlib.h.
* intrinsics/getcwd.c: Include stdlib.h.

From-SVN: r210962
2014-05-27 11:15:52 +02:00
Janne Blomqvist
d74fd3c72b Introduce xrealloc, use it.
2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	* 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.

From-SVN: r210948
2014-05-26 23:56:45 +03:00
Janne Blomqvist
ab75303f7d PR 61310 Rewrite implementation of CTIME and FDATE intrinsics.
2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61310
	* intrinsics.texi (CTIME): Remove mention of locale-dependent
	behavior.

2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	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.

From-SVN: r210938
2014-05-26 21:17:13 +03:00
Jerry DeLisle
3b111bd757 [multiple changes]
2014-05-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/55117
	* trans-io.c (nml_full_name, transfer_namelist_element): Insert
	a '+' rather then '%' to differentiate namelist variable names
	that are based on extended derived types.

2014-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	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.

From-SVN: r210934
2014-05-26 15:19:36 +00:00
Jerry DeLisle
03c0f19520 re PR libfortran/61173 (Erroneous "end of file" with internal read)
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.

From-SVN: r210898
2014-05-24 19:26:02 +00:00
Hans-Peter Nilsson
ebfedee6d7 configure.ac [...] (HAVE_STRNLEN, [...]): Define.
* configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
	* configure: Regenerate.

From-SVN: r210841
2014-05-23 02:06:40 +00:00
Janne Blomqvist
410e3e10dd PR 60324 Handle long path names, don't use PATH_MAX.
2014-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* runtime/string.c: Include stdlib.h.

From-SVN: r210827
2014-05-23 00:17:29 +03:00
Janne Blomqvist
4269f19c09 PR 60324 Handle long path names, don't use PATH_MAX.
From-SVN: r210738
2014-05-22 06:51:25 +03:00
Jerry DeLisle
d428be77b6 re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
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.

From-SVN: r210574
2014-05-18 02:29:27 +00:00
Janne Blomqvist
870c7fa03a PR 61187 Fix use of uninitialized memory.
2014-05-16  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61187
	* io/unix.c (raw_close): Check if s->fd is -1.
	(fd_to_stream): Check return value of fstat(), handle error.

From-SVN: r210527
2014-05-16 23:37:13 +03:00
Janne Blomqvist
16e60fff0b Fix stack overflow crash in getcwd intrinsic.
2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61035
	* intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
	stack allocation, avoid extra copying in the common case.

From-SVN: r210335
2014-05-12 22:23:11 +03:00
Janne Blomqvist
f7b6856fa4 Use -std=gnu11 instead of -std=gnu99 for libgfortran C code.
2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac (AM_CFLAGS): Use -std=gnu11.
	(CFLAGS): Likewise.
	* configure: Regenerated.

From-SVN: r210334
2014-05-12 22:20:50 +03:00
Tobias Burnus
a9fe68774e trans-intrinsic.c (gfc_build_builtin_function_decls): Change type of second argument to int.
2014-05-11  Tobias Burnus  <burnus@net-b.de>

       * trans-intrinsic.c (gfc_build_builtin_function_decls):
       Change type of second argument to int.

2014-05-11  Tobias Burnus  <burnus@net-b.de>

       * 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.

From-SVN: r210311
2014-05-11 20:25:55 +02:00
Tobias Burnus
d62cf3dfbe check.c (check_co_minmaxsum, [...]): New.
gcc/fortran/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * check.c (check_co_minmaxsum, gfc_check_co_minmax,
        gfc_check_co_sum): New.
        * error.c (gfc_notify_std): Update -std=f2008ts.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
        GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
        * intrinsic.h (gfc_check_co_minmax,
        gfc_check_co_sum): Declare.
        * intrinsic.c (add_subroutines): Add co_min, co_max
        and co_sum.
        (gfc_check_intrinsic_standard): Update text for
        -std=f2008ts.
        * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
        them.
        * invoke.texi (-std=f2008ts): Update wording.
        * trans.h (gfor_fndecl_co_max,
        gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
        * trans-decl.c (gfor_fndecl_co_max,
        gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
        (gfc_build_builtin_function_decls): Assign to it.
        * trans-intrinsic.c (conv_co_minmaxsum): New.
        (gfc_conv_intrinsic_subroutine): Call it.

libgfortran/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
        _gfortran_caf_co_min, _gfortran_caf_co_max): Declare
        * caf/single.c

gcc/testsuite/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_collectives_1.f90: New.
        * gfortran.dg/coarray_collectives_2.f90: New.
        * gfortran.dg/coarray_collectives_3.f90: New.
        * gfortran.dg/coarray_collectives_4.f90: New.
        * gfortran.dg/coarray_collectives_5.f90: New.
        * gfortran.dg/coarray_collectives_6.f90: New.
        * gfortran.dg/coarray/collectives_1.f90: New.
        * gfortran.dg/assumed_rank_5.f90: Update dg-error.
        * gfortran.dg/assumed_type_4.f90: Update dg-error.
        * gfortran.dg/bind_c_array_params.f03: Update dg-error.
        * gfortran.dg/bind_c_usage_28.f90: Update dg-error.
        * gfortran.dg/c_funloc_tests_5.f03: Update dg-error.
        * gfortran.dg/c_funloc_tests_6.f90: Update dg-error.
        * gfortran.dg/c_loc_tests_11.f03: Update dg-error.

From-SVN: r210223
2014-05-08 18:55:23 +02:00
Jerry DeLisle
0222756393 re PR libfortran/61049 (NIST test FM906 fails)
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.

From-SVN: r210134
2014-05-07 01:31:42 +00:00
Tobias Burnus
a8a5f4a972 gfortran.h (gfc_init_coarray_decl): Remove.
2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_init_coarray_decl): Remove.
        * parse.c (translate_all_program_units): Remove call to it.
        (gfc_parse_file): Update call.
        * trans.h (gfor_fndecl_caf_this_image,
        gfor_fndecl_caf_num_images): Add.
        (gfort_gvar_caf_num_images,
        gfort_gvar_caf_this_image): Remove.
        * trans-decl.c (gfor_fndecl_caf_this_image,
        gfor_fndecl_caf_num_images): Add.
        (gfort_gvar_caf_num_images,
        gfort_gvar_caf_this_image): Remove.
        (gfc_build_builtin_function_decls): Init new decl.
        (gfc_init_coarray_dec): Remove.
        (create_main_function): Change calls.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Generate call to new library function
        instead of to a static variable.
        * trans-stmt.c (gfc_trans_sync): Ditto.

2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_this_image_1.f90: New.
        * gfortran.dg/coarray_lib_this_image_2.f90: New.

2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * 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.

From-SVN: r209951
2014-04-30 21:02:23 +02:00
Jerry DeLisle
42c1e008b0 re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
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.

From-SVN: r209828
2014-04-26 21:52:26 +00:00
Kyrylo Tkachov
deb9dd7455 Fix warning in libgfortran configure script
* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
	* configure: Regenerate.

From-SVN: r209747
2014-04-24 11:03:56 +00:00
Rainer Orth
d9f069ab4f Remove obsolete Solaris 9 support
libstdc++-v3:
	* configure.host: Remove solaris2.9 handling.
	Change os_include_dir to os/solaris/solaris2.10.
	* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
	* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
	* configure: Regenerate.
	* config/abi/post/solaris2.9: Remove.
	* config/os/solaris/solaris2.9: Rename to ...
	* config/os/solaris/solaris2.10: ... this.
	* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
	Remove.

	* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
	Remove Solaris 9 reference.
	* doc/html/manual/configure.html: Regenerate.

	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Remove *-*-solaris2.9 xfail.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
	Likewise.

	* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
	xfail.

	libjava:
	* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
	handling.
	* configure: Regenerate.

	libgfortran:
	* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
	check.

	libgcc:
	* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
	check.
	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
	Solaris 9 single-threaded support.
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
	Solaris 9 single-threaded support.  Add call_user_handler code
	sequences.
	(sparc_is_sighandler): Likewise.

	libcpp:
	* lex.c: Remove Solaris 9 reference.

	gcc/testsuite:
	* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

	* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
	* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
	*-*-solaris2.9.
	* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
	* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
	from dg-options.
	* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
	from dg-additional-options.
	* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
	from dg-options.

	* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
	execution check.
	* gcc.target/i386/sse-os-support.h [__sun__ && __svr4__]
	(sigill_hdlr): Remove.
	(sse_os_support) [__sun__ && __svr4__]: Remove SSE execution
	check.

	* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
	* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
	* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

	* lib/target-supports.exp (add_options_for_tls): Remove
	*-*-solaris2.9* handling.

	gcc:
	* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
	(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
	(*-*-solaris2*): Simplify.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
	*-*-solaris2.9* handling.

	* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
	as bug.
	(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
	(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
	handling, simplify.
	(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
	* configure: Regenerate.

	* config/i386/sol2-9.h: Remove.

	* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
	(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
	Remove Solaris 9 references.

	fixincludes:
	* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
	(solaris_int_types): Remove.
	(solaris_longjmp_noreturn): Remove.
	(solaris_mutex_init_2): Remove.
	(solaris_once_init_2): Remove.
	(solaris_sys_va_list): Remove.
	* fixincl.x: Regenerate.
	* tests/base/iso/setjmp_iso.h: Remove.
	* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
	[SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by
	solaris_once_init_2.
	[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
	* tests/base/sys/int_types.h: Remove.
	* tests/base/sys/va_list.h: Remove.

	contrib:
	* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.

From-SVN: r209621
2014-04-22 12:30:59 +00:00
Jerry DeLisle
861b2d2cde re PR fortran/60810 (list directed io from array results in end of file)
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.

From-SVN: r209329
2014-04-12 00:04:41 +00:00
Jerry DeLisle
09e40ffe10 re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)
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.

From-SVN: r208759
2014-03-21 22:19:44 +00:00
Ulrich Weigand
b5b5834350 configure.ac: Check for presence of fcntl.
* configure.ac: Check for presence of fcntl.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.

From-SVN: r208634
2014-03-18 09:58:17 +00:00
Jerry DeLisle
f2538eee23 Fix PR Number in log
From-SVN: r208630
2014-03-18 01:30:46 +00:00
Jerry DeLisle
e34994fcff re PR libfortran/46800 (Handle CTRL-D correctly with STDIN)
2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/46800
	* 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.

From-SVN: r208629
2014-03-18 01:20:02 +00:00
Jerry DeLisle
e94710443a re PR fortran/58324 (Bogus END-of-line error with list-directed I/O of file without trailing sequential record marker)
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.

From-SVN: r208591
2014-03-15 15:12:01 +00:00
Jerry DeLisle
3b63b663d7 re PR libfortran/38199 (missed optimization: I/O performance)
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.

From-SVN: r208528
2014-03-13 05:06:57 +00:00
Jerry DeLisle
c706a67a4d re PR libfortran/38199 (missed optimization: I/O performance)
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.

From-SVN: r208439
2014-03-09 05:34:34 +00:00
Jerry DeLisle
c8869272f7 re PR libfortran/38199 (missed optimization: I/O performance)
2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/38199
	* io/list_read.c (next_char): Delete unuseful error checks.
	(eat_spaces): For character array reading, skip ahead over
	spaces rather than call next_char multiple times.

From-SVN: r208438
2014-03-09 03:17:16 +00:00
Tobias Burnus
433d6b3986 libgfortran.h (unlikely, likely): Add usage comment.
2014-03-08  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (unlikely, likely): Add usage comment.

From-SVN: r208434
2014-03-08 23:13:26 +01:00
Dominique d'Humieres
4e185d7cee re PR fortran/60128 (Wrong ouput using en edit descriptor)
2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>

	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.

	PR libfortran/60128
	* gfortran.dg/fmt_en.f90: New test.

From-SVN: r208423
2014-03-08 06:04:34 +00:00
Jerry DeLisle
75b2dba9ae re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)
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
	correctly.
	* 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.

From-SVN: r208302
2014-03-04 04:33:40 +00:00
Tobias Burnus
76a4b7ad2d re PR fortran/60286 (INQUIRE reports STDOUT as not writable)
2014-02-21  Tobias Burnus  <burnus@net-b.de>

        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-02-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60286
        * gfortran.dg/inquire_16.f90: New.

From-SVN: r207979
2014-02-21 08:37:06 +01:00
Jerry DeLisle
91d45414d8 write_float.def (output_float): Remove inadvertent test code from previous patch.
2014-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	* io/write_float.def (output_float): Remove inadvertent test
	code from previous patch.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r206865
2014-01-21 02:39:53 +00:00
Jerry DeLisle
32aeb94ab1 re PR libfortran/59771 (Cleanup handling of Gw.0 and Gw.0Ee format)
2014-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	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.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r206785
2014-01-19 23:17:43 +00:00
Jerry DeLisle
2558e2e838 re PR fortran/59700 (Misleading/buggy runtime error message: Bad integer for item 0 in list input)
2014-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	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.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>

From-SVN: r206553
2014-01-11 18:57:20 +00:00
Richard Sandiford
f0bcf62899 Update copyright years in libgfortran/
From-SVN: r206296
2014-01-02 22:25:45 +00:00
Steven G. Kargl
7b6b435332 read.c (read_f): Convert assert to runtime error.
2013-12-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	* io/read.c (read_f): Convert assert to runtime error.

2013-12-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	* gfortran.dg/io_err_1.f90: New test.

From-SVN: r206102
2013-12-18 23:41:50 +00:00
Andreas Tobler
95796c1fa5 unix.c (tempfile_open): Only use the needed flag O_CLOEXEC.
2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>

    * io/unix.c (tempfile_open): Only use the needed flag O_CLOEXEC.

From-SVN: r206064
2013-12-17 19:12:39 +01:00
Jerry DeLisle
1ede59e4c7 re PR libfortran/59419 (Failing OPEN with FILE='xxx' and IOSTAT creates the file 'xxx' after revision 196783)
2013-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/59419
	* io/file_pos.c (st_rewind): Do proper return after
	generate_error.
	* io/open.c (edit_modes): Move action code inside block that
	checks for library ok. (new_unit): Do cleanup after error.
	(st_open): Do proper return after error.
	* io/transfer.c (data_transfer_init): Likewise.

From-SVN: r206039
2013-12-17 03:06:04 +00:00
Tobias Burnus
711df88d24 fpu-387.h (sigill_hdlr, [...]): Emit
2013-12-11  Tobias Burnus  <burnus@net-b.de>

        * config/fpu-387.h (sigill_hdlr, get_fpu_rounding_mode): Emit
        * SSE
        instructions when __SSE_MATH__ is defined.

From-SVN: r205903
2013-12-11 20:50:56 +01:00
Rainer Orth
041508a2ec Provide _M_2_SQRTPI if missing.
* intrinsics/erfc_scaled.c (_M_2_SQRTPI): Define if missing.

From-SVN: r205731
2013-12-06 10:04:05 +00:00
Uros Bizjak
3d41d9d98c re PR libfortran/59313 (gfortran.dg/erf_3.F90 FAILs on Solaris/SPARC)
PR libfortran/59313
	* intrinsics/erfc_scaled.c (erfc_scaled_r16): Also provide for
	quadruple precision long double variant.

From-SVN: r205574
2013-12-01 21:56:21 +01:00
Andreas Schwab
8f45afb879 Remove wrong PR link
From-SVN: r205201
2013-11-21 09:24:44 +00:00
Francois-Xavier Coudert
933cfd4a37 re PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90 -O0 execution test)
PR libfortran/59227
	* intrinsics/erfc_scaled.c (erfc_scaled_r16): Don't define if
	__float128 is not available.

From-SVN: r205193
2013-11-21 08:45:00 +00:00
Francois-Xavier Coudert
41fd665971 re PR libfortran/49024 (REAL*16 ERFC_SCALED inaccuracy)
PR libfortran/49024

	* intrinsics/erfc_scaled.c (erfc_scaled_r16): New function.
	* intrinsics/erfc_scaled_inc.c: Do not provide quadruple
	precision variant.

	* gfortran.dg/erf_3.F90: New file.

From-SVN: r205151
2013-11-20 22:18:55 +00:00
Francois-Xavier Coudert
74bc175e84 re PR libfortran/51828 (libgfortran build warnings)
PR libfortran/51828
	* intrinsics/unpack_generic.c (unpack_internal): Let the compiler
	know that dim > 0 to avoid warnings.

From-SVN: r204940
2013-11-18 09:27:11 +00:00
Janne Blomqvist
35f48a901d When file status is unknown, don't set O_CREAT when opening read-only.
2013-11-15  Janne Blomqvist  <jb@gcc.gnu.org>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/59108
	* io/unix.c (regular_file): Don't set O_CREAT when opening a file
	read-only with unknown status. Mask out O_CREAT when falling back
	to opening read-only if ACTION= is not set and read-write fails.

Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>

From-SVN: r204864
2013-11-16 00:00:36 +02:00
Steve Ellcey
cb83df668c configure.ac: Do not define HAVE_STRTOLD.
2013-11-15  Steve Ellcey  <sellcey@mips.com>

	* configure.ac: Do not define HAVE_STRTOLD.
	* configure: Regenerate.

From-SVN: r204855
2013-11-15 17:50:28 +00:00
Janne Blomqvist
c20fdb917f Set close-on-exec flag when opening files.
2013-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Check presence of mkostemp.
	* io/unix.c (set_close_on_exec): New function.
	(tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback
	to calling set_close_on_exec.
	(regular_file): Add O_CLOEXEC to flags if defined.
	(open_external): Call set_close_on_exec if O_CLOEXEC is not
	defined.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.

From-SVN: r204654
2013-11-10 22:34:29 +02:00
Tobias Burnus
7902928918 re PR fortran/55469 (memory leak on read with istat.ne.0)
2013-10-01  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55469
        * io/list_read (parse_repeat, read_integer, read_character,
        parse_real, read_real, check_type, list_formatted_read_scalar,
        finish_list_read): Call list_free.

From-SVN: r203086
2013-10-01 22:52:49 +02:00
Alan Modra
3cbe17f7de libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
	ppc host match.  Support little-endian powerpc linux hosts.
Regenerate configure throughout.

From-SVN: r202773
2013-09-20 19:17:52 +09:30
Uros Bizjak
d7172355ef fpu-387.h (get_fpu_rounding_mode): Read rounding mode from SSE mxcsr register on x86_64.
* config/fpu-387.h (get_fpu_rounding_mode): Read rounding mode
	from SSE mxcsr register on x86_64.

From-SVN: r201161
2013-07-23 11:45:30 +02:00
Ondřej Bílka
9b110be230 trans-decl.c: Fix comment typos.
2013-07-21   Ondřej Bílka  <neleai@seznam.cz>

        * trans-decl.c: Fix comment typos.
        * trans-expr.c: Ditto.

2013-07-21   Ondřej Bílka  <neleai@seznam.cz>

        * io/transfer.c: Fix comment typos.

From-SVN: r201107
2013-07-21 19:57:23 +02:00
Tobias Burnus
5b70b3e44b re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * config/fpu-387.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Add missing _ to fix build.

From-SVN: r201095
2013-07-21 17:16:21 +02:00
Tobias Burnus
82a4f54cc5 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
        GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.

2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * libgfortran.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): New prototypes.
        * config/fpu-387.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): New functions.
        * config/fpu-aix.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-generic.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-glibc.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-sysv.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * configure.ac: Check for fp_rnd and fp_rnd_t.
        * io/io.h (enum unit_round): Use GFC_FPE_* for the value.
        * io/read.c (convert_real): Set FP ronding mode.
        * Makefile.in: Regenerate.
        * aclocal.m4: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * gfortran.dg/round_4.f90: New.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r201093
2013-07-21 13:54:27 +02:00
Steve Ellcey
b4005c71a2 configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement.
2013-06-24  Steve Ellcey  <sellcey@mips.com>

	* configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement.
	* configure: Regenerate.

From-SVN: r200374
2013-06-24 15:24:19 +00:00
Tobias Burnus
7ae346c340 configure.ac: Check for fp_except and fp_except_t.
2013-06-24  Tobias Burnus  <burnus@net-b.de>

        * configure.ac: Check for fp_except and fp_except_t.
        * config/fpu-sysv.h: Conditionally use either type.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r200360
2013-06-24 10:34:05 +02:00
Eric Botcazou
a58219532c * config/fpu-sysv.h (get_fpu_except_flags): Fix typo.
From-SVN: r200298
2013-06-21 13:16:57 +00:00
Uros Bizjak
a839e8d5a0 * ChangeLog: Add some missing lines.
From-SVN: r200256
2013-06-20 19:11:51 +02:00
Uros Bizjak
86c2f4b761 fpu-387.h (_FPU_MASK_ALL): New.
* config/fpu-387.h (_FPU_MASK_ALL): New.
	(_FPU_EX_ALL): Ditto.
	(set_fpu): Use fstcw to store x87 FPU control word. Use fnclex to
	clear stalled exception flags.  Correctly clear stalled SSE
	exception flags.  Simplify code.
	(get_fpu_except_flags): Simplify code.

From-SVN: r200255
2013-06-20 19:08:51 +02:00
Tobias Burnus
937424c182 re PR fortran/57633 (I/O: Problem with formatted read: reading CR-LF files (\r\n))
2013-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57633
        * io/list_read.c (next_char, eat_separator): Don't set EOL for \r.

2013-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57633
        * gfortran.dg/list_read_11.f90: New.

From-SVN: r200238
2013-06-20 12:55:03 +02:00
Uros Bizjak
e8e694715e fpu-387.h: Use __asm__ and __volatile__ consistently.
* config/fpu-387.h: Use __asm__ and __volatile__ consistently.
	(get_fpu_except_flags): Initialize result.

From-SVN: r200187
2013-06-19 08:38:16 +02:00
Tobias Burnus
fa86f4f917 gfortran.h (gfc_option_t): Add fpe_summary.
2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Add fpe_summary.
        * gfortran.texi (_gfortran_set_options): Update.
        * invoke.texi (-ffpe-summary): Add doc.
        * lang.opt (ffpe-summary): Add flag.
        * options.c (gfc_init_options, gfc_handle_option): Handle it.
        (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
        also handle fpe_summary.
        * trans-decl.c (create_main_function): Update
        _gfortran_set_options call.

2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (compile_options_t) Add fpe_summary.
        (get_fpu_except_flags): New prototype.
        * runtime/compile_options.c (set_options, init_compile_options):
        Handle fpe_summary.
        * runtime/stop.c (report_exception): New function.
        (stop_numeric, stop_numeric_f08, stop_string, error_stop_string,
        error_stop_numeric): Call it.
        * config/fpu-387.h (get_fpu_except_flags): New function.
        * config/fpu-aix.h (get_fpu_except_flags): New function.
        * config/fpu-generic.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * configure.ac: Check for fpxcp.h.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r200147
2013-06-17 09:48:21 +02:00
Tobias Burnus
c2b2130c71 re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
2013-06-01  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57496
        * io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
        * ISFINITE,
        SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
        ISNAN2L, ISNAN): New macros.
        (output_float_FMT_G_,WRITE_FLOAT): Use them.

From-SVN: r199598
2013-06-03 11:20:46 +02:00
Rainer Orth
828012a527 Use -z ignore instead of --as-needed on Solaris
* acinclude.m4 (libgfor_cv_have_as_needed): Check for -z ignore, too.
	* configure: Regenerate.

From-SVN: r199285
2013-05-24 09:23:33 +00:00
David Edelsohn
13c4975c2d libcaf.h (_gfortran_caf_critical): Add a prototype.
* caf/libcaf.h (_gfortran_caf_critical): Add a prototype.
        (_gfortran_caf_end_critical): Same.

From-SVN: r198613
2013-05-05 19:47:22 -04:00
David Edelsohn
19f0e98f58 environ.c: Include unistd.h.
* runtime/environ.c: Include unistd.h.
        * runtime/pause.c: Test HAVE_UNISTD_H.
        * runtime/stop.c: Same.
        * io/open.c: Same.
        * io/unix.c: Same.
        * io/read.c (si_max): Protect declaration of value.

From-SVN: r198603
2013-05-04 17:23:11 -04:00
Janne Blomqvist
96cc0ef46b Simplify SYSTEM_CLOCK implementation.
2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/system_clock (gf_gettime_mono): Use variable
        resolution for fractional seconds argument.
        (system_clock_4): Simplify, update for gf_gettime_mono change.
        (system_clock_8): Likewise.

From-SVN: r198391
2013-04-29 11:43:18 +03:00
Janne Blomqvist
c033f5ae32 PR 56981 Improve unbuffered performance on special files.
2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/56981
        * io/transfer.c (next_record_w_unf): First fix head marker, then
        write tail.
        (next_record): Call flush_if_unbuffered.
        * io/unix.c (struct unix_stream): Add field unbuffered.
        (flush_if_unbuffered): New function.
        (fd_to_stream): New argument.
        (open_external): Fix fd_to_stream call.
        (input_stream): Likewise.
        (output_stream): Likewise.
        (error_stream): Likewise.
        * io/unix.h (flush_if_unbuffered): New prototype.

From-SVN: r198390
2013-04-29 11:42:00 +03:00
Janne Blomqvist
a2f7b4ad34 Fix sign error in SYSTEM_CLOCK kind=4 Windows version.
2013-04-28  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/system_clock.c (system_clock_4): Fix sign error in
	Windows version.

From-SVN: r198378
2013-04-28 21:16:25 +03:00
Tobias Burnus
95bd9622ab list_read.c (finish_separator): Initialize variable.
2013-04-15  Tobias Burnus  <burnus@net-b.de>

        * list_read.c (finish_separator): Initialize variable.

From-SVN: r197969
2013-04-15 14:45:06 +02:00
Janne Blomqvist
83584eab1b PR 56919 Improve SYSTEM_CLOCK intrinsic on Windows.
frontend ChangeLog:

2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/56919
	* intrinsics.texi (SYSTEM_CLOCK): Update documentation.


libgfortran ChangeLog:

2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/56919
	* intrinsics/time_1.h: Check __CYGWIN__ in addition to
	__MINGW32__.
	* intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check
	_POSIX_MONOTONIC_CLOCK as well.
	(system_clock_4): Use GetTickCount on Windows.
	(system_clock_8): Use QueryPerformanceCounter and
	QueryPerformanceCounterFrequency on Windows.

From-SVN: r197968
2013-04-15 15:43:15 +03:00
Tobias Burnus
71879a86ef re PR libfortran/56810 (record-repeat fails kind check on complex read)
2013-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56810
        * io/list_read.c (check_type): Fix kind checking for COMPLEX.

2013-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56810
        * gfortran.dg/read_repeat_2.f90: New.

From-SVN: r197479
2013-04-04 13:24:15 +02:00
Jerry DeLisle
ba82932537 re PR fortran/56660 (Fails to read NAMELIST with certain form array syntax)
2013-04-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/56660
	* io/list_read.c (nml_read_obj): Do not reset the read error flag
	inside nml_read_obj. If the read error flag is found set just exit.
	Fix some whitespace on comments.
	(nml_read_obj_data): Reset the read error flag before the first call
	to nml_read_object.

From-SVN: r197321
2013-04-01 20:30:41 +00:00
Jerry DeLisle
83437e6709 re PR libfortran/56786 (Namelist read fails with designators containing embedded spaces)
2013-03-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/56786
	* io/list_read.c (nml_parse_qualifier): Remove spurious next_char call
	when checking for EOF. Use error return mechanism when EOF detected.
	Do not return false unless parse_err_msg and parse_err_msg_size have
	been set. Use hit_eof.
	(nml_get_obj_data): Likewise use the correct error mechanism.
	* io/transfer.c (hit_eof): Do not set AFTER_ENDFILE if in namelist
	mode.

From-SVN: r197290
2013-03-31 20:32:33 +00:00
Tobias Burnus
357aee9210 re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith strings)
2012-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * io/format.c (parse_format_list): Also cache FMT_STRING.
        (parse_format): Update call.

From-SVN: r197230
2013-03-29 10:39:47 +01:00
Tobias Burnus
d80b9b4777 re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith strings)
2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * io/format.c (parse_format): With caching, copy
        dtp->format string.
        (save_parsed_format): Use dtp->format directy without
        copying.

2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * testsuite/gfortran.dg/fmt_cache_3.f90: New.

(Plus: Move fortran/ChangeLog item to libgfortran/ChangeLog)

From-SVN: r197229
2013-03-29 10:37:37 +01:00
Tobias Burnus
a0b012be6a re PR fortran/56735 (Namelist Read Error with question marks)
2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56735
        * io/list_read.c (nml_query): Only abort when
        an error occured.
        (namelist_read): Add goto instead of falling through.

2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56735
        * gfortran.dg/namelist_80.f90: New.

From-SVN: r197228
2013-03-29 10:32:57 +01:00
Tilo Schwarz
6f6fafc9ef re PR fortran/52512 (Cannot match namelist object name)
2013-03-25  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/52512
        * io/list_read.c (nml_parse_qualifier): To check for a derived type
        don't use the namelist head element type but the current element type.
        (nml_get_obj_data): Add current namelist element type to
        nml_parse_qualifier call.

2013-03-25  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/52512
        * gfortran.dg/namelist_79.f90: New.

From-SVN: r197061
2013-03-25 20:11:20 +00:00
Tobias Burnus
a73421c460 re PR libfortran/56696 (Formatted (list-directed) input fails to signal end of record)
2013-03-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56696
        * io/list_read.c (read_real): Fix EOF diagnostic.

2013-03-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56696
        * gfortran.dg/eof_5.f90: New.

From-SVN: r197019
2013-03-24 11:16:33 +01:00
Tilo Schwarz
a0b67fe26f re PR fortran/51825 (Fortran runtime error: Cannot match namelist object name)
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * io/list_read.c (nml_read_obj): Don't end the component loop on
        a nested derived type, but continue with the next loop iteration.
        (nml_get_obj_data): Don't move the first_nl pointer further in
        the list if a qualifier was found.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * gcc/testsuite/gfortran.dg/namelist_77.f90: New.
        * gcc/testsuite/gfortran.dg/namelist_78.f90: New.

From-SVN: r196806
2013-03-20 08:56:02 +01:00
Tilo Schwarz
09c7dc636d re PR libfortran/48618 (Negative unit number in OPEN(...) is sometimes allowed)
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * io/open.c (st_open): Raise error for unit number < 0 only if
        unit number does not exist already.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * gfortran.dg/open_negative_unit_1.f90: New.

From-SVN: r196805
2013-03-20 08:45:49 +01:00
Janne Blomqvist
f5e3ed2d42 Use C99 bool instead of enum try.
2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* libgfortran.h: Include stdbool.h.
	(enum try): Remove.
	(notify_std): Change return type to bool.
	* intrinsics/chmod.c: Don't include stdbool.h.
	* intrinsics/execute_command_line.c: Likewise.
	* io/format.c: Likewise.
	* io/list_read.c (nml_parse_qualifier): Change return type to bool.
	(nml_read_obj): Likewise.
	(nml_get_obj_data): Likewise.
	* io/transfer.c (read_block_form): Fix comment.
	(write_buf): Change return type to bool.
	* io/write.c: Don't include stdbool.h.
	* io/write_float.def (output_float): Change return type to bool.
	(output_float_FMT_G_ ## x): Change type of result variable.
	* runtime/error.c (notify_std): Change return type to bool.

From-SVN: r196791
2013-03-19 13:13:32 +02:00
Tobias Burnus
43b594b4c2 transfer.c (read_block_direct): Correct condition.
2013-03-11  Tobias Burnus  <burnus@net-b.de>

        * io/transfer.c (read_block_direct): Correct condition.
        * intrinsics/execute_command_line.c (execute_command_line):
        Remove dead code for the HAVE_FORK case.

From-SVN: r196603
2013-03-11 19:55:18 +01:00
Janne Blomqvist
68aab0e225 Fix regression when writing formatted sequential to a pipe.
2013-02-21  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/30162
	* io/open.c (test_endfile): Call stell only if size != 0.
	* io/unix.c (raw_tell): Revert r194679.
	(raw_size): Return size field only for regular files, otherwise 0.

From-SVN: r196210
2013-02-21 21:03:10 +02:00
John David Anglin
406defcb58 re PR target/56347 (FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 execution test)
PR target/56347
	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): Remove check for
	broken powf.
	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Likewise.
	* intrinsics/c99_functions.c: Likewise.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.

From-SVN: r196139
2013-02-19 14:01:40 +00:00
Janus Weil
c362c6741d re PR fortran/55978 (class_optional_2.f90 -Os fails)
2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
	NULL.

2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* gfortran.dg/class_optional_2.f90: Uncomment some cases which work now.

From-SVN: r195814
2013-02-06 20:39:35 +01:00
Janne Blomqvist
facb23dc4e Improve performance of byte-swapped I/O.
2013-01-23  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX
	instead of reverse_memcpy.
	* io/io.h (reverse_memcpy): Remove prototype.
	* io/transfer.c (reverse_memcpy): Make static, move towards
	beginning of file.
	(bswap_array): New function.
	(unformatted_read): Use bswap_array to byte swap the data
	in-place.
	(unformatted_write): Use a larger temp buffer and bswap_array.
	(us_read): Use __builtin_bswapXX instead of reverse_memcpy.
	(write_us_marker): Likewise.

From-SVN: r195413
2013-01-23 23:56:54 +02:00
Richard Sandiford
e3c063ceda Update copyright years in libgfortran.
From-SVN: r195167
2013-01-14 18:20:58 +00:00
Tobias Burnus
9d1818902c re PR fortran/54678 (second call to get_environment_variable gives valgrind warning with 8-byte integers)
2013-01-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54678
        * intrinsics/env.c (get_environment_variable_i8): Don't use
        uninitialized variable.

From-SVN: r194948
2013-01-06 13:43:45 +01:00
Jakub Jelinek
86a2db336a ChangeLog rotation.
From-SVN: r194840
2013-01-03 10:47:48 +01:00
Jerry DeLisle
cc1863452c re PR fortran/55818 (Reading a REAL from a file which doesn't end in a new line fails)
2013-01-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/55818
	* io/list_read.c (read_real): Do not call hit_eof when EOF can be
	treated as a value separator.
	(parse_real): Likewise.
	(read_logical): Likewise.
	(read_character): Likewise.
	(read_complex): Likewise.

From-SVN: r194809
2013-01-02 17:09:09 +00:00
Jerry DeLisle
797332eda9 re PR fortran/48976 (INQUIRE with STREAM= not supported)
2012-12-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/48976
	* io/inquire.c (inquire_via_unit): Set user stream inquiry variable to
	appropriate value based on unit access method. (inquire_via_filename):
	Since filename is not associated with an open unit, set stream inquiry
	to UNKNOWN.
	* io/io.h: Define inquire stream parameters.

From-SVN: r194733
2012-12-27 18:07:33 +00:00
Jerry DeLisle
4e766b5d40 re PR libfortran/48960 (OPEN statement modifies NEWUNIT variable on error)
2012-12-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/48960
	* io/open.c (st_parameter_open):  Assign newunit number to user
	variable only if the the associated open statement is successful.

From-SVN: r194724
2012-12-26 18:11:42 +00:00
Janne Blomqvist
eb3119f90f PR fortran/55539 Fix regression in -fno-sign-zero.
libgfortran ChangeLog:

2012-12-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/55539
	* io/write_float.def (output_float): Take into account decimal dot.

testsuite ChangeLog:

2012-12-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/55539
	* gfortran.dg/nosigned_zero_3.f90: New testcase.

From-SVN: r194717
2012-12-26 00:11:16 +02:00
Thomas Koenig
a0edd35cf6 re PR libfortran/30162 (Document when sequential I/O with named pipes works)
2012-12-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/30162
	* io/unix.c (raw_tell):  If the lseek is done on a
	non-seekable file, return 0.

From-SVN: r194679
2012-12-21 20:50:48 +00:00
Janus Weil
f0f67c96c3 re PR libfortran/36044 (user-requested backtrace)
2012-12-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36044
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE.
	* intrinsic.c (add_subroutines): Add "backtrace".
	* intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic.


2012-12-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36044
	* gfortran.map: Add _gfortran_backtrace.
	* libgfortran.h: Rename 'show_backtrace' and export.
	* runtime/backtrace.c (show_backtrace): Rename to 'backtrace'.
	Don't show message. Close file descriptor. Export.
	* runtime/compile_options.c (backtrace_handler): Renamed
	'show_backtrace'. Move message outside.
	* runtime/error.c (sys_abort): Ditto.

From-SVN: r194648
2012-12-20 19:15:13 +01:00
Paul Thomas
8b7043164f array.c (resolve_array_list): Apply C4106.
2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* array.c (resolve_array_list): Apply C4106.
	* check.c (gfc_check_same_type_as): Exclude polymorphic
	entities from check for extensible types. Improved error
	for disallowed argument types to name the offending type.
	* class.c : Update copyright date.
	(gfc_class_null_initializer): Add argument for initialization
	expression and deal with unlimited polymorphic typespecs.
	(get_unique_type_string): Give unlimited polymorphic
	entities a type string.
	(gfc_intrinsic_hash_value): New function.
	(gfc_build_class_symbol): Incorporate unlimited polymorphic
	entities.
	(gfc_find_derived_vtab): Deal with unlimited polymorphic
	entities.
	(gfc_find_intrinsic_vtab): New function.
	* decl.c (gfc_match_decl_type_spec): Match typespec for
	unlimited polymorphic type.
	(gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic.
	expr.c (gfc_check_pointer_assign): Apply C717.  If unlimited
	polymorphic lvalue, find rvalue vtable for all typespecs,
	except unlimited polymorphic expressions.
	(gfc_check_vardef_context): Handle unlimited polymorphic
	entities.
	* gfortran.h : Add unlimited polymorphic attribute. Add
	second arg to gfc_class_null_initializer primitive and
	primitive for gfc_find_intrinsic_vtab.  Add UNLIMITED_POLY
	to detect unlimited polymorphic expressions.
	* interface.c (gfc_compare_types): If expr1 is unlimited
	polymorphic, always return 1. If expr2 is unlimited polymorphic
	enforce C717.
	(gfc_compare_interfaces): Skip past conditions that do not
	apply for unlimited polymorphic entities.
	(compare_parameter): Make sure that an unlimited polymorphic,
	allocatable or pointer, formal argument is matched by an
	unlimited polymorphic actual argument.
	(compare_actual_formal): Ensure that an intrinsic vtable exists
	to match an unlimited polymorphic formal argument.
	* match.c (gfc_match_allocate): Type kind parameter does not
	need to match an unlimited polymorphic allocate-object.
	(alloc_opt_list): An unlimited polymorphic allocate-object
	requires a typespec or a SOURCE tag.
	(select_intrinsic_set_tmp): New function.
	(select_type_set_tmp): Call new function.  If it returns NULL,
	build a derived type or class temporary instead.
	(gfc_match_type_is): Remove restriction to derived types only.
	Bind(C) or sequence derived types not permitted.
	* misc (gfc_typename):  Printed CLASS(*) for unlimited
	polymorphism.
	* module.c : Add AB_UNLIMITED_POLY to pass unlimited
	polymorphic attribute to and from modules.
	* resolve.c (resolve_common_vars): Unlimited polymorphic
	entities cannot appear in common blocks.
	(resolve_deallocate_expr): Deallocate unlimited polymorphic
	enities.
	(resolve_allocate_expr): Likewise for allocation.  Make sure
	vtable exists.
	(gfc_type_is_extensible): Unlimited polymorphic entities are
	not extensible.
	(resolve_select_type): Handle unlimited polymorphic selectors.
	Ensure that length type parameters are assumed and that names
	for intrinsic types are generated.
	(resolve_fl_var_and_proc): Exclude select type temporaries
	from test of extensibility of type.
	(resolve_fl_variable): Likewise for test that assumed character
	length must be a dummy or a parameter.
	(resolve_fl_derived0): Return SUCCESS unconditionally for
	unlimited polymorphic entities. Also, allow unlimited
	polymorphic components.
	(resolve_fl_derived): Return SUCCESS unconditionally for
	unlimited polymorphic entities.
	(resolve_symbol): Return early with unlimited polymorphic
	entities.
	* simplifiy.c : Update copyright year.
	(gfc_simplify_extends_type_of): No simplification possible
	for unlimited polymorphic arguments.
	* symbol.c (gfc_use_derived): Nothing to do for unlimited
	polymorphic "derived type".
	(gfc_type_compatible): Return unity if ts1 is unlimited
	polymorphic.
	* trans-decl.c (create_function_arglist) Formal arguments
	without a character length should be treated in the same way
	as passed lengths.
	(gfc_trans_deferred_vars): Nullify the vptr of unlimited
	polymorphic pointers. Avoid unlimited polymorphic entities
	triggering gcc_unreachable.
	* trans-expr.c (gfc_conv_intrinsic_to_class): New function.
	(gfc_trans_class_init_assign): Make indirect reference of
	src.expr.
	(gfc_trans_class_assign): Expression NULL of unknown type
	should set NULL vptr on lhs. Treat C717 cases where lhs is
	a derived type and the rhs is unlimited polymorphic.
	(gfc_conv_procedure_call): Handle the conversion of a non-class
	actual argument to match an unlimited polymorphic formal
	argument.  Suppress the passing of a character string length
	in this case.  Make sure that calls to the character __copy
	function have two character string length arguments.
	(gfc_conv_initializer): Pass the initialization expression to
	gfc_class_null_initializer.
	(gfc_trans_subcomponent_assign): Ditto.
	(gfc_conv_structure): Move handling of _size component.
	trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions
	where unlimited polymorphic arguments have null vptr.
	* trans-stmt.c (trans_associate_var): Correctly treat array
	temporaries associated with unlimited polymorphic selectors.
	Recover the overwritten dtype for the descriptor. Use the _size
	field of the vptr for character string lengths.
	(gfc_trans_allocate): Cope with unlimited polymorphic allocate
	objects; especially with character source tags.
	(reset_vptr): New function.
	(gfc_trans_deallocate): Call it.
	* trans-types.c (gfc_get_derived_type): Detect unlimited
	polymorphic types and deal with cases where the derived type of
	components is null.
	* trans.c : Update copyright year.
	(trans_code): Call gfc_trans_class_assign for C717 cases where
	the lhs is not unlimited polymorphic.

2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* intrinsics/extends_type_of.c : Return correct results for
	null vptrs.

2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/unlimited_polymorphic_1.f03: New test.
	* gfortran.dg/unlimited_polymorphic_2.f03: New test.
	* gfortran.dg/unlimited_polymorphic_3.f03: New test.
	* gfortran.dg/same_type_as.f03: Correct for improved message.

From-SVN: r194622
2012-12-20 00:15:00 +00:00
Janus Weil
a07c4054c2 re PR fortran/55548 (SYSTEM_CLOCK with integer(8) provides nanosecond resolution, but only microsecond precision (without -lrt))
2012-12-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55548
	* intrinsics/system_clock.c (gf_gettime_mono): Add argument 'tck',
	which returns the clock resolution.
	(system_clock_4): Get resolution from gf_gettime_mono, but limit to
	1000/s.
	(system_clock_8): Get resolution from gf_gettime_mono.

2012-12-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55548
	* intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.

From-SVN: r194105
2012-12-03 23:06:41 +01:00
Tobias Burnus
036e177573 bessel.m4: Remove useless statement.
2012-10-28  Tobias Burnus  <burnus@net-b.de>

         * m4/bessel.m4: Remove useless statement.
         * m4/ifunction.m4: Remove unreachable code.
         * generated/bessel_r10.c: Regenerated.
         * generated/bessel_r16.c: Regenerated.
         * generated/bessel_r4.c: Regenerated.
         * generated/bessel_r8.c: Regenerated.
         * generated/iall_i1.c: Regenerated.
         * generated/iall_i16.c: Regenerated.
         * generated/iall_i2.c: Regenerated.
         * generated/iall_i4.c: Regenerated.
         * generated/iall_i8.c: Regenerated.
         * generated/iany_i1.c: Regenerated.
         * generated/iany_i16.c: Regenerated.
         * generated/iany_i2.c: Regenerated.
         * generated/iany_i4.c: Regenerated.
         * generated/iany_i8.c: Regenerated.
         * generated/iparity_i1.c: Regenerated.
         * generated/iparity_i16.c: Regenerated.
         * generated/iparity_i2.c: Regenerated.
         * generated/iparity_i4.c: Regenerated.
         * generated/iparity_i8.c: Regenerated.
         * generated/maxloc1_16_i1.c: Regenerated.
         * generated/maxloc1_16_i16.c: Regenerated.
         * generated/maxloc1_16_i2.c: Regenerated.
         * generated/maxloc1_16_i4.c: Regenerated.
         * generated/maxloc1_16_i8.c: Regenerated.
         * generated/maxloc1_16_r10.c: Regenerated.
         * generated/maxloc1_16_r16.c: Regenerated.
         * generated/maxloc1_16_r4.c: Regenerated.
         * generated/maxloc1_16_r8.c: Regenerated.
         * generated/maxloc1_4_i1.c: Regenerated.
         * generated/maxloc1_4_i16.c: Regenerated.
         * generated/maxloc1_4_i2.c: Regenerated.
         * generated/maxloc1_4_i4.c: Regenerated.
         * generated/maxloc1_4_i8.c: Regenerated.
         * generated/maxloc1_4_r10.c: Regenerated.
         * generated/maxloc1_4_r16.c: Regenerated.
         * generated/maxloc1_4_r4.c: Regenerated.
         * generated/maxloc1_4_r8.c: Regenerated.
         * generated/maxloc1_8_i1.c: Regenerated.
         * generated/maxloc1_8_i16.c: Regenerated.
         * generated/maxloc1_8_i2.c: Regenerated.
         * generated/maxloc1_8_i4.c: Regenerated.
         * generated/maxloc1_8_i8.c: Regenerated.
         * generated/maxloc1_8_r10.c: Regenerated.
         * generated/maxloc1_8_r16.c: Regenerated.
         * generated/maxloc1_8_r4.c: Regenerated.
         * generated/maxloc1_8_r8.c: Regenerated.
         * generated/maxval_i1.c: Regenerated.
         * generated/maxval_i16.c: Regenerated.
         * generated/maxval_i2.c: Regenerated.
         * generated/maxval_i4.c: Regenerated.
         * generated/maxval_i8.c: Regenerated.
         * generated/maxval_r10.c: Regenerated.
         * generated/maxval_r16.c: Regenerated.
         * generated/maxval_r4.c: Regenerated.
         * generated/maxval_r8.c: Regenerated.
         * generated/minloc1_16_i1.c: Regenerated.
         * generated/minloc1_16_i16.c: Regenerated.
         * generated/minloc1_16_i2.c: Regenerated.
         * generated/minloc1_16_i4.c: Regenerated.
         * generated/minloc1_16_i8.c: Regenerated.
         * generated/minloc1_16_r10.c: Regenerated.
         * generated/minloc1_16_r16.c: Regenerated.
         * generated/minloc1_16_r4.c: Regenerated.
         * generated/minloc1_16_r8.c: Regenerated.
         * generated/minloc1_4_i1.c: Regenerated.
         * generated/minloc1_4_i16.c: Regenerated.
         * generated/minloc1_4_i2.c: Regenerated.
         * generated/minloc1_4_i4.c: Regenerated.
         * generated/minloc1_4_i8.c: Regenerated.
         * generated/minloc1_4_r10.c: Regenerated.
         * generated/minloc1_4_r16.c: Regenerated.
         * generated/minloc1_4_r4.c: Regenerated.
         * generated/minloc1_4_r8.c: Regenerated.
         * generated/minloc1_8_i1.c: Regenerated.
         * generated/minloc1_8_i16.c: Regenerated.
         * generated/minloc1_8_i2.c: Regenerated.
         * generated/minloc1_8_i4.c: Regenerated.
         * generated/minloc1_8_i8.c: Regenerated.
         * generated/minloc1_8_r10.c: Regenerated.
         * generated/minloc1_8_r16.c: Regenerated.
         * generated/minloc1_8_r4.c: Regenerated.
         * generated/minloc1_8_r8.c: Regenerated.
         * generated/minval_i1.c: Regenerated.
         * generated/minval_i16.c: Regenerated.
         * generated/minval_i2.c: Regenerated.
         * generated/minval_i4.c: Regenerated.
         * generated/minval_i8.c: Regenerated.
         * generated/minval_r10.c: Regenerated.
         * generated/minval_r16.c: Regenerated.
         * generated/minval_r4.c: Regenerated.
         * generated/minval_r8.c: Regenerated.
         * generated/product_c10.c: Regenerated.
         * generated/product_c16.c: Regenerated.
         * generated/product_c4.c: Regenerated.
         * generated/product_c8.c: Regenerated.
         * generated/product_i1.c: Regenerated.
         * generated/product_i16.c: Regenerated.
         * generated/product_i2.c: Regenerated.
         * generated/product_i4.c: Regenerated.
         * generated/product_i8.c: Regenerated.
         * generated/product_r10.c: Regenerated.
         * generated/product_r16.c: Regenerated.
         * generated/product_r4.c: Regenerated.
         * generated/product_r8.c: Regenerated.
         * generated/sum_c10.c: Regenerated.
         * generated/sum_c16.c: Regenerated.
         * generated/sum_c4.c: Regenerated.
         * generated/sum_c8.c: Regenerated.
         * generated/sum_i1.c: Regenerated.
         * generated/sum_i16.c: Regenerated.
         * generated/sum_i2.c: Regenerated.
         * generated/sum_i4.c: Regenerated.
         * generated/sum_i8.c: Regenerated.
         * generated/sum_r10.c: Regenerated.
         * generated/sum_r16.c: Regenerated.
         * generated/sum_r4.c: Regenerated.
         * generated/sum_r8.c: Regenerated.

From-SVN: r192895
2012-10-28 17:54:44 +01:00
Tobias Burnus
a0ceafd19b re PR fortran/54878 (libgfortran issues found by the Coverity scanner)
2012-10-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/54878
	* io/unix.c (tempfile_open): Set umask before calling mkstemp.

From-SVN: r192325
2012-10-10 20:42:34 +02:00
Janne Blomqvist
227e441f2b Fix usage of secure_getenv with glibc 2.17.
See http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv

2012-10-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Check for presence of secure_getenv.
	* libgfortran.h: Use HAVE_SECURE_GETENV.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* config.h.in: Regenerated.
	* configure: Regenerated.

From-SVN: r192169
2012-10-06 23:56:05 +03:00
Thomas Koenig
4ed3a4d41b re PR libfortran/54736 (GFORTRAN_CONVERT_UNIT causes malloc error on several platforms)
2012-10-06  Thomas König  <tkoenig@gcc.gnu.org>

	PR libfortran/54736
	* runtime/environ.c (search_unit):  Correct logic
	for binary search.
	(mark_single):  Fix index errors.

From-SVN: r192158
2012-10-06 13:04:35 +00:00
Thomas Koenig
7c0de75353 re PR fortran/52724 (Internal read with character(kind=4) data)
2012-09-29  Thomas König  <tkoenig@gcc.gnu.org>

	PR fortran/52724
	* list_read.c (next_char):  Handle kind=4 characters.
	* unix.c (open_internal4):  Correct lenth of internal file.

2012-09-29  Thomas König  <tkoenig@gcc.gnu.org>

	PR fortran/52724
	* gfortran.dg/internal_readwrite_3.f90:  New test.

From-SVN: r191854
2012-09-29 17:38:46 +00:00
David Edelsohn
bad8a4a7fc * configure: Regenerated.
From-SVN: r191321
2012-09-14 19:32:58 -04:00