* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
[official-gcc.git] / libgfortran / ChangeLog
bloba389a4231b5850e61f177e14d1b794c17832e47d
1 2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>
3         PR libfortran/60324
4         * intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
5         macro instead of a variable.
6         (random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
7         related changes.
8         (random_seed_i8): KISS_SIZE related changes.
10 2014-11-13  Marek Polacek  <polacek@redhat.com>
12         * intrinsics/access.c: Include <stdlib.h>.
13         * intrinsics/chdir.c: Likewise.
14         * intrinsics/chmod.c: Likewise.
15         * intrinsics/link.c: Likewise.
16         * intrinsics/perror.c: Likewise.
17         * intrinsics/rename.c: Likewise.
18         * intrinsics/symlnk.c: Likewise.
19         * intrinsics/unlink.c: Likewise.
21 2014-11-13  Janne Blomqvist  <jb@gcc.gnu.org>
23         PR libfortran/60324
24         * configure: Regenerated.
25         * configure.ac (AM_CFLAGS): Add Werror=vla.
26         * libgfortran.h (gfc_alloca): Remove macro.
27         (fc_strdup_notrim): New prototype.
28         * intrinsics/access.c (access_func): Use fc_strdup rather than
29         stack allocation.
30         * intrinsics/chdir.c (chdir_i4_sub): Likewise.
31         (chdir_i8_sub): Likewise.
32         * intrinsics/chmod.c (chmod_internal): New function, move logic
33         here.
34         (chmod_func): Call chmod_internal.
35         * intrinsics/env.c (getenv): Use fc_strdup rather than stack
36         allocation.
37         (get_environment_variable_i4): Likewise.
38         * intrinsics/execute_command_line.c (execute_command_line):
39         Likewise.
40         * intrinsics/hostnm.c (hostnm_0): New function, use static buffer
41         rather than VLA.
42         (hostnm_i4_sub): Call hostnm_0.
43         (hostnm_i8_sub): Likewise.
44         (hostnm): Likewise.
45         * intrinsics/link.c (link_internal): New function, use fc_strdup
46         rather than stack allocation.
47         (link_i4_sub): Call link_internal.
48         (link_i8_sub): Likewise.
49         (link_i4): Likewise.
50         (link_i8): Likewise.
51         * intrinsics/perror.c (perror_sub): Use fc_strdup rather than
52         stack allocation.
53         * intrinsics/random.c (random_seed_i4): Use static buffer rather
54         than VLA, use _Static_assert to make sure it's big enough.
55         * intrinsics/rename.c (rename_internal): New function, use
56         fc_strdup rather than stack allocation.
57         (rename_i4_sub): Call rename_internal.
58         (rename_i8_sub): Likewise.
59         (rename_i4): Likewise.
60         (rename_i8): Likewise.
61         * intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
62         stack allocation.
63         (stat_i8_sub_0): Likewise.
64         * intrinsics/symlink.c (symlnk_internal): New function, use
65         fc_strdup rather than stack allocation.
66         (symlnk_i4_sub): Call symlnk_internal.
67         (symlnk_i8_sub): Likewise.
68         (symlnk_i4): Likewise.
69         (symlnk_i8): Likewise.
70         * intrinsics/system.c (system_sub): Use fc_strdup rather than
71         stack allocation.
72         * intrinsics/unlink.c (unlink_i4_sub): Likewise.
73         * io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
74         * io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
75         back to xmalloc/free for large sizes.
76         * io/read.c (read_f): Likewise.
77         * io/transfer.c (MAX_READ): Make it a macro rather than variable.
78         (WRITE_CHUNK): Likewise.
79         * io/write_float.def (write_float): Use fixed stack buffer, fall
80         back to xmalloc/free for large sizes.
81         * runtime/string.c (fc_strdup_notrim): New function.
83 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
85         PR target/63610
86         * configure: Regenerate.
88 2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
90         PR libfortran/47007
91         PR libfortran/61847
92         * config.h.in: Regenerated.
93         * configure: Regenerated.
94         * configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
95         (AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
96         strerror_l.
97         * io/io.h (locale.h): Include.
98         (xlocale.h): Include if present.
99         (c_locale): New variable.
100         (old_locale): New variable.
101         (old_locale_ctr): New variable.
102         (old_locale_lock): New variable.
103         (st_parameter_dt): Add old_locale member.
104         * io/transfer.c (data_transfer_init): Set locale to "C" if doing
105         formatted transfer.
106         (finalize_transfer): Reset locale to previous.
107         * io/unit.c (c_locale): New variable.
108         (old_locale): New variable.
109         (old_locale_ctr): New variable.
110         (old_locale_lock): New variable.
111         (init_units): Init c_locale, init old_locale_lock.
112         (close_units): Free c_locale.
113         * runtime/error.c (locale.h): Include.
114         (xlocale.h): Include if present.
115         (gf_strerror): Use strerror_l if available. Reset locale to
116         LC_GLOBAL_LOCALE for strerror_r branch.
118 2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
120         PR libfortran/63589
121         * configure.ac: Check for strtok_r.
122         * runtime/main.c (gfstrtok_r): Fallback implementation of
123         strtok_r.
124         (find_addr2line): Use strtok_r to split PATH.
125         * config.h.in: Regenerated.
126         * configure: Regenerated.
128 2014-10-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
130         * ieee/ieee_helper.c (ieee_is_finite_*, ieee_is_nan_*,
131         ieee_is_negative_*, ieee_is_normal_*, ieee_copy_sign_*,
132         ieee_unordered_*, ieee_logb_*, ieee_rint_*, ieee_scalb_*,
133         ieee_rem_*, ieee_next_after_*): Remove functions.
134         * gfortran.map (GFORTRAN_1.5): Remove corresponding symbols.
136 2014-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
138         PR libgfortran/63460
139         * io/unit.c (init_units): Initialize the DELIM flag to
140         UNSPECIFIED for the STDIN unit so that the flag is
141         correctly set later.
143 2014-10-01  Janne Blomqvist  <jb@gcc.gnu.org>
145         * intrinsics/pack_generic.c (pack_s_internal): Fix
146         -Wmaybe-uninitialized warning.
147         * m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
148         (unpack1_'rtype_code`): Likewise.
149         * generated/unpack_*.m4: Regenerated.
151 2014-09-30  Janne Blomqvist  <jb@gcc.gnu.org>
153         * configure.ac (AM_CFLAGS): Add
154         -Werror=implicit-function-declaration.
155         * Makefile.in: Regenerated.
156         * aclocal.m4: Regenerated.
157         * configure: Regenerated.
159 2014-09-25  Tobias Burnus  <burnus@net-b.de>
161         * caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
162         * caf/single.c (_gfortran_caf_co_broadcast): New.
164 2014-09-18  Janne Blomqvist  <jb@gcc.gnu.org>
166         PR libfortran/62768
167         * io/inquire.c (inquire_via_unit): Use gfc_unit.filename also when
168         HAVE_TTYNAME{_R} is not defined.
170 2014-09-17  Janne Blomqvist  <jb@gcc.gnu.org>
172         PR libfortran/62768
173         * io/io.h (gfc_unit): Store C string for the filename.
174         * io/close.c (st_close): Use gfc_unit.filename.
175         * io/inquire.c (inquire_via_unit): Likewise.
176         * io/open.c (new_unit): Likewise.
177         (already_open): Likewise, unlink file before freeing filename.
178         * io/unit.c (init_units): Likewise.
179         (close_unit_1): Likewise.
180         (filename_from_unit): Likewise.
181         * io/unix.c (compare_file_filename): Likewise.
182         (find_file0): Likewise.
183         (delete_file): Likewise.
185 2014-09-10  Janne Blomqvist  <jb@gcc.gnu.org>
187         * io/transfer.c (read_block_form): Fix pad status check (found by
188         Thomas Schwinge with -Wlogical-not-parentheses).
190 2014-08-31  Tobias Burnus  <burnus@net-b.de>
192         * caf/libcaf.h (_gfortran_caf_send, _gfortran_caf_get,
193         _gfortran_caf_sendget): Update prototype.
194         * caf/single.c (_gfortran_caf_send, _gfortran_caf_get,
195         _gfortran_caf_sendget): Handle may_require_tmp.
197 2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>
199         PR libgfortran/62188
200         * m4/bessel.m4: Avoid indexing off the end of an array.
201         * generated/bessel_r10.c: Regenerated.
202         * generated/bessel_r16.c: Ditto.
203         * generated/bessel_r4.c: Ditto.
204         * generated/bessel_r8.c: Ditto.
206 2014-08-14  Tobias Burnus  <burnus@net-b.de>
208         * caf/libcaf.h (caf_register_t): Update for critical.
209         (_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
210         (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
211         * caf/single.c (_gfortran_caf_register): Handle locking
212         variables.
213         (_gfortran_caf_sendget): Re-name args for consistency.
214         (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
216 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
218         * runtime/memory.c (xmallocarray): Avoid division for the common case.
220 2014-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
222         PR libgfortran/61632
223         * io/format.c (format_error): Avoid invalid string pointer by
224         using the fortran string length values to generate error string.
225         (parse_format): Allocate the null terminator for the format
226         string.
228 2014-07-12  Tobias Burnus  <burnus@net-b.de>
230         * caf/libcaf.h (_gfortran_caf_atomic_define,
231         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
232         _gfortran_caf_atomic_cas): New prototypes.
233         * caf/single.c (_gfortran_caf_atomic_define,
234         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
235         _gfortran_caf_atomic_cas): New functions.
237 2014-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
239         * config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
240         support_fpu_rounding_mode): Clean up, mark unreachable code as such.
242 2014-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
244         * libgfortran.h (support_fpu_underflow_control,
245         get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
246         * config/fpu-*.h (support_fpu_underflow_control,
247         get_fpu_underflow_mode, set_fpu_underflow_mode):
248         New functions.
249         * ieee/ieee_arithmetic.F90: Support underflow control.
251 2014-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
253         * config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
254         FP_RM, FP_RZ unconditionally.
255         (set_fpu_rounding_mode): Likewise.
257 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
259         * libgfortran.h: Assume __GNUC__.
261 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
263         * runtime/stop.c: Use C11 _Noreturn.
264         * libgfortran.h: Use C11 _Noreturn in prototypes.
265         Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
266         * intrinsics/c99_functions.c: ... here.
268 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
270         * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
271         config/fpu-glibc.h: Use static assertions.
273 2014-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
275         * configure, config.h.in: Regenerate.
276         * config/fpu-sysv.h: Include <assert.h>.
278 2014-07-02  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
280         * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
282 2014-07-02  Uros Bizjak  <ubizjak@gmail.com>
284         * configure.host (ieee_flags): Add -mieee for alpha*.
286         * config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
287         GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
288         * config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
290 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
292         * config/fpu-387.h (my_fenv_t): Amend structure so it also works
293         on mingw32.
295 2014-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
297         PR libgfortran/61640
298         * io/list_read.c (next_char_internal): Adjust the read length to
299         a single wide character. (eat_spaces): Add missing paren.
300         * io/unix.c (mem_read4): Use the correct mem_alloc function for
301         wide character internal reads.
303 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
305         PR fortran/29383
306         * configure.host: Add checks for IEEE support, rework priorities.
307         * configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
308         fpresetsticky.
309         * configure: Regenerate.
310         * Makefile.am: Build new ieee files, install IEEE_* modules.
311         * Makefile.in: Regenerate.
312         * gfortran.map (GFORTRAN_1.6): Add new symbols.
313         * libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
314         support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
315         support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
316         prototypes.
317         * config/fpu-*.h (get_fpu_trap_exceptions,
318         set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
319         support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
320         set_fpu_state): New functions.
321         * ieee/ieee_features.F90: New file.
322         * ieee/ieee_exceptions.F90: New file.
323         * ieee/ieee_arithmetic.F90: New file.
324         * ieee/ieee_helper.c: New file.
326 2014-06-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
328         PR libgfortran/61499
329         * io/list_read.c (eat_spaces): Use a 'for' loop instead of
330         'while' loop to skip the loop if there are no bytes left in the
331         string. Only seek if actual spaces can be skipped.
333 2014-06-25  Tobias Burnus  <burnus@net-b.de>
335         * caf/single.c (assign_char4_from_char1, assign_char1_from_char4,
336         convert_type): New static functions.
337         (_gfortran_caf_get, _gfortran_caf_send): Use them.
339 2014-06-19  Tobias Burnus  <burnus@net-b.de>
341         * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
342         _gfortran_caf_co_min): Fix stat setting.
344 2014-06-17  Tobias Burnus  <burnus@net-b.de>
346         * caf/libcaf.h (gfc_descriptor_t): New typedef.
347         (caf_vector_t): Update.
348         (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
349         Remove vector-subscript argument.
350         (_gfortran_caf_co_send, _gfortran_caf_co_get,
351         _gfortran_caf_co_sendget): New.
352         * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
353         _gfortran_caf_co_min): Remove vector-subscript argument.
354         (_gfortran_caf_co_send, _gfortran_caf_co_get,
355         _gfortran_caf_co_sendget): New.
357 2014-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
359         * libgfortran.h (xmallocarray): New prototype.
360         * runtime/memory.c (xmallocarray): New function.
361         (xcalloc): Check for nonzero separately instead of multiplying.
362         * generated/*.c: Regenerated.
363         * intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
364         xmalloc.
365         * intrinsics/eoshift0.c (eoshift0): Likewise.
366         * intrinsics/eoshift2.c (eoshift2): Likewise.
367         * intrinsics/pack_generic.c (pack_internal): Likewise.
368         (pack_s_internal): Likewise.
369         * intrinsics/reshape_generic.c (reshape_internal): Likewise.
370         * intrinsics/spread_generic.c (spread_internal): Likewise.
371         (spread_internal_scalar): Likewise.
372         * intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
373         (string_minmax): Likewise.
374         * intrinsics/transpose_generic.c (transpose_internal): Likewise.
375         * intrinsics/unpack_generic.c (unpack_internal): Likewise.
376         * io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
377         * io/transfer.c (st_set_nml_var): Call xmallocarray instead of
378         xmalloc.
379         * io/unit.c (get_internal_unit): Likewise.
380         (filename_from_unit): Don't cast xmalloc return value.
381         * io/write.c (nml_write_obj): Likewise, formatting.
382         * m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
383         instead of xmalloc.
384         (besse_yn_r'rtype_kind`): Likewise.
385         * m4/cshift1.m4 (cshift1): Likewise.
386         * m4/eoshift1.m4 (eoshift1): Likewise.
387         * m4/eoshift3.m4 (eoshift3): Likewise.
388         * m4/iforeach.m4: Likewise.
389         * m4/ifunction.m4: Likewise.
390         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
391         Likewise.
392         * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
393         * m4/matmul.m4 (matmul_'rtype_code`): Likewise.
394         * m4/matmull.m4 (matmul_'rtype_code`): Likewise.
395         * m4/pack.m4 (pack_'rtype_code`): Likewise.
396         * m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
397         * m4/shape.m4 (shape_'rtype_kind`): Likewise.
398         * m4/spread.m4 (spread_'rtype_code`): Likewise.
399         (spread_scalar_'rtype_code`): Likewise.
400         * m4/transpose.m4 (transpose_'rtype_code`): Likewise.
401         * m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
402         (unpack1_'rtype_code`): Likewise.
403         * runtime/convert_char.c (convert_char1_to_char4): Likewise.
404         (convert_char4_to_char1): Simplify.
405         * runtime/environ.c (init_unformatted): Call xmallocarray instead
406         of xmalloc.
407         * runtime/in_pack_generic.c (internal_pack): Likewise.
409 2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
411         PR libfortran/60468
412         * configure.ac: Include <math.h> when checking for fp_except_t
413         and fp_rnd_t types.
414         * configure: Regenerate.
416 2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>
418         PR libfortran/56981
419         * io/unix.h (struct stream_vtable): Add new member function,
420         markeor.
421         (smarkeor): New inline function.
422         (flush_if_unbuffered): Remove prototype.
423         * io/unix.c (raw_markeor): New function.
424         (raw_vtable): Initialize markeor member.
425         (buf_markeor): New function.
426         (buf_vtable): Initialize markeor member.
427         (mem_vtable): Likewise.
428         (mem4_vtable): Likewise.
429         (flush_if_unbuffered): Remove function.
430         * io/transfer.c (next_record): Call smarkeor instead of
431         flush_if_unbuffered.
433 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
435         * intrinsics/getcwd.c: Include stdlib.h.
437 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
439         * libgfortran.h (xrealloc): New prototype.
440         * runtime/memory.c (xrealloc): New function.
441         * io/fbuf.c (fbuf_alloc): Use xrealloc.
442         * io/list_read.c (push_char_default): Likewise.
443         (push_char4): Likewise.
445 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
447         PR libfortran/61310
448         * intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
449         instead of strftime.
450         (fdate): Use gf_ctime.
451         (fdate_sub): Likewise.
452         (ctime): Likewise.
453         (ctime_sub): Likewise.
455 2014-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
457         PR libgfortran/55117
458         * io/list_read.c (extended_look_ahead): New helper function to
459         scan the namelist name and look for matches with the new '+'
460         extended type parent indicator.  (str_comp_extended): New
461         helper function to compare the namelist name with the varname
462         namelist. (find_nml_name): Use the new helper functions to match
463         the extended type varnames.
465 2014-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu>
467         PR libfortran/61173
468         * io/list_read.c (eat_spaces): If the next character pointed to
469         is a space, don't seek, must be at the end.
471 2014-05-23  Hans-Peter Nilsson  <hp@axis.com>
473         * configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
474         * configure: Regenerate.
476 2014-05-23  Janne Blomqvist  <jb@gcc.gnu.org>
478         PR libfortran/60324
479         * runtime/string.c: Include stdlib.h.
481 2014-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
483         PR libfortran/60324
484         * config.h.in: Regenerated.
485         * configure: Regenerated.
486         * configure.ac (AC_CHECK_FUNCS_ONCE): Check for strnlen and
487         strndup.
488         * libgfortran.h (fc_strdup): New prototype.
489         * runtime/string.c (strnlen): New fallback function.
490         (strndup): New fallback function.
491         (fc_strdup): New function.
492         * io/close.c (st_close): Use fc_strdup.
493         * io/open.c (new_unit): Likewise.
494         (already_open): Likewise.
495         * io/unit.c (filename_from_unit): Likewise.
496         * io/unix.c (unpack_filename): Remove function.
497         (regular_file): Rename to regular_file2, add path argument.
498         (regular_file): New function calling regular_file2.
499         (compare_file_filename): Use fc_strdup.
500         (find_file): Likewise.
501         (delete_file): Likewise.
502         (file_exists): Likewise.
503         (file_size): Likewise.
504         (inquire_sequential): Likewise.
505         (inquire_direct): Likewise.
506         (inquire_formatted): Likewise.
507         (inquire_access): Likewise.
508         * io/unix.h (unpack_filename): Remove prototype.
509         * runtime/main.c (please_free_exe_path_when_done): Change type to
510         bool.
511         (store_exe_path): Use malloced buffer, grow as needed.
513 2014-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
515         PR libfortran/52539
516         * io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
517         and *push_char_fn_ptr.
518         *io/list_read.c (next_char): Create macro with this name to call
519         the new function pointer. Split the original next_char function
520         into three new functions. (next_char_default, next_char_internal,
521         next_char_utf8): New functions. (push_char): Create macro with
522         this name to call new function pointer. Split the original
523         push_char into three new functions. (push_char_default,
524         push_char_internal, push_char4): New functions. (set_workers):
525         New function to initilize the function pointers depending on the
526         type of IO to be performed. (list_formatted_read_scalar): Use
527         set_workers function. (finish_list_read): Likewise.
528         (namelist_read): Likewise.
529         (nml_get_obj_data): Use push_char_default.
531 2014-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
533         PR libfortran/61187
534         * io/unix.c (raw_close): Check if s->fd is -1.
535         (fd_to_stream): Check return value of fstat(), handle error.
537 2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
539         PR libfortran/61035
540         * intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
541         stack allocation, avoid extra copying in the common case.
543 2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
545         * configure.ac (AM_CFLAGS): Use -std=gnu11.
546         (CFLAGS): Likewise.
547         * configure: Regenerated.
549 2014-05-11  Tobias Burnus  <burnus@net-b.de>
551         * caf/libcaf.h (_gfortran_caf_num_images): Change type of
552         second argument to int.
553         * caf/mpi.c (_gfortran_caf_num_images): Ditto.
554         * caf/single.c (_gfortran_caf_num_images): Ditto.
556 2014-05-08  Tobias Burnus  <burnus@net-b.de>
558         * caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
559         _gfortran_caf_co_min, _gfortran_caf_co_max): Declare
560         * caf/single.c
562 2014-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu>
564         PR libfortran/61049
565         * io/list_read.c (list_formatted_read_scalar): Use eat_separator
566         and delete extraneous code.
568 2014-04-30  Tobias Burnus  <burnus@net-b.de>
570         * caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
571         New prototypes.
572         (_gfortran_caf_init): Change prototype.
573         (mpi_token_t): New typedef.
574         (TOKEN): New define.
575         * caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
576         New functions.
577         (_gfortran_caf_init): Update.
578         (_gfortran_caf_finalize, _gfortran_caf_register,
579         _gfortran_caf_deregister): Use mpi_token_t.
580         * caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
581         New functions.
582         (_gfortran_caf_init): Update.
583         (_gfortran_caf_finalize, _gfortran_caf_register,
584         _gfortran_caf_deregister): Use mpi_token_t, simplify.
586 2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>
588         PR libfortran/52539
589         * io/list_read.c: Add uchar typedef. (push_char4): New function
590         to save kind=4 character. (next_char_utf8): New function to read
591         a single UTF-8 encoded character value. (read_chracter): Update
592         to use the new functions for reading UTF-8 strings.
593         (list_formatted_read_scalar): Update to handle list directed
594         reads of UTF-8 strings. (nml_read_obj): Likewise update for
595         UTF-8 strings in namelists.
596         * io/write.c (nml_write_obj): Add kind=4 character support for
597         namelist writes.
599 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
601         * configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
602         * configure: Regenerate.
604 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
606         * config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
607         check.
609 2014-04-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
611         PR libfortran/60810
612         io/unit.c (is_trim_ok): If internal unit is array, do not trim.
614 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu>
616         PR libfortran/60148
617         * io/transfer.c (data_transfer_init): If std= was specified, set
618         delim status to DELIM_NONE of no other was specified.
620 2014-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
622         * configure.ac: Check for presence of fcntl.
623         * configure: Regenerate.
624         * config.h.in: Regenerate.
625         * io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
627 2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
629         PR libfortran/48600
630         * io/list_read.c (list_formatted_read_scalar): Do not use
631         eat_separator. Explicitly set the comma and end-of-line flags.
632         Check for END condition from finish_separator.
634 2014-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu>
636         PR libfortran/58324
637         * io/list_read.c (finish_list_read): Read one character to check
638         for the end of the file.  If it is the end, then issue the file
639         end error message.  If not, use eat_line to reach the end
640         without giving error.  The next attempt to read will then
641         issue the error as described above.
643 2014-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu>
645         PR libfortran/38199
646         * io/read.c (read_decimal): Quickly skip spaces to avoid calls
647         to next_char.
648         * io/unit.c (is_trim_ok): New helper function to check various
649         conditions to see if its OK to trim the internal unit string.
650         (get_internal_unit): Use LEN_TRIM to shorten selected internal
651         unit strings for optimizing READ. Enable this optimization for
652         formatted READ.
653         * io/list_read.c (finish_list_read): Don't call eat_line for
654         internal units.
656 2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>
658         PR libfortran/38199
659         * io/list_read.c (next_char): Mark unlikely error checks.
660         (eat_spaces): For character array reading, skip ahead over
661         spaces rather than call next_char multiple times.
663 2014-03-08  Tobias Burnus  <burnus@net-b.de>
665         * libgfortran.h (unlikely, likely): Add usage comment.
667 2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>
669         PR libgfortran/60128
670         * io/write_float.def (output_float): Remove unused variable
671         nzero_real. Replace a double space with a single one.
672         (determine_en_precision): Fix wrong handling of the EN format.
674 2014-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu>
676         PR libfortran/60148
677         * io/inquire.c (inquire_via_unit): In the case of
678         DELIM_UNSPECIFIED set inquire return string to "NONE".
679         * io/list_read.c (read_character): In the case of DELIM_NONE and
680         namelists, complete the character read using the namelist
681         variable length.
682         * io/open.c (new_unit): Don't set delim status to none if not
683         specified so that DELIM_UNSPECIFIED can be used later.
684         * io/transfer.c (data_transfer_init): For namelist I/O, if the
685         unit delim status is unspecified set the current status to quote.
686         Otherwise, set current status to the unit status.
687         * io/unit.c (get_internel_unit, init_unit): Remember to set
688         flags_delim initially to DELIM_UNSPECIFIED so defaults come out
689         correctly.
690         * io/write.c (write_character): Add a new function argument
691         "mode" to signify that raw output is to be used vs output with
692         delimiters. If the mode is set to DELIM (1) proceed with
693         delimiters. (list_formatted_write_scalar): Write the separator
694         only if a delimiter was previously specified. Update the call to
695         write_character with the mode argument given.
696         (namelist_write_newline): Use the mode argument. (nml_write_obj):
697         Use the mode argument. Remove use of tmp_delim. Write the
698         semi-colon or comma correctly only when needed with using
699         delimiters. Cleanup whitespace.
700         (namelist_write): If delim is not specified in namelist I/O,
701         default to using quotes. Get rid of the tmp_delim variable and
702         use the new mode argument in write_character.
704 2014-02-21  Tobias Burnus  <burnus@net-b.de>
706         PR fortran/60286
707         * libgfortran/io/inquire.c (yes, no): New static const char vars.
708         (inquire_via_unit): Use them. Use OPEN mode instead of using
709         POSIX's access to query about write=, read= and readwrite=.
711 2014-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu>
712             Dominique d'Humieres  <dominiq@lps.ens.fr>
714         * io/write_float.def (output_float): Remove inadvertent test
715         code from previous patch.
717 2014-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu>
718             Dominique d'Humieres  <dominiq@lps.ens.fr>
720         PR libfortran/59771
721         PR libfortran/59774
722         PR libfortran/59836
723         * io/write_float.def (output_float): Fix wrong handling of the
724         Fw.0 format.
725         (output_float_FMT_G_): Fixes rounding issues with -m32.
727 2014-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
728             Dominique d'Humieres  <dominiq@lps.ens.fr>
729             Steven G. Kargl  <kargl@gcc.gnu.org>
731         PR libfortran/59700
732         PR libfortran/59764
733         * io/io.h (struct st_parameter_dt): Assign expanded_read flag to
734         unused bit. Define new variable line_buffer_pos.
735         * io/list_read.c (free_saved, next_char, l_push_char,
736         read_logical, read_real): Replace use of item_count with
737         line_buffer_pos for line_buffer look ahead.
738         (read_logical, read_integer, parse_real, read_real, check_type):
739         Adjust location of free_line to after generating error messages
740         to retain the correct item count for the message.
742 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
744         Update copyright years
746 Copyright (C) 2013-2014 Free Software Foundation, Inc.
748 Copying and distribution of this file, with or without modification,
749 are permitted in any medium without royalty provided the copyright
750 notice and this notice are preserved.