1 2014-09-10 Janne Blomqvist <jb@gcc.gnu.org>
3 * io/transfer.c (read_block_form): Fix pad status check (found by
4 Thomas Schwinge with -Wlogical-not-parentheses).
6 2014-08-31 Tobias Burnus <burnus@net-b.de>
8 * caf/libcaf.h (_gfortran_caf_send, _gfortran_caf_get,
9 _gfortran_caf_sendget): Update prototype.
10 * caf/single.c (_gfortran_caf_send, _gfortran_caf_get,
11 _gfortran_caf_sendget): Handle may_require_tmp.
13 2014-08-20 Steven G. Kargl <kargl@gcc.gnu.org>
16 * m4/bessel.m4: Avoid indexing off the end of an array.
17 * generated/bessel_r10.c: Regenerated.
18 * generated/bessel_r16.c: Ditto.
19 * generated/bessel_r4.c: Ditto.
20 * generated/bessel_r8.c: Ditto.
22 2014-08-14 Tobias Burnus <burnus@net-b.de>
24 * caf/libcaf.h (caf_register_t): Update for critical.
25 (_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
26 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
27 * caf/single.c (_gfortran_caf_register): Handle locking
29 (_gfortran_caf_sendget): Re-name args for consistency.
30 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
32 2014-08-04 Jakub Jelinek <jakub@redhat.com>
34 * runtime/memory.c (xmallocarray): Avoid division for the common case.
36 2014-07-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
39 * io/format.c (format_error): Avoid invalid string pointer by
40 using the fortran string length values to generate error string.
41 (parse_format): Allocate the null terminator for the format
44 2014-07-12 Tobias Burnus <burnus@net-b.de>
46 * caf/libcaf.h (_gfortran_caf_atomic_define,
47 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
48 _gfortran_caf_atomic_cas): New prototypes.
49 * caf/single.c (_gfortran_caf_atomic_define,
50 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
51 _gfortran_caf_atomic_cas): New functions.
53 2014-07-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
55 * config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
56 support_fpu_rounding_mode): Clean up, mark unreachable code as such.
58 2014-07-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
60 * libgfortran.h (support_fpu_underflow_control,
61 get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
62 * config/fpu-*.h (support_fpu_underflow_control,
63 get_fpu_underflow_mode, set_fpu_underflow_mode):
65 * ieee/ieee_arithmetic.F90: Support underflow control.
67 2014-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
69 * config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
70 FP_RM, FP_RZ unconditionally.
71 (set_fpu_rounding_mode): Likewise.
73 2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
75 * libgfortran.h: Assume __GNUC__.
77 2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
79 * runtime/stop.c: Use C11 _Noreturn.
80 * libgfortran.h: Use C11 _Noreturn in prototypes.
81 Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
82 * intrinsics/c99_functions.c: ... here.
84 2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
86 * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
87 config/fpu-glibc.h: Use static assertions.
89 2014-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
91 * configure, config.h.in: Regenerate.
92 * config/fpu-sysv.h: Include <assert.h>.
94 2014-07-02 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
96 * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
98 2014-07-02 Uros Bizjak <ubizjak@gmail.com>
100 * configure.host (ieee_flags): Add -mieee for alpha*.
102 * config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
103 GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
104 * config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
106 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
108 * config/fpu-387.h (my_fenv_t): Amend structure so it also works
111 2014-06-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
114 * io/list_read.c (next_char_internal): Adjust the read length to
115 a single wide character. (eat_spaces): Add missing paren.
116 * io/unix.c (mem_read4): Use the correct mem_alloc function for
117 wide character internal reads.
119 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
122 * configure.host: Add checks for IEEE support, rework priorities.
123 * configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
125 * configure: Regenerate.
126 * Makefile.am: Build new ieee files, install IEEE_* modules.
127 * Makefile.in: Regenerate.
128 * gfortran.map (GFORTRAN_1.6): Add new symbols.
129 * libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
130 support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
131 support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
133 * config/fpu-*.h (get_fpu_trap_exceptions,
134 set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
135 support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
136 set_fpu_state): New functions.
137 * ieee/ieee_features.F90: New file.
138 * ieee/ieee_exceptions.F90: New file.
139 * ieee/ieee_arithmetic.F90: New file.
140 * ieee/ieee_helper.c: New file.
142 2014-06-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
145 * io/list_read.c (eat_spaces): Use a 'for' loop instead of
146 'while' loop to skip the loop if there are no bytes left in the
147 string. Only seek if actual spaces can be skipped.
149 2014-06-25 Tobias Burnus <burnus@net-b.de>
151 * caf/single.c (assign_char4_from_char1, assign_char1_from_char4,
152 convert_type): New static functions.
153 (_gfortran_caf_get, _gfortran_caf_send): Use them.
155 2014-06-19 Tobias Burnus <burnus@net-b.de>
157 * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
158 _gfortran_caf_co_min): Fix stat setting.
160 2014-06-17 Tobias Burnus <burnus@net-b.de>
162 * caf/libcaf.h (gfc_descriptor_t): New typedef.
163 (caf_vector_t): Update.
164 (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
165 Remove vector-subscript argument.
166 (_gfortran_caf_co_send, _gfortran_caf_co_get,
167 _gfortran_caf_co_sendget): New.
168 * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
169 _gfortran_caf_co_min): Remove vector-subscript argument.
170 (_gfortran_caf_co_send, _gfortran_caf_co_get,
171 _gfortran_caf_co_sendget): New.
173 2014-06-17 Janne Blomqvist <jb@gcc.gnu.org>
175 * libgfortran.h (xmallocarray): New prototype.
176 * runtime/memory.c (xmallocarray): New function.
177 (xcalloc): Check for nonzero separately instead of multiplying.
178 * generated/*.c: Regenerated.
179 * intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
181 * intrinsics/eoshift0.c (eoshift0): Likewise.
182 * intrinsics/eoshift2.c (eoshift2): Likewise.
183 * intrinsics/pack_generic.c (pack_internal): Likewise.
184 (pack_s_internal): Likewise.
185 * intrinsics/reshape_generic.c (reshape_internal): Likewise.
186 * intrinsics/spread_generic.c (spread_internal): Likewise.
187 (spread_internal_scalar): Likewise.
188 * intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
189 (string_minmax): Likewise.
190 * intrinsics/transpose_generic.c (transpose_internal): Likewise.
191 * intrinsics/unpack_generic.c (unpack_internal): Likewise.
192 * io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
193 * io/transfer.c (st_set_nml_var): Call xmallocarray instead of
195 * io/unit.c (get_internal_unit): Likewise.
196 (filename_from_unit): Don't cast xmalloc return value.
197 * io/write.c (nml_write_obj): Likewise, formatting.
198 * m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
200 (besse_yn_r'rtype_kind`): Likewise.
201 * m4/cshift1.m4 (cshift1): Likewise.
202 * m4/eoshift1.m4 (eoshift1): Likewise.
203 * m4/eoshift3.m4 (eoshift3): Likewise.
204 * m4/iforeach.m4: Likewise.
205 * m4/ifunction.m4: Likewise.
206 * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
208 * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
209 * m4/matmul.m4 (matmul_'rtype_code`): Likewise.
210 * m4/matmull.m4 (matmul_'rtype_code`): Likewise.
211 * m4/pack.m4 (pack_'rtype_code`): Likewise.
212 * m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
213 * m4/shape.m4 (shape_'rtype_kind`): Likewise.
214 * m4/spread.m4 (spread_'rtype_code`): Likewise.
215 (spread_scalar_'rtype_code`): Likewise.
216 * m4/transpose.m4 (transpose_'rtype_code`): Likewise.
217 * m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
218 (unpack1_'rtype_code`): Likewise.
219 * runtime/convert_char.c (convert_char1_to_char4): Likewise.
220 (convert_char4_to_char1): Simplify.
221 * runtime/environ.c (init_unformatted): Call xmallocarray instead
223 * runtime/in_pack_generic.c (internal_pack): Likewise.
225 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
228 * configure.ac: Include <math.h> when checking for fp_except_t
230 * configure: Regenerate.
232 2014-06-08 Janne Blomqvist <jb@gcc.gnu.org>
235 * io/unix.h (struct stream_vtable): Add new member function,
237 (smarkeor): New inline function.
238 (flush_if_unbuffered): Remove prototype.
239 * io/unix.c (raw_markeor): New function.
240 (raw_vtable): Initialize markeor member.
241 (buf_markeor): New function.
242 (buf_vtable): Initialize markeor member.
243 (mem_vtable): Likewise.
244 (mem4_vtable): Likewise.
245 (flush_if_unbuffered): Remove function.
246 * io/transfer.c (next_record): Call smarkeor instead of
249 2014-05-27 Uros Bizjak <ubizjak@gmail.com>
251 * intrinsics/getcwd.c: Include stdlib.h.
253 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
255 * libgfortran.h (xrealloc): New prototype.
256 * runtime/memory.c (xrealloc): New function.
257 * io/fbuf.c (fbuf_alloc): Use xrealloc.
258 * io/list_read.c (push_char_default): Likewise.
259 (push_char4): Likewise.
261 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
264 * intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
266 (fdate): Use gf_ctime.
267 (fdate_sub): Likewise.
269 (ctime_sub): Likewise.
271 2014-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
274 * io/list_read.c (extended_look_ahead): New helper function to
275 scan the namelist name and look for matches with the new '+'
276 extended type parent indicator. (str_comp_extended): New
277 helper function to compare the namelist name with the varname
278 namelist. (find_nml_name): Use the new helper functions to match
279 the extended type varnames.
281 2014-05-23 Jerry DeLisle <jvdelisle@gcc.gnu>
284 * io/list_read.c (eat_spaces): If the next character pointed to
285 is a space, don't seek, must be at the end.
287 2014-05-23 Hans-Peter Nilsson <hp@axis.com>
289 * configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
290 * configure: Regenerate.
292 2014-05-23 Janne Blomqvist <jb@gcc.gnu.org>
295 * runtime/string.c: Include stdlib.h.
297 2014-05-22 Janne Blomqvist <jb@gcc.gnu.org>
300 * config.h.in: Regenerated.
301 * configure: Regenerated.
302 * configure.ac (AC_CHECK_FUNCS_ONCE): Check for strnlen and
304 * libgfortran.h (fc_strdup): New prototype.
305 * runtime/string.c (strnlen): New fallback function.
306 (strndup): New fallback function.
307 (fc_strdup): New function.
308 * io/close.c (st_close): Use fc_strdup.
309 * io/open.c (new_unit): Likewise.
310 (already_open): Likewise.
311 * io/unit.c (filename_from_unit): Likewise.
312 * io/unix.c (unpack_filename): Remove function.
313 (regular_file): Rename to regular_file2, add path argument.
314 (regular_file): New function calling regular_file2.
315 (compare_file_filename): Use fc_strdup.
316 (find_file): Likewise.
317 (delete_file): Likewise.
318 (file_exists): Likewise.
319 (file_size): Likewise.
320 (inquire_sequential): Likewise.
321 (inquire_direct): Likewise.
322 (inquire_formatted): Likewise.
323 (inquire_access): Likewise.
324 * io/unix.h (unpack_filename): Remove prototype.
325 * runtime/main.c (please_free_exe_path_when_done): Change type to
327 (store_exe_path): Use malloced buffer, grow as needed.
329 2014-05-17 Jerry DeLisle <jvdelisle@gcc.gnu>
332 * io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
333 and *push_char_fn_ptr.
334 *io/list_read.c (next_char): Create macro with this name to call
335 the new function pointer. Split the original next_char function
336 into three new functions. (next_char_default, next_char_internal,
337 next_char_utf8): New functions. (push_char): Create macro with
338 this name to call new function pointer. Split the original
339 push_char into three new functions. (push_char_default,
340 push_char_internal, push_char4): New functions. (set_workers):
341 New function to initilize the function pointers depending on the
342 type of IO to be performed. (list_formatted_read_scalar): Use
343 set_workers function. (finish_list_read): Likewise.
344 (namelist_read): Likewise.
345 (nml_get_obj_data): Use push_char_default.
347 2014-05-16 Janne Blomqvist <jb@gcc.gnu.org>
350 * io/unix.c (raw_close): Check if s->fd is -1.
351 (fd_to_stream): Check return value of fstat(), handle error.
353 2014-05-12 Janne Blomqvist <jb@gcc.gnu.org>
356 * intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
357 stack allocation, avoid extra copying in the common case.
359 2014-05-12 Janne Blomqvist <jb@gcc.gnu.org>
361 * configure.ac (AM_CFLAGS): Use -std=gnu11.
363 * configure: Regenerated.
365 2014-05-11 Tobias Burnus <burnus@net-b.de>
367 * caf/libcaf.h (_gfortran_caf_num_images): Change type of
368 second argument to int.
369 * caf/mpi.c (_gfortran_caf_num_images): Ditto.
370 * caf/single.c (_gfortran_caf_num_images): Ditto.
372 2014-05-08 Tobias Burnus <burnus@net-b.de>
374 * caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
375 _gfortran_caf_co_min, _gfortran_caf_co_max): Declare
378 2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu>
381 * io/list_read.c (list_formatted_read_scalar): Use eat_separator
382 and delete extraneous code.
384 2014-04-30 Tobias Burnus <burnus@net-b.de>
386 * caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
388 (_gfortran_caf_init): Change prototype.
389 (mpi_token_t): New typedef.
391 * caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
393 (_gfortran_caf_init): Update.
394 (_gfortran_caf_finalize, _gfortran_caf_register,
395 _gfortran_caf_deregister): Use mpi_token_t.
396 * caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
398 (_gfortran_caf_init): Update.
399 (_gfortran_caf_finalize, _gfortran_caf_register,
400 _gfortran_caf_deregister): Use mpi_token_t, simplify.
402 2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
405 * io/list_read.c: Add uchar typedef. (push_char4): New function
406 to save kind=4 character. (next_char_utf8): New function to read
407 a single UTF-8 encoded character value. (read_chracter): Update
408 to use the new functions for reading UTF-8 strings.
409 (list_formatted_read_scalar): Update to handle list directed
410 reads of UTF-8 strings. (nml_read_obj): Likewise update for
411 UTF-8 strings in namelists.
412 * io/write.c (nml_write_obj): Add kind=4 character support for
415 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
417 * configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
418 * configure: Regenerate.
420 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
422 * config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
425 2014-04-11 Jerry DeLisle <jvdelisle@gcc.gnu>
428 io/unit.c (is_trim_ok): If internal unit is array, do not trim.
430 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu>
433 * io/transfer.c (data_transfer_init): If std= was specified, set
434 delim status to DELIM_NONE of no other was specified.
436 2014-03-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
438 * configure.ac: Check for presence of fcntl.
439 * configure: Regenerate.
440 * config.h.in: Regenerate.
441 * io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
443 2014-03-17 Jerry DeLisle <jvdelisle@gcc.gnu>
446 * io/list_read.c (list_formatted_read_scalar): Do not use
447 eat_separator. Explicitly set the comma and end-of-line flags.
448 Check for END condition from finish_separator.
450 2014-03-15 Jerry DeLisle <jvdelisle@gcc.gnu>
453 * io/list_read.c (finish_list_read): Read one character to check
454 for the end of the file. If it is the end, then issue the file
455 end error message. If not, use eat_line to reach the end
456 without giving error. The next attempt to read will then
457 issue the error as described above.
459 2014-03-12 Jerry DeLisle <jvdelisle@gcc.gnu>
462 * io/read.c (read_decimal): Quickly skip spaces to avoid calls
464 * io/unit.c (is_trim_ok): New helper function to check various
465 conditions to see if its OK to trim the internal unit string.
466 (get_internal_unit): Use LEN_TRIM to shorten selected internal
467 unit strings for optimizing READ. Enable this optimization for
469 * io/list_read.c (finish_list_read): Don't call eat_line for
472 2014-03-08 Jerry DeLisle <jvdelisle@gcc.gnu>
475 * io/list_read.c (next_char): Mark unlikely error checks.
476 (eat_spaces): For character array reading, skip ahead over
477 spaces rather than call next_char multiple times.
479 2014-03-08 Tobias Burnus <burnus@net-b.de>
481 * libgfortran.h (unlikely, likely): Add usage comment.
483 2014-03-08 Dominique d'Humieres <dominiq@lps.ens.fr>
486 * io/write_float.def (output_float): Remove unused variable
487 nzero_real. Replace a double space with a single one.
488 (determine_en_precision): Fix wrong handling of the EN format.
490 2014-03-03 Jerry DeLisle <jvdelisle@gcc.gnu>
493 * io/inquire.c (inquire_via_unit): In the case of
494 DELIM_UNSPECIFIED set inquire return string to "NONE".
495 * io/list_read.c (read_character): In the case of DELIM_NONE and
496 namelists, complete the character read using the namelist
498 * io/open.c (new_unit): Don't set delim status to none if not
499 specified so that DELIM_UNSPECIFIED can be used later.
500 * io/transfer.c (data_transfer_init): For namelist I/O, if the
501 unit delim status is unspecified set the current status to quote.
502 Otherwise, set current status to the unit status.
503 * io/unit.c (get_internel_unit, init_unit): Remember to set
504 flags_delim initially to DELIM_UNSPECIFIED so defaults come out
506 * io/write.c (write_character): Add a new function argument
507 "mode" to signify that raw output is to be used vs output with
508 delimiters. If the mode is set to DELIM (1) proceed with
509 delimiters. (list_formatted_write_scalar): Write the separator
510 only if a delimiter was previously specified. Update the call to
511 write_character with the mode argument given.
512 (namelist_write_newline): Use the mode argument. (nml_write_obj):
513 Use the mode argument. Remove use of tmp_delim. Write the
514 semi-colon or comma correctly only when needed with using
515 delimiters. Cleanup whitespace.
516 (namelist_write): If delim is not specified in namelist I/O,
517 default to using quotes. Get rid of the tmp_delim variable and
518 use the new mode argument in write_character.
520 2014-02-21 Tobias Burnus <burnus@net-b.de>
523 * libgfortran/io/inquire.c (yes, no): New static const char vars.
524 (inquire_via_unit): Use them. Use OPEN mode instead of using
525 POSIX's access to query about write=, read= and readwrite=.
527 2014-01-20 Jerry DeLisle <jvdelisle@gcc.gnu>
528 Dominique d'Humieres <dominiq@lps.ens.fr>
530 * io/write_float.def (output_float): Remove inadvertent test
531 code from previous patch.
533 2014-01-19 Jerry DeLisle <jvdelisle@gcc.gnu>
534 Dominique d'Humieres <dominiq@lps.ens.fr>
539 * io/write_float.def (output_float): Fix wrong handling of the
541 (output_float_FMT_G_): Fixes rounding issues with -m32.
543 2014-01-11 Jerry DeLisle <jvdelisle@gcc.gnu>
544 Dominique d'Humieres <dominiq@lps.ens.fr>
545 Steven G. Kargl <kargl@gcc.gnu.org>
549 * io/io.h (struct st_parameter_dt): Assign expanded_read flag to
550 unused bit. Define new variable line_buffer_pos.
551 * io/list_read.c (free_saved, next_char, l_push_char,
552 read_logical, read_real): Replace use of item_count with
553 line_buffer_pos for line_buffer look ahead.
554 (read_logical, read_integer, parse_real, read_real, check_type):
555 Adjust location of free_line to after generating error messages
556 to retain the correct item count for the message.
558 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
560 Update copyright years
562 Copyright (C) 2013-2014 Free Software Foundation, Inc.
564 Copying and distribution of this file, with or without modification,
565 are permitted in any medium without royalty provided the copyright
566 notice and this notice are preserved.