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):
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
59 2014-06-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
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>
70 * configure.host: Add checks for IEEE support, rework priorities.
71 * configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
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
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>
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
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
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
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):
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
171 * runtime/in_pack_generic.c (internal_pack): Likewise.
173 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
176 * configure.ac: Include <math.h> when checking for fp_except_t
178 * configure: Regenerate.
180 2014-06-08 Janne Blomqvist <jb@gcc.gnu.org>
183 * io/unix.h (struct stream_vtable): Add new member function,
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
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>
212 * intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
214 (fdate): Use gf_ctime.
215 (fdate_sub): Likewise.
217 (ctime_sub): Likewise.
219 2014-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
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>
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>
243 * runtime/string.c: Include stdlib.h.
245 2014-05-22 Janne Blomqvist <jb@gcc.gnu.org>
248 * config.h.in: Regenerated.
249 * configure: Regenerated.
250 * configure.ac (AC_CHECK_FUNCS_ONCE): Check for strnlen and
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
275 (store_exe_path): Use malloced buffer, grow as needed.
277 2014-05-17 Jerry DeLisle <jvdelisle@gcc.gnu>
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>
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>
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.
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
326 2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu>
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):
336 (_gfortran_caf_init): Change prototype.
337 (mpi_token_t): New typedef.
339 * caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
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):
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>
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
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
373 2014-04-11 Jerry DeLisle <jvdelisle@gcc.gnu>
376 io/unit.c (is_trim_ok): If internal unit is array, do not trim.
378 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu>
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>
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>
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>
410 * io/read.c (read_decimal): Quickly skip spaces to avoid calls
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
417 * io/list_read.c (finish_list_read): Don't call eat_line for
420 2014-03-08 Jerry DeLisle <jvdelisle@gcc.gnu>
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>
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>
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
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
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>
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>
487 * io/write_float.def (output_float): Fix wrong handling of the
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>
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.