OSDN Git Service

2011-07-15 Daniel Carrera <dcarrera@gmail.com>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2011-07-15  Daniel Carrera  <dcarrera@gmail.com>
2
3         * caf/mpi.c (caf_runtime_error): Change fprintf to vfprintf.
4         * caf/single.c (caf_runtime_error): Ditto.
5
6 2011-07-14  Daniel Carrera  <dcarrera@gmail.com>
7
8         * caf/single.c:  Include stdarg.h header.
9         (caf_runtime_error): New function. Use "exit(EXIT_FAILURE)".
10         (_gfortran_caf_register): Use caf_runtime_error.
11         (_gfortran_caf_sync_images): Use "exit(EXIT_FAILURE)".
12         * caf/mpi.c (caf_runtime_error): Remove "error" parameter.
13         Return EXIT_FAILURE instead.
14         (_gfortran_caf_register): Update call to caf_runtime_error.
15         (_gfortran_caf_sync_all): Ditto.
16         (_gfortran_caf_sync_images): Ditto.
17         (_gfortran_caf_error_stop_str): Use "exit(EXIT_FAILURE)".
18
19 2011-07-13  Janne Blomqvist  <jb@gcc.gnu.org>
20
21         PR libfortran/49296
22         * io/list_read.c (read_logical): Don't error out if a valid value
23         is followed by EOF instead of a normal separator.
24         (read_integer): Likewise.
25
26 2011-07-09  Tobias Burnus  <burnus@net-b.de>
27
28         * runtime/error.c (sys_abort): Change argument list
29         from "()" to "(void)".
30
31 2011-07-09  Tobias Burnus  <burnus@net-b.de>
32             Daniel Carrera  <dcarrera@gmail.com>
33
34         * caf/mpi.c (runtime_error): New function.
35         (_gfortran_caf_register): Use it.
36         (_gfortran_caf_sync_all): Use it, add STAT_STOPPED_IMAGE
37         as possible status value.
38         (_gfortran_caf_sync_images): Ditto.
39
40 2011-07-07  Tobias Burnus  <burnus@net-b.de>
41
42         * libcaf.h (__attribute__, unlikely, likely): New macros.
43         (caf_register_t): Update comment.
44         (_gfortran_caf_register): Add stat, errmsg, errmsg_len arguments.
45         * single.c (_gfortran_caf_register): Ditto; add error diagnostics.
46         * mpi.c (_gfortran_caf_register): Ditto.
47         (caf_is_finalized): New global variable.
48         (_gfortran_caf_finalize): Use it.
49
50 2011-07-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
51
52         * runtime/memory.c (internal_malloc_size):  If size is zero,
53         allocate a single byte.
54         * m4/pack.m4 (pack_'rtype_code`):  Don't check for zero size
55         for the argument of internal_malloc_size.
56         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
57         * m4/eoshift1.m4 (eoshift1):  Don't allocate twice.  Don't check
58         for zero size for the argument of internal_malloc_size.
59         * m4/eoshift3.m4: Don't check for zero size for the argument of
60         internal_malloc_size.
61         * intrinsics/pack_generic.c (pack_internal):  Likewise.
62         (pack_s_internal):  Likewise.
63         * intrinsics/cshift0.c (cshift0):  Likewise.
64         * intrinsics/spread_generic.c (spread_internal):  Likewise.
65         * intrinsics/eoshift0.c (eoshift0):  Likewise.
66         * intrinsics/eoshift2.c (eoshift2):  Likewise.
67         * generated/eoshift1_16.c: Regenerated.
68         * generated/eoshift1_4.c: Regenerated.
69         * generated/eoshift1_8.c: Regenerated.
70         * generated/eoshift3_16.c: Regenerated.
71         * generated/eoshift3_4.c: Regenerated.
72         * generated/eoshift3_8.c: Regenerated.
73         * generated/pack_c10.c: Regenerated.
74         * generated/pack_c16.c: Regenerated.
75         * generated/pack_c4.c: Regenerated.
76         * generated/pack_c8.c: Regenerated.
77         * generated/pack_i16.c: Regenerated.
78         * generated/pack_i1.c: Regenerated.
79         * generated/pack_i2.c: Regenerated.
80         * generated/pack_i4.c: Regenerated.
81         * generated/pack_i8.c: Regenerated.
82         * generated/pack_r10.c: Regenerated.
83         * generated/pack_r16.c: Regenerated.
84         * generated/pack_r4.c: Regenerated.
85         * generated/pack_r8.c: Regenerated.
86         * generated/spread_c10.c: Regenerated.
87         * generated/spread_c16.c: Regenerated.
88         * generated/spread_c4.c: Regenerated.
89         * generated/spread_c8.c: Regenerated.
90         * generated/spread_i16.c: Regenerated.
91         * generated/spread_i1.c: Regenerated.
92         * generated/spread_i2.c: Regenerated.
93         * generated/spread_i4.c: Regenerated.
94         * generated/spread_i8.c: Regenerated.
95         * generated/spread_r10.c: Regenerated.
96         * generated/spread_r16.c: Regenerated.
97         * generated/spread_r4.c: Regenerated.
98         * generated/spread_r8.c: Regenerated.
99
100 2011-06-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
101
102         PR fortran/49479
103         * m4/reshape.m4: If source allocation is smaller than one, set it
104         to one.
105         * intrinsics/reshape_generic.c:  Likewise.
106         * generated/reshape_r16.c: Regenerated.
107         * generated/reshape_c4.c: Regenerated.
108         * generated/reshape_c16.c: Regenerated.
109         * generated/reshape_c8.c: Regenerated.
110         * generated/reshape_r4.c: Regenerated.
111         * generated/reshape_i4.c: Regenerated.
112         * generated/reshape_r10.c: Regenerated.
113         * generated/reshape_r8.c: Regenerated.
114         * generated/reshape_c10.c: Regenerated.
115         * generated/reshape_i8.c: Regenerated.
116         * generated/reshape_i16.c: Regenerated.
117
118 2011-06-18  Janne Blomqvist  <jb@gcc.gnu.org>
119
120         PR libfortran/49296
121         * io/list_read.c (read_character): Accept EOF as a separator when
122         reading string.
123
124 2011-06-17  Daniel Carrera  <dcarrera@gmail.com>
125
126         * caf/single.c (_gfortran_caf_register): Store the address
127         of all static coarrays in a linked list.
128         (_gfortran_caf_finalize): Free memory of staic coarrays.
129         * caf/mpi.c (_gfortran_caf_register): Store the address
130         of all static coarrays in a linked list. Initialize MPI
131         if necessary.
132         (_gfortran_caf_finalize): Free memory of staic coarrays.
133         (_gfortran_caf_init): Check if MPI is already initialized
134         before initializing again.
135         * caf/libcaf.h: Add a type to caf_register_t to distinguish
136         static coarrays and add the type caf_static_t to make the
137         linked list of static coarrays.
138
139 2011-06-11  Janne Blomqvist  <jb@gcc.gnu.org>
140
141         * io/unix.c (buf_seek): Return error if file is not seekable.
142         (buf_tell): Call buf_seek.
143
144 2011-06-11  Janne Blomqvist  <jb@gcc.gnu.org>
145
146         * io/unix.c (fd_to_stream): Figure out if a fd is seekable by
147         trying lseek().
148
149 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
150
151         * caf/mpi.c (_gfortran_caf_sync_all,
152         _gfortran_caf_sync_images): Functions have void return type
153         and move status into parameter list.
154         * caf/single.c (_gfortran_caf_sync_all,
155         _gfortran_caf_sync_images): Functions have void return type
156         and move status into parameter list.
157         * caf/libcaf.h (_gfortran_caf_sync_all,
158         _gfortran_caf_sync_images): Functions have void return type
159         and move status into parameter list.
160
161 2011-06-03  Richard Henderson  <rth@redhat.com>
162             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
163
164         * config/fpu-387.h [__sun__ && __svr4__] (sigill_hdlr): Correct
165         insn, insn size.
166         (has_sse) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
167
168 2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
169
170         PR libfortran/48931
171         * libgfortran.h (find_addr2line): New prototype.
172         * runtime/backtrace.c (show_backtrace): Use async-signal-safe
173         execve and stored path of addr2line.
174         * runtime/compile_options.c (maybe_find_addr2line): New function.
175         (set_options): Call maybe_find_addr2line if backtracing is enabled.
176         * runtime/main.c (find_addr2line): New function.
177         (init): Call find_addr2line if backtracing is enabled.
178         (cleanup): Free addr2line_path.
179
180 2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
181
182         PR libfortran/49214
183         * runtime/backtrace.c (fd_gets): Return NULL if nothing was read.
184
185 2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
186
187         PR libfortran/19155
188         * io/read.c (convert_real): Check for invalid input by comparing
189         endptr instead of EINVAL.
190         (read_f): Fixup floating point input without significand.
191
192 2011-05-22  Tobias Burnus  <burnus@net-b.de>
193
194         * runtime/stop.c (stop_string,error_stop_string): Minor cleanup.
195
196 2011-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
197
198         PR libfortran/48931
199         * configure.ac: Check for backtrace_symbols_fd instead of
200         backtrace_symbols, check for readlink.
201         * config.h.in: Regenerated.
202         * configure: Regenerated.
203         * runtime/backtrace.c (local_strcasestr): Remove.
204         (bt_header): New function.
205         (dump_glibc_backtrace): Remove.
206         (fd_gets): New function.
207         (show_backtrace): Rework to use backtrace_symbols_fd and pipes
208         avoiding functions that are not async-signal-safe, reformat
209         output.
210         * runtime/main.c (store_exe_path): Try to check /proc/self/exe
211         first.
212
213 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
214             Uros Bizjak  <ubizjak@gmail.com>
215
216         PR libfortran/48977
217         * configure.host: Swap order of glibc and x86 tests.
218
219 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
220
221         * config/fpu-387.h (set_fpu): Use renamed inexact macro.
222         * config/fpu-aix.h (set_fpu): Clarify error messages, use renamed
223         inexact macro, set TRP_INEXACT for inexact exception instead of
224         TRP_UNDERFLOW.
225         * config/fpu-generic.h (set_fpu): Clarify error messages, use
226         renamed inexact macro.
227         * config/fpu-glibc.h (set_fpu): Likewise.
228         * config/fpu-sysv.h (set_fpu): Likewise.
229
230 2011-05-14  Tobias Burnus  <burnus@net-b.de>
231
232         * runtime/stop.c (error_stop_string, error_stop_numeric):
233         Do not backtrace for ERROR STOP.
234
235 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
236
237         PR libfortran/48915
238         * intrinsics/abort.c (abort): Call sys_abort().
239         * io/unix.c (st_vprintf): Call sys_abort().
240         * libgfortran.h (options_t): Remove dump_core member.
241         (handler): Rename to backtrace_handler.
242         (compile_options_t): Remove dump_core member.
243         (sys_exit): Remove.
244         (sys_abort): New function.
245         * runtime/backtrace.c (show_backtrace): Print a message if
246         backtrace is not available on target, update filter symbol name
247         due to backtrace_handler renaming.
248         * runtime/compile_options.c (backtrace_handler): New
249         implementation based on example in Glibc manual.
250         (set_options): Remove dump_core handling, make signal handler
251         handle more signals.
252         (init_compile_options): Remove dump_core.
253         * runtime/environ.c (variable_table[]): Remove
254         GFORTRAN_ERROR_DUMPCORE element.
255         (show_variables): Update name, call exit().
256         * runtime/error.c (sys_exit): Remove.
257         (sys_abort): New function.
258         (recursion_check): Call sys_abort().
259         (os_error): Call exit().
260         (runtime_error): Likewise.
261         (runtime_error_at): Likewise.
262         (internal_error): Likewise.
263         (generate_error): Likewise.
264         (notify_std): Likewise.
265         * runtime/stop.c (stop_numeric): Call exit().
266         (stop_numeric_f08): Likewise.
267         (stop_string): Likewise.
268         (error_stop_string): Call sys_abort().
269         (error_stop_numeric): Print backtrace, exit with provided code.
270
271 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
272
273         * io/unix.c (st_vprintf,st_printf): Move to runtime/error.c.
274         * libgfortran.h (struct options_t): Remove use_stderr field.
275         (st_vprintf,st_printf): Move prototypes.
276         (estr_write): New prototype.
277         * runtime/error.c (sys_exit): Use estr_write instead of st_printf.
278         (estr_write): New function.
279         (st_vprintf): Move from io/unix.c, use stack allocated buffer,
280         always output to stderr.
281         (st_printf): Move from io/unix.c.
282         (show_locus): Use a local variable instead of static.
283         (os_error): Use estr_write instead of st_printf.
284         (runtime_error): Likewise.
285         (runtime_error_at): Likewise.
286         (runtime_warning_at): Likewise.
287         (internal_error): Likewise.
288         (generate_error): Likewise.
289         (generate_warning): Likewise.
290         (notify_std): Likewise.
291         * runtime/pause.c (do_pause): Likewise.
292         (pause_string): Likewise.
293         * runtime/stop.c (stop_string): Likewise.
294         (error_stop_string): Likewise.
295         * config/fpu_aix.h (set_fpu): Likewise.
296         * config/fpu_generic.h (set_fpu): Likewise.
297         * config/fpu_glibc.h (set_fpu): Likewise.
298         * config/fpu-sysv.h (set_fpu): Likewise.
299         * runtime/backtrace.c (dump_glibc_backtrace): Likewise.
300         (show_backtrace): Likewise.
301         * runtime/environ.c (print_spaces): Likewise.
302         (show_string): Likewise.
303         (show_variables): Likewise.
304         (variable_table[]): Remove GFORTRAN_USE_STDERR entry.
305
306 2011-05-14  Tobias Burnus  <burnus@net-b.de>
307
308         PR fortran/48961
309         * intrinsics/execute_command_line.c (set_cmdstat): Don't abort if
310         synchronously executing with WAIT=.false.
311         (execute_command_line): Fix setting of cmdstat and exitstat.
312
313 2011-05-06  Tobias Burnus  <burnus@net-b.de>
314
315         PR fortran/18918
316         * caf/libcaf.h: Cleanup headers.
317         (_gfortran_caf_critical, _gfortran_caf_end_critical): Make stub.
318         (caf_register_t): New enum.
319         (_gfortran_caf_register, _gfortran_caf_deregister): New prototype.
320         * caf/single.c (_gfortran_caf_critical,
321         _gfortran_caf_end_critical): Remove.
322         (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
323         * caf/mpi.c (_gfortran_caf_critical,
324         _gfortran_caf_end_critical): Remove.
325         (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
326         (caf_world_window): Remove global variable.
327         (_gfortran_caf_init): Fix off-by-one error of this_image.
328
329 2011-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
330
331         PR libgfortran/48787
332         * io/write_float.def (output_float): Adjust up and down rounding for
333         cases where 'd' = 0. Gather common code to one location.
334
335 2011-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
336
337         PR libgfortran/48787
338         * io/write_float.def (output_float): Gather up integer declarations and
339         add new 'p' for scale factor. Use 'p' in place of the 'dtp' reference
340         everywhere. For ROUND_UP scan the digit string and only perform
341         rounding if something other than '0' is found.
342
343 2011-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
344
345         * io/unix.c (min): New macro.
346         (unpack_filename): Return errno number for errors.
347         (regular_file): Use appropriately sized buffer for path.
348         (compare_file_filename): Likewise.
349         (find_file): Likewise.
350         (delete_file): Likewise.
351         (file_exists): Likewise.
352         (file_size): Likewise.
353         (inquire_sequential): Likewise.
354         (inquire_direct): Likewise.
355         (inquire_formatted): Likewise.
356         (inquire_access): Likewise.
357
358 2011-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
359
360         PR libfortran/48488
361         * io/write.c (write_real, write_real_g0): Update comments.
362
363 2011-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
364             Janne Blomqvist  <jb@gcc.gnu.org>
365
366         PR libgfortran/48488
367         PR libgfortran/48602
368         PR libgfortran/48615
369         PR libgfortran/48684
370         PR libgfortran/48787
371         * io/write.c (write_d, write_e, write_f, write_en,
372         write_es): Add precision compemsation parameter to call.
373         (set_fnode_default): Adjust default widths to assure
374         round trip on write and read. (write_real): Adjust call to write_float.
375         (write_real_g0): Calculate compensation for extra precision and adjust
376         call to write_float.
377         * io/write_float.def (output_float_FMT_G_): Use volatile rather than
378         asm volatile to avoid optimization issue. Correctly calculate the
379         number of blanks (nb) to be appended and simplify calculation logic.
380         (write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new
381         default widths. Eliminate the code that attempted to reduce the
382         the precision used in later sprintf functions.  Add call parameter to
383         compensate for extra precision.
384
385 2011-04-20  Jim Meyering  <meyering@redhat.com>
386
387         * intrinsics/move_alloc.c (move_alloc): Remove useless
388         if-before-free test.
389         * io/fbuf.c (fbuf_destroy): Likewise.
390         * io/format.c (save_parsed_format): Likewise.
391         * io/open.c (already_open): Likewise.
392         * io/unit.c (free_internal_unit, close_unit_1): Likewise.
393         * io/unix.c (mem_close): Likewise.
394
395 2011-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
396
397         PR libgfortran/48602
398         * io/write_float.def (output_float_FMT_G): Fix reversal in conditional.
399         Use asm volatile to mark temp variable, avoiding optimization errors.
400
401 2011-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
402
403         PR libgfortran/48602
404         * io/write_float.def (output_float_FMT_G): Use current rounding mode
405         to set the rounding parameters. (output_float): Skip rounding
406         if value is zero.
407
408 2011-04-16  Janne Blomqvist  <jb@gcc.gnu.org>
409
410         * intrinsics/date_and_time.c (date_and_time): Remove sprintf CPP
411         branch.
412         * io/format.c (format_error): Use snprintf instead of sprintf.
413         * io/list_read.c: Move snprintf fallback macro to libgfortran.h.
414         (convert_integer): Use snprintf instead of sprintf.
415         (parse_repeat): Likewise.
416         (read_logical): Likewise.
417         (read_integer): Likewise.
418         (read_character): Likewise.
419         (parse_real): Likewise.
420         (read_complex): Likewise.
421         (read_real): Likewise.
422         (check_type): Likewise.
423         (nml_parse_qualifier): Add string length argument, use snprintf
424         instead of sprintf.
425         (nml_get_obj_data): Use snprintf instead of sprintf.
426         * io/open.c (new_unit): Remove sprintf CPP branch, use snprintf
427         instead of sprintf.
428         * io/transfer.c (require_type): Use snprintf instead of sprintf.
429         * io/unix.c (tempfile): Likewise.
430         * io/write.c (nml_write_obj): Likewise.
431         * io/write_float.def (output_float): Remove sprintf CPP branch,
432         use snprintf instead of sprintf.
433         * libgfortran.h: Add fallback snprintf macro from io/list_read.c.
434         * runtime/backtrace.c (show_backtrace): Remove sprintf CPP branch.
435         * runtime/main.c (store_exe_path): Use snprintf instead of
436         sprintf.
437
438 2011-04-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
439
440         PR libgfortran/48589
441         * io/write_float.def (write_infnan): Set width properly for G0.
442
443 2011-04-15  Tobias Burnus  <burnus@net-b.de>
444
445         PR fortran/18918
446         * Makefile.am: Build and install caf/single.c as
447         libcaf_single.a.
448         * Makefile.in: Regenerate.
449
450 2011-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
451
452         PR libfortran/47571
453         * configure: Regenerated.
454         * config.h.in: Regenerated.
455         * acinclude.m4: Add alpha*-dec-osf* to gthread blacklist.
456         * configure.ac: Use separate symbol for clock_gettime in librt.
457         * intrinsics/system_clock.c: Use weakrefs only when needed and
458         supported.
459
460 2011-04-12  Janne Blomqvist  <jb@gcc.gnu.org>
461
462         * configure.ac: Use AC_TYPE_* to make sure we have (u)intptr_t,
463         check for ptrdiff_t.
464         * libgfortran.h: Remove (u)intptr_t definitions, use ptrdiff_t for
465         index_type, change cshift0* prototypes.
466         * config.h.in: Regenerated.
467         * configure: Regenerated.
468         * intrinsics/cshift0.c (cshift0): Use ptrdiff_t instead of ssize_t.
469         * io/io.h (array_loop_spec): Use index_type instead of ssize_t.
470         * io/list_read.c (nml_parse_qualifier): Likewise.
471         * io/write.c (nml_write_obj): Likewise.
472         * m4/cshift0.c (cshift0_'rtype_code`): Likewise.
473         * generated/cshift0_*.c: Regenerated.
474
475 2011-04-12  Janne Blomqvist  <jb@gcc.gnu.org>
476
477         * Makefile.am: Remove _GNU_SOURCE from AM_CPPFLAGS.
478         * Makefile.in: Regenerated.
479
480 2011-04-06  Tobias Burnus  <burnus@net-b.de>
481
482         PR fortran/18918
483         * caf/mpi.c (_gfortran_caf_init, _gfortran_caf_finalize):
484         Add global variable caf_mpi_initialized and use it for when
485         finalizing.
486
487 2011-04-04  Tobias Burnus  <burnus@net-b.de>
488
489         * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS.
490         (fallback_access, open_internal4, compare_file_filename,
491         find_file, file_size, inquire_sequential, inquire_direct,
492         inquire_formatted): Use "struct stat" instead of gfstat_t.
493
494 2011-03-27  Tobias Burnus  <burnus@net-b.de>
495
496         PR fortran/18918
497         * caf/libcaf.h: New - coarray communication library.
498         * caf/mpi.c: New.
499         * caf/single.c: New.
500
501 2011-03-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
502
503         PR libgfortran/48030
504         * io/read.c (read_x): Re-implement using fbuf_getc.
505
506 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
507
508         PR bootstrap/48135
509         * configure.ac (gfortran_use_symver): Handle --disable-symvers.
510         * configure: Regenerate.
511
512 2011-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
513
514         PR fortran/35667
515         * io/io.h (convert_infnan): Declare.
516         * io/read.c (convert_infnan): New.
517         (read_f): Use convert_infnan to convert INFs and NANs.
518         * list_read.c (parse_real, read_real): Likewise.
519
520 2011-03-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
521
522         PR libfortran/47439
523         * io/unix.c (tempfile): Work around poor mktemp() implementations.
524
525 2011-03-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
526
527         PR libfortran/47883
528         * acinclude.m4: Don't use AC_TRY_ macros.
529         * configure.ac: Likewise.
530         * configure: Regenerate.
531
532 2011-03-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
533
534         PR libfortran/48066
535         * m4/ifunction.m4:  If return array is empty, return.
536         * m4/ifunction_logical.m4:  Likewise.
537         * generated/all_l16.c: Regenerated.
538         * generated/all_l1.c: Regenerated.
539         * generated/all_l2.c: Regenerated.
540         * generated/all_l4.c: Regenerated.
541         * generated/all_l8.c: Regenerated.
542         * generated/any_l16.c: Regenerated.
543         * generated/any_l1.c: Regenerated.
544         * generated/any_l2.c: Regenerated.
545         * generated/any_l4.c: Regenerated.
546         * generated/any_l8.c: Regenerated.
547         * generated/count_16_l.c: Regenerated.
548         * generated/count_1_l.c: Regenerated.
549         * generated/count_2_l.c: Regenerated.
550         * generated/count_4_l.c: Regenerated.
551         * generated/count_8_l.c: Regenerated.
552         * generated/maxloc1_16_i16.c: Regenerated.
553         * generated/maxloc1_16_i1.c: Regenerated.
554         * generated/maxloc1_16_i2.c: Regenerated.
555         * generated/maxloc1_16_i4.c: Regenerated.
556         * generated/maxloc1_16_i8.c: Regenerated.
557         * generated/maxloc1_16_r10.c: Regenerated.
558         * generated/maxloc1_16_r16.c: Regenerated.
559         * generated/maxloc1_16_r4.c: Regenerated.
560         * generated/maxloc1_16_r8.c: Regenerated.
561         * generated/maxloc1_4_i16.c: Regenerated.
562         * generated/maxloc1_4_i1.c: Regenerated.
563         * generated/maxloc1_4_i2.c: Regenerated.
564         * generated/maxloc1_4_i4.c: Regenerated.
565         * generated/maxloc1_4_i8.c: Regenerated.
566         * generated/maxloc1_4_r10.c: Regenerated.
567         * generated/maxloc1_4_r16.c: Regenerated.
568         * generated/maxloc1_4_r4.c: Regenerated.
569         * generated/maxloc1_4_r8.c: Regenerated.
570         * generated/maxloc1_8_i16.c: Regenerated.
571         * generated/maxloc1_8_i1.c: Regenerated.
572         * generated/maxloc1_8_i2.c: Regenerated.
573         * generated/maxloc1_8_i4.c: Regenerated.
574         * generated/maxloc1_8_i8.c: Regenerated.
575         * generated/maxloc1_8_r10.c: Regenerated.
576         * generated/maxloc1_8_r16.c: Regenerated.
577         * generated/maxloc1_8_r4.c: Regenerated.
578         * generated/maxloc1_8_r8.c: Regenerated.
579         * generated/maxval_i16.c: Regenerated.
580         * generated/maxval_i1.c: Regenerated.
581         * generated/maxval_i2.c: Regenerated.
582         * generated/maxval_i4.c: Regenerated.
583         * generated/maxval_i8.c: Regenerated.
584         * generated/maxval_r10.c: Regenerated.
585         * generated/maxval_r16.c: Regenerated.
586         * generated/maxval_r4.c: Regenerated.
587         * generated/maxval_r8.c: Regenerated.
588         * generated/minloc1_16_i16.c: Regenerated.
589         * generated/minloc1_16_i1.c: Regenerated.
590         * generated/minloc1_16_i2.c: Regenerated.
591         * generated/minloc1_16_i4.c: Regenerated.
592         * generated/minloc1_16_i8.c: Regenerated.
593         * generated/minloc1_16_r10.c: Regenerated.
594         * generated/minloc1_16_r16.c: Regenerated.
595         * generated/minloc1_16_r4.c: Regenerated.
596         * generated/minloc1_16_r8.c: Regenerated.
597         * generated/minloc1_4_i16.c: Regenerated.
598         * generated/minloc1_4_i1.c: Regenerated.
599         * generated/minloc1_4_i2.c: Regenerated.
600         * generated/minloc1_4_i4.c: Regenerated.
601         * generated/minloc1_4_i8.c: Regenerated.
602         * generated/minloc1_4_r10.c: Regenerated.
603         * generated/minloc1_4_r16.c: Regenerated.
604         * generated/minloc1_4_r4.c: Regenerated.
605         * generated/minloc1_4_r8.c: Regenerated.
606         * generated/minloc1_8_i16.c: Regenerated.
607         * generated/minloc1_8_i1.c: Regenerated.
608         * generated/minloc1_8_i2.c: Regenerated.
609         * generated/minloc1_8_i4.c: Regenerated.
610         * generated/minloc1_8_i8.c: Regenerated.
611         * generated/minloc1_8_r10.c: Regenerated.
612         * generated/minloc1_8_r16.c: Regenerated.
613         * generated/minloc1_8_r4.c: Regenerated.
614         * generated/minloc1_8_r8.c: Regenerated.
615         * generated/minval_i16.c: Regenerated.
616         * generated/minval_i1.c: Regenerated.
617         * generated/minval_i2.c: Regenerated.
618         * generated/minval_i4.c: Regenerated.
619         * generated/minval_i8.c: Regenerated.
620         * generated/minval_r10.c: Regenerated.
621         * generated/minval_r16.c: Regenerated.
622         * generated/minval_r4.c: Regenerated.
623         * generated/minval_r8.c: Regenerated.
624         * generated/product_c10.c: Regenerated.
625         * generated/product_c16.c: Regenerated.
626         * generated/product_c4.c: Regenerated.
627         * generated/product_c8.c: Regenerated.
628         * generated/product_i16.c: Regenerated.
629         * generated/product_i1.c: Regenerated.
630         * generated/product_i2.c: Regenerated.
631         * generated/product_i4.c: Regenerated.
632         * generated/product_i8.c: Regenerated.
633         * generated/product_r10.c: Regenerated.
634         * generated/product_r16.c: Regenerated.
635         * generated/product_r4.c: Regenerated.
636         * generated/product_r8.c: Regenerated.
637         * generated/sum_c10.c: Regenerated.
638         * generated/sum_c16.c: Regenerated.
639         * generated/sum_c4.c: Regenerated.
640         * generated/sum_c8.c: Regenerated.
641         * generated/sum_i16.c: Regenerated.
642         * generated/sum_i1.c: Regenerated.
643         * generated/sum_i2.c: Regenerated.
644         * generated/sum_i4.c: Regenerated.
645         * generated/sum_i8.c: Regenerated.
646         * generated/sum_r10.c: Regenerated.
647         * generated/sum_r16.c: Regenerated.
648         * generated/sum_r4.c: Regenerated.
649         * generated/sum_r8.c: Regenerated.
650
651 2011-03-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
652
653         PR libgfortran/48047
654         * io/write_float.def (write_float): Change MIN_FIELD_WIDTH to 48.
655
656 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
657
658         PR libfortran/47802
659         * intrinsics/ctime.c (strctime): Use builtins to check localtime_r
660         return type.
661
662 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
663
664         PR libfortran/47802
665         * intrinsics/ctime.c (strctime): Don't use return value of
666         localtime_r.
667
668 2011-02-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
669
670         PR libgfortran/47567
671         * io/write_float.def (output_float): Move handling of w = 0 to after
672         output rounding. Check for zero and set zero_flag accordingly. Set
673         width according to zero_flag. Add better comments.
674
675 2011-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
676
677         PR libgfortran/47778
678         * io/list_read.c (namelist_read): Intialize the error string buffere.
679         If pprev_nl was used during the previous namelist read and the rank
680         was zero, reset the pointer to NULL for the next namelist read.
681
682 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
683
684         PR libfortran/45165
685         * unix.c (fallback_access): Fix file descriptor leaks.
686
687 2011-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
688
689         * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): Set shell variable
690         tested in configure.host.
691         * configure: Regenerate.
692
693 2011-02-24  Janne Blomqvist  <jb@gcc.gnu.org>
694
695         PR libfortran/47802
696         * config.h.in: Regenerated.
697         * configure: Regenerated.
698         * configure.ac: Remove checks for ctime and ctime_r, add check for
699         strftime.
700         * intrinsics/date_and_time.c (localtime_r): Move fallback
701         implementation to time_1.h.
702         * intrinsics/time_1.h (localtime_r): Fallback implementation.
703         * intrinsics/ctime.c: Include time_1.h.
704         (ctime_r): Remove fallback implementation.
705         (strctime): New function.
706         (fdate): Use strctime instead of ctime_r.
707         (fdate_sub): Likewise.
708         (ctime): Likewise.
709         (ctime_sub): Likewise.
710
711 2011-02-24  Jakub Jelinek  <jakub@redhat.com>
712
713         PR fortran/47878
714         * io/transfer.c (read_sf): Call fbuf_getptr only at the end,
715         and subtract n, dtp->u.p.sf_seen_eor and seen_comma from it.
716
717 2011-02-24  Janne Blomqvist  <jb@gcc.gnu.org>
718
719         PR libfortran/47802
720         * configure.ac: Add test for POSIX getpwuid_r.
721         * intrinsics/getlog.c (getlog): CPP test for
722         HAVE_POSIX_GETPWUID_R.
723         * config.h.in: Regenerated.
724         * configure: Regenerated.
725
726 2011-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
727
728         PR libgfortran/47567
729         * io/write_float.def (output_float): Remove special case handling of
730         zero with width 1.
731
732 2011-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
733             Jerry DeLisle    <jvdelisle@gcc.gnu.org>
734
735         PR libfortran/47694
736         * io/fbuf.h (fbuf_getptr): New inline function.
737         * io/transfer.c (read_sf): Use fbuf_getptr and fbuf_getc to scan
738         through the string instead of fbuf_read.
739
740 2011-02-22  Tobias Burnus  <burnus@net-b.de>
741             Kai-Uwe Eckhardt  <kuehro@gmx.de>
742
743         PR libfortran/47830
744         * intrinsics/c99_functions.c (roundl): Make C valid for
745         HAVE_NEXTAFTERL.
746
747 2011-02-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
748
749         PR libgfortran/47567
750         * io/write_float.def (output_float): Adjust width for F0.d to
751         allow space for negative signs on zero.
752
753 2011-02-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
754
755         PR libgfortran/47667
756         * io/list_read.c (read_logical): Check for end of line before calling
757         eat_line. (read_integer): Likewise. (parse_real): Don't unget the
758         separator. Check for end of line before calling eat_line.
759         (read_complex): Allow line-end before and after parenthesis and comma.
760         Check for end of line before calling eat_line. (read_real): Check for
761         end of line before calling eat_line.
762
763 2011-02-16  Jakub Jelinek  <jakub@redhat.com>
764
765         PR libfortran/47757
766         * gfortran.map (GFORTRAN_1.4): Export
767         _gfortran_{m,s}i{all,any,parity}_i{1,2,4,8,16} and
768         _gfortran_{cshift0,eoshift{0,2}}_16_char4.
769
770 2011-02-15  Tobias Burnus  <burnus@net-b.de>
771
772         PR fortran/47716
773         PR fortran/47648
774         * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from
775         libquadmath, which uses more features.
776         * configure: Regenerate.
777
778 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
779
780         PR fortran/47642
781         * io/write_float.def (DTOAQ): Use quadmath_snprintf instead of
782         quadmath_flt128tostr.
783         * io/transfer128.c (tmp2): Initialize to quadmath_snprintf instead
784         of quadmath_flt128tostr.
785
786 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
787
788         * Makefile.in: Regenerate.
789         * aclocal.m4: Likewise.
790         * configure: Likewise.
791
792 2011-02-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
793
794         PR libgfortran/47567
795         * io/write_float.def (output_float): Eliminate some redundant code.
796         Adjust width for case of F0.X for values of zero and all other values.
797         Expand cases where '*' is set to give cleaner results.
798
799 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
800
801         PR libfortran/47571
802         * intrinsics/time_1.h (GF_CLOCK_MONOTONIC): Move to system_clock.c.
803         (weak_gettime): Likewise.
804         (gf_gettime): Change API, move weak_gettime() usage to
805         system_clock.c
806         * intrinsics/system_clock.c (GTHREAD_USE_WEAK): Define.
807         (gf_gettime_mono): New function.
808         (system_clock_4): Use gf_gettime_mono().
809         (system_clock_8): Likewise.
810         * intrinsics/date_and_time.c (date_and_time): Update gf_gettime()
811         usage.
812
813 2011-02-02  Janne Blomqvist  <jb@gcc.gnu.org>
814
815         PR libfortran/47571
816         * configure: Regenerated.
817         * configure.ac: Don't add librt to LIBS.
818         * intrinsics/time_1.h (weak_gettime): Weakref trickery for
819         clock_gettime().
820         (gf_gettime): Use weak_gettime() instead of clock_gettime().
821
822 2011-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
823
824         * intrinsics/time_1.h: Include errno.h needed by fallbacks.
825
826 2011-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
827
828         * intrinsics/time_1.h: Fix definition of GF_CLOCK_MONOTONIC macro.
829
830 2011-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
831
832         * configure.ac: Check for clock_gettime().
833         * configure: Regenerated.
834         * config.h.in: Regenerated.
835         * intrinsics/time_1.h (__time_1): Rename to gf_cputime, add
836         times() fallback.
837         (gf_gettime): New function.
838         * intrinsics/cpu_time.c (__cpu_time_1): Update to call gf_cputime.
839         * intrinsics/date_and_time.c (date_and_time): Use gf_gettime.
840         * intrinsics/dtime.c (dtime_sub): Use gf_cputime.
841         * intrinsics/etime.c (etime_sub): Use gf_cputime.
842         * intrinsics/system_clock.c (system_clock_4): Use gf_gettime.
843         (system_clock_8): Use gf_gettime, increase count rate to allow
844         nanosecond precision, remove overflow prone branch.
845
846 2011-01-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
847
848         PR libgfortran/47434
849         * io/write_float.def (write_infnan): Use calculate_sign to determine
850         if the sign should be given and check field widths accordingly.
851
852 2011-01-29  Kai Tietz  <kai.tietz@onevision.com>
853
854         * intrinsics/ctime.c (ctime_r): Improve implementation.
855
856 2011-01-27  Janne Blomqvist  <jb@gcc.gnu.org>
857
858         PR libfortran/47431
859         * config.h.in: Regenerated.
860         * configure: Regenerated.
861         * configure.ac: Add check for ctime_r().
862         * intrinsics/ctime.c (ctime_r): Fallback implementation.
863         (fdate): Use ctime_r() instead of ctime().
864         (fdate_sub): Likewise.
865         (ctime): Likewise.
866         (ctime_sub): Likewise.
867
868 2011-01-27  Janne Blomqvist  <jb@gcc.gnu.org>
869
870         PR libfortran/47432
871         * config.h.in: Regenerated.
872         * configure: Regenerated.
873         * configure.ac: Add check for ttyname_r.
874         * io/unix.h: Add TTY_NAME_MAX, change stream_ttyname prototype.
875         * io/unix.c (stream_ttyname): Use ttyname_r if available, conform
876         to new prototype.
877         * io/inquire.c (inquire_via_unit): Use changed stream_ttyname.
878         * io/intrinsics.c (ttynam_sub): Likewise.
879         (ttynam): Likewise.
880
881 2011-01-27  Janne Blomqvist  <jb@gcc.gnu.org>
882
883         PR libfortran/47491
884         * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS to enable common
885         extensions.
886         * config.h.in: Regenerate.
887         * configure: Regenerate.
888
889 2011-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
890
891         PR libgfortran/47285
892         * io/write_float.def (write_infnan): Adjust processor selected width
893         to 3 if NaN.
894
895 2011-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
896
897         PR libgfortran/47285
898         * io/write_float.def (output_float): Return SUCCESS or FAILURE and use
899         the result to set the padding.
900
901 2011-01-26  Kai Tietz  <kai.tietz@onevision.com>
902
903         * intrinsics/getlog.c (getlog): Fix label/statement issue.
904
905 2011-01-25  Janne Blomqvist  <jb@gcc.gnu.org>
906
907         PR libfortran/47375
908         * config.h.in: Regenerated.
909         * configure: Regenerated.
910         * configure.ac: Add check for getpwuid_r.
911         * intrinsics/getlog.c (getlog): Use getpwuid_r() if available.
912
913 2011-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
914
915         PR libfortran/46267
916         * config.h.in: Regenerated.
917         * configure: Regenerated.
918         * configure.ac: Check presence of strerror_r.
919         * intrinsics/gerror.c (gerror): Use gf_strerror, modify logic.
920         * io/unix.c (get_oserror): Remove.
921         * libgfortran.h (gf_strerror): Add prototype.
922         (get_oserror): Remove prototype.
923         * runtime/error.c (gf_strerror): New function.
924         (os_error): Use gf_strerror instead of get_oserror.
925         (generate_errror): Likewise.
926
927 2011-01-17  Janne Blomqvist  <jb@gcc.gnu.org>
928
929         PR libfortran/47296
930         * io/unix.c (tempfile): Set opp->file and opp->file_len also if an
931         error occurs.
932
933 2011-01-16  Jakub Jelinek  <jakub@redhat.com>
934
935         PR fortran/46625
936         * io/write_float.def (DTOAQ): Use quadmath_flt128tostr
937         instead of quadmath_dtoa.
938         * io/transfer128.c (tmp1, tmp2): New variables, bring in
939         strtoflt128 and quadmath_flt128tostr.
940         (transfer_real128, transfer_real128_write, transfer_complex128,
941         transfer_complex128_write): Remove tmp1/tmp2 variables.
942         * io/read.c (convert_real): Use strtoflt128 instead of
943         quadmath_strtopQ, adjust for the changed arguments and return
944         value.
945
946 2011-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
947
948         PR libgfortran/47296
949         * io/unix.c (unpack_filename): Return non-zero if the filename passed
950         in is NULL.
951
952 2011-01-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
953
954         PR libgfortran/47154
955         * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the
956         duplicate calls via next_record.
957
958 \f
959 Copyright (C) 2011 Free Software Foundation, Inc.
960
961 Copying and distribution of this file, with or without modification,
962 are permitted in any medium without royalty provided the copyright
963 notice and this notice are preserved.