summaryrefslogtreecommitdiff
path: root/libgfortran
Commit message (Collapse)AuthorAgeFilesLines
* re PR fortran/61632 (Improve error locus on large format strings)Jerry DeLisle2014-07-202-10/+20
| | | | | | | | | | | | 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
* libgfortran.h (libcaf_atomic_codes): Add.Tobias Burnus2014-07-123-0/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* fpu-*.h (get_fpu_rounding_mode, [...]): Clean up, mark unreachable code as such.Francois-Xavier Coudert2014-07-105-25/+20
| | | | | | | * 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
* libgfortran.h (support_fpu_underflow_control, [...]): New prototypes.Francois-Xavier Coudert2014-07-098-27/+259
| | | | | | | | | | | | | * 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
* Use FP_RN etc. unconditionallyRainer Orth2014-07-082-42/+6
| | | | | | | | * 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
* * libgfortran.h: Assume __GNUC__.Francois-Xavier Coudert2014-07-072-6/+4
| | | | From-SVN: r212328
* stop.c: Use C11 _Noreturn.Francois-Xavier Coudert2014-07-074-23/+26
| | | | | | | | | * 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
* fpu-387.h, [...]: Use static assertions.Francois-Xavier Coudert2014-07-075-30/+25
| | | | | | | * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h, config/fpu-glibc.h: Use static assertions. From-SVN: r212323
* Restore Solaris/SPARC bootstrapRainer Orth2014-07-054-0/+29
| | | | | | | * configure, config.h.in: Regenerate. * config/fpu-sysv.h: Include <assert.h>. From-SVN: r212307
* * config/fpu-sysv.h (void set_fpu): Remove stalled comment.Uros Bizjak2014-07-021-1/+0
| | | | From-SVN: r212235
* * config/fpu-glibc.h: Fix comment about FE_DENORMAL.Francois-Xavier Coudert2014-07-022-1/+5
| | | | From-SVN: r212226
* configure.host (ieee_flags): Add -mieee for alpha*.Uros Bizjak2014-07-024-1/+17
| | | | | | | | | | | | | | | | | 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
* fpu-387.h (my_fenv_t): Amend structure so it also works on mingw32.Francois-Xavier Coudert2014-06-292-2/+6
| | | | | | | * config/fpu-387.h (my_fenv_t): Amend structure so it also works on mingw32. From-SVN: r212126
* re PR libfortran/61640 (KIND=4 Character Array Internal Unit Read Fail)Jerry DeLisle2014-06-293-4/+12
| | | | | | | | | | | | 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
* re PR fortran/29383 (Fortran 2003/F95[TR15580:1999]: Floating point ↵Francois-Xavier Coudert2014-06-2817-190/+2924
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR libfortran/61499 (Internal read of negative integer broken)Jerry DeLisle2014-06-272-29/+25
| | | | | | | | | | | 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
* resolve.c (resolve_ordinary_assign): Don't invoke caf_send when assigning a ↵Tobias Burnus2014-06-252-75/+389
| | | | | | | | | | | | | | | | | | | | | | | | 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
* trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.Tobias Burnus2014-06-192-3/+8
| | | | | | | | | | | | | | | | | | | | | | 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
* check.c (gfc_check_atomic, [...]): Use argument for GFC_ISYM_CAF_GET.Tobias Burnus2014-06-173-14/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Rotate ChangeLog for 2013.Richard Sandiford2014-06-172-400/+405
| | | | From-SVN: r211722
* Introduce xmallocarray, an overflow checking variant of xmalloc.Janne Blomqvist2014-06-17332-1511/+1238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR libfortran/60468 (./fpu-target.h:93:3: error: unknown type name 'choke')Francois-Xavier Coudert2014-06-153-6/+31
| | | | | | | | | PR libfortran/60468 * configure.ac: Include <math.h> when checking for fp_except_t and fp_rnd_t types. * configure: Regenerate. From-SVN: r211685
* PR 56981 Flush buffer at record boundary if possible.Janne Blomqvist2014-06-084-23/+56
| | | | | | | | | | | | | | | | | | | | | 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
* getcwd.c: Include stdlib.h.Uros Bizjak2014-05-272-2/+7
| | | | | | * intrinsics/getcwd.c: Include stdlib.h. From-SVN: r210962
* Introduce xrealloc, use it.Janne Blomqvist2014-05-265-14/+30
| | | | | | | | | | | | 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
* PR 61310 Rewrite implementation of CTIME and FDATE intrinsics.Janne Blomqvist2014-05-262-28/+54
| | | | | | | | | | | | | | | | | | | | 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
* [multiple changes]Jerry DeLisle2014-05-262-0/+47
| | | | | | | | | | | | | | | | | | | | | 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
* re PR libfortran/61173 (Erroneous "end of file" with internal read)Jerry DeLisle2014-05-242-7/+17
| | | | | | | | | | 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
* configure.ac [...] (HAVE_STRNLEN, [...]): Define.Hans-Peter Nilsson2014-05-233-0/+13
| | | | | | | * configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define. * configure: Regenerate. From-SVN: r210841
* PR 60324 Handle long path names, don't use PATH_MAX.Janne Blomqvist2014-05-232-0/+6
| | | | | | | | | 2014-05-23 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/60324 * runtime/string.c: Include stdlib.h. From-SVN: r210827
* PR 60324 Handle long path names, don't use PATH_MAX.Janne Blomqvist2014-05-2212-135/+238
| | | | From-SVN: r210738
* re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and ↵Jerry DeLisle2014-05-183-142/+195
| | | | | | | | | | | | | | | | | | | | | | | | 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
* PR 61187 Fix use of uninitialized memory.Janne Blomqvist2014-05-162-2/+18
| | | | | | | | | | 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
* Fix stack overflow crash in getcwd intrinsic.Janne Blomqvist2014-05-122-11/+32
| | | | | | | | | | 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
* Use -std=gnu11 instead of -std=gnu99 for libgfortran C code.Janne Blomqvist2014-05-123-8/+16
| | | | | | | | | | 2014-05-12 Janne Blomqvist <jb@gcc.gnu.org> * configure.ac (AM_CFLAGS): Use -std=gnu11. (CFLAGS): Likewise. * configure: Regenerated. From-SVN: r210334
* trans-intrinsic.c (gfc_build_builtin_function_decls): Change type of second ↵Tobias Burnus2014-05-114-3/+10
| | | | | | | | | | | | | | | | | | 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
* check.c (check_co_minmaxsum, [...]): New.Tobias Burnus2014-05-083-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR libfortran/61049 (NIST test FM906 fails)Jerry DeLisle2014-05-072-14/+8
| | | | | | | | | | 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
* gfortran.h (gfc_init_coarray_decl): Remove.Tobias Burnus2014-04-304-31/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and ↵Jerry DeLisle2014-04-263-53/+223
| | | | | | | | | | | | | | | | | | | 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
* Fix warning in libgfortran configure scriptKyrylo Tkachov2014-04-243-2/+7
| | | | | | | * configure.ac: Quote usage of ac_cv_func_clock_gettime in if test. * configure: Regenerate. From-SVN: r209747
* Remove obsolete Solaris 9 supportRainer Orth2014-04-222-46/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR fortran/60810 (list directed io from array results in end of file)Jerry DeLisle2014-04-122-3/+6
| | | | | | | | | 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
* re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)Jerry DeLisle2014-03-212-1/+8
| | | | | | | | | | 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
* configure.ac: Check for presence of fcntl.Ulrich Weigand2014-03-185-4/+17
| | | | | | | | | * 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
* Fix PR Number in logJerry DeLisle2014-03-181-1/+1
| | | | From-SVN: r208630
* re PR libfortran/46800 (Handle CTRL-D correctly with STDIN)Jerry DeLisle2014-03-182-8/+29
| | | | | | | | | | | 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
* re PR fortran/58324 (Bogus END-of-line error with list-directed I/O of file ↵Jerry DeLisle2014-03-152-5/+19
| | | | | | | | | | | | | | | 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
* re PR libfortran/38199 (missed optimization: I/O performance)Jerry DeLisle2014-03-134-26/+75
| | | | | | | | | | | | | | | | | 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
* re PR libfortran/38199 (missed optimization: I/O performance)Jerry DeLisle2014-03-091-1/+1
| | | | | | | | | | | 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