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