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