2014-07-29 Ed Smith-Rowland <3dw4rd@verizon.net>
[official-gcc.git] / libgfortran / ChangeLog
blob80f87523a69503be5476a74532756c12819bae7b
1 2014-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3         PR libgfortran/61632
4         * io/format.c (format_error): Avoid invalid string pointer by
5         using the fortran string length values to generate error string.
6         (parse_format): Allocate the null terminator for the format
7         string.
9 2014-07-12  Tobias Burnus  <burnus@net-b.de>
11         * caf/libcaf.h (_gfortran_caf_atomic_define,
12         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
13         _gfortran_caf_atomic_cas): New prototypes.
14         * caf/single.c (_gfortran_caf_atomic_define,
15         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
16         _gfortran_caf_atomic_cas): New functions.
18 2014-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20         * config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
21         support_fpu_rounding_mode): Clean up, mark unreachable code as such.
23 2014-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
25         * libgfortran.h (support_fpu_underflow_control,
26         get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
27         * config/fpu-*.h (support_fpu_underflow_control,
28         get_fpu_underflow_mode, set_fpu_underflow_mode):
29         New functions.
30         * ieee/ieee_arithmetic.F90: Support underflow control.
32 2014-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34         * config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
35         FP_RM, FP_RZ unconditionally.
36         (set_fpu_rounding_mode): Likewise.
38 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
40         * libgfortran.h: Assume __GNUC__.
42 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
44         * runtime/stop.c: Use C11 _Noreturn.
45         * libgfortran.h: Use C11 _Noreturn in prototypes.
46         Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
47         * intrinsics/c99_functions.c: ... here.
49 2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
51         * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
52         config/fpu-glibc.h: Use static assertions.
54 2014-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
56         * configure, config.h.in: Regenerate.
57         * config/fpu-sysv.h: Include <assert.h>.
59 2014-07-02  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
61         * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
63 2014-07-02  Uros Bizjak  <ubizjak@gmail.com>
65         * configure.host (ieee_flags): Add -mieee for alpha*.
67         * config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
68         GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
69         * config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
71 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
73         * config/fpu-387.h (my_fenv_t): Amend structure so it also works
74         on mingw32.
76 2014-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
78         PR libgfortran/61640
79         * io/list_read.c (next_char_internal): Adjust the read length to
80         a single wide character. (eat_spaces): Add missing paren.
81         * io/unix.c (mem_read4): Use the correct mem_alloc function for
82         wide character internal reads.
84 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
86         PR fortran/29383
87         * configure.host: Add checks for IEEE support, rework priorities.
88         * configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
89         fpresetsticky.
90         * configure: Regenerate.
91         * Makefile.am: Build new ieee files, install IEEE_* modules.
92         * Makefile.in: Regenerate.
93         * gfortran.map (GFORTRAN_1.6): Add new symbols.
94         * libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
95         support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
96         support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
97         prototypes.
98         * config/fpu-*.h (get_fpu_trap_exceptions,
99         set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
100         support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
101         set_fpu_state): New functions.
102         * ieee/ieee_features.F90: New file.
103         * ieee/ieee_exceptions.F90: New file.
104         * ieee/ieee_arithmetic.F90: New file.
105         * ieee/ieee_helper.c: New file.
107 2014-06-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
109         PR libgfortran/61499
110         * io/list_read.c (eat_spaces): Use a 'for' loop instead of
111         'while' loop to skip the loop if there are no bytes left in the
112         string. Only seek if actual spaces can be skipped.
114 2014-06-25  Tobias Burnus  <burnus@net-b.de>
116         * caf/single.c (assign_char4_from_char1, assign_char1_from_char4,
117         convert_type): New static functions.
118         (_gfortran_caf_get, _gfortran_caf_send): Use them.
120 2014-06-19  Tobias Burnus  <burnus@net-b.de>
122         * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
123         _gfortran_caf_co_min): Fix stat setting.
125 2014-06-17  Tobias Burnus  <burnus@net-b.de>
127         * caf/libcaf.h (gfc_descriptor_t): New typedef.
128         (caf_vector_t): Update.
129         (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
130         Remove vector-subscript argument.
131         (_gfortran_caf_co_send, _gfortran_caf_co_get,
132         _gfortran_caf_co_sendget): New.
133         * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
134         _gfortran_caf_co_min): Remove vector-subscript argument.
135         (_gfortran_caf_co_send, _gfortran_caf_co_get,
136         _gfortran_caf_co_sendget): New.
138 2014-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
140         * libgfortran.h (xmallocarray): New prototype.
141         * runtime/memory.c (xmallocarray): New function.
142         (xcalloc): Check for nonzero separately instead of multiplying.
143         * generated/*.c: Regenerated.
144         * intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
145         xmalloc.
146         * intrinsics/eoshift0.c (eoshift0): Likewise.
147         * intrinsics/eoshift2.c (eoshift2): Likewise.
148         * intrinsics/pack_generic.c (pack_internal): Likewise.
149         (pack_s_internal): Likewise.
150         * intrinsics/reshape_generic.c (reshape_internal): Likewise.
151         * intrinsics/spread_generic.c (spread_internal): Likewise.
152         (spread_internal_scalar): Likewise.
153         * intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
154         (string_minmax): Likewise.
155         * intrinsics/transpose_generic.c (transpose_internal): Likewise.
156         * intrinsics/unpack_generic.c (unpack_internal): Likewise.
157         * io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
158         * io/transfer.c (st_set_nml_var): Call xmallocarray instead of
159         xmalloc.
160         * io/unit.c (get_internal_unit): Likewise.
161         (filename_from_unit): Don't cast xmalloc return value.
162         * io/write.c (nml_write_obj): Likewise, formatting.
163         * m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
164         instead of xmalloc.
165         (besse_yn_r'rtype_kind`): Likewise.
166         * m4/cshift1.m4 (cshift1): Likewise.
167         * m4/eoshift1.m4 (eoshift1): Likewise.
168         * m4/eoshift3.m4 (eoshift3): Likewise.
169         * m4/iforeach.m4: Likewise.
170         * m4/ifunction.m4: Likewise.
171         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
172         Likewise.
173         * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
174         * m4/matmul.m4 (matmul_'rtype_code`): Likewise.
175         * m4/matmull.m4 (matmul_'rtype_code`): Likewise.
176         * m4/pack.m4 (pack_'rtype_code`): Likewise.
177         * m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
178         * m4/shape.m4 (shape_'rtype_kind`): Likewise.
179         * m4/spread.m4 (spread_'rtype_code`): Likewise.
180         (spread_scalar_'rtype_code`): Likewise.
181         * m4/transpose.m4 (transpose_'rtype_code`): Likewise.
182         * m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
183         (unpack1_'rtype_code`): Likewise.
184         * runtime/convert_char.c (convert_char1_to_char4): Likewise.
185         (convert_char4_to_char1): Simplify.
186         * runtime/environ.c (init_unformatted): Call xmallocarray instead
187         of xmalloc.
188         * runtime/in_pack_generic.c (internal_pack): Likewise.
190 2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
192         PR libfortran/60468
193         * configure.ac: Include <math.h> when checking for fp_except_t
194         and fp_rnd_t types.
195         * configure: Regenerate.
197 2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>
199         PR libfortran/56981
200         * io/unix.h (struct stream_vtable): Add new member function,
201         markeor.
202         (smarkeor): New inline function.
203         (flush_if_unbuffered): Remove prototype.
204         * io/unix.c (raw_markeor): New function.
205         (raw_vtable): Initialize markeor member.
206         (buf_markeor): New function.
207         (buf_vtable): Initialize markeor member.
208         (mem_vtable): Likewise.
209         (mem4_vtable): Likewise.
210         (flush_if_unbuffered): Remove function.
211         * io/transfer.c (next_record): Call smarkeor instead of
212         flush_if_unbuffered.
214 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
216         * intrinsics/getcwd.c: Include stdlib.h.
218 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
220         * libgfortran.h (xrealloc): New prototype.
221         * runtime/memory.c (xrealloc): New function.
222         * io/fbuf.c (fbuf_alloc): Use xrealloc.
223         * io/list_read.c (push_char_default): Likewise.
224         (push_char4): Likewise.
226 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
228         PR libfortran/61310
229         * intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
230         instead of strftime.
231         (fdate): Use gf_ctime.
232         (fdate_sub): Likewise.
233         (ctime): Likewise.
234         (ctime_sub): Likewise.
236 2014-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
238         PR libgfortran/55117
239         * io/list_read.c (extended_look_ahead): New helper function to
240         scan the namelist name and look for matches with the new '+'
241         extended type parent indicator.  (str_comp_extended): New
242         helper function to compare the namelist name with the varname
243         namelist. (find_nml_name): Use the new helper functions to match
244         the extended type varnames.
246 2014-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu>
248         PR libfortran/61173
249         * io/list_read.c (eat_spaces): If the next character pointed to
250         is a space, don't seek, must be at the end.
252 2014-05-23  Hans-Peter Nilsson  <hp@axis.com>
254         * configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
255         * configure: Regenerate.
257 2014-05-23  Janne Blomqvist  <jb@gcc.gnu.org>
259         PR libfortran/60324
260         * runtime/string.c: Include stdlib.h.
262 2014-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
264         PR libfortran/60324
265         * config.h.in: Regenerated.
266         * configure: Regenerated.
267         * configure.ac (AC_CHECK_FUNCS_ONCE): Check for strnlen and
268         strndup.
269         * libgfortran.h (fc_strdup): New prototype.
270         * runtime/string.c (strnlen): New fallback function.
271         (strndup): New fallback function.
272         (fc_strdup): New function.
273         * io/close.c (st_close): Use fc_strdup.
274         * io/open.c (new_unit): Likewise.
275         (already_open): Likewise.
276         * io/unit.c (filename_from_unit): Likewise.
277         * io/unix.c (unpack_filename): Remove function.
278         (regular_file): Rename to regular_file2, add path argument.
279         (regular_file): New function calling regular_file2.
280         (compare_file_filename): Use fc_strdup.
281         (find_file): Likewise.
282         (delete_file): Likewise.
283         (file_exists): Likewise.
284         (file_size): Likewise.
285         (inquire_sequential): Likewise.
286         (inquire_direct): Likewise.
287         (inquire_formatted): Likewise.
288         (inquire_access): Likewise.
289         * io/unix.h (unpack_filename): Remove prototype.
290         * runtime/main.c (please_free_exe_path_when_done): Change type to
291         bool.
292         (store_exe_path): Use malloced buffer, grow as needed.
294 2014-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
296         PR libfortran/52539
297         * io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
298         and *push_char_fn_ptr.
299         *io/list_read.c (next_char): Create macro with this name to call
300         the new function pointer. Split the original next_char function
301         into three new functions. (next_char_default, next_char_internal,
302         next_char_utf8): New functions. (push_char): Create macro with
303         this name to call new function pointer. Split the original
304         push_char into three new functions. (push_char_default,
305         push_char_internal, push_char4): New functions. (set_workers):
306         New function to initilize the function pointers depending on the
307         type of IO to be performed. (list_formatted_read_scalar): Use
308         set_workers function. (finish_list_read): Likewise.
309         (namelist_read): Likewise.
310         (nml_get_obj_data): Use push_char_default.
312 2014-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
314         PR libfortran/61187
315         * io/unix.c (raw_close): Check if s->fd is -1.
316         (fd_to_stream): Check return value of fstat(), handle error.
318 2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
320         PR libfortran/61035
321         * intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
322         stack allocation, avoid extra copying in the common case.
324 2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
326         * configure.ac (AM_CFLAGS): Use -std=gnu11.
327         (CFLAGS): Likewise.
328         * configure: Regenerated.
330 2014-05-11  Tobias Burnus  <burnus@net-b.de>
332         * caf/libcaf.h (_gfortran_caf_num_images): Change type of
333         second argument to int.
334         * caf/mpi.c (_gfortran_caf_num_images): Ditto.
335         * caf/single.c (_gfortran_caf_num_images): Ditto.
337 2014-05-08  Tobias Burnus  <burnus@net-b.de>
339         * caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
340         _gfortran_caf_co_min, _gfortran_caf_co_max): Declare
341         * caf/single.c
343 2014-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu>
345         PR libfortran/61049
346         * io/list_read.c (list_formatted_read_scalar): Use eat_separator
347         and delete extraneous code.
349 2014-04-30  Tobias Burnus  <burnus@net-b.de>
351         * caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
352         New prototypes.
353         (_gfortran_caf_init): Change prototype.
354         (mpi_token_t): New typedef.
355         (TOKEN): New define.
356         * caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
357         New functions.
358         (_gfortran_caf_init): Update.
359         (_gfortran_caf_finalize, _gfortran_caf_register,
360         _gfortran_caf_deregister): Use mpi_token_t.
361         * caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
362         New functions.
363         (_gfortran_caf_init): Update.
364         (_gfortran_caf_finalize, _gfortran_caf_register,
365         _gfortran_caf_deregister): Use mpi_token_t, simplify.
367 2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>
369         PR libfortran/52539
370         * io/list_read.c: Add uchar typedef. (push_char4): New function
371         to save kind=4 character. (next_char_utf8): New function to read
372         a single UTF-8 encoded character value. (read_chracter): Update
373         to use the new functions for reading UTF-8 strings.
374         (list_formatted_read_scalar): Update to handle list directed
375         reads of UTF-8 strings. (nml_read_obj): Likewise update for
376         UTF-8 strings in namelists.
377         * io/write.c (nml_write_obj): Add kind=4 character support for
378         namelist writes.
380 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
382         * configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
383         * configure: Regenerate.
385 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
387         * config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
388         check.
390 2014-04-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
392         PR libfortran/60810
393         io/unit.c (is_trim_ok): If internal unit is array, do not trim.
395 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu>
397         PR libfortran/60148
398         * io/transfer.c (data_transfer_init): If std= was specified, set
399         delim status to DELIM_NONE of no other was specified.
401 2014-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
403         * configure.ac: Check for presence of fcntl.
404         * configure: Regenerate.
405         * config.h.in: Regenerate.
406         * io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
408 2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
410         PR libfortran/48600
411         * io/list_read.c (list_formatted_read_scalar): Do not use
412         eat_separator. Explicitly set the comma and end-of-line flags.
413         Check for END condition from finish_separator.
415 2014-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu>
417         PR libfortran/58324
418         * io/list_read.c (finish_list_read): Read one character to check
419         for the end of the file.  If it is the end, then issue the file
420         end error message.  If not, use eat_line to reach the end
421         without giving error.  The next attempt to read will then
422         issue the error as described above.
424 2014-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu>
426         PR libfortran/38199
427         * io/read.c (read_decimal): Quickly skip spaces to avoid calls
428         to next_char.
429         * io/unit.c (is_trim_ok): New helper function to check various
430         conditions to see if its OK to trim the internal unit string.
431         (get_internal_unit): Use LEN_TRIM to shorten selected internal
432         unit strings for optimizing READ. Enable this optimization for
433         formatted READ.
434         * io/list_read.c (finish_list_read): Don't call eat_line for
435         internal units.
437 2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>
439         PR libfortran/38199
440         * io/list_read.c (next_char): Mark unlikely error checks.
441         (eat_spaces): For character array reading, skip ahead over
442         spaces rather than call next_char multiple times.
444 2014-03-08  Tobias Burnus  <burnus@net-b.de>
446         * libgfortran.h (unlikely, likely): Add usage comment.
448 2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>
450         PR libgfortran/60128
451         * io/write_float.def (output_float): Remove unused variable
452         nzero_real. Replace a double space with a single one.
453         (determine_en_precision): Fix wrong handling of the EN format.
455 2014-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu>
457         PR libfortran/60148
458         * io/inquire.c (inquire_via_unit): In the case of
459         DELIM_UNSPECIFIED set inquire return string to "NONE".
460         * io/list_read.c (read_character): In the case of DELIM_NONE and
461         namelists, complete the character read using the namelist
462         variable length.
463         * io/open.c (new_unit): Don't set delim status to none if not
464         specified so that DELIM_UNSPECIFIED can be used later.
465         * io/transfer.c (data_transfer_init): For namelist I/O, if the
466         unit delim status is unspecified set the current status to quote.
467         Otherwise, set current status to the unit status.
468         * io/unit.c (get_internel_unit, init_unit): Remember to set
469         flags_delim initially to DELIM_UNSPECIFIED so defaults come out
470         correctly.
471         * io/write.c (write_character): Add a new function argument
472         "mode" to signify that raw output is to be used vs output with
473         delimiters. If the mode is set to DELIM (1) proceed with
474         delimiters. (list_formatted_write_scalar): Write the separator
475         only if a delimiter was previously specified. Update the call to
476         write_character with the mode argument given.
477         (namelist_write_newline): Use the mode argument. (nml_write_obj):
478         Use the mode argument. Remove use of tmp_delim. Write the
479         semi-colon or comma correctly only when needed with using
480         delimiters. Cleanup whitespace.
481         (namelist_write): If delim is not specified in namelist I/O,
482         default to using quotes. Get rid of the tmp_delim variable and
483         use the new mode argument in write_character.
485 2014-02-21  Tobias Burnus  <burnus@net-b.de>
487         PR fortran/60286
488         * libgfortran/io/inquire.c (yes, no): New static const char vars.
489         (inquire_via_unit): Use them. Use OPEN mode instead of using
490         POSIX's access to query about write=, read= and readwrite=.
492 2014-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu>
493             Dominique d'Humieres  <dominiq@lps.ens.fr>
495         * io/write_float.def (output_float): Remove inadvertent test
496         code from previous patch.
498 2014-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu>
499             Dominique d'Humieres  <dominiq@lps.ens.fr>
501         PR libfortran/59771
502         PR libfortran/59774
503         PR libfortran/59836
504         * io/write_float.def (output_float): Fix wrong handling of the
505         Fw.0 format.
506         (output_float_FMT_G_): Fixes rounding issues with -m32.
508 2014-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
509             Dominique d'Humieres  <dominiq@lps.ens.fr>
510             Steven G. Kargl  <kargl@gcc.gnu.org>
512         PR libfortran/59700
513         PR libfortran/59764
514         * io/io.h (struct st_parameter_dt): Assign expanded_read flag to
515         unused bit. Define new variable line_buffer_pos.
516         * io/list_read.c (free_saved, next_char, l_push_char,
517         read_logical, read_real): Replace use of item_count with
518         line_buffer_pos for line_buffer look ahead.
519         (read_logical, read_integer, parse_real, read_real, check_type):
520         Adjust location of free_line to after generating error messages
521         to retain the correct item count for the message.
523 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
525         Update copyright years
527 Copyright (C) 2013-2014 Free Software Foundation, Inc.
529 Copying and distribution of this file, with or without modification,
530 are permitted in any medium without royalty provided the copyright
531 notice and this notice are preserved.