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