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