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