OSDN Git Service

PR libfortran/24787
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2005-11-12  Steven G. Kargl  <kargls@comcast.net>
2
3         PR libgfortran/24787
4         *  intrinsics/string_intrinsics.c (string_scan): Off by one; Fix typos
5         in nearby comment.
6
7 2005-11-10  Andreas Jaeger  <aj@suse.de>
8
9         * libgfortran.h: Add proper defines where needed.
10
11 2005-11-10  Andreas Jaeger  <aj@suse.de>
12
13         * libgfortran.h: Add missing prototypes for internal_pack
14         functions.
15
16 2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>
17
18         PR fortran/24174
19         PR fortran/24305
20         * io/io.h: Add argument to prototypes, add prototypes for
21         size_from_*_kind functions.
22         * io/list_read.c (read_complex): Add size argument, use
23         it.
24         (list_formatted_read): Add size argument, cleanup.
25         (list_formatted_read_scalar): Add size argument.
26         (nml_read_obj): Fix for padding.
27         * io/transfer.c: Add argument to transfer function pointer.
28         (unformatted_read): Add size argument.
29         (unformatted_write): Likewise.
30         (formatted_transfer_scalar): Fix for padding with complex(10).
31         (formatted_transfer): Add size argument, cleanup.
32         (transfer_integer): Add size argument to transfer call.
33         (transfer_real): Likewise.
34         (transfer_logical): Likewise.
35         (transfer_character): Likewise.
36         (transfer_complex): Likewise.
37         (transfer_array): New kind argument, use it.
38         (data_transfer_init): Add size argument to formatted_transfer
39         call.
40         (iolength_transfer): Add size argument, cleanup.
41         * io/write.c (write_complex): Add size argument, fix for padding
42         with complex(10).
43         (list_formatted_write): Add size argument, cleanup.
44         (list_formatted_write_scalar): Add size argument, use it.
45         (nml_write_obj): Fix for size vs. kind issue.
46         * io/size_from_kind.c: New file.
47         * Makefile.am: Add io/size_from_kind.c.
48         * configure: Regenerate.
49         * Makefile.in: Regenerate.
50
51 2005-11-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
52
53         * intrinsics/ctime.c: New file.
54         * configure.ac: Add check for ctime.
55         * Makefile.am: Add ctime.c
56         * configure: Regenerate.
57         * config.h.in: Regenerate.
58         * Makefile.in: Regenerate.
59
60 2005-11-05  Richard Guenther  <rguenther@suse.de>
61
62         * configure.ac: Use AM_FCFLAGS for extra flags, not FCFLAGS.
63         * configure: Regenerate.
64
65 2005-11-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
66
67         * intrinsics/tty.c (ttynam): New function.
68
69 2005-11-04  Steven G. Kargl <kargls@comcast.net>
70
71         PR fortran/24636
72         * runtime/stop.c (stop_numeric): Use stop_code = -1.
73
74 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
75
76         PR libfortran/22298
77         * runtime/main.c (stupid_function_name_for_static_linking): New
78         function.
79         * runtime/error.c (internal_error): Call
80         stupid_function_name_for_static_linking.
81         * libgfortran.h: Add prototype for
82         stupid_function_name_for_static_linking.
83
84 2005-11-01  Paul Thomas  <pault@gcc.gnu.org>
85
86         PR fortran/14994
87         * libgfortran/intrinsics/date_and_time.c: Add interface to
88         the functions date_and_time for the intrinsic function secnds.
89
90 2005-10-31  Jerry DeLisle  <jvdelisle@verizon.net>
91
92         PR libgfortran/24584
93         * io/list_read.c (free_saved): Set saved_used to zero.
94
95 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
96
97         PR libfortran/20179
98         * io/unix.c (flush_if_preconnected): New function.
99         * io/io.h: Add prototype for flush_if_preconnected.
100         * io/transfer.c (data_transfer_init): Use flush_if_preconnected
101         to workaround buggy mixed C-Fortran code.
102
103 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
104
105         * Makefile.am: Add intrinsics/malloc.c file.
106         * Makefile.in: Regenerate.
107         * intrinsics/malloc.c: New file, with implementations for free
108         and malloc library functions.
109
110 2005-10-29  Mike Stump  <mrs@apple.com>
111
112         * Makefile.am (kinds.h): Remove target, if command fails.
113         (selected_int_kind.inc): Likewise.
114         (selected_real_kind.inc): Likewise.
115         * Makefile.in: Regenerate.
116
117 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
118
119
120         * Makefile.am (intrinsics): Add signal.c.
121         * Makefile.in: Regenerate.
122         * configure.ac: Checks for signal and alarm.
123         * config.h.in: Regenerate.
124         * configure: Regenerate.
125         * intrinsics/signal.c: New file for SIGNAL and ALARM intrinsics.
126
127 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
128
129         * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check.
130         * configure.ac: Check for floatingpoint.h, fptrap.h and float.h
131         headers. Use LIBGFOR_CHECK_FPSETMASK. Check for fp_trap and
132         fp_enable functions.
133         * configure.host: Add case for systems with fpsetmask and systems
134         with fp_trap/fp_enable.
135         * config/fpu-sysv.h: New file, FPU code using fpsetmask.
136         * config/fpu-aix.h: New file, FPU code for AIX using fp_trap and
137         fp_enable.
138         * aclocal.m4: Regenerate.
139         * configure: Regenerate.
140         * config.h.in: Regenerate.
141
142 2005-10-24  Jerry DeLisle  <jvdelisle@verizon.net>
143
144         PR libgfortran/24224
145         * libgfortran.h: Remove array stride error code.
146         * runtime/error.c: Remove array stride error.
147         * io/io.h: Change name of 'nml_loop_spec' to 'array_loop_spec' to be
148         generic.  Add pointer to array_loop_spec and rank to gfc_unit
149         structure.
150         * io/list_read.c: Revise nml_loop_spec references to array_loop_spec.
151         * io/transfer.c (init_loop_spec): New function to initialize
152         an array_loop_spec.
153         (next_array_record): New function to return the index to the next array
154         record by incrementing through the array_loop_spec.
155         (next_record_r): Use new function.
156         (next_record_w): Use new function.
157         (finalize_transfer): Free memory allocated for array_loop_spec.
158         * io/unit.c (get_array_unit_len): Delete this function. Use new
159         function init_loop_spec to initialize the array_loop_spec.
160
161 2005-10-24  Paul Thomas  <pault@gcc.gnu.org>
162
163         PR fortran/24416
164         * libgfortran/io/list_read.c (namelist_read): Exit with call to
165         free_saved () so that character strings do not accumulate.
166
167 2005-10-23  Jerry DeLisle  <jvdelisle@verizon.net>
168
169         PR libgfortran/24489
170         * io/transfer.c (read_block): Change the order of execution to not read
171         past end-of-record.
172         (read_block_direct): Same change.
173
174 2005-10-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
175
176         PR libfortran/23272
177         * acinclude.m4 (LIBGFOR_CHECK_WORKING_STAT): New check.
178         * configure.ac: Use LIBGFOR_CHECK_WORKING_STAT.
179         * Makefile.in: Regenerate.
180         * configure: Regenerate.
181         * config.h.in: Regenerate.
182         * aclocal.m4: Regenerate.
183         * io/unix.c (compare_file_filename): Add fallback case for
184         systems without working stat.
185         * io/open.c (already_open): Correct call to
186         compare_file_filename.
187         * io/io.h: Correct proto for compare_file_filename.
188
189 2005-10-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
190
191         * runtime/fpu.c: Add _GNU_SOURCE definition.
192         * config/fpu-glibc.h: Remove __USE_GNU definition.
193
194 2005-10-23  Paul Thomas  <pault@gcc.gnu.org>
195
196         PR fortran/24384
197         * intrinsics/spread_generic.c (spread_internal_scalar): New
198         function that handles the special case of spread with a scalar
199         source. This has new interface functions -
200         (spread_scalar, spread_char_scalar): New functions to interface
201         with the calls specified in gfc_resolve_spread.
202
203 2005-10-21  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
204
205         PR libfortran/24383
206         * io/unix.c: Add fallback definition for SSIZE_MAX.
207
208 2005-10-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
209
210         * c99_protos.h: Define preprocessor HAVE_ macros with value 1
211         instead of empty value.
212         * intrinsics/c99_functions.c: Likewise.
213         * intrinsics/getXid.c: Define HAVE_GETPID with value 1 instead of
214         empty value.
215         * intrinsics/sleep.c: Define HAVE_SLEEP with value 1 instead of
216         empty value.
217
218 2005-10-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
219
220         PR libfortran/24432
221         * c99_protos.h: Define HAVE_ macros for all provided functions.
222
223 2005-10-14  Uros Bizjak  <uros@kss-loka.si>
224
225         * config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
226         Change cw and cw_sse variables to unsigned.
227         (SSE): New definition.
228         (has_sse): Use it.
229
230 2005-10-13  Thomas Koenig  <Thomas.Koenig@online.de>
231
232         * io/unix.c(fd_alloc_r_at):  Use read() instead of do_read()
233         only in case of special files (e.g. terminals).
234
235 2005-10-13  Uros Bizjak  <uros@kss-loka.si>
236
237         * config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
238
239 2005-10-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
240
241         * Makefile.am: Add fpu.c to the build process, and
242         target-dependent code as fpu-target.h.
243         * Makefile.in: Regenerate.
244         * configure.ac: Add call to configure.host to set
245         FPU_HOST_HEADER.
246         * configure: Regenerate.
247         * configure.host: New script to determine which host-dependent
248         code should go in.
249         * libgfortran.h: Add fpe option, remove previous fpu_ options.
250         Add bitmasks for different FPE traps. Add prototype for set_fpu.
251         * runtime/environ.c: Remove environment variables to control
252         fpu behaviour.
253         * runtime/fpu.c (set_fpe): New function for the front-end.
254         * runtime/main.c (init): Set FPU state.
255         * config: New directory to store host-dependent code.
256         * config/fpu-387.h: New file with code handling the i387 FPU.
257         * config/fpu-glibc.h: New file with code for glibc systems.
258         * config/fpu-generic.h: Fallback for the most generic host. Issue
259         warnings.
260
261 2005-10-12  Janne Blomqvist <jblomqvi@cc.hut.fi>
262
263         * io/unix.c(fd_alloc_r_at): Remove parts of patch of 2005/10/07 that
264         cause input from the terminal to hang.
265
266 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
267
268         PR libgfortran/24313
269         *  c99_functions.c (csqrtf, csqrt): Fix choice of branch cut.  Note
270         csqrt{f} were imported from glibc, and this bug is still present
271         there. glibc PR is 1146.
272
273 2005-10-07  Janne Blomqvist <jblomqvi@cc.hut.fi>
274
275         PR fortran/16339
276         PR fortran/23363
277         * io/io.h: Add read and write members to stream, define access
278         macros.
279         * io/transfer.c (read_block_direct): New function.
280         (write_block_direct): New function.
281         (unformatted_read): Change to use read_block_direct.
282         (unformatted_write): Change to use write_block_direct.
283         * io/unix.c: Remove mmap includes and defines.
284         (writen): Remove.
285         (readn): Remove.
286         (reset_stream): New function.
287         (do_read): New function.
288         (do_write): New function.
289         (fd_flush): Change to use do_write() instead of writen().
290         (fd_alloc_r_at): Change to use do_read().
291         (fd_seek): Change return type to try, as the prototype. Add check
292         to avoid syscall overhead if possible.
293         (fd_read): New function.
294         (fd_write): New function.
295         (fd_open): Set pointers for new functions.
296         (mem_read): New function.
297         (mem_write): New function.
298         (open_internal): Set pointers for new functions.
299         (is_seekable): Clean up comment.
300
301 2005-10-07  Jerry DeLisle  <jvdelisle@verizon.net>
302
303         * io/transfer.c (write_block): Add test for end-of-file condition,
304         removed from mem_alloc_w_at. (next_record_w): Clean up checks for
305         NULL pointer returns from s_alloc_w.
306         * io/unix.c (mem_alloc_w_at): Remove call to generate_error end-of-file.
307         * io/write.c (write_float): Add checks for NULL pointer returns from
308         write_block calls. (write_integer): Same.
309
310 2005-10-03  Jakub Jelinek  <jakub@redhat.com>
311
312         * runtime/memory.c (allocate_size): Malloc 1 byte if size == 0.
313
314 2005-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
315
316         PR libfortran/19308
317         PR libfortran/22437
318         * Makefile.am: Add generated files for large real and integers
319         kinds. Add a rule to create the kinds.inc c99_protos.inc files.
320         Use kinds.inc to preprocess Fortran generated files.
321         * libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
322         GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
323         gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
324         gfc_array_l16.
325         * mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
326         HAVE_GFC_COMPLEX_* when these types are available.
327         * intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
328         * m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
329         m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
330         m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
331         m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
332         m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
333         m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
334         m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
335         m4/sum.m4, m4/transpose.m4: Protect generated functions with
336         appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
337         * Makefile.in: Regenerate.
338         * all files in generated/: Regenerate.
339
340 2005-10-01  Jakub Jelinek  <jakub@redhat.com>
341
342         * runtime/memory.c (malloc_t): Remove.
343         (GFC_MALLOC_MAGIC, HEADER_SIZE, DATA_POINTER, DATA_HEADER): Remove.
344         (mem_root, runtime_cleanup, malloc_with_header): Remove.
345         (internal_malloc_size): Use just get_mem if size != 0, return NULL
346         otherwise.
347         (internal_free): Just free if non-NULL.
348         (internal_realloc_size): Remove debugging stuff.
349         (allocate_size): Use malloc directly, remove debugging stuff.
350         (deallocate): Use free directly, fix error message wording.
351
352         * libgfortran.h (GFC_ITOA_BUF_SIZE, GFC_XTOA_BUF_SIZE,
353         GFC_OTOA_BUF_SIZE, GFC_BTOA_BUF_SIZE): Define.
354         (gfc_itoa, xtoa): Add 2 extra arguments.
355         * runtime/environ.c: Include stdio.h.
356         (check_buffered): Use sprintf.
357         * runtime/error.c: Include assert.h.
358         (gfc_itoa, xtoa): Add 2 extra arguments, avoid using static
359         buffers.
360         (st_printf, st_sprintf): Adjust callers.
361         * io/write.c (otoa, btoa): Add 2 extra arguments, avoid using
362         static buffers.
363         (write_int, write_decimal): Add 2 extra arguments to conv
364         function pointer, adjust caller.
365         (write_integer): Adjust gfc_itoa caller.
366
367         * io/unit.c (get_array_unit_len): Return 0 rather than NULL.
368
369         * io/read.c (read_f): Remove spurious pointer dereference.
370
371 2005-09-30  Janne Blomqvist <jblomqvi@cc.hut.fi>
372
373         PR 24112
374         * io/open.c (edit_modes): Check for correct flag.
375
376 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
377
378         * runtime/string.c (find_option): Change 3rd argument to
379         const st_option *.
380         * libgfortran.h (find_option): Likewise.
381         * runtime/environ.c (rounding, precision, signal_choices): Constify.
382         (init_choice, show_choice): Change 2nd argument to const choice *.
383         * io/open.c (access_opt, action_opt, blank_opt, delim_opt, form_opt,
384         position_opt, status_opt, pad_opt): Constify.
385         * io/transfer.c (advance_opt): Likewise.
386         * io/inquire.c (undefined): Likewise.
387         * io/close.c (status_opt): Likewise.
388         * io/format.c (posint_required, period_required, nonneg_required,
389         unexpected_element, unexpected_end, bad_string, bad_hollerith,
390         reversion_error): Likewise.
391         * io/unix.c (yes, no, unknown): Change from const char *
392         into const char [].
393
394 2005-09-27  Steve Ellcey  <sje@cup.hp.com>
395
396         PR target/23552
397         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): New.
398         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN): New.
399         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): New.
400         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): Add use.
401         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN): Add use.
402         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): Add use.
403         * configure: Regenerate.
404         * config.h.in: Regenerate.
405         * libgfortan.h (isfinite): undef if broken, set if needed.
406         (isnan): undef if broken, set if needed.
407         (fpclassify): undef if broken, set if needed.
408         * io/write.c: Remove TODO comment about working isfinite.
409         * intrinsics/c99_functions.c (round): Use isfinite instead
410         of fpclassify.
411         * intrinsics/c99_functions.c (roundf): Ditto.
412
413 2005-09-24  Janne Blomqvist <jblomqvi@cc.hut.fi>
414
415         * io.h: Changed prototypes of list_formatted_{read|write}.
416         * list_read.c (list_formatted_read): Renamed to
417         list_formatted_read_scalar and made static.
418         (list_formatted_read): New function.
419         * transfer.c: Prototype for transfer_array. Changed transfer
420         function pointer.
421         (unformatted_read): Add nelems argument, use it.
422         (unformatted_write): Likewise.
423         (formatted_transfer): Changed name to formatted_transfer_scalar.
424         (formatted_transfer): New function.
425         (transfer_integer): Add nelems argument to transfer call, move
426         updating item count to transfer functions.
427         (transfer_real): Likewise.
428         (transfer_logical): Likewise.
429         (transfer_character): Likewise.
430         (transfer_complex): Likewise.
431         (transfer_array): New function.
432         (data_transfer_init): Call formatted_transfer with new argument.
433         (iolength_transfer): New argument, use it.
434         * write.c (list_formatted_write): Renamed to
435         list_formatted_write_scalar, made static.
436         (list_formatted_write): New function.
437
438 2005-09-26  David Edelsohn  <edelsohn@gnu.org>
439
440         * configure.ac: Add check for __clog.
441         * configure: Regenerate.
442
443 2005-09-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
444
445         * c99_protos.h: Add prototypes for C99 complex functions.
446         * libgfortran.h: Include complex.h before c99_protos.h.
447         * intrinsics/c99_functions.c: Define HAVE_ macros for the
448         fallback functions we provide.
449         (cabsf, cabs, cabsl, cargf, carg, cargl, cexpf, cexp, cexpl,
450         clogf, clog, clogl, clog10f, clog10, clog10l, cpowf, cpow, cpowl,
451         cqsrtf, csqrt, csqrtl, csinhf, csinh, csinhl, ccoshf, ccosh,
452         ccoshl, ctanhf, ctanh, ctanhl, csinf, csin, csinl, ccosf, ccos,
453         ccosl, ctanf, ctan, ctanl): New fallback functions.
454         * Makefile.am (gfor_math_trig_c, gfor_math_trig_obj,
455         gfor_specific_c, gfor_cmath_src, gfor_cmath_obj): Remove.
456         * Makefile.in: Regenerate.
457         * configure.ac: Remove checks for csin. Add checks for all C99
458         complex functions.
459         * config.h.in: Regenerate.
460         * configure: Regenerate.
461         * aclocal.m4: Regenerate.
462
463 2005-09-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
464             Danny Smith  <dannysmith@users.sourceforge.net>
465
466         PR libfortran/23803
467         * intrinsics/getXid.c: Add getpid wrapper for MinGW.
468         * intrinsics/getlog.c: Add getlogin wrapper for MinGW.
469         * intrinsics/hostnm.c: Add gethostname wrapper for MinGW.
470
471 2005-09-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
472
473         PR libfortran/23802
474         * intrinsics/sleep.c: Add correct sleep macro for MinGW.
475
476 2005-09-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
477
478         PR libfortran/23380
479         * intrinsics/cpu_time.c (__cpu_time_1): Provide a MS Windows
480         version.
481
482 2005-09-14  Jerry DeLisle  <jvdelisle@verizon.net
483
484         PR fortran/21875 Internal Unit Array I/O, NIST
485         * libgfortran.h: Add run time error code for array stride.
486         * runtime/error.c (translate_error): Add error message for
487         array stride.
488         * io/io.h: Add array descriptor pointer to IOPARM structure.
489         Add prtotypes for two new functions.
490         * io/transfer.c (data_transfer_init): Removed initialization and
491         moved to unit.c (get_unit)
492         * io/transfer.c (next_record_r): Include internal unit read
493         functionality.
494         * io/transfer.c (next_record_w): Include internal unit write
495         functionality, including padding of character array records.
496         * io/unit.c (get_array_unit_len): New function to return the number
497         of records in the character array 'file' from the array descriptor.
498         * io/unit.c (get_unit): Gathered initialization code from
499         init_data_transfer for internal units and added initialization of
500         character array unit.
501         * io/unit.c (is_array_io): New function to determine if internal unit
502         is an array.
503         * io/unix.c (mem_alloc_w_at): Add error checks for bad record length
504         and end of file.
505
506 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
507
508         PR target/19269
509         * intrinsics/cshift0.c (cshift0): Add an extra size argument.
510         (cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
511         implementations with...
512         (DEFINE_CSHIFT): ...this new macro.  Define character versions too.
513         * intrinsics/eoshift0.c (zeros): Delete.
514         (eoshift0): Add extra size and filler arguments.  Use memset if no
515         bound is provided.
516         (eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
517         implementations with...
518         (DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
519         * intrinsics/eoshift2.c (zeros): Delete.
520         (eoshift2): Add extra size and filler arguments.  Use memset if no
521         bound is provided.
522         (eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
523         implementations with...
524         (DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
525         * intrinsics/pack.c (pack_internal): New static function, reusing
526         the contents of pack and adding an extra size argument.  Change
527         "mptr" rather than "m" when calculating the array size.
528         (pack): Redefine as a forwarder to pack_internal.
529         (pack_s_internal): New static function, reusing the contents of
530         pack_s and adding an extra size argument.
531         (pack_s): Redefine as a forwarder to pack_s_internal.
532         (pack_char, pack_s_char): New functions.
533         * intrinsics/reshape.c (reshape_internal): New static function,
534         reusing the contents of reshape and adding an extra size argument.
535         (reshape): Redefine as a forwarder to reshape_internal.
536         (reshape_char): New function.
537         * intrinsics/spread.c (spread_internal): New static function,
538         reusing the contents of spread and adding an extra size argument.
539         (spread): Redefine as a forwarder to spread_internal.
540         (spread_char): New function.
541         * intrinsics/transpose.c (transpose_internal): New static function,
542         reusing the contents of transpose and adding an extra size argument.
543         (transpose): Redefine as a forwarder to transpose_internal.
544         (transpose_char): New function.
545         * intrinsics/unpack.c (unpack_internal): New static function, reusing
546         the contents of unpack1 and adding extra size and fsize arguments.
547         (unpack1): Redefine as a forwarder to unpack_internal.
548         (unpack0): Call unpack_internal instead of unpack1.
549         (unpack1_char, unpack0_char): New functions.
550         * m4/cshift1.m4 (cshift1): New static function, reusing the contents
551         of cshift1_<kind> and adding an extra size argument.
552         (cshift1_<kind>): Redefine as a forwarder to cshift1.
553         (cshift1_<kind>_char): New function.
554         * m4/eoshift1.m4 (zeros): Delete.
555         (eoshift1): New static function, reusing the contents of
556         eoshift1_<kind> and adding extra size and filler arguments.
557         Fix calculation of hstride.  Use memset if no bound is provided.
558         (eoshift1_<kind>): Redefine as a forwarder to eoshift1.
559         (eoshift1_<kind>_char): New function.
560         * m4/eoshift3.m4 (zeros): Delete.
561         (eoshift3): New static function, reusing the contents of
562         eoshift3_<kind> and adding extra size and filler arguments.
563         Use memset if no bound is provided.
564         (eoshift3_<kind>): Redefine as a forwarder to eoshift3.
565         (eoshift3_<kind>_char): New function.
566         * generated/cshift1_4.c, generated/cshift1_8.c,
567         * generated/eoshift1_4.c, generated/eoshift1_8.c,
568         * generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.
569
570 2005-09-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
571
572         PR libfortran/20179
573         * io/unix.c (is_preconnected): Add function to test if a stream
574         corresponds to a preconnected unit.
575         * io/io.h: Add prototype for is_preconnected.
576         * io/transfer.c (data_transfer_init): Do not truncate
577         preconnected units.
578
579 2005-09-10  Janne Blomqvist  <jblomqvi@cc.hut.fi>
580
581         * io/unix.c: Remove mmap code.
582
583 2005-09-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
584
585         PR libfortran/23784
586         * io/close.c (st_close): Call library_end even in case of error.
587
588 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
589
590         * io/io.h:  Add iomsg as last field of st_parameter.
591         * runtime/error.c (generate_error):  If iomsg is present, copy
592         the message there.
593
594 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
595
596         PR fortran/12840
597         * runtime/memory.c (internal_malloc_size): Return a null pointer
598         if the size is zero.
599         (internal_free): Do nothing if the pointer is null.
600         (internal_realloc_size, internal_realloc, internal_realloc64): New.
601
602 2005-09-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
603
604         PR libfortran/23262
605         * acinclude.m4 (LIBGFOR_CHECK_CRLF): New check.
606         * configure.ac: Use new check.
607         * configure.in: Regenerate.
608         * config.h.in: Regenerate.
609         * configure: Regenerate.
610         * io/transfer.c (next_record_w): Add case for CRLF as line
611         terminator.
612         * io/unix.c (tempfile, regular_file): Open files with
613         O_BINARY on systems with CRLF.
614
615 2005-09-07  Steve Ellcey  <sje@cup.hp.com>
616
617         PR libfortran/23419
618         * io/write.c (extract_int): Use memcpy to access buffer.
619         (extract_uint): Ditto.
620         (extract_real): Ditto.
621
622 2005-09-05  Thomas Koenig  <Thomas.Koenig@online.de>
623
624         * io/list_read.c:  Adjust size of of value to 32 (to hold
625         kind=16 complex values).
626
627 2005-09-04  Thomas Koenig  <Thomas.Koenig@online.de>
628
629         PR libfortran/23321
630         * io/transfer.c(data_transfer_init):  Check for a too-large
631         record number.  Return if sseek failed.
632
633 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
634
635         * io/read.c (read_x): Take int argument instead of fnode * and
636         digging the N from F->u.n.
637         * io/io.h (read_x): Adjust prototype.
638         * io/transfer.c (formatted_transfer): Adjust callers.  Don't clobber
639         f->u.n for FMT_T.
640
641 2005-09-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
642
643         * io/unix.c (stream_ttyname): Protect use of ttyname by
644         HAVE_TTYNAME macro.
645         * configure.ac: Add check for ttyname.
646         * config.h.in: Regenerate.
647         * configure: Regenerate.
648
649 2005-09-02  Andreas Jaeger  <aj@suse.de>
650
651         * libgfortran.h: Add prototype for init_compile_options.
652
653         * io/io.h: Add prototype for notify_std.
654
655 2005-08-31  Steve Ellcey  <sje@cup.hp.com>
656
657         * io/read.c (set_integer): Use memcpy to fill buffer.
658
659 2005-08-31  Steve Ellcey  <sje@cup.hp.com>
660
661         PR target/23556
662         * io/read.c (convert_real): Use memcpy to fill buffer.
663
664 2005-08-29  Thomas Koenig  <Thomas.Koenig@online.de>
665
666         PR libfortran/23598
667         * io/lock.c(library_start):  If ioparm.iostat is present, clear
668         it unconditionally.
669
670 2005-08-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
671
672         * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see
673         if target can unlink open files.
674         * configure.ac: Use this new test.
675         * config.h.in: Regenerate.
676         * configure: Regenerate.
677         * Makefile.in: Regenerate.
678         * aclocal.ac: Regenerate.
679         * io/io.h: Add prototype for unpack_filename.
680         * io/close.c (st_close): Delete file after closing unit if
681         HAVE_UNLINK_OPEN_FILE is not defined.
682         * io/unix.c (unpack_filename): Unlink scratch file after opening
683         it only if HAVE_UNLINK_OPEN_FILE is defined.
684
685 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
686
687         * All files: Update FSF address.
688
689 2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>
690
691         PR libfortran/23428
692         * io/transfer.c (iolength_transfer):  Remove __attribute__ ((unused))
693         from type.  Return correct length for inquire(iolength=)
694         for complex variables.
695
696 2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
697             Steven Bosscher  <stevenb@suse.de>
698
699         PR libfortran/20006
700         * Makefile.am: Add file runtime/compile_options.c.
701         * Makefile.in: Regenerate.
702         * libgfortran.h: Create structure compile_options_t. Define the
703         compile_options variable and GFC_STD_ macros.
704         * runtime/compile_options.c: New file.
705         * runtime/error.c (notify_std): New function.
706         * runtime/main.c (init): Call init_compile_options during
707         initialization.
708         * io/format.c: Use the new notify_std function for the $
709         descriptor extension.
710
711 2005-08-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
712         * Makefile.am: Add file intrinsics/tty.c to Makefile process.
713         * Makefile.in: Regenerate.
714         * io/io.h: Prototypes for new functions stream_isatty and
715         stream_ttyname.
716         * io/unix (stream_isatty, stream_ttyname): New functions to call
717         isatty() and ttyname() on a given unit.
718         * intrinsics/tty.c: New file to implement g77 intrinsics TTYNAM
719         and ISATTY.
720
721 2005-08-08  Jerry DeLisle  <jvdelisle@verizon.net>
722
723         PR libfortran/23154
724         * io/transfer.c (data_transfer_init): Initialize
725         current_unit->bytes_left for a read.
726
727 2005-08-07  Janne Blomqvist  <jblomqvi@cc.hut.fi>
728
729         PR fortran/22390
730         * io/backspace.c: File removed, contents moved to ...
731         * io/endfile.c: Ditto.
732         * io/rewind.c: Ditto.
733         * io/file_pos.c: New file, ... here.
734         * Makefile.am: Add file_pos.c to list, remove obsolete files.
735         * Makefile.in: Regenerated.
736
737 2005-08-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
738
739         * io/io.h: Change DEFAULT_TEMPDIR to /tmp instead of /var/tmp.
740         * io/unix.c (tempfile): Look at the TEMP environment variable
741         to find the temporary files directory. Whitespace correction.
742
743 2005-08-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
744
745         * io/unix.c: Add O_RDWR to open() call.
746
747 2005-08-04 Paul Thomas  <pault@gcc.gnu.org>
748
749         * transfer.c (data_transfer_init): Truncate file in
750         sequential WRITE when last_record == 0, rather than
751         current_record.  Cures problem on RH9.
752
753 2005-08-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
754
755         * libgfortran.h: When isfinite is not provided by the system,
756         define it as a macro, so that it can accept any floating point
757         type.
758
759 2005-08-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
760
761         PR libfortran/23178
762         * intrinsics/flush.c (flush_i8): Add function flush_i8. Update
763         copyright years.
764
765 2005-07-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
766
767         PR libfortran/21787
768         * intrinsics/abort.c (abort): Close units before aborting.
769         Updated copyright years.
770
771 2005-07-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
772
773         PR libfortran/22436
774         * io/write.c (write_real): Add default formats for real(10) and
775         real(16).
776
777 2005-07-30 Paul Thomas  <pault@gcc.gnu.org>
778
779         PR fortran/22570 and related issues.
780         * transfer.c (formatted_transfer): Make sure that there
781         really is data present before X- or T- editing. Move all
782         treatment of tabbing during writes to start of next data
783         producing format. Suppress incorrect zeroing of bytes_left
784         in slash formating. Insert int cast for assignment of a
785         difference of two gfc_offsets.
786
787 2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
788
789         * io/write.c (write_float): Revise output of IEEE exceptional
790         values to comply with F95 and F2003 standards.
791
792 2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
793
794         PR libfortran/22570
795         * io/unit.c (init_units): Replace BLANK_ZERO with
796         BLANK_UNSPECIFIED.
797
798 2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
799
800         PR libfortran/21875  (FM111.f)
801         * io/read.c (next_char): Return a ' ' character when BLANK_ZERO
802         or BLANK_NULL are active.
803         (read_decimal): Interpret ' ' character correctly for BZ or BN.
804         (read_radix): Interpret ' ' character correctly for BZ or BN.
805         (read_f): Interpret ' ' character correctly for BZ or BN.
806
807 2005-07-22 Paul Thomas  <pault@gcc.gnu.org>
808
809         PR libfortran/22570
810         * read.c (read_x): Correct the condition for doing the
811         x-editing during formatted input.
812         * transfer.c (formatted_transfer): Cast offset difference
813         as int, clean-up arithmetic with new variable, bytes_used,
814         zero counters for FMT_SLASH,
815         (data_transfer_init) Zero X- and T-editing counters
816         unconditionally.
817         (next_record_w) Zero X- and T-editing counters.
818         unconditionally.
819
820 2005-07-17  Jerry DeLisle  <jvdelisle@verizon.net>
821
822         * io/write.c (write_float): Fix field width checks for
823         printing 'Infinity' or 'Inf'.
824         (output_float): Fix typo in comment.
825
826 2005-07-12 Paul Thomas  <pault@gcc.gnu.org>
827
828         PR libfortran/16435
829         * transfer.c (formatted_transfer): Correct the problems
830         with X- and T-editting that caused TLs followed by TRs
831         to overwrite data, which caused NIST FM908.FOR to fail
832         on many tests.
833         (data_transfer_init): Zero X- and T-editting counters at
834         the start of formatted IO.
835         * write.c (write_x): Write specified number of skips with
836         specified number of spaces at the end.
837
838 2005-07-13 Paul Thomas  <pault@gcc.gnu.org>
839
840         * io/read.c (read_complex): Prevent X formatting during reads
841         from going beyond EOR to fix NIST fm908.FOR failure.
842         * io/list_read.c (read_complex): Allow complex data in list-
843         directed reads to have eols either side of the comma to
844         fix NIST FM906.FOR failure.
845
846 2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>
847
848         PR libfortran/21593
849         * io/unix.c:  Add member special_file to type unix_stream.
850         (fd_truncate):  Don't call ftruncate or chsize if
851         s refers to a special file.
852         (fd_to_stream):  initialize s->special_file.
853
854 2005-07-11  David Edelsohn  <edelsohn@gnu.org>
855
856         PR libgfortran/22412
857         * io/write.c (otoa): Bias p by SCRATCH_SIZE, not
858         sizeof (SCRATCH_SIZE).
859         (btoa): Same.
860
861 2005-07-09  Jerry DeLisle  <jvdelisle@verizon.net>
862
863         PR libfortran/21875  (FM111.f)
864         * io/read.c (next_char): Return a ' ' character when BLANK_ZERO or
865         BLANK_NULL are active.
866         (read_decimal): Interpret ' ' character correctly for BZ or BN.
867         (read_radix): Interpret ' ' character correctly for BZ or BN.
868         (read_f): Interpret ' ' character correctly for BZ or BN.
869         * gfortran.dg/test (fmt_read_bz_bn.f90): New test case.
870
871 2005-07-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
872             Thomas Koenig  <Thomas.Koenig@online.de>
873
874         PR libfortran/22217
875         * io/write.c (extract_unit):  New function; extract
876         ints as unsigned signed int of the correct size.
877         (write_int):  Use it.
878         * runtime/error.c:  Adjust copyright years.
879         Adjust size of buffer to maximum that can occur.
880
881 2005-07-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
882
883         * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
884         'size_t offset'.
885         * intrinsics/cshift0.c, intrinsics/eoshift0.c,
886         intrinsics/eoshift2.c,intrinsics/pack_generic.c,
887         intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
888         intrinsics/transpose_generic.c, intrinsics/unpack_generic,
889         m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
890         m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
891         m4,transpose.m4: Set renamed field 'offset' to zero instead of
892         'base'.
893         * generated/all_l4.c, generated/all_l8.c,
894         generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
895         generated/count_4_l8.c, generated/count_8_l4.c,
896         generated/count_8_l8.c, generated/chift1_4.c,
897         generated/cshift1_8.c, generated/eoshift1_4.c,
898         generated/eoshift1_8.c, generated/eoshift3_4.c,
899         generated/eoshift3_8.c, generated/matmul_c4.c,
900         generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
901         generated/matmul_l4.c, generated/matmul_l8.c,
902         generated/matmul_r4.c, generated/matmul_r8.c,
903         generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
904         generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
905         generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
906         generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
907         generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
908         generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
909         generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
910         generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
911         generated/maxval_i4.c, generated/maxval_i8.c,
912         generated/maxval_r4.c, generated/maxval_r8.c,
913         generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
914         generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
915         generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
916         generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
917         generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
918         generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
919         generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
920         generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
921         generated/minval_i4.c, generated/minval_i8.c,
922         generated/minval_r4.c, generated/minval_r8.c,
923         generated/product_c4.c, generated/product_c8.c,
924         generated/product_i4.c, generated/product_i8.c,
925         generated/product_r4.c, generated/product_r8.c,
926         generated/reshape_c4.c, generated/reshape_c8.c,
927         generated/reshape_i4.c, generated/reshape_i8.c,
928         generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
929         generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
930         generated/transpose_c4.c, generated/transpose_c8.c,
931         generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:
932
933 2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>
934
935         PR libfortran/21594
936         * intrinsics/eoshift0.c:  If abs(shift) > len, fill the
937         the whole array with the boundary value, but don't overrun it.
938         * intrinsics/eoshift2.c:  Likewise.
939         * m4/eoshift1.m4:  Likewise.
940         * m4/eoshift3.m4:  Likewise.
941         * generated/eoshift1_4.c:  Regenerated.
942         * generated/eoshift1_8.c:  Regenerated.
943         * generated/eoshift3_4.c:  Regenerated.
944         * generated/eoshift3_8.c:  Regenerated.
945
946 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
947
948         PR fortran/16531
949         * io/transfer.c (formatted_transfer): Enable FMT_A on other types to
950         support Hollerith constants.
951
952 2005-07-01  Andreas Jaeger  <aj@suse.de>
953
954         * intrinsics/unpack_generic.c: Remove const from parameter.
955
956         * io/transfer.c (formatted_transfer): Remove unused variable.
957
958 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
959
960         PR libfortran/22142
961         * m4/eoshift1.m4:  Correct bstride (it needs to be multiplied
962         by size since it's a char pointer).
963         * m4/eoshift1_4.c:  Regenerated.
964         * m4/eoshift1_8.c:  Regenerated.
965
966 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
967
968         PR libfortran/22142
969         * m4/eoshift3.m4:  Correct bstride (it needs to be multiplied
970         by size since it's a char pointer).
971         * m4/eoshift3_4.c:  Regenerated.
972         * m4/eoshift3_8.c:  Regenerated.
973
974 2005-06-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
975
976         PR libfortran/22170
977         * io/transfer.c (formatted_transfer): Do not iterate on the
978         repeat count of a FMT_SLASH, since this is already done in
979         next_format().
980
981 2005-06-25  Thomas Koenig  <Thomas.Koenig@online.de>
982
983         PR libfortran/22144
984         * m4/cshift1.m4: Remove const from argument ret.
985         Populate return array descriptor if ret->data is NULL.
986         * m4/eoshift1.m4: Likewise.
987         * m4/eoshift3.m4: Likewise.
988         * generated/cshift1_4.c:  Regenerated.
989         * generated/cshift1_8.c:  Regenerated.
990         * generated/eoshift1_4.c:  Regenerated.
991         * generated/eoshift1_8.c:  Regenerated.
992         * generated/eoshift3_4.c:  Regenerated.
993         * generated/eoshift3_8.c:  Regenerated.
994
995 2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>
996
997         PR libfortran/21915
998         * Makefile.am: Include intrinsics/hyper.c.
999         * c99_protos.h: Add prototypes for single precision versions of
1000         acosh, asinh, and atanh for platforms that do not have these.
1001         * config.h.in: Add #undef for wrappers.
1002         * configure.ac: Add checks for single precision versions.
1003         * aclocal.m4: Regenerated.
1004         * Makefile.in: Regenerated.
1005         * configure: Regenerated.
1006         * intrinsics/hyper.c: New file, adds new wrapper functions.
1007
1008 2005-06-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1009
1010         * intrinsics/c99_functions.c (log10l): New log10l function for
1011         systems where this is not available.
1012         * c99_protos.h: Prototype for log10l function.
1013         * libgfortran.h: Use generated kinds.h to define GFC_INTEGER_*,
1014         GFC_UINTEGER_*, GFC_LOGICAL_*, GFC_REAL_*, GFC_COMPLEX_*. Update
1015         prototypes for gfc_itoa and xtoa.
1016         * io/io.h: Update prototypes for set_integer and max_value.
1017         * io/list_read.c (convert_integer): Use new
1018         GFC_(INTEGER|REAL)_LARGEST type.
1019         * io/read.c (set_integer): Likewise.
1020         (max_value): Likewise.
1021         (convert_real): Likewise.
1022         (real_l): Likewise.
1023         (next_char): Likewise.
1024         (read_decimal): Likewise.
1025         (read_radix): Likewise.
1026         (read_f): Likewise.
1027         * io/write.c (extract_int): Use new GFC_INTEGER_LARGEST type.
1028         (extract_real): Use new GFC_REAL_LARGEST type.
1029         (calculate_exp): Likewise.
1030         (calculate_G_format): Likewise.
1031         (output_float): Likewise. Use log10l for long double values.
1032         Add comment for sprintf format. Use GFC_REAL_LARGEST_FORMAT.
1033         (write_l): Use new GFC_INTEGER_LARGEST type.
1034         (write_float): Use new GFC_REAL_LARGEST type.
1035         (write_int): Remove useless special case for (len < 8).
1036         (write_decimal): Use GFC_INTEGER_LARGEST.
1037         (otoa): Use GFC_UINTEGER_LARGEST as argument.
1038         (btoa): Use GFC_UINTEGER_LARGEST as argument.
1039         * runtime/error.c (gfc_itoa): Use GFC_INTEGER_LARGEST as
1040         argument.
1041         (xtoa): Use GFC_UINTEGER_LARGEST as argument.
1042         * Makefile.am: Use mk-kinds-h.sh to generate header kinds.h
1043         with all Fortran kinds available.
1044         * configure.ac: Check for strtold and log10l.
1045         * Makefile.in: Regenerate.
1046         * aclocal.m4: Regenerate.
1047         * configure: Regenerate.
1048         * config.h.in: Regenerate.
1049         * mk-kinds-h.sh: Configuration script for available integer
1050         and real kinds.
1051
1052
1053 2005-06-18  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1054
1055         * unix.c (stream_at_bof): Don't assume that all non-mmapped files
1056         are non-seekable.
1057         (stream_at_eof): Likewise.
1058
1059 2005-06-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1060
1061         PR libfortran/19155
1062         * io/read.c (convert_real): strtod can set errno to EINVAL on an
1063         empty string, but we shouldn't have an error in that case.
1064
1065 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1066
1067         PR libfortran/19216
1068         * io/list_read.c (eat_separator): No need to call next_record,
1069         even in non-namelist_mode.
1070
1071 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1072
1073         * io/transfer.c (formatted_transfer): Fix typo in error message.
1074
1075 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1076
1077         PR libfortran/16436
1078         * io/transfer.c (read_sf): Correct updating of bytes_left field.
1079         (formatted_transfer): Correct updating of bytes_left field and
1080         reformatting code (comments and whitespace).
1081         * io/unix.c (move_pos_offset): "active" field should not be
1082         changed here. Whitespace corrections.
1083
1084 2005-06-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1085
1086         PR libfortran/21950
1087         * intrinsics/c99_functions.c (scalbn): Provide fallback
1088         implementation for scalbn.
1089         * c99_protos.h: Prototype for scalbn.
1090         * configure.ac: Add check for scalbn.
1091         * configure: Regenerate.
1092         * config.h.in: Regenerate.
1093
1094 2005-06-14  Thomas Koenig  <Thomas.Koenig@online.de>
1095
1096         * intrinsics/eoshift0.c:  Removed prototype for eoshift0.
1097         * intrinsics/eoshift2.c:  Removed prototype for eoshift2.
1098
1099 2005-06-14  Tom Tromey  <tromey@redhat.com>
1100
1101         PR libgcj/19877:
1102         * configure, aclocal.m4, Makefile.in: Rebuilt.
1103
1104 2005-06-12  Thomas Koenig  <Thomas.Koenig@online.de>
1105
1106         PR libfortran/21594
1107         * intrinsics/eoshift0.c:  Add prototype for eoshift0.
1108         * intrinsics/eoshift2.c:  Add prototype for eoshift2.
1109
1110 2005-06-12  Steven G. Kargl <kargls@comcast.net>
1111             Thomas Koenig  <Thomas.Koenig@online.de>
1112
1113         PR libfortran/PR21797
1114         * m4/cexp.m4 (csqrt`'q):  Add type qualifyer to
1115         sqrt and fabs.
1116         * generated/exp_c4.c:  Regenerated.
1117
1118 2005-06-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1119
1120         PR libfortran/19155
1121         * io/read.c (read_f): Take care of spaces after initial sign.
1122
1123 2005-06-11  Thomas Koenig  <Thomas.Koenig@onlinde.de>
1124
1125         PR libfortran/21333
1126         * Makefile.am: Add in_pack_c4.c, in_pack_c8.c, in_unpack_c4.c
1127         and in_unpack_c8.c.
1128         * Makefile.in: Regenerate.
1129         * libgfortran.h:  Declare internal_pack_c4, internal_pack_c8,
1130         internal_unpack_c4 and internal_unpack_c8.
1131         * m4/in_pack.m4: Use rtype_ccode insteald of rtype_kind
1132         in function name.
1133         Use sizeof (rtype_name) as size for memory allocation.
1134         * m4/in_unpack.m4: Use rtype_ccode insteald of rtype_kind
1135         in function name.
1136         Use sizeof (rtype_name) for calculation of sizes for memcpy.
1137         * runtime/in_pack_generic.c:  For real, integer and logical
1138         call internal_pack_4 if size==4 and internal_pack_8 if
1139         size==8.
1140         For complex, call internal_pack_c4 if size==8 and
1141         internal_pack_c8 if size==16.
1142         * runtime/in_unpack_generic.c: For real, integer and logical
1143         call internal_unpack_4 if size==4 and internal_unpack_8 if
1144         size==8.
1145         For complex, call internal_unpack_c4 if size==8 and
1146         internal_unpack_c8 if size==16.
1147         * generated/in_pack_i4.c:  Regenerated.
1148         * generated/in_pack_i8.c:  Regenerated.
1149         * generated/in_unpack_i4.c:  Regenerated.
1150         * generated/in_unpack_i8.c:  Regenerated.
1151         * generated/in_pack_c4.c:  New file.
1152         * generated/in_pack_c8.c:  New file.
1153         * generated/in_unpack_c4.c:  New file.
1154         * generated/in_unpack_c8.c:  New file.
1155
1156 2005-06-09  Thomas Koenig  <Thomas.Koenig@online.de>
1157
1158         PR libfortran/21480
1159         * m4/reshape.m4:  Use sizeof (rtype_name) for sizes to be passed
1160         to reshape_packed.
1161         * generated/reshape_c4.c:  Regenerated.
1162         * generated/reshape_c8.c:  Regenerated.
1163         * generated/reshape_i4.c:  Regenerated.
1164         * generated/reshape_i8.c:  Regenerated.
1165
1166 2005-06-07  Thomas Koenig  <Thomas.Koenig@online.de>
1167
1168         PR libfortran/21926
1169         * m4/matmul.m4:  Correct zeroing of result for non-packed
1170         arrays with lowest stride is one.
1171         * generated/matmul_c4.c:  Regenerated.
1172         * generated/matmul_c8.c:  Regenerated.
1173         * generated/matmul_i4.c:  Regenerated.
1174         * generated/matmul_i8.c:  Regenerated.
1175         * generated/matmul_r4.c:  Regenerated.
1176         * generated/matmul_r8.c:  Regenerated.
1177
1178 2005-05-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1179
1180         PR libfortran/20179
1181         * io/unix.c (fd_close): Add test so that we don't close()
1182         stdout and stderr.
1183
1184 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1185
1186         PR libfortran/20006
1187         * io/format.c (parse_format_list): Set repeat count of $ format
1188         node to 1.
1189         * io/transfer.c (read_sf): Add g.seen_dollar to the test
1190         concerning advancing I/O.
1191         (data_transfer_init): Likewise.
1192         (finalize_transfer): Likewise.
1193
1194 2005-05-27  Thomas Koenig  <Thomas.Koenig@online.de>
1195
1196         * runtime/in_pack_generic.c:  Adjust copyright years.
1197         (in_pack_generic):  Change dimension of auxiliary arrays from
1198         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1199         * runtime/in_unpack_generic.c:  Adjust copyright years.
1200         (in_unpack_generic):  Change dimension of auxiliary arrays from
1201         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1202
1203 2005-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
1204
1205         PR libfortran/17283
1206         * intrinsics/unpack_generic.c:  Fix name of routine
1207         on top.  Update copyright years.
1208         (unpack1):  Remove const from return array descriptor.
1209         rs:  New variable, for calculating return sizes.
1210         Populate return array descriptor if ret->data is NULL.
1211
1212 2005-05-22  Peter Wainwright  <prw@ceiriog1.demon.co.uk>
1213
1214         PR libfortran/21376
1215         * io/write.c (output_float): Rework logic to avoid call to log10
1216         with argument equal to zero.
1217
1218 2005-05-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1219
1220         * configure.ac: Check for trunc and truncf in libm.
1221         * configure: Regenerate.
1222         * config.h.in: Likewise.
1223         * intrinsics/c99_functions.c (trunc, truncf): New functions.
1224         * c99_protos.h (trunc, truncf): Declare them.
1225
1226 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
1227
1228         PR libfortran/21127
1229         * Makefile.am:  Really commit.
1230         * Makefile.in:  Really commit.
1231
1232 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
1233
1234         PR libfortran/21127
1235         * Makefile.am:  Add generated/reshape_c4.c and
1236         generated/reshape_c8.c.
1237         * Makefile.in:  Regenerated.
1238         * m4/iparm.m4:  Define rtype_ccode to be c4 or c8 for
1239         complex types, 4 or 8 otherwise.
1240         * m4/reshape.m4:  Use rtype_ccode instead of rtype_kind
1241         in function name.
1242         * generated/reshape_c4.c: New file.
1243         * generated/reshape_c8.c: New file.
1244
1245 2005-05-16  Andreas Jaeger  <aj@suse.de>
1246
1247         * configure.ac: Add additional warning flags.
1248         * configure: Regenerate.
1249
1250         * io/write.c (calculate_G_format): Remove unused parameter.
1251         (output_float): Remove unused parameter.
1252         (write_float): Change callers.
1253         (nml_write_obj): Avoid signed warning.
1254         Make variable const to support -Wwrite-strings.
1255
1256         * io/unix.c (fd_alloc, mmap_open, mmap_sfree, mem_sfree,
1257         mem_truncate): Mark argument as unused.
1258
1259         * io/unit.c (get_unit): Mark argument as unused.
1260         (init_units): Avoid warning about signed comparision.
1261
1262         * io/transfer.c (next_record_r): Remove unused parameter.
1263         (next_record_w): Remove unused parameter.
1264         (next_record): Change callers.
1265         (iolength_transfer): Mark arguments as unused.
1266
1267         * io/open.c: Add initializer.
1268
1269         * io/list_read.c (read_character): Mark argument as unused.
1270         (nml_match_name): Add const to make compile with -Wwrite-strings.
1271
1272         * io/format.c: Add initializer.
1273
1274 2005-05-15  Andreas Jaeger  <aj@suse.de>
1275
1276         * m4/eoshift1.m4: Initialize variables to avoid warnings.
1277         * m4/eoshift3.m4: Initialize variables to avoid warnings.
1278         * generated/eoshift1_4.c, generated/eoshift1_8.c,
1279         generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerated.
1280
1281         * intrinsics/spread_generic.c (spread): Initialize variables to
1282         avoid warnings.
1283
1284         * intrinsics/eoshift0.c (eoshift0): Initialize variables to avoid
1285         warnings.
1286         * intrinsics/eoshift2.c (eoshift2): Initialize variables to avoid
1287         warnings.
1288
1289         * io/list_read.c (nml_get_obj_data): Initialize variables to avoid
1290         warnings.
1291
1292         * intrinsics/pack_generic.c (pack): Remove unneeded calculation.
1293
1294         * m4/matmull.m4 (matmul_): Remove unneeded calculations, fix
1295         pointer cast to avoid warning.
1296         * generated/matmul_l4.c: Regenerated.
1297         * generated/matmul_l8.c: Regenerated.
1298
1299         * Makefile.am: Remove AM_CFLAGS here.
1300         * configure.ac: Define AM_CFLAGS and AM_FCFLAGS so that warnings
1301         are set.  Set additionally -Wstrict-prototypes for CFLAGS.
1302         * Makefile.in: Regenerated.
1303         * aclocal.m4: Regenerated.
1304         * configure: Regenerated.
1305
1306         * intrinsics/system_clock.c (system_clock_4, system_clock_8): Add
1307         missing returns, reformat a bit.
1308
1309         * io/write.c (nml_write_obj): Use %d again - and cast to int,
1310         st_sprintf does not handle %ld.
1311
1312         * io/unit.c (is_internal_unit): Add void as parameter list.
1313
1314         * io/transfer.c: Move prototype declarations before the functions.
1315
1316         * runtime/normalize.c (almostone_r4, almostone_r8): Fix parameter
1317         list.
1318
1319         * intrinsics/random.c (KISS_DEFAULT_SEED): Remove extra semicolon.
1320
1321         * io/transfer.c: Do not use empty initializers for global objects.
1322         Add missing initializers.
1323
1324         * io/lock.c: Do not use empty initializers for global objects.
1325
1326         * io/close.c: Add missing initializers.
1327
1328         * runtime/environ.c: Add missing initializers. Do not use empty
1329         initializers for global object.
1330         (init_string): Mark argument as unused.
1331
1332         * runtime/main.c (cleanup): Fix parameter list.
1333
1334         * io/io.h: Fix parameter lists.
1335
1336         * m4/transpose.m4, m4/matmul.m4: Fix pointer cast to avoid
1337         warning.
1338
1339         * generated/transpose_c4.c, generated/transpose_c8.c,
1340         generated/transpose_i4.c, generated/transpose_i8.c,
1341         generated/matmul_c4.c, generated/matmul_c8.c,
1342         generated/matmul_i4.c, generated/matmul_i8.c,
1343         generated/matmul_r4.c, generated/matmul_r8.c: Regenerated.
1344
1345         * io/write.c (nml_write_obj): Fix 64-bit problem.
1346
1347         * io/list_read.c (nml_get_obj_data): Add missing braces around
1348         initializer to avoid warnings.
1349
1350         * intrinsics/etime.c (etime_sub): Remove unused variable.
1351
1352         * intrinsics/chdir.c, intrinsics/getlog.c, intrinsics/link.c,
1353         intrinsics/symlnk.c, intrinsics/perror.c: Include <string.h> for
1354         prototypes.
1355
1356         * runtime/string.c (compare0): Remove unused variable.
1357         * io/unit.c (init_units): Remove unused variables.
1358         * intrinsics/getcwd.c (getcwd_i4_sub): Remove unused variable.
1359         * intrinsics/unlink.c (unlink_i4_sub): Remove unused variable.
1360         * intrinsics/stat.c (stat_i4_sub, fstat_i8_sub, fstat_i4_sub,
1361         stat_i8_sub): Remove unused variable.
1362
1363 2005-05-12  Thomas Koenig  <Thomas.Koenig@online.de>
1364
1365         PR libfortran/21324
1366         * runtime/memory.c:  Don't define GFC_CLEAR_MEMORY (it's a
1367         performance hog).
1368         * io/open.c (new_unit): Zero freshly allocated memory for
1369         unit structure.
1370         * io/unit.c (init_units):  Zero freshly allocated memory for
1371         STDIN, STDOUT and STDERR.
1372         * io/unix.c (open_internal):  Zero freshly allocated memory
1373         for unix_stream.
1374         (fd_to_stream):  Likewise.
1375
1376 2005-05-11  Bud Davis  <bdavis@gfortran.org>
1377
1378         PR fortran/19478
1379         * io/unix.c (fd_truncate): update positions when ftruncate
1380         fails (like writing to /dev/null).
1381
1382 2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1383
1384         PR libfortran/21471
1385         * open.c (new_unit): Take care of the case where POSITION_APPEND
1386         is specified (sseek to the end, and set u>-endfile).
1387
1388 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1389
1390         PR fortran/20178
1391         * Makefile.am (gfor_specific_src): Add 'intrinsics/f2c_intrinsics.F90'
1392         to dependencies.
1393         * Makefile.in: Regenerate.
1394         * intrinsics/f2c_specific.F90: New file.
1395
1396 2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1397
1398         PR libfortran/20788
1399         * io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating
1400         we don't we to mmap this stream. Use fd_open instead of mmap_open
1401         in that case.
1402         (open_external): Call fd_to_stream with avoid_mmap = 0.
1403         (input_stream): Call fd_to_stream with avoid_mmap = 1.
1404         (output_stream): Likewise.
1405         (error_stream): Likewise.
1406
1407 2005-05-09  Mike Stump  <mrs@apple.com>
1408
1409         * configure: Regenerate.
1410
1411 2005-05-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1412
1413         PR libfortran/19155
1414         * io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
1415         non-blank characters of a real number.
1416
1417 2005-05-04  Thomas Koenig  <Thomas.Koenig@online.de>
1418
1419         PR libfortran/21354
1420         * m4/cshift1.m4: Change dimension of auxiliary arrays from
1421         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1422         * m4/eoshift1.m4: Likewise.
1423         * m4/eoshift3.m4: Likewise.
1424         * m4/ifunction.m4: Likewise.
1425         * m4/in_pack.m4: Likewise.
1426         * m4/in_unpack.m4: Likewise.
1427         * intrinsics/cshift0.c: Likewise.
1428         * intrinsics/eoshift0.c: Likewise.
1429         * intrinsics/eoshift2.c: Likewise.
1430         * intrinsics/random.c: Likewise.
1431         * intrinsics/spread_generic.c: Likewise.
1432         * intrinsics/stat.c: Likewise.
1433         * generated/all_l4.c: Regenerated.
1434         * generated/all_l8.c: Regenerated.
1435         * generated/any_l4.c: Regenerated.
1436         * generated/any_l8.c: Regenerated.
1437         * generated/count_4_l4.c: Regenerated.
1438         * generated/count_4_l8.c: Regenerated.
1439         * generated/count_8_l4.c: Regenerated.
1440         * generated/count_8_l8.c: Regenerated.
1441         * generated/cshift1_4.c: Regenerated.
1442         * generated/cshift1_8.c: Regenerated.
1443         * generated/eoshift1_4.c: Regenerated.
1444         * generated/eoshift1_8.c: Regenerated.
1445         * generated/eoshift3_4.c: Regenerated.
1446         * generated/eoshift3_8.c: Regenerated.
1447         * generated/in_pack_i4.c: Regenerated.
1448         * generated/in_pack_i8.c: Regenerated.
1449         * generated/in_unpack_i4.c: Regenerated.
1450         * generated/in_unpack_i8.c: Regenerated.
1451         * generated/maxloc0_4_i4.c: Regenerated.
1452         * generated/maxloc0_4_i8.c: Regenerated.
1453         * generated/maxloc0_4_r4.c: Regenerated.
1454         * generated/maxloc0_4_r8.c: Regenerated.
1455         * generated/maxloc0_8_i4.c: Regenerated.
1456         * generated/maxloc0_8_i8.c: Regenerated.
1457         * generated/maxloc0_8_r4.c: Regenerated.
1458         * generated/maxloc0_8_r8.c: Regenerated.
1459         * generated/maxloc1_4_i4.c: Regenerated.
1460         * generated/maxloc1_4_i8.c: Regenerated.
1461         * generated/maxloc1_4_r4.c: Regenerated.
1462         * generated/maxloc1_4_r8.c: Regenerated.
1463         * generated/maxloc1_8_i4.c: Regenerated.
1464         * generated/maxloc1_8_i8.c: Regenerated.
1465         * generated/maxloc1_8_r4.c: Regenerated.
1466         * generated/maxloc1_8_r8.c: Regenerated.
1467         * generated/maxval_i4.c: Regenerated.
1468         * generated/maxval_i8.c: Regenerated.
1469         * generated/maxval_r4.c: Regenerated.
1470         * generated/maxval_r8.c: Regenerated.
1471         * generated/minloc0_4_i4.c: Regenerated.
1472         * generated/minloc0_4_i8.c: Regenerated.
1473         * generated/minloc0_4_r4.c: Regenerated.
1474         * generated/minloc0_4_r8.c: Regenerated.
1475         * generated/minloc0_8_i4.c: Regenerated.
1476         * generated/minloc0_8_i8.c: Regenerated.
1477         * generated/minloc0_8_r4.c: Regenerated.
1478         * generated/minloc0_8_r8.c: Regenerated.
1479         * generated/minloc1_4_i4.c: Regenerated.
1480         * generated/minloc1_4_i8.c: Regenerated.
1481         * generated/minloc1_4_r4.c: Regenerated.
1482         * generated/minloc1_4_r8.c: Regenerated.
1483         * generated/minloc1_8_i4.c: Regenerated.
1484         * generated/minloc1_8_i8.c: Regenerated.
1485         * generated/minloc1_8_r4.c: Regenerated.
1486         * generated/minloc1_8_r8.c: Regenerated.
1487         * generated/minval_i4.c: Regenerated.
1488         * generated/minval_i8.c: Regenerated.
1489         * generated/minval_r4.c: Regenerated.
1490         * generated/minval_r8.c: Regenerated.
1491         * generated/product_c4.c: Regenerated.
1492         * generated/product_c8.c: Regenerated.
1493         * generated/product_i4.c: Regenerated.
1494         * generated/product_i8.c: Regenerated.
1495         * generated/product_r4.c: Regenerated.
1496         * generated/product_r8.c: Regenerated.
1497         * generated/sum_c4.c: Regenerated.
1498         * generated/sum_c8.c: Regenerated.
1499         * generated/sum_i4.c: Regenerated.
1500         * generated/sum_i8.c: Regenerated.
1501         * generated/sum_r4.c: Regenerated.
1502         * generated/sum_r8.c: Regenerated.
1503
1504 2005-04-30  Thomas Koenig  <Thomas.Koenig@online.de>
1505
1506         PR libfortran/18958
1507         libgfortran.h:  Change typedef of index_type from size_t
1508         to ssize_t.
1509
1510 2005-04-30  Paul Thomas  <pault@gcc.gnu.org>
1511
1512         PR libfortran/18857
1513         * generated/matmul_r8.c: Remove incorrect assertions.
1514         * generated/matmul_c4.c: Regenerate
1515         * generated/matmul_c8.c: Regenerate
1516         * generated/matmul_i4.c: Regenerate
1517         * generated/matmul_i8.c: Regenerate
1518         * generated/matmul_r4.c: Regenerate
1519         * generated/matmul_r8.c: Regenerate
1520
1521 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1522
1523         * configure.ac: Check for ftruncate and chsize.
1524         * io/unix.c (fd_truncate): Provide chsize as alternative to
1525         ftruncate.
1526         * config.h.in: Regenerate.
1527         * configure: Regenerate.
1528
1529 2004-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1530
1531         * intrinsics/rename.c: Add missing #includes.
1532
1533 2004-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1534
1535         * AUTHORS, COPYING, INSTALL, NEWS, README: Remove.
1536
1537 2005-04-26  David Edelsohn  <edelsohn@gnu.org>
1538
1539         PR libfortran/20930
1540         * io/rewind.c (st_rewind): Flush the stream when resetting the mode
1541         from WRITING to READING.
1542
1543 2005-04-22  Paul Thomas  <pault@gcc.gnu.org>
1544             Jerry DeLisle  <jvdelisle@verizon.net>
1545
1546         * io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
1547         * io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
1548         call for ext_name.  These fix the bug reported by Jerry DeLisle to
1549         the fortran list and are based on his suggested fix.
1550
1551 2005-04-22  Thomas Koenig  <Thomas.Koenig@online.de>
1552
1553         PR libfortran/20074
1554         PR libfortran/20436
1555         PR libfortran/21108
1556         * m4/reshape.m4 (reshape_`'rtype_kind):  rs, rex:  New
1557         variables, to be used in calculation of return array sizes.
1558         Populate return array descriptor if ret->data is NULL.
1559         Fix condition for early return (it used to test something
1560         undefined if order was used).
1561         Remove duplicate check wether pad is used.
1562         * intrinsics/reshape_generic.c (reshape_generic): Likewise.
1563         Fix a few places where the wrong variables were set.
1564         * generated/reshape_i4.c: Regenerated.
1565         * generated/reshape_i8.c: Regenerated.
1566
1567 2005-04-18  Paul  Thomas <pault@gcc.gnu.org>
1568
1569         * io/list_read.c (nml_touch_nodes, nml_read_obj,
1570         nml_get_obj_data): Fix memory leaks in code for derived types.
1571
1572 2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1573
1574         PR libfortran/20950
1575         * io/inquire.c (inquire_via_unit): Check for the gfc_unit being
1576         NULL when setting ioparm.sequential.
1577
1578 2005-04-17  Thomas Koenig  <Thomas.Koenig@online.de>
1579
1580         PR libfortran/21075
1581         * m4/reshape.m4 (reshape_`'rtype_kind):  Change dimension
1582         of auxiliary arrays from GFC_MAX_DIMENSIONS - 1 to
1583         GFC_MAX_DIMENSIONS.
1584         * intrinsics/reshape_generic.c (reshape_generic):  Likewise.
1585         * generated/reshape_i4.c:  Regenerated.
1586         * generated/reshape_i8.c:  Regenerated.
1587
1588 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
1589
1590         * io/list_read.c (eat_separator): at_eol = 1 replaced
1591         (zapped at some time?).
1592
1593 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
1594
1595         PR libgfortran/12884
1596         PR libgfortran/17285
1597         PR libgfortran/18122
1598         PR libgfortran/18210
1599         PR libgfortran/18392
1600         PR libgfortran/18591
1601         PR libgfortran/18879
1602         * io/io.h (nml_ls): Declare.
1603         (namelist_info): Modify for arrays.
1604         * io/list_read.c (namelist_read): Reduced to call to new functions.
1605         (match_namelist_name): Simplified.
1606         (nml_query): Handles stdin queries ? and =?. New function.
1607         (nml_get_obj_data): Parses object name. New function.
1608         (touch_nml_nodes): Marks objects for read. New function.
1609         (untouch_nml_nodes): Resets objects. New function.
1610         (parse_qualifier): Parses and checks qualifiers. New function
1611         (nml_read_object): Reads and stores object data. New function.
1612         (eat_separator): No new_record on '/' in namelist.
1613         (finish_separator): No new_record on '/' in namelist.
1614         (read_logical): Error return for namelist.
1615         (read_integer): Error return for namelist.
1616         (read_complex): Error return for namelist.
1617         (read_real): Error return for namelist.
1618         * io/lock.c (library_end): Free extended namelist_info types.
1619         * io/transfer.c (st_set_nml_var): Modified for arrays.
1620         (st_set_nml_var_dim): Dimension descriptors. New function.
1621         * io/write.c (namelist_write): Reduced to call to new functions.
1622         (nml_write_obj): Writes output for object. New function.
1623         (write_integer): Suppress leading blanks for repeat counts.
1624         (write_int): Suppress leading blanks for repeat counts.
1625         (write_float): Suppress leading blanks for repeat counts.
1626         (output_float): Suppress leading blanks for repeat counts.
1627
1628 2005-04-15  Thomas Koenig  <Thomas.Koenig@online.de>
1629
1630         PR libfortran/18495
1631         * intrinsics/spread_generic.c (spread):  Remove const from
1632         return array descriptor.
1633         New variables: rrank (rank of return array),  rs (for
1634         calculating the size of the return array), srank (rank
1635         of the source array).
1636         Generate runtime error if the dim= argument is larger than
1637         the rank of the return array.
1638         Generate runtime error if the needed rank of the return
1639         array is larger than 7.
1640         If ret->data is null, populate the return array descriptor
1641         and initialize the variables for the actual operation.
1642         Otherwise, set ret->dim[0].stride to one if it is zero.
1643         Change second, independent use of variable dim to srank.
1644
1645 2005-04-12  Mike Stump  <mrs@apple.com>
1646
1647         * configure: Regenerate.
1648
1649 2005-04-13  Thomas Koenig  <Thomas.Koenig@online.de>
1650
1651         PR libfortran/19106
1652         * m4/iforeach.c (name`'rtype_qual`_'atype_code):  Add TODO
1653         that setting correct strides is a front end job.
1654         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
1655         a lowest stride of 0, adjust to 1.
1656         * m4/ifunction.c (name`'rtype_qual`_'atype_code):  Add TODO
1657         that setting correct strides is a front end job.
1658         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
1659         a lowest stride of 0, adjust to 1.
1660         * maxloc0_4_i4.c: Regenerated
1661         * maxloc0_4_i8.c: Regenerated
1662         * maxloc0_4_r4.c: Regenerated
1663         * maxloc0_4_r8.c: Regenerated
1664         * maxloc0_8_i4.c: Regenerated
1665         * maxloc0_8_i8.c: Regenerated
1666         * maxloc0_8_r4.c: Regenerated
1667         * maxloc0_8_r8.c: Regenerated
1668         * maxloc1_4_i4.c: Regenerated
1669         * maxloc1_4_i8.c: Regenerated
1670         * maxloc1_4_r4.c: Regenerated
1671         * maxloc1_4_r8.c: Regenerated
1672         * maxloc1_8_i4.c: Regenerated
1673         * maxloc1_8_i8.c: Regenerated
1674         * maxloc1_8_r4.c: Regenerated
1675         * maxloc1_8_r8.c: Regenerated
1676         * maxval_i4.c: Regenerated
1677         * maxval_i8.c: Regenerated
1678         * maxval_r4.c: Regenerated
1679         * maxval_r8.c: Regenerated
1680         * minloc0_4_i4.c: Regenerated
1681         * minloc0_4_i8.c: Regenerated
1682         * minloc0_4_r4.c: Regenerated
1683         * minloc0_4_r8.c: Regenerated
1684         * minloc0_8_i4.c: Regenerated
1685         * minloc0_8_i8.c: Regenerated
1686         * minloc0_8_r4.c: Regenerated
1687         * minloc0_8_r8.c: Regenerated
1688         * minloc1_4_i4.c: Regenerated
1689         * minloc1_4_i8.c: Regenerated
1690         * minloc1_4_r4.c: Regenerated
1691         * minloc1_4_r8.c: Regenerated
1692         * minloc1_8_i4.c: Regenerated
1693         * minloc1_8_i8.c: Regenerated
1694         * minloc1_8_r4.c: Regenerated
1695         * minloc1_8_r8.c: Regenerated
1696         * minval_i4.c: Regenerated
1697         * minval_i8.c: Regenerated
1698         * minval_r4.c: Regenerated
1699         * minval_r8.c: Regenerated
1700         * product_c4.c: Regenerated
1701         * product_c8.c: Regenerated
1702         * product_i4.c: Regenerated
1703         * product_i8.c: Regenerated
1704         * product_r4.c: Regenerated
1705         * product_r8.c: Regenerated
1706         * sum_c4.c: Regenerated
1707         * sum_c8.c: Regenerated
1708         * sum_i4.c: Regenerated
1709         * sum_i8.c: Regenerated
1710         * sum_r4.c: Regenerated
1711         * sum_r8.c: Regenerated
1712
1713 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1714
1715         PR libfortran/20788
1716         * runtime/environ.c (init_unsigned_integer): Function for
1717         environment variables we want to be positive.
1718         (init_integer): Function to allow negative environment
1719         variables (e.g. for GFORTRAN_STDIN_UNIT).
1720
1721 2005-04-10  Thomas Koenig <Thomas.Koenig@online.de>
1722
1723         PR libfortran/17992
1724         PR libfortran/19568
1725         PR libfortran/19595
1726         PR libfortran/20005
1727         PR libfortran/20092
1728         PR libfortran/20131
1729         PR libfortran/20661
1730         PR libfortran/20744
1731         * io/transfer.c (top level): eor_condition: New static variable.
1732         (read_sf): Remove unnecessary zeroing of buffer (there is enough
1733         information in its length).
1734         Return a string of length 0 (to be padded by caller) if EOR was
1735         seen previously.
1736         Remove erroneous special casing of EOR for standard input.
1737         Set eor_condition for non-advancing I/O if an end of line was
1738         detected.
1739         Increment ioparm.size if necessary.
1740         (formatted_transfer):  Skip the function if there is an EOR condition.
1741         (data_transfer_init):  Initialize eor_condition to zero (false).
1742         (next_record_r):  Clear sf_seen_eor if a \n has been seen already.
1743         (finalize_transfer):  If there is an EOR condition, raise the error.
1744
1745 2005-04-09  Bud Davis  <bdavis@gfortran.org>
1746             Steven G. Kargl <kargls@comcast.net>
1747
1748         PR fortran/19872
1749         * io/transfer.c (data_transfer_init): truncate an existing
1750         file on the first write.
1751
1752 2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
1753
1754         PR libfortran/19106
1755         PR libfortran/19014
1756         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
1757         If retarray->data is NULL (i.e. the front end does not
1758         know the rank and dimenson of the array), fill in its
1759         properties and allocate memory.
1760         Change the assertions about rank and dimension of retarray into
1761         runtime errors and only check them for retarray->data != NULL.
1762         Do the same for correcting the stride from 0 to 1 in retarray.
1763         (`m'name`'rtype_qual`_'atype_code): Likewise.
1764         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
1765         Change assertion about rank of array to runtime error.
1766         (`m'name`'rtype_qual`_'atype_code): Likewise.
1767         * generated/all_l4.c: Regenerated.
1768         * generated/all_l8.c: Regenerated.
1769         * generated/any_l4.c: Regenerated.
1770         * generated/any_l8.c: Regenerated.
1771         * generated/count_4_l4.c: Regenerated.
1772         * generated/count_4_l8.c: Regenerated.
1773         * generated/count_8_l4.c: Regenerated.
1774         * generated/count_8_l8.c: Regenerated.
1775         * generated/maxloc0_4_i4.c: Regenerated.
1776         * generated/maxloc0_4_i8.c: Regenerated.
1777         * generated/maxloc0_4_r4.c: Regenerated.
1778         * generated/maxloc0_4_r8.c: Regenerated.
1779         * generated/maxloc0_8_i4.c: Regenerated.
1780         * generated/maxloc0_8_i8.c: Regenerated.
1781         * generated/maxloc0_8_r4.c: Regenerated.
1782         * generated/maxloc0_8_r8.c: Regenerated.
1783         * generated/maxloc1_4_i4.c: Regenerated.
1784         * generated/maxloc1_4_i8.c: Regenerated.
1785         * generated/maxloc1_4_r4.c: Regenerated.
1786         * generated/maxloc1_4_r8.c: Regenerated.
1787         * generated/maxloc1_8_i4.c: Regenerated.
1788         * generated/maxloc1_8_i8.c: Regenerated.
1789         * generated/maxloc1_8_r4.c: Regenerated.
1790         * generated/maxloc1_8_r8.c: Regenerated.
1791         * generated/maxval_i4.c: Regenerated.
1792         * generated/maxval_i8.c: Regenerated.
1793         * generated/maxval_r4.c: Regenerated.
1794         * generated/maxval_r8.c: Regenerated.
1795         * generated/minloc0_4_i4.c: Regenerated.
1796         * generated/minloc0_4_i8.c: Regenerated.
1797         * generated/minloc0_4_r4.c: Regenerated.
1798         * generated/minloc0_4_r8.c: Regenerated.
1799         * generated/minloc0_8_i4.c: Regenerated.
1800         * generated/minloc0_8_i8.c: Regenerated.
1801         * generated/minloc0_8_r4.c: Regenerated.
1802         * generated/minloc0_8_r8.c: Regenerated.
1803         * generated/minloc1_4_i4.c: Regenerated.
1804         * generated/minloc1_4_i8.c: Regenerated.
1805         * generated/minloc1_4_r4.c: Regenerated.
1806         * generated/minloc1_4_r8.c: Regenerated.
1807         * generated/minloc1_8_i4.c: Regenerated.
1808         * generated/minloc1_8_i8.c: Regenerated.
1809         * generated/minloc1_8_r4.c: Regenerated.
1810         * generated/minloc1_8_r8.c: Regenerated.
1811         * generated/minval_i4.c: Regenerated.
1812         * generated/minval_i8.c: Regenerated.
1813         * generated/minval_r4.c: Regenerated.
1814         * generated/minval_r8.c: Regenerated.
1815         * generated/product_c4.c: Regenerated.
1816         * generated/product_c8.c: Regenerated.
1817         * generated/product_i4.c: Regenerated.
1818         * generated/product_i8.c: Regenerated.
1819         * generated/product_r4.c: Regenerated.
1820         * generated/product_r8.c: Regenerated.
1821         * generated/sum_c4.c: Regenerated.
1822         * generated/sum_c8.c: Regenerated.
1823         * generated/sum_i4.c: Regenerated.
1824         * generated/sum_i8.c: Regenerated.
1825         * generated/sum_r4.c: Regenerated.
1826         * generated/sum_r8.c: Regenerated.
1827
1828 2005-04-09  Thomas Koenig <Thomas.Koenig@online.de>
1829
1830         PR libfortran/20163
1831         * runtime/string.c (compare0): Use fstrlen() to
1832         strip trailing blanks from option string.
1833
1834 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1835
1836         PR fortran/13257
1837         * format.c (parse_format_list): Allow an optional comma
1838         between descriptors.
1839
1840 2005-04-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1841
1842         * io/backspace.c (unformatted_backspace): Do not dereference
1843         the pointer to the stream.
1844
1845 2005-04-07  Andrew Pinski  <pinskia@physics.uc.edu>
1846
1847         PR libfortran/20766
1848         * configure.ac (extra_ldflags_libgfortran): Set for *-darwin* to
1849         "-Wl,-single_module".
1850         * configure: Regenerate.
1851         * Makefile.am (libgfortran_la_LDFLAGS): Add extra_ldflags_libgfortran.
1852         * Makefile.in: Regenerate.
1853
1854 2005-04-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1855
1856         PR libfortran/20755
1857         * write.c (write_float): A G edit descriptor may locally change
1858         the scale factor, but it needs to be restored afterwards.
1859
1860 2005-04-03  Dale Ranta  <dir@lanl.gov>
1861             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1862
1863         PR libfortran/20068
1864         PR libfortran/20125
1865         PR libfortran/20156
1866         PR libfortran/20471
1867         * io/backspace.c (unformatted_backspace): Fix error in arithmetic.
1868         (st_backspace): When in WRITING mode, we flush and falling back
1869         into READING mode. In all cases, correctly position the stream.
1870
1871 2005-03-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1872
1873         PR libfortran/20660
1874         * io/inquire.c (inquire_via_unit): Non-opened units should still be
1875         reported by an INQUIRE statement as existing.
1876         * io/transfer.c (data_transfer_init): Never accept negative units.
1877
1878 2005-03-29  Dale Ranta  <dir@lanl.gov>
1879             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1880
1881         PR libfortran/20163
1882         * io/open.c (st_open): call library_end() before returning even if
1883         an error arises.
1884
1885 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1886
1887         PR libfortran/19678
1888         * list_read.c (next_char, eat_separator, finish_separator, read_real)
1889         (namelist_read): Add support for '\r' as well as '\n' as EOL
1890         character.
1891
1892         PR libfortran/19679
1893         * list_read.c (read_sf): Add a '\r' in a test to support DOS
1894         line-endings when line length is exceeded.
1895
1896 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1897
1898         PR libfortran/15332
1899         * io/format.c (parse_format_list): format node for colon edit
1900         descriptor needs a repeat counter set to 1.
1901
1902 2005-02-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1903
1904         * config.h.in: Regenerate.
1905
1906 2005-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1907
1908         PR libfortran/18025
1909         * write.c (output_float): Handling the "F0.d" format similarly as
1910         commercial compilers.
1911
1912 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1913
1914         * Makefile.am: Added new files.
1915         * Makefile.in: Regenerate.
1916         * aclocal.m4: Regenerate.
1917         * configure.ac: add checks for signal.h headers file, as well as
1918         following functions: chdir, strerror, getlogin, gethostname, kill,
1919         link, symlink, perror, sleep, time.
1920         * configure: Regenerate.
1921         * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
1922         intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
1923         intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
1924         intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
1925         implementend g77 intrinsics.
1926
1927 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
1928
1929         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1930         In all substitutions, leave gcc_version to be expanded by the Makefile.
1931         * aclocal.m4, configure: Regenerate.
1932         * Makefile.am: Set gcc_version.
1933         * Makefile.in: Regenerate.
1934
1935 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1936
1937         PR libfortran/20257
1938         * open.c (new_unit): set record length to max_offset rather than
1939           using a hard-coded limit (which was too low).
1940
1941 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1942
1943         PR libfortran/20480
1944         * write.c (output_float): special check when writing 0.0 with
1945           EN and ES formats.
1946
1947 2005-03-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1948
1949         PR libfortran/20124
1950         * write.c (output_float): Adds a nzero_real variable to store
1951         the number of leading zeros whatever the format width is. Corrects
1952         the rounding of numbers less than 10^(-width). Fixes typo in an
1953         error message. Updates copyright years
1954
1955 2005-02-27  Toon Moene  <toon@moene.indiv.nluug.nl>
1956
1957         * runtime/environ.c: Update copyright years.
1958
1959 2005-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1960
1961         * io/write.c: Update copyright years.
1962
1963 2005-02-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1964
1965         PR libfortran/20101
1966         * io/write.c (output_float): Added special check for value 0.0 in
1967         PE format.
1968
1969 2004-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1970
1971         * io/write.c (output_float): Fix typo in condition.
1972
1973 2005-02-25  Peter O'Gorman  <peter@pogma.com>
1974             Toon Moene  <toon@moene.indiv.nluug.nl>
1975
1976         PR libgfortran/17748
1977         * runtime/environ.c: Remove references to environ.
1978         (show_variables): remove GFORTRAN_UNBUFFERED_* and
1979         GFORTRAN_NAME_* because they require environ.
1980         (pattern_scan): Remove function.
1981
1982 2004-02-22  Paul Thomas <paulthomas2@wannado.fr>
1983             Bud Davis  <bdavis@gfortran.org>
1984
1985         * io/list_read.c (read_real): Handle separators properly
1986         in list directed read.
1987
1988 2004-02-21  Bud Davis  <bdavis@gfortran.org>
1989
1990         PR fortran/20086
1991         * io/transfer.c (write_constant_string): accept an 'h' as
1992         the start of a hollerith format string.
1993
1994 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1995
1996         PR libfortran/19302
1997         * intrinsics/c99_functions.c (nextafterf): Special-case infinite
1998         numbers.
1999
2000 2005-02-21  Steven G. Kargl  <kargls@comcast.net>
2001
2002         * io/write.c (output_float):  Typo in error meesage.
2003
2004 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
2005
2006         PR 20085
2007         * intrinsic/args.c (iargc): Off by 1.
2008
2009 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
2010
2011         *  intrinsic/date_and_time.c: Fix conformance problems.
2012
2013 2005-02-01  Paul Thomas <paulthomas2@wanadoo.fr>
2014
2015         PR libgfortran/19363
2016         PR libgfortran/19691
2017         * libgfortran.h (isfinite): Work around broken isfinite(x) in Cygwin.
2018
2019 2005-01-30  Bud Davis  <bdavis@gfortran.org>
2020
2021         PR fortran/19647
2022         * io/inquire.c (inquire_via_unit): Use correct variable for
2023         pad.
2024
2025 2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
2026
2027         PR libfortran/19595
2028         * io/transfer.c (data_transfer_init): eor requires advance="NO".
2029
2030 2005-01-25  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2031
2032         PR libfortran/19524
2033         * io/read.c (read_f): Don't free uninitialized pointer.
2034
2035 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
2036         Paul Brook  <paul@codesourcery.com>
2037
2038         PR fortran/19294
2039         * Makefile.am: Add transpose_c4.c and transpose_c8.c.
2040         * intrinsics/cshift0.c: Use separate optimized loops for complex types.
2041         * m4/transpose.m4: Include type letter in function name.
2042         * Makefile.in: Regenerate.
2043         * generated/transpose_*.c: Regenerate.
2044
2045 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
2046
2047         PR libfortran/19451
2048         * io/transfer.c (finalize_transfer):  Don't do anything if
2049         there is an error condition.
2050
2051 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
2052
2053         PR libgfortran/19052
2054         * libgfortran.h (options_t): Add stderr_unit.
2055         * io/io.h (error_stream): Declare.
2056         * io/open.c (new_unit): Do not terminate abnormally if opening
2057         file preconnected to stdin, stdout, or stderr.
2058         * io/unit.c (init_units): Initialize stderr_unit.
2059         * io/unix.c (error_stream): New function.
2060         * runtime/environ.c (GFORTRAN_STDERR_UNIT): New environment variable.
2061
2062 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
2063
2064         PR libfortran/18982
2065         * io/unix.c (regular_file):  No need to change flags->action
2066         if an error occurs.  Document this.
2067         No need to call stat() for STATUS_OLD, open() will
2068         fail anyway.
2069         For ACTION_UNSPECIFIED, try open for read-write, then for
2070         read-only if open fails with EACCES, then for write-only
2071         if that fails with EACCES again.
2072         * io/unix.c (open_external): Document changed behavior of
2073         regular_file.
2074
2075 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2076
2077         PR fortran/19194
2078         * io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
2079         use CHARACTER macro for definition of string valued paramters.
2080
2081 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
2082
2083         PR fortran/19314
2084         * io/inquire.c(inquire_via_unit): implement POSITION=.
2085         * io/transfer.c(next_record): update position for
2086         INQUIRE.
2087         * io/rewind.c(st_rewind): update position for
2088         INQUIRE.
2089
2090 2005-01-16  Bud Davis  <bdavis9659@comcast.net>
2091
2092         PR fortran/18778
2093         * io/transfer.c (us_read): no bytes available is not a
2094         runtime error.
2095
2096 2005-01-15  Bud Davis  <bdavis9659@comcast.net>
2097
2098         PR fortran/18983
2099         * io/transfer.c (st_write_done): only truncate when it
2100         is required.
2101
2102 2005-01-12  Toon Moene  <toon@moene.indiv.nluug.nl>
2103
2104         PR libfortran/19280
2105         c99_protos.h: License changed to GPL+exception.
2106         libgfortran.h: Ditto.
2107         intrinsics/abort.c: Ditto.
2108         intrinsics/args.c: Ditto.
2109         intrinsics/associated.c: Ditto.
2110         intrinsics/bessel.c: Ditto.
2111         intrinsics/c99_functions.c: Ditto.
2112         intrinsics/cpu_time.c: Ditto.
2113         intrinsics/cshift0.c: Ditto.
2114         intrinsics/date_and_time.c: Ditto.
2115         intrinsics/env.c: Ditto.
2116         intrinsics/eoshift0.c: Ditto.
2117         intrinsics/eoshift2.c: Ditto.
2118         intrinsics/erf.c: Ditto.
2119         intrinsics/etime.c: Ditto.
2120         intrinsics/exit.c: Ditto.
2121         intrinsics/flush.c: Ditto.
2122         intrinsics/fnum.c: Ditto.
2123         intrinsics/getXid.c: Ditto.
2124         intrinsics/getcwd.c: Ditto.
2125         intrinsics/ishftc.c: Ditto.
2126         intrinsics/mvbits.c: Ditto.
2127         intrinsics/pack_generic.c: Ditto.
2128         intrinsics/rand.c: Ditto.
2129         intrinsics/random.c: Ditto.
2130         intrinsics/reshape_generic.c: Ditto.
2131         intrinsics/reshape_packed.c: Ditto.
2132         intrinsics/size.c: Ditto.
2133         intrinsics/spread_generic.c: Ditto.
2134         intrinsics/stat.c: Ditto.
2135         intrinsics/string_intrinsics.c: Ditto.
2136         intrinsics/system.c: Ditto.
2137         intrinsics/system_clock.c: Ditto.
2138         intrinsics/transpose_generic.c: Ditto.
2139         intrinsics/umask.c: Ditto.
2140         intrinsics/unlink.c: Ditto.
2141         intrinsics/unpack_generic.c: Ditto.
2142         io/backspace.c: Ditto.
2143         io/close.c: Ditto.
2144         io/endfile.c: Ditto.
2145         io/format.c: Ditto.
2146         io/inquire.c: Ditto.
2147         io/io.h: Ditto.
2148         io/list_read.c: Ditto.
2149         io/lock.c: Ditto.
2150         io/open.c: Ditto.
2151         io/read.c: Ditto.
2152         io/rewind.c: Ditto.
2153         io/transfer.c: Ditto.
2154         io/unit.c: Ditto.
2155         io/unix.c: Ditto.
2156         io/write.c: Ditto.
2157         m4/all.m4: Ditto.
2158         m4/any.m4: Ditto.
2159         m4/cexp.m4: Ditto.
2160         m4/chyp.m4: Ditto.
2161         m4/count.m4: Ditto.
2162         m4/cshift1.m4: Ditto.
2163         m4/ctrig.m4: Ditto.
2164         m4/dotprod.m4: Ditto.
2165         m4/dotprodc.m4: Ditto.
2166         m4/dotprodl.m4: Ditto.
2167         m4/eoshift1.m4: Ditto.
2168         m4/eoshift3.m4: Ditto.
2169         m4/exponent.m4: Ditto.
2170         m4/fraction.m4: Ditto.
2171         m4/head.m4: Ditto.
2172         m4/iforeach.m4: Ditto.
2173         m4/ifunction.m4: Ditto.
2174         m4/in_pack.m4: Ditto.
2175         m4/in_unpack.m4: Ditto.
2176         m4/iparm.m4: Ditto.
2177         m4/matmul.m4: Ditto.
2178         m4/matmull.m4: Ditto.
2179         m4/maxloc0.m4: Ditto.
2180         m4/maxloc1.m4: Ditto.
2181         m4/maxval.m4: Ditto.
2182         m4/minloc0.m4: Ditto.
2183         m4/minloc1.m4: Ditto.
2184         m4/minval.m4: Ditto.
2185         m4/mtype.m4: Ditto.
2186         m4/nearest.m4: Ditto.
2187         m4/pow.m4: Ditto.
2188         m4/product.m4: Ditto.
2189         m4/reshape.m4: Ditto.
2190         m4/set_exponent.m4: Ditto.
2191         m4/shape.m4: Ditto.
2192         m4/specific.m4: Ditto.
2193         m4/specific2.m4: Ditto.
2194         m4/sum.m4: Ditto.
2195         m4/transpose.m4: Ditto.
2196         m4/types.m4: Ditto.
2197         runtime/environ.c: Ditto.
2198         runtime/error.c: Ditto.
2199         runtime/in_pack_generic.c: Ditto.
2200         runtime/in_unpack_generic.c: Ditto.
2201         runtime/main.c: Ditto.
2202         runtime/memory.c: Ditto.
2203         runtime/normalize.c: Ditto.
2204         runtime/pause.c: Ditto.
2205         runtime/select.c: Ditto.
2206         runtime/stop.c: Ditto.
2207         runtime/string.c: Ditto.
2208         generated/_abs_c4.f90: Regenerated.
2209         generated/_abs_c8.f90: Regenerated.
2210         generated/_abs_i4.f90: Regenerated.
2211         generated/_abs_i8.f90: Regenerated.
2212         generated/_abs_r4.f90: Regenerated.
2213         generated/_abs_r8.f90: Regenerated.
2214         generated/_acos_r4.f90: Regenerated.
2215         generated/_acos_r8.f90: Regenerated.
2216         generated/_aint_r4.f90: Regenerated.
2217         generated/_aint_r8.f90: Regenerated.
2218         generated/_anint_r4.f90: Regenerated.
2219         generated/_anint_r8.f90: Regenerated.
2220         generated/_asin_r4.f90: Regenerated.
2221         generated/_asin_r8.f90: Regenerated.
2222         generated/_atan2_r4.f90: Regenerated.
2223         generated/_atan2_r8.f90: Regenerated.
2224         generated/_atan_r4.f90: Regenerated.
2225         generated/_atan_r8.f90: Regenerated.
2226         generated/_conjg_c4.f90: Regenerated.
2227         generated/_conjg_c8.f90: Regenerated.
2228         generated/_cos_c4.f90: Regenerated.
2229         generated/_cos_c8.f90: Regenerated.
2230         generated/_cos_r4.f90: Regenerated.
2231         generated/_cos_r8.f90: Regenerated.
2232         generated/_cosh_r4.f90: Regenerated.
2233         generated/_cosh_r8.f90: Regenerated.
2234         generated/_dim_i4.f90: Regenerated.
2235         generated/_dim_i8.f90: Regenerated.
2236         generated/_dim_r4.f90: Regenerated.
2237         generated/_dim_r8.f90: Regenerated.
2238         generated/_exp_c4.f90: Regenerated.
2239         generated/_exp_c8.f90: Regenerated.
2240         generated/_exp_r4.f90: Regenerated.
2241         generated/_exp_r8.f90: Regenerated.
2242         generated/_log10_r4.f90: Regenerated.
2243         generated/_log10_r8.f90: Regenerated.
2244         generated/_log_c4.f90: Regenerated.
2245         generated/_log_c8.f90: Regenerated.
2246         generated/_log_r4.f90: Regenerated.
2247         generated/_log_r8.f90: Regenerated.
2248         generated/_mod_i4.f90: Regenerated.
2249         generated/_mod_i8.f90: Regenerated.
2250         generated/_mod_r4.f90: Regenerated.
2251         generated/_mod_r8.f90: Regenerated.
2252         generated/_sign_i4.f90: Regenerated.
2253         generated/_sign_i8.f90: Regenerated.
2254         generated/_sign_r4.f90: Regenerated.
2255         generated/_sign_r8.f90: Regenerated.
2256         generated/_sin_c4.f90: Regenerated.
2257         generated/_sin_c8.f90: Regenerated.
2258         generated/_sin_r4.f90: Regenerated.
2259         generated/_sin_r8.f90: Regenerated.
2260         generated/_sinh_r4.f90: Regenerated.
2261         generated/_sinh_r8.f90: Regenerated.
2262         generated/_sqrt_c4.f90: Regenerated.
2263         generated/_sqrt_c8.f90: Regenerated.
2264         generated/_sqrt_r4.f90: Regenerated.
2265         generated/_sqrt_r8.f90: Regenerated.
2266         generated/_tan_r4.f90: Regenerated.
2267         generated/_tan_r8.f90: Regenerated.
2268         generated/_tanh_r4.f90: Regenerated.
2269         generated/_tanh_r8.f90: Regenerated.
2270         generated/all_l4.c: Regenerated.
2271         generated/all_l8.c: Regenerated.
2272         generated/any_l4.c: Regenerated.
2273         generated/any_l8.c: Regenerated.
2274         generated/count_4_l4.c: Regenerated.
2275         generated/count_4_l8.c: Regenerated.
2276         generated/count_8_l4.c: Regenerated.
2277         generated/count_8_l8.c: Regenerated.
2278         generated/cshift1_4.c: Regenerated.
2279         generated/cshift1_8.c: Regenerated.
2280         generated/dotprod_c4.c: Regenerated.
2281         generated/dotprod_c8.c: Regenerated.
2282         generated/dotprod_i4.c: Regenerated.
2283         generated/dotprod_i8.c: Regenerated.
2284         generated/dotprod_l4.c: Regenerated.
2285         generated/dotprod_l8.c: Regenerated.
2286         generated/dotprod_r4.c: Regenerated.
2287         generated/dotprod_r8.c: Regenerated.
2288         generated/eoshift1_4.c: Regenerated.
2289         generated/eoshift1_8.c: Regenerated.
2290         generated/eoshift3_4.c: Regenerated.
2291         generated/eoshift3_8.c: Regenerated.
2292         generated/exp_c4.c: Regenerated.
2293         generated/exp_c8.c: Regenerated.
2294         generated/exponent_r4.c: Regenerated.
2295         generated/exponent_r8.c: Regenerated.
2296         generated/fraction_r4.c: Regenerated.
2297         generated/fraction_r8.c: Regenerated.
2298         generated/hyp_c4.c: Regenerated.
2299         generated/hyp_c8.c: Regenerated.
2300         generated/in_pack_i4.c: Regenerated.
2301         generated/in_pack_i8.c: Regenerated.
2302         generated/in_unpack_i4.c: Regenerated.
2303         generated/in_unpack_i8.c: Regenerated.
2304         generated/matmul_c4.c: Regenerated.
2305         generated/matmul_c8.c: Regenerated.
2306         generated/matmul_i4.c: Regenerated.
2307         generated/matmul_i8.c: Regenerated.
2308         generated/matmul_l4.c: Regenerated.
2309         generated/matmul_l8.c: Regenerated.
2310         generated/matmul_r4.c: Regenerated.
2311         generated/matmul_r8.c: Regenerated.
2312         generated/maxloc0_4_i4.c: Regenerated.
2313         generated/maxloc0_4_i8.c: Regenerated.
2314         generated/maxloc0_4_r4.c: Regenerated.
2315         generated/maxloc0_4_r8.c: Regenerated.
2316         generated/maxloc0_8_i4.c: Regenerated.
2317         generated/maxloc0_8_i8.c: Regenerated.
2318         generated/maxloc0_8_r4.c: Regenerated.
2319         generated/maxloc0_8_r8.c: Regenerated.
2320         generated/maxloc1_4_i4.c: Regenerated.
2321         generated/maxloc1_4_i8.c: Regenerated.
2322         generated/maxloc1_4_r4.c: Regenerated.
2323         generated/maxloc1_4_r8.c: Regenerated.
2324         generated/maxloc1_8_i4.c: Regenerated.
2325         generated/maxloc1_8_i8.c: Regenerated.
2326         generated/maxloc1_8_r4.c: Regenerated.
2327         generated/maxloc1_8_r8.c: Regenerated.
2328         generated/maxval_i4.c: Regenerated.
2329         generated/maxval_i8.c: Regenerated.
2330         generated/maxval_r4.c: Regenerated.
2331         generated/maxval_r8.c: Regenerated.
2332         generated/minloc0_4_i4.c: Regenerated.
2333         generated/minloc0_4_i8.c: Regenerated.
2334         generated/minloc0_4_r4.c: Regenerated.
2335         generated/minloc0_4_r8.c: Regenerated.
2336         generated/minloc0_8_i4.c: Regenerated.
2337         generated/minloc0_8_i8.c: Regenerated.
2338         generated/minloc0_8_r4.c: Regenerated.
2339         generated/minloc0_8_r8.c: Regenerated.
2340         generated/minloc1_4_i4.c: Regenerated.
2341         generated/minloc1_4_i8.c: Regenerated.
2342         generated/minloc1_4_r4.c: Regenerated.
2343         generated/minloc1_4_r8.c: Regenerated.
2344         generated/minloc1_8_i4.c: Regenerated.
2345         generated/minloc1_8_i8.c: Regenerated.
2346         generated/minloc1_8_r4.c: Regenerated.
2347         generated/minloc1_8_r8.c: Regenerated.
2348         generated/minval_i4.c: Regenerated.
2349         generated/minval_i8.c: Regenerated.
2350         generated/minval_r4.c: Regenerated.
2351         generated/minval_r8.c: Regenerated.
2352         generated/nearest_r4.c: Regenerated.
2353         generated/nearest_r8.c: Regenerated.
2354         generated/pow_c4_i4.c: Regenerated.
2355         generated/pow_c4_i8.c: Regenerated.
2356         generated/pow_c8_i4.c: Regenerated.
2357         generated/pow_c8_i8.c: Regenerated.
2358         generated/pow_i4_i4.c: Regenerated.
2359         generated/pow_i4_i8.c: Regenerated.
2360         generated/pow_i8_i4.c: Regenerated.
2361         generated/pow_i8_i8.c: Regenerated.
2362         generated/pow_r4_i4.c: Regenerated.
2363         generated/pow_r4_i8.c: Regenerated.
2364         generated/pow_r8_i4.c: Regenerated.
2365         generated/pow_r8_i8.c: Regenerated.
2366         generated/product_c4.c: Regenerated.
2367         generated/product_c8.c: Regenerated.
2368         generated/product_i4.c: Regenerated.
2369         generated/product_i8.c: Regenerated.
2370         generated/product_r4.c: Regenerated.
2371         generated/product_r8.c: Regenerated.
2372         generated/reshape_i4.c: Regenerated.
2373         generated/reshape_i8.c: Regenerated.
2374         generated/set_exponent_r4.c: Regenerated.
2375         generated/set_exponent_r8.c: Regenerated.
2376         generated/shape_i4.c: Regenerated.
2377         generated/shape_i8.c: Regenerated.
2378         generated/sum_c4.c: Regenerated.
2379         generated/sum_c8.c: Regenerated.
2380         generated/sum_i4.c: Regenerated.
2381         generated/sum_i8.c: Regenerated.
2382         generated/sum_r4.c: Regenerated.
2383         generated/sum_r8.c: Regenerated.
2384         generated/transpose_i4.c: Regenerated.
2385         generated/transpose_i8.c: Regenerated.
2386         generated/trig_c4.c: Regenerated.
2387         generated/trig_c8.c: Regenerated.
2388
2389 2005-01-07  Bud Davis  <bdavis9659@comcast.net>
2390
2391         PR fortran/18398
2392         * transfer.c (next_record_r): always skip the
2393         eol search if it was found during sf_read.
2394
2395 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2396
2397         * libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
2398         Define.
2399         * intrinsics/ishftc.c: Update copyright years.
2400         (ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
2401         * intrinsics/mvbits.c: Correct non-ASCII character in my name.
2402         Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.
2403
2404 2004-12-23  Bud Davis  <bdavis9659@comcast.net>
2405
2406         PR fortran/19071
2407         * io/tranfer.c (formatted_transfer): moved check for
2408         format reversion inside the processing loop.
2409
2410 2004-12-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2411
2412         PR libfortran/19074
2413         * libgfortran.h (itoa): Rename to gfc_itoa.
2414         * io/write.c (itoa): Same.
2415         * runtime/environ.c (itoa): Same.
2416         * runtime/error.c (itoa): Same.
2417
2418 2004-12-15  Bud Davis  <bdavis9659@comcast.net>
2419             Steven G. Kargl  <kargls@comcast.net>
2420
2421         PR fortran/17597
2422         * io/list_read.c (read_real): do not push back a comma when
2423         it delimits a real value without a decimal point
2424
2425 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
2426
2427         * libgfortran/io/transfer.c (us_read): Use memcpy/memset
2428         instead of assignment to fill unaligned buffer.
2429         (us_write): Ditto.
2430         (next_record_w): Ditto.
2431
2432 2004-12-14  Steven G. Kargl  <kargls@comcast.net>
2433
2434         PR libfortran/18966
2435         * gfortran.h: typedef GFC_INTEGER_1 and GFC_INTEGER_2
2436         * intrinsics/cshift0.c (cshift0_1,cshift0_2): New functions.
2437         * intrinsics/eoshift0.c (eoshift0_1,eoshift0_2): New functions.
2438         * intrinsics/eoshift2.c (eoshift2_1,eoshift2_2): New functions.
2439
2440 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
2441
2442         * io/transfer.c (read_sf): Change bitwise "and" to logical "and".
2443
2444 2004-12-12  Richard Henderson  <rth@redhat.com>
2445
2446         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
2447         intrinsics/pack_generic.c, intrinsics/reshape_generic.c,
2448         intrinsics/spread_generic.c, intrinsics/transpose_generic.c,
2449         intrinsics/unpack_generic.c, m4/cshift1.m4, m4/dotprod.m4,
2450         m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
2451         m4/iforeach.m4, m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4,
2452         m4/reshape.m4, m4/shape.m4, m4/transpose.m4: Use standard prefix
2453         instead of "__".
2454         * generated/*: Rebuild.
2455
2456 2004-12-12  Richard Henderson  <rth@redhat.com>
2457
2458         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
2459         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
2460         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
2461         * configure.ac: Use them.
2462         * configure, config.h.in, aclocal.m4: Rebuild.
2463         * libgfortran.h (prefix): Remove.
2464         (PREFIX, IPREFIX): New.
2465         (sym_rename, sym_rename1, sym_rename2): New.
2466         (internal_proto, export_proto, export_proto_np): New.
2467         (iexport_proto, iexport): New.
2468         (iexport_data_proto, iexport_data): New.
2469         * intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
2470         intrinsics/cpu_time.c, intrinsics/cshift0.c,
2471         intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
2472         intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
2473         intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
2474         intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
2475         intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
2476         intrinsics/reshape_generic.c, intrinsics/size.c,
2477         intrinsics/spread_generic.c, intrinsics/stat.c,
2478         intrinsics/string_intrinsics.c, intrinsics/system.c,
2479         intrinsics/system_clock.c, intrinsics/transpose_generic.c,
2480         intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
2481         io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
2482         io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
2483         m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
2484         m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
2485         m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
2486         m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
2487         m4/transpose.m4, runtime/environ.c, runtime/error.c,
2488         runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
2489         runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
2490         runtime/stop.c: Use them to mark symbols internal or external.
2491         * generated/*: Rebuild.
2492
2493 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
2494
2495         PR bootstrap/18895
2496         Revert 2004-12-07 change.
2497         * Makefile.am (AM_MAKEFLAGS): Delete.
2498         * Makefile.in: Regenerate.
2499
2500 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
2501
2502         * libgfortran/Makefile.am (AM_MAKEFLAGS): New.
2503         * libgfortran/Makefile.in: Regenerate
2504
2505 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
2506
2507         * io/io.h (open_external): Change prototype.
2508         * io/unix.c (regular_file): Change prototype and set flags->action if
2509         needed.
2510         (open_external): Ditto.
2511         * io/open.c (new_unit): Let open_external set flags->action.
2512
2513 2004-12-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2514
2515         * configure.ac: Check for ieeefp.h.  Check for fabsf in libm.
2516         * configure: Regenerate.
2517         * config.h.in: Likewise.
2518         * c99_protos.h: New file.
2519         * libgfortran.h: Include c99_protos.h and conditionally ieeefp.h.
2520         * intrinsics/c99_functions.c (fabsf): New function.
2521
2522 2004-12-06  Richard Henderson  <rth@redhat.com>
2523
2524         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
2525         intrinsics/pack_generic.c, intrinsics/string_intrinsics.c,
2526         intrinsics/transpose_generic.c, m4/ifunction.m4, m4/matmul.m4,
2527         m4/matmull.m4, m4/transpose.m4: Use internal_malloc_size instead
2528         of internal_malloc.
2529         * generated/*: Rebuild.
2530
2531 2004-12-06  Richard Henderson  <rth@redhat.com>
2532
2533         * intrinsics/c99_functions.c, intrinsics/eoshift0.c,
2534         intrinsics/eoshift2.c, intrinsics/exit.c, intrinsics/flush.c,
2535         intrinsics/ishftc.c, intrinsics/mvbits.c, intrinsics/pack_generic.c,
2536         intrinsics/random.c, intrinsics/reshape_generic.c, intrinsics/size.c,
2537         intrinsics/spread_generic.c, intrinsics/stat.c,
2538         intrinsics/string_intrinsics.c, intrinsics/system_clock.c,
2539         intrinsics/transpose_generic.c, intrinsics/unlink.c,
2540         intrinsics/unpack_generic.c, io/backspace.c, io/format.c,
2541         io/list_read.c, io/lock.c, io/open.c, io/transfer.c, io/unix.c,
2542         io/write.c, runtime/environ.c, runtime/error.c,
2543         runtime/in_pack_generic.c, runtime/in_unpack_generic.c, runtime/main.c,
2544         runtime/memory.c, runtime/pause.c, runtime/stop.c,
2545         runtime/string.c: Whitespace fixes.
2546
2547 2004-12-06  Richard Henderson  <rth@redhat.com>
2548
2549         * Makefile.am: Generate all m4 output under $(srcdir).
2550         * Makefile.in: Regenerate.
2551
2552 2004-12-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2553
2554         PR fortran/18710
2555         * io/transfer.c (unformatted_read, unformatted_write): width of
2556         a COMPLEX is twice its kind.
2557
2558 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2559
2560         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2561         * configure, aclocal.m4, Makefile.in: Regenerate.
2562
2563 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
2564
2565         PR libfortran/18284
2566         * io/unix.c (fd_alloc_w_at): Update file_length when extending.
2567         * io/backspace.c (formatted_backspace): Reset endfile after backspace.
2568
2569 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
2570
2571         * io/inquire.c (inquire_via_unit): do not allow a direct access
2572         file to be opened for sequential I/O.
2573
2574 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
2575         Paul Brook  <paul@codesourcery.com>
2576
2577         * intrinsics/flush.c: New file.
2578         * intrinsics/fnum.c: ditto
2579         * intrinsics/stat.c: ditto
2580         * io/io.h (unit_to_fd): Add prototype.
2581         * io/unix.c (unit_to_fd): New function.
2582         * configure.ac: Add test for members of struct stat.  Check for
2583         sys/types.h and sys/stat.h
2584         * Makefile.am: Add intrinsics/{flush.c,fnum.c,stat.c}
2585         * configure.in: Regenerate.
2586         * config.h.in: Regenerate.
2587         * Makefile.in: Regenerate.
2588
2589 2004-12-01  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2590
2591         * Makefile.am (AM_CPPFLAGS): Use -iquote instead of -I.
2592
2593 2004-11-28  Bud Davis  <bdavis9659@comcast.net>
2594
2595         * io/unix.c (mmap_alloc_w_a): check for a write to a location
2596         less than the mapped area.
2597
2598 2004-11-27  Bud Davis  <bdavis9659@comcast.net>
2599
2600         PR fortran/18364
2601         *  io/endfile.c (st_endfile): flush the stream before truncating.
2602
2603 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2604
2605         * configure: Regenerate for libtool change.
2606
2607 2004-11-22  Steven Bosscher  <stevenb@suse.de>
2608
2609         PR libfortran/15960
2610         * configure.ac: Check for finite in libm.
2611         * libgfortran.h: Define isfinite macro if not defined.
2612         * intrinsics/c99_functions.c: Use defined(fpclassify) instead of
2613         HAVE_FPCLASSIFY.
2614         * io/write.c (write_float): Use isfinite instead of finite.
2615         * configure, config.h.in: Rebuilt.
2616
2617 2004-11-20  Roger Sayle  <roger@eyesopen.com>
2618
2619         * io/write.c (write_float, list_formatted_write): Fix indentation.
2620
2621 2004-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2622
2623         PR target/16135
2624         * acinclude.m4 (LIBGFOR_TARGET_ILP32): New check.
2625         * configure.ac: Include LIBGFOR_TARGET_ILP32.
2626         * configure: Regenerate.
2627         * config.h.in: Likewise.
2628         * libgfortran.h: Provide default definitions for C99 types
2629         on ILP32 targets that don't have them.
2630
2631         PR target/17999
2632         * configure.ac: Check for snprintf.
2633         * configure: Regenerate.
2634         * config.h.in: Likewise.
2635         * intrinsics/date_and_time.c (date_and_time): Do not
2636         use snprinf if it is not available.
2637         * io/write.c (output_float): Likewise.
2638
2639 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
2640
2641         * Makefile.am: Add intrinsics/{umask.c,unlink.c,exit.c}
2642         * Makefile.in: Regenerated
2643         * intrinsics/umask.c: New file
2644         * intrinsics/unlink.c: ditto
2645         * intrinsics/exit.c: ditto
2646
2647 2004-11-18  Victor Leikehman  <lei@il.ibm.com>
2648
2649         * m4/matmul.m4: Loops reordered to improve cache behavior.
2650         * generated/matmul_??.c: Regenerated.
2651
2652 2004-11-10  Paul Brook  <paul@codesourcery.com>
2653
2654         PR fortran/18218
2655         * configure.ac: Check for strtof.
2656         * configure: Regenerate.
2657         * config.h.in: Regenerate.
2658         * io/read.c (convert_real): Use strtof if available.
2659         (convert_precision_real): Remove.
2660         (read_f): Avoid poor exponentiation algorithm.
2661
2662 2004-11-05  Andreas Schwab  <schwab@suse.de>
2663
2664         * configure.ac: Use AC_PROG_FC, FC and FCFLAGS instead of
2665         AC_PROG_F77, F77 and FFLAGS.
2666         * Makefile.am (selected_int_kind.inc, selected_real_kind.inc): Use
2667         FCCOMPILE instead of F77COMPILE.
2668         * configure, Makefile.in: Regenerate.
2669
2670 2004-11-05  Kelley Cook  <kcook@gcc.gnu.org>
2671
2672         * acinclude.m4: Properly quote AC_CACHE_CHECK.
2673         * Makefile.am: Add in ACLOCAL_AMFLAGS.
2674         * aclocal.m4, configure, Makefile.in: Regenerate.
2675
2676 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2677
2678         * config.h.in: Regenerate.
2679         * configure: Regenerate.
2680         * configure.ac (AC_CHECK_FUNCS): Add mkstemp.
2681         * io/unix.c (S_IRGRP): Define if undefined.
2682         (S_IWGRP): Same.
2683         (S_IROTH): Same.
2684         (S_IWOTH): Same.
2685         (tempfile): Use mktemp if mkstemp missing, fix typos.
2686
2687 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2688
2689         *  intrinsics/system.c ("libgfortran.h"): Move after system headers.
2690
2691 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
2692
2693         * intrinsics/rand.c (irand): Handle NULL argument.
2694
2695 2004-10-07  Paul Brook  <paul@codesourcery.com>
2696
2697         * io/transfer.c (finalize_transfer): Free internal streams.
2698         * io/unix.c (mem_close): Free stream object.
2699
2700 2004-10-07  Paul Brook  <paul@codesourcery.com>
2701
2702         * intrinsics/string_intrinsics.c (string_verify): Fix off by one
2703         error.
2704
2705 2004-10-06  Paul Brook  <paul@codesourcery.com>
2706
2707         PR libfortran/17709
2708         * io/transfer.c (data_transfer_init): Reset sf_seen_eor.
2709
2710 2004-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
2711
2712         * intrinsics/mvbits.c: Commit the file.
2713
2714 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2715
2716         PR fortran/17283
2717         * intrinsics/pack_generic.c (__pack): Allocate memory for return array
2718         if not done by caller.
2719         (__pack_s): New function.
2720         * runtime/memory.c (internal_malloc, internal_malloc64): Allow
2721         allocating zero memory.
2722
2723         PR fortran/17631
2724         * Makefile.am (gfor_helper_src): Add intrinsics/mvbits.h.
2725         * Makefile.in: Regenerate.
2726         * intrinsics/mvbits.h: New file.
2727
2728         PR fortran/17776
2729         * intrinsics/system.c: New file.
2730         * Makefile.am: Add dependency for the new file.
2731         * Makefile.in: Regenerate.
2732
2733 2004-10-04  Paul Brook  <paul@codesourcery.com>
2734         Bud Davis  <bdavis9659@comcast.net>
2735
2736         PR fortran/17706
2737         PR fortran/16434
2738         * io/format.c (parse_format_list): Set repeat count for S, SP, SS,
2739         BN and BZ formats.
2740         * io/write.c (output_float): Don't output minus zero.
2741
2742 2004-10-03  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2743
2744         * intrinsics/abort.c ("libgfortran.h"): Move.
2745         * intrinsics/date_and_time.c ("libgfortran.h"): Same.
2746         * intrinsics/write.c ("libgfortran.h"): Same.
2747
2748 2004-09-26  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
2749
2750         PR libfortran/16137
2751         * config.h.in (HAVE_POWF): Undefine.
2752         * configure.ac: Check for 'powf' in library.
2753         * configure: Regenerate.
2754         * intrinsics/c99_functions.c (powf): New function.
2755
2756 2004-09-24  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
2757
2758         * intrinsics/etime.c (etime_): New function.
2759
2760 2004-09-21  Steven G. Kargl  <kargls@comcast.net>
2761
2762         * libgfortran.h: define gfc_alloca()
2763         * intrinsics/env.c (getenv, get_environment_variable_i4): Use it.
2764
2765 2004-09-21  Bud Davis  <bdavis9659@comcast.net>
2766
2767         PR fortran/17286
2768         * io/list_read.c (namelist_read): ignore spaces after
2769         the '=' for namelist reads.
2770
2771 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2772
2773         * config.h.in: Regenerate.
2774         * configure: Regenerate.
2775         * configure.ac (AC_CHECK_HEADERS): Check for sys/mman.h.
2776         * unix.c: Include stdio.h.
2777         (HAVE_SYS_MMAN_H): Check.
2778         (PROT_READ, PROT_WRITE): Provide default definitions.
2779
2780 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
2781
2782         * intrincics/getcwd.c: New file.
2783         * Makefile.am: Add getcwd.c.
2784         * Makefile.in: Regenerated.
2785
2786 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
2787         Paul Brook  <paul@codesourcery.com>
2788
2789         * intrinsics/env.c (getenv, get_environmental_variable): Remove
2790         trailing white space.  Use alloca.  Honour trim_name.
2791
2792 2004-09-13  Bud Davis  <bdavis9659@comcast.net>
2793
2794         PR fortran/17090
2795
2796         * io/list_read.c (list_formatted_read): Handle trailing spaces
2797         at end of line.
2798
2799 2004-09-06  Steven G. Kargl  <kargls@comcast.net>
2800
2801         * io/write.c (output_float): Typo in comment.  Remove debugging
2802         printf.  Fix format for FP of form 1e10.
2803
2804 2004-09-03  Richard Henderson  <rth@redhat.com>
2805
2806         * intrinsics/cshift0.c (DEF_COPY_LOOP, copy_loop_int, copy_loop_long,
2807         copy_loop_double, copy_loop_ldouble): New.
2808         (__cshift0): Make shift type ssize_t.  Use % operator instead of
2809         div.  Use specialized versions of copy loop depending on the shape.
2810
2811 2004-09-02  Paul Brook  <paul@codesourcery.com>
2812
2813         * io/format.c (parse_format_list): Set repeat count for P descriptors.
2814         * write.c (output_float): Fix condition.  Correctly handle nonzero
2815         scale factor.
2816
2817 2004-09-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2818
2819         * mk-sik-inc.sh: Use a temporary string instead of 'echo -n'.
2820         * mk-srk-inc.sh: Likewise.
2821
2822 2004-09-01  Paul Brook  <paul@codesourcery.com>
2823
2824         * runtime/error.c (generate_error): Set both iostat and
2825         library_return.
2826
2827 2004-08-31  Paul Brook  <paul@codesourcery.com>
2828
2829         PR libfortran/16805
2830         * io/list_read.c (next_char): Don't signal EOF for internal files.
2831         * io/unix.c (mem_alloc_r_at): Don't return NULL for incomplete reads.
2832
2833 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2834
2835         * io/unit.c: Separate copyright years by ','.
2836         (compare, insert_unit, delete_unit, is_internal_unit, close_units):
2837         Remove blank line in beginning of function.
2838         (get_unit): Simplify code.
2839
2840 2004-08-31  Paul Brook  <paul@codesourcery.com>
2841
2842         * io/unit.c (get_unit): Remove superfluous if.
2843
2844 2004-08-31  Paul Brook  <paul@codesourcery.com>
2845
2846         * io/transfer.c (read_sf): Rename uinty to readlen.  Detect EOF.
2847         (finalize_transfer): Move setjmp after namlist IO.
2848         * io/unix.c (mem_alloc_r_at): Calculate remaining length correctly.
2849
2850 2004-08-31  Paul Brook  <paul@codesourcery.com>
2851
2852         * list_read.c (eat_separator): Set at_eo when a '/' is seen.
2853
2854 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2855
2856         * libgfortran.h: Replace 'gfc_strlen_type' by
2857         'gfc_charlen_type'. Update comment accordingly.
2858         * intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
2859         Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.
2860
2861 2004-08-31  Paul Brook  <paul@codesourcery.com>
2862
2863         * libgfortran.h: Add comments.
2864
2865 2004-08-30  Richard Henderson  <rth@redhat.com>
2866
2867         * Makefile.am (gfor_helper_src): Split selected_kind.f90.
2868         (gfor_built_src): Add selected_int_kind.inc selected_real_kind.inc.
2869         (selected_int_kind.inc selected_real_kind.inc): New rules.
2870         * Makefile.in: Regenerate.
2871         * mk-sik-inc.sh, mk-srk-inc.sh: New files.
2872         * intrinsics/selected_int_kind.f90: Split from selected_kind.f90,
2873         include table of detected kinds.
2874         * intrinsics/selected_real_kind.f90: Similarly.
2875
2876 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2877         Paul Brook  <paul@codesourcery.com>
2878
2879         * intrinsics/bessel.c: New file.
2880         * intrinsics/erf.c: New file.
2881         * Makefie.am: Add intrinsics/bessel.c and intrinsics/erf.c.
2882         * configure.ac: Test for C99 Bessel and Error functions.
2883         * Makefile.in: Regenerate.
2884         * config.h.in: Regenerate.
2885         * configure: Regenerate.
2886
2887 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2888         Paul Brook  <paul@codesourcery.com>
2889
2890         * Makefile.am: Add intrinsics/getXid.c.
2891         * configure.ac: Add tests for get{g,p,u}id.
2892         * config.h.in: Regenerate.
2893         * Makefile.in: Regenerate.
2894         * configure: Regenerate.
2895
2896 2004-08-28  Paul Brook  <paul@codesourcery.com>
2897
2898         PR libfortran/17195
2899         * libgfortran.h (rtoa): Remove prototype.
2900         * runtime/error.c (rtoa): Remove.
2901         * io/write.c (calculate_G_format): Don't add blanks if E format is
2902         used.  Add correct number of blanks when exponent width is specified.
2903         (output_float): Rewrite.
2904
2905 2004-08-27  Paul Brook  <paul@codesourcery.com>
2906
2907         * io/rewind.c (st_rewind): Reset unit to read mode.
2908
2909 2004-08-27  Bud Davis  <bdavis9659@comcast.net>
2910
2911         PR fortran/16597
2912         * io/io.h: created typedef for unit_mode.
2913         * io/io.h (gfc_unit): added mode to unit structure.
2914         * io/transfer.c (data_transfer_init): flush if a write then
2915         read is done on a unit (direct access files).
2916         * io/rewind.c (st_rewind): Used unit mode instead of global.
2917
2918 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
2919
2920         PR fortran/17143
2921         * runtime/error.c (itoa): keep from overflowing during
2922         mod operation by using unsigned variable.
2923
2924 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
2925
2926         PR fortran/17164
2927         * runtime/string_intrinsics.c (string_index):check for
2928         substring longer than string.
2929
2930 2004-08-24  David Edelsohn  <edelsohn@gnu.org>
2931
2932         * Makefile.am (libgfortran_la_LDFLAGS): Add -lm.
2933         * Makefile.in: Rebuilt.
2934
2935 2004-08-23  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2936
2937         * io/io.h, io/list_read.c, io/open.c, io/transfer.c, io/write.c:
2938         Fix formatting issues, update copyright years.
2939
2940 2004-08-21  Bud Davis  <bdavis9659@comcast.net>
2941
2942         PR 16908
2943         * io/transfer.c (next_record_w): Do not blank pad.
2944         * io/transfer.c (next_record): Take into account partial records.
2945
2946 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2947
2948         PR fortran/13278
2949         * io/transfer.c (st_set_nml_var)
2950         * io/write.c (namelist_write): Allow var_name and var_name_len to be
2951         null. For strings, use string_length field instead of len.
2952         * io/io.h (struct namelist_type): New field string_length.
2953         (st_set_nml_var_char): New argument string_length.
2954
2955 2004-08-13  Bud Davis  <bdavis9659@comcast.net>
2956
2957         PR gfortran/16935
2958         * io/open.c (st_open): use flags instead of the unit structure.
2959
2960 2004-08-10  Victor Leikehman  <lei@il.ibm.com>
2961
2962         * io/list_read.c (namelist_read): Convert variable names
2963         to lower case, so that mixed-case names are recognized.
2964         Don't read beyond terminating slash.
2965
2966 2004-08-09  Richard Henderson  <rth@redhat.com>
2967             Roger Sayle  <roger@eyesopen.com>
2968
2969         * intrinsics/c99_functions.c (nextafterf): New implementation that
2970         works correctly with denormalized numbers.
2971
2972 2004-08-09  Victor Leikehman  <lei@il.ibm.com>
2973
2974         * m4/matmul.m4, m4/matmull.m4, intrinsics/eoshift0.c,
2975         intrinsics/eoshift2.c, intrinsics/transpose_generic.c:
2976         Allocate space if return value has NULL in its data field.
2977         * generated/*.c: Regenerate.
2978
2979 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2980
2981         * intrinsics/env.c: New file.
2982         * Makefile.am: Add env.c to build.
2983         * Makefile.in: Regenerate.
2984
2985 2004-08-05  Victor Leikehman  <lei@il.ibm.com>
2986
2987         PR libgfortran/16704
2988         * io/read.c (read_radix): Understand letters f and F as hex digits.
2989
2990 2004-08-04  Victor Leikehman  <lei@il.ibm.com>
2991
2992         * libgfortran.h (array_t, size0) New declarations.
2993         * m4/ifunction.m4, m4/transpose.m4, intrinsics/cshift0.c: Allocate
2994         space if return value descriptor has NULL in its data field,
2995         and initialize bounds and stride.
2996         * intrinsics/size.c (array_t, size0): Declarations moved to
2997         libgfortran.h.
2998         * generated/*.c: Regenerate.
2999
3000 2004-08-03  Roger Sayle  <roger@eyesopen.com>
3001
3002         PR libgfortran/16137
3003         * configure.ac: Add tests for acosf, asinf, atan2f, atanf, ceilf,
3004         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
3005         scalbnf, sinf, sinhf, sqrtf, tanf and tanhf in libm.
3006         * config.h.in: Regenerate.
3007         * configure: Regenerate.
3008
3009         * instrinsics/c99_functions.c (acosf, asinf, atan2f, atanf, ceilf,
3010         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
3011         nextafterf, scalbnf, sinf, sinhf, sqrtf, tanf, tanhf): New stub
3012         implementations for targets that don't support C99 float functions.
3013
3014 2004-08-01  Roger Sayle  <roger@eyesopen.com>
3015
3016         * io/write.c (write_float): Use the slightly more portable isnan
3017         in preference to isinf.
3018
3019 2004-07-18  Bud Davis  <bdavis9659@comcast.net>
3020
3021         * configure.ac: Add check for LFS support.
3022         * configure: Regenerate
3023
3024 2004-07-11  Paul Brook  <paul@codesourcery.com>
3025
3026         PR fortran/16303
3027         * m4/cexp.m4 (carg): Return -pi to pi.
3028         * generated/exp_c?.c: Regenerate.
3029
3030 2004-07-08  Andreas Krebbel  <krebbel1@de.ibm.com>
3031
3032         PR fortran/16291
3033         * libgfortran/io/write.c: (write_float): Added length check.
3034         Remove pointless memset calls.
3035
3036 2004-07-04  Bud Davis  <bdavis9659@comcast.net>
3037             Paul Brook  <paul@codesourcery.com>
3038
3039         PR fortran/15472
3040         * io/transfer.c(us_write): set recl for seq unform writes to max size.
3041         * io/transfer.c(data_transfer_init): handle un-opened seq unform unit.
3042         * io/unix.c(fd_alloc_w_at): handle requests at start, fd_flush at
3043         right time.
3044         * io/unix.c(is_seekable): set based upon the file/device, not the
3045         method being used to access it (fd or mmap).
3046         * io/unix.c(fd_flush): don't set file_size if !seekable.
3047         * io/unix.c(fd_truncate: ditto.
3048
3049 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3050         Paul Brook  <paul@codesourcery.com>
3051
3052         PR fortran/15280
3053         PR fortran/15665
3054         * libgfortran.h (gfc_strlen_type): Define.
3055         * intrinsics/args.c (getarg): Rename ...
3056         (getarg_i4): ... to this.
3057         (getarg_i8, get_command_argument_i4, get_command_argument_i8,
3058         get_command_i4, get_command_i8): New functions.
3059
3060 2004-07-04  Matthias Klose  <doko@debian.org>
3061
3062         * libtool-version: New.
3063         * Makefile.am (libgfortran_la_LDFLAGS): Use -version-info for soname.
3064         * Makefile.in: Regenerate.
3065         * configure.ac: Remove libtool_VERSION macro
3066         * configure: Regenerate
3067
3068 2004-06-30  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3069             Steven Bosscher  <stevenb@suse.de>
3070
3071         * intrinsics/rand.c (rand): Wrap the irand() call from the previous
3072         commit in prefix.
3073
3074 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3075         Paul Brook  <paul@codesourcery.com>
3076
3077         * runtime/normalize.c (normalize_r4_i4, normalize_r8_i8): Fix
3078         comments.
3079         * intrinsics/rand.c (rand): Call irand() in call to normalize_r4_i4.
3080
3081 2004-06-27  Bud Davis  <bdavis9659@comcast.net>
3082
3083         PR gfortran/12839
3084         * io/write.c (write_float): check signbit for Infinity.
3085
3086 2004-06-26  Bud Davis  <bdavis9659@comcast.net>
3087
3088         PR gfortran/16196
3089         * unix.c(regular_file): create file if it does not exist.
3090
3091 2004-06-24  Andrew Pinski  <apinski@apple.com>
3092
3093         * configure.ac: Remove check for libmx.
3094         * configure: Regenerate.
3095
3096 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3097
3098         PR fortran/15750
3099         * inquire.c (st_inquire): Add comment
3100         * io.h (st_parameter): Add iolength.
3101         (st_iolength, st_iolength_done): Declare.
3102         * transfer.c (iolength_transfer, iolength_transfer_init,
3103         st_iolength, st_iolength_done): New functions.
3104
3105 2004-06-21  Steven G. Kargl  <kargls@comcast.net>
3106
3107         * etime.c (etime_sub): Remove array rank check;
3108         Add check for sufficient space.
3109
3110 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
3111
3112         PR gfortran/16080
3113         * io/list_read.c(set_value): fixed spelling.
3114
3115 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
3116
3117         PR gfortran/16080
3118         * io/list_read.c(set_value): don't copy if the string is null.
3119
3120 2004-06-14  Bud Davis  <bdavis9659@comcast.net>
3121
3122         PR gfortran/15292
3123         * intrinsics/c99_functions.c: Use fpclassify if it exists.
3124
3125 2004-06-13  Paul Brook  <paul@codesourcery.com>
3126
3127         * Makefile.am (gfor_helper_src): Add runtime/normalize.f90.
3128         * configure.ac: Add checks for nextafter and nextafterf.
3129         * Makefile.in, config.h.in, configure: Regenerate.
3130         * libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare.
3131         * intrinsics/rand.c (rand): Use normalize_r4_i4.
3132         * intrinsics/random.c (random_r4): Use normalize_r4_i4.
3133         (random_r8): Use normalize_r8_i8.
3134         * runtime/normalize.c: New file.
3135
3136 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
3137             Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3138
3139         * random.c: Fix several spelling and formatting mistakes in
3140         comments.
3141         (random_r8): Fix loop to make random numbers range in [0,1(.
3142
3143
3144 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
3145
3146         * random.c (random_r4): Burn a random number.
3147         (random_r8): fix infinite loop.
3148
3149 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3150             Steve Kargl  <sgk@troutmask.apl.washington.edu>
3151
3152         PR gfortran/15292
3153         * intrinsics/c99_functions.c: New file.
3154         * Makefile.am: Add new file.
3155         * configure.ac: Added test for round/roundf.
3156         * Makefile.in: Regenerate.
3157         * configure: Regenerate.
3158         * configure.h.in: Regenerate.
3159
3160 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
3161
3162         * Makefile.am: Add rand.c and etime.c
3163         * Makefile.in: Regenerated.
3164         * aclocal.in: Regenerated.
3165         * cpu_time.c (second_sub, second): New functions.
3166         * rand.c (irand, rand, srand): New file.
3167         * etime.c (etime_sub, etime): New file.
3168
3169 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3170             Steven Bosscher  <stevenb@suse.de>
3171
3172         PR fortran/14923
3173         * intrinsics/date_and_time.c: New file.
3174         * Makefile.am (gfor_helper_src): Add intrinsics/date_and_time.c.
3175         * Makefile.in, aclocal.m4: Regenerate.
3176         * libgfortran.h: Prototype date_and_time().
3177
3178 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3179
3180         PR fortran/15665
3181         * intrinsics/args.c: Implement GETARG and IARGC.
3182         * Makefile.am: Add it.
3183         * Makefile.in: Regenerate.
3184
3185 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3186
3187         PR gfortran/12839
3188         * io/write.c(write_float): Format inf and nan IAW F2003.
3189
3190 2004-06-09  Bud Davis  <bdavis9659@comcaste.net>
3191
3192         PR gfortran/14897
3193         * io/transfer.c (formatted_transfer): position is unique
3194          for T and TL edit descriptors.
3195         (data_transfer_init): set record length to size of internal
3196          file.
3197
3198 2004-06-09  Bud Davis  <bdavis9659@comcast.net>
3199
3200         PR gfortran/15755
3201         * io/backspace.c(st_backspace): call correct routine for
3202         formatted and un-formatted units.
3203
3204 2004-05-30  Andreas Jaeger  <aj@suse.de>, Steven Bosscher <stevenb@suse.de>
3205
3206         PR gfortran/11800
3207         * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
3208         (lib_LTLIBRARIES): Rename to ...
3209         (toolexeclib_LTLIBRARIES): this for multilib support.
3210         * configure.in: Rename to ...
3211         * configure.ac: this.  Update to modern autoconf style, enable
3212         multilibs, support --enable-version-specific-runtime-libs.
3213         * Makefile.in: Regenerated.
3214         * configure: Regenerated.
3215         * aclocal.m4: Regenerated.
3216
3217 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
3218
3219         * libgfortran.h (random_seed): Update prototype.
3220         * intrinsics/random.c: Disable old implementation and add new one.
3221
3222 2004-05-30  Andreas Jaeger  <aj@suse.de>
3223
3224         * intrinsics/random.c: Include unistd.h for close and read
3225         prototypes, remove unneeded inclusion of assert.h.
3226
3227         * intrinsics/abort.c: Include stdlib.h for abort prototype, remove
3228         unneeded inclusion of assert.h.
3229
3230 2004-05-27  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
3231
3232         PR fortran/15234
3233         * intrinsics/associated.c: Remove enum.
3234         (associated): Replace TRUE/FALSE by 1/0.
3235
3236 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
3237
3238         * random.c (random_seed): Use correct variable.
3239
3240 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3241
3242         * intrinsics/system_clock: New file.
3243         * Makefile.am: Add intrinsics/system_clock.c.
3244         * Makefile.in: Regenerate.
3245
3246 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3247
3248         * io/format.c (parse_format_list): Allow the comma after a string
3249         literal to be optional.
3250
3251 2004-05-18  Paul Brook  <paul@codesourcery.com>
3252         Feng Wang  <fengwang@nudt.edu.cn>
3253
3254         * Makefile.am (i_pow_c): Set it. Add build rule.
3255         (gfor_built_src): Use it.
3256         (m4_files): add m4/pow.m4.
3257         * Makefile.in: Regenerate.
3258         * m4/pow.m4: New file.
3259         * generated/pow_*.c: Regenerate.
3260
3261 2004-05-18  Paul Brook  <paul@codesourcery.com>
3262
3263         * Makefile.am: Remove references to types.m4.
3264         * m4/iparm.m4: Merge with types.m4.
3265         * m4/types.m4: Remove.
3266         * m4/cshift1.m4, m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4,
3267         m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4, m4/ifunction.m4,
3268         m4/in_pack.m4, m4/in_unpack.m4, m4/iparm.m4, m4/matmul.m4,
3269         m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4, m4/maxval.m4,
3270         m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/reshape.m4,
3271         m4/shape.m4, m4/specific.m4, m4/specific2.m4, m4/transpose.m4):
3272         Update to use new iparm.m4.
3273         * generated/*.c: Regenerate.
3274
3275 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3276
3277         PR fortran/15235
3278         * gfortran.h (offset_t): Rename to ...
3279         (gfc_offset): ... this.
3280         * io/backspace.c (formatted_backspace, unformatted_backspace),
3281         io/io.h (stream, gfc_unit, global_t, file_length, file_position),
3282         transfer.c (us_read, us_write, next_record_r, next_record_w),
3283         io/unit.c (init_units), unix.c (unix_stream, fd_alloc,
3284         fd_alloc_r_at, fd_alloc_w_at, fd_seek, mmap_alloc,
3285         mmap_alloc_r_at, mmap_alloc_w_at, mmap_seek, mem_alloc_r_at,
3286         mem_alloc_w_at, mem_seek, file_length, file_position): Replace all
3287         occurences of offset_t by gfc_offset.
3288
3289 2004-05-16  Paul Brook  <paul@codesourcery.com>
3290
3291         * io/format.c (write_real): Don't include padding in format.
3292
3293 2004-05-16  Paul Brook  <paul@codesourcery.com>
3294
3295         * io/format.c (format_lex): Make c an int.
3296
3297 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3298         Paul Brook  <paul@codesourcery.com>
3299
3300         * io/write.c (write_logical): Don't print extra blank.
3301         (write_integer): Base field width on kind.
3302         (list_formatted_write): Output initial blank.
3303
3304 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3305
3306         * io/io.h (flush): Add prototype.
3307         * io/transfer.c (finalize_transfer): Flush partial records.
3308         * io/unix.c (flush): New function.
3309
3310 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3311
3312         PR fortran/15234
3313         * io/io.h (unit_t): Rename to ...
3314         (gfc_unit) ... this.
3315         (unit_root, current_unit, find_file, find_unit, get_unit): Now
3316         of type gfc_unit.
3317         (delete_file, insert_unit, close_unit): Argument now of type
3318         gfc_unit.
3319         * backspace.c (st_backspace), close.c (st_close), endfile.c
3320         (st_endfile), inquire.c (inquire_via_unit, st_inquire), open.c
3321         (test_endfile, edit_modes, new_unit, already_open, st_open),
3322         rewind.c (st_rewind), transfer.c (current_unit), unit.c
3323         (internal_unit, unit_cache, rotate_left, rotate_right, insert,
3324         insert_unit, delete_root, delete_treap, delete_unit, find_unit,
3325         get_unit, init_units, close_unit), unix.c (find_file0,
3326         find_file, delete_file): Replace all occurences of unit_t by
3327         gfc_unit.
3328
3329 2004-05-15  Bud Davis  <bdavis9659@comcast.net>
3330
3331         PR fortran/15311
3332         * io/write.c (write_a): right justify A edit output.
3333
3334 2004-05-14  Bud Davis  <bdavis9659@comcast.net>
3335
3336         PR fortran/15149
3337         * libgfortan.h,intrinsics/random.c: Made random_seed visible.
3338         * runtime/main.c(init): Call random_seed as part of MAIN init.
3339
3340 2004-05-13  Tobias Schlter  <tobias.schlueter@physik.uni-muenchen.de>
3341
3342         * io/format.c: (parse_format_list): No comma is required after
3343         P descriptor.
3344
3345 2004-05-13  Bud Davis  <bdavis9659@comcast.net>
3346
3347         PR fortran/15204
3348         * io/intrinsic/string_intrinsics.c (adjustr): rework logic.
3349
3350 2004-05-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3351             Steven Bosscher  <stevenb@suse.de>
3352
3353         PR libfortran/15234
3354         * libgfortran.h: Include <inttypes.h> if available.
3355
3356 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3357
3358         * io/unix.c (MAP_FAILED): Define if missing.
3359         (mmap_alloc): Cast MAP_FAILED to char *.
3360         (mmap_open): Likewise.
3361
3362 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
3363
3364         * generated/_abs_i8.f90: New file.
3365         * generated/_abs_c4.f90: New file.
3366         * generated/_abs_c8.f90: New file.
3367         * Makefile.am: Add them.
3368         * Makefile.in: Regenerate.
3369 `
3370 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
3371
3372         PR fortran/14056
3373         * generated/_abs_i4.f90: New file.
3374         * Makefile.am: Add it.
3375         * Makefile.in: Regenerate.
3376
3377 2004-04-25  Bud Davis  <bdavis9659@comcast.net>
3378
3379         PR fortran/14942
3380         * io/list_read.c(list_formatted_read): finish consuming the
3381         spaces and seperators at eoln to get ready for next item.
3382
3383 2004-04-23  Bud Davis  <bdavis9659@comcast.net>
3384
3385         PR fortran/15113
3386         * io/read.c(read_a): Handle field width > destination and no field width.
3387
3388 2004-04-22  Bud Davis  <bdavis9659@comcast.net>
3389
3390         PR fortran/14906
3391         * io/format.c (format_item): gracefully handle a ')'
3392         when it is the first character encountered in the string.
3393
3394 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3395
3396         PR fortran/14904
3397         * io/transfer.c (next_record): Update last_record when
3398         more than one record is written to a direct access file
3399         with one write statement.
3400
3401 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3402
3403         PR fortran/14901
3404         * io/transfer.c (next_record_w) : No '\n' if internal.
3405         * io/unix.c (empty_internal_buffer) : Init to spaces, not '\n'.
3406
3407 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3408
3409         * io.h (ioparm): Interface from FE is 32 bit, irregardless of offset_t.
3410         Will need to change this later to support direct access files > 2gb.
3411
3412 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3413
3414         PR gfortran/14762
3415         * io/transfer.c (next_record_r) : Skip to next record.
3416
3417 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3418
3419         PR gfortran/14836
3420         * io/transfer.c (next_record): Update last_record for DIRECT
3421
3422 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3423
3424         PR gfortran/14837
3425         * io/unix.c (find_file0): Use fd field of struct
3426
3427 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3428
3429         PR 14831
3430         * io/inquire.c (inquire_via_unit): Changed return string for
3431         BLANK=NULL. Use correct variable for ACTION.
3432
3433 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
3434
3435         PR 14746
3436         * io/read.c (read_f): Allow a decimal without a leading digit.
3437         * io/write.c (output_float): remove a leading '0' to keep from
3438         overflowing the field (F edit descriptor).
3439
3440 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
3441
3442         PR gfortran/14565
3443         * io/open.c (new_unit),
3444         * io/io.h : new_unit is now visible
3445         * io/transfer.c (data_transfer_init): open unit if no OPEN statement.
3446         * io/transfer.c (data_transfer_init): remove compile warnings.
3447         * io/rewind.c (st_rewind): ftruncate if writing.
3448
3449 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3450
3451         * write.c (write_l): Use extract_int for 'L' edit descriptor.
3452
3453 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3454
3455         PR 13919
3456         * io/io.h (global_t):
3457         * io/list_read.c (next_char,list_formatted_read,ist_formatted_read):
3458           Move eof_jmp to a global structure.
3459         * io/transfer.c(finalize_transfer) : Set up eof_jump for callers.
3460
3461 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3462
3463         * m4/cexp.m4 (csqrt): Actually use the passed value.
3464         * generated/exp_c?.c: Regenerate.
3465
3466 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3467
3468         PR 12921
3469         * io.h, transfer.c, open.c : recl_in changed from ptr to variable.
3470         * open.c (new_unit): Moved test for positioned direct access error.
3471         (init_units): Corrected calculation of max records.
3472
3473 2004-02-06  Feng Wang  <fengwang@nudt.edu.cn>
3474
3475         * Makefile.am: Add m4/dotprodc.m4. And fix spelling.
3476         * Makefile.in: Regenerate.
3477         * m4/dotprodc.m4: New file. Implement complex dot_product.
3478         * m4/dotprod.m4: Delete the complex implementation.
3479         * generated/dotprod_*: Update.
3480
3481 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
3482
3483         * transfer.c (write_constant_string): Do not delete H's in hollerith
3484         formats.
3485
3486 2004-01-05  Andrew Pinski  <apinski@apple.com>
3487
3488         * configure.in: Check for csin in -lmx also.
3489         * configure: Regenerate.
3490
3491 2004-01-01  Paul Brook  <paul@codesourcery.com>
3492
3493         * io/list_read.c (find_nml_node): Make static.
3494         (match_namelist_name): Ditto.
3495         * io/read.c (convert_precision_real): Make static, fix spelling.
3496         * io/transfer.c (extract_real): Remove unused prototype.
3497         (st_set_nml_var): Make static.
3498         * io/write.c (extract_real): Make static.
3499
3500 2003-12-12  Huang Chun <chunhuang73@hotmal.com>
3501
3502         * intrinsics/string_intrinsics.c (string_index): Fix logics thinko.
3503
3504 2003-12-05  Melvin Hadasht  <melvin.hadasht@free.fr>
3505
3506         * io/transfer.c (data_transfer_init): Give a runtime error for list
3507         formatted reads and writes from/to files opened for unformatted IO.
3508
3509 2003-11-30  Paul Brook  <paul@nowt.org>
3510
3511         * runtime/memory.c (push_context): Remove.
3512         (pop_context): Remove.
3513         * libgfortran.h: Remove prototypes.
3514
3515 2003-11-27  Paul Brook  <paul@nowt.org>
3516
3517         * runtime/memory.c (deallocate): Nullify pointer after freeing.
3518
3519 2003-11-27  Paul Brook  <paul@nowt.org>
3520
3521         * intrinsics/string_intrinsics.c: Use new memory allocation interface.
3522         * libgfortran.h: Ditto.
3523         * m4/in_pack.m4: Ditto.
3524         * runtime/in_pack_generic.c: Ditto.
3525         * runtime/memory.c: Ditto.
3526
3527 2003-11-26  Richard Henderson  <rth@redhat.com>
3528
3529         * m4/exponent.m4, m4/fraction.m4: New.
3530         * m4/nearest.m4, m4/set_exponent.m4: New.
3531         * generated/*: Update.
3532         * Makefile.am: Add them.
3533         (AM_CFLAGS): New.  Use -std=gnu99.
3534         * Makefile.in: Regenerate.
3535
3536 2003-11-08  Paul Brook  <paul@nowt.org>
3537
3538         PR fortran/12704
3539         * m4/maxloc0.m4: Use default value of 1. Handle zero sized arrays.
3540         * m4/maxloc1.m4: Ditto.
3541         * m4/minloc0.m4: Ditto.
3542         * m4/minloc1.m4: Ditto.
3543         * m4/ifunction.m4: Set return value for zero sized arrays.
3544         * m4/iforeach.m4: Ditto.
3545         * m4/all.m4, m4/any.m4, m4/count.m4, m4/maxloc1.m4, m4/minloc1.m4,
3546         m4/mxaval.m4, m4/minval.m4, m4/product.m4, m4/sum.m4: Ditto.
3547         * generated/*: Update.
3548
3549 2003-10-30  Toon Moene  <toon@moene.indiv.nluug.nl>
3550
3551         PR fortran/12702
3552         * io/list_read.c (eat_spaces): Treat tab as space.
3553
3554 2003-10-30  Lars Segerlund  <Lars.Segerlund@comsys.se>
3555
3556         * intrinsics/random.c: Add reference to paper containing algorithm.
3557         (random_seed): Extra error checking and proper handling of arrays.
3558         (arandom_r4, arandom_r8): Implement.
3559
3560 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
3561
3562         PR fortran/12703
3563         * runtime/memory.c (allocate_size): Allow allocation
3564         of zero-sized objects.
3565
3566 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
3567
3568         PR fortran/12701
3569         * open.c (new_unit): Open without a file name opens
3570         a file with name fort.<unit>.
3571
3572 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
3573
3574         * intrinsics/cshift0.c: New file.
3575         * m4/cshift1.m4: New file
3576         * generated/cshift*.c: New files.
3577         * Makefile.am: Add them.
3578         * Makefile.in: Regenerate.
3579
3580 2003-10-12  XiaoQiang Zhang  <zhangapache@yahoo.com>
3581
3582         * io/list_read.c (read_character): Remove unwanted call to free_saved.
3583
3584 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
3585
3586         * intrinsics/string_intrinsics.c (string_trim): New function.
3587         (string_repeat): New function.
3588
3589 2003-10-11  Paul Brook  <paul@nowt.org>
3590
3591         * intrinsics/dprod_r8.f90: New file.
3592         * Makefile.am (gfor_specific_src): Add it.
3593         (gfor_built_specific_src): Rename from gfor_build_specific_c.
3594         Add new intrinsics.
3595         (gfor_specific2_src): Rename from gfor_built_specific2_c.
3596         Add new intrinsics.
3597         * Makefile.in: Regenerate.
3598         * generated/_aint_*.f90: New files.
3599         * generated/_anint*.f90: New files.
3600         * generated/_atan2*.f90: New files.
3601         * generated/_mod*.f90: New files.
3602
3603 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3604
3605         * intrinsics/selected_kind.f90: New file.
3606         * Makefile.am: Add it.
3607         * Makefile.in: regenerate.
3608
3609 2003-09-19  Lars Segerlund  <Lars.Segerlund@comsys.se>
3610         Paul Brook  <paul@nowt.org>
3611
3612         * intrinsics/random.c: New file.
3613         * Makefile.am (gfor_hemper_src): Add it.
3614         (gfor_specific_c): Fix typo.
3615
3616 2003-09-19  Paul Brook  <paul@nowt.org>
3617
3618         * All: rename g95->gfc.
3619
3620 2003-09-18  XiaoQiang Zhang  <zhangapache@yahoo.com>
3621
3622         * io/write.c (output_float): Fix bug of FMT_E, Add comments.
3623
3624 2003-09-09  XiaoQiang Zhang  <zhangapache@yahoo.com>
3625
3626         * io/write.c (write_float): Dectection of positive infinite number,
3627         Not a Number(NaN) and negative infinite number.
3628         (ioutput_float): Bug fix for FMT_E and FMT_D processing to
3629         output a very_very small number ( < 0.1e-100 ).
3630
3631 2003-09-07  XiaoQiang Zhang  <zhangapache@yahoo.com>
3632
3633         * libgfortran.h (xtoa, itoa): Parameter modified.
3634         * io/io.h (namelist_info): Declaration to support namelist I/O
3635         (st_parameter): Add namelist related component
3636         (ionml, empty_internal_buffer, st_set_nml_var_int,
3637         st_set_nml_var_float, st_set_nml_var_char, st_set_nml_var_complex,
3638         st_set_nml_var_log): Declaration
3639         (set_integer, set_integer): Parameter changed
3640         * io/format.c (free_nodes): Fix annoying bug of lefting "deallocated"
3641          fnodes
3642         (parse_format_list): Fix bug about FMT_SLASH
3643         * io/list_read.c (push_char): Totally clear old saved_string, zeroize
3644         newly allocated saved_string
3645         (next_char): Add detection of End_Of_Line support
3646         (convert_integer): Now can process 64 bits interger
3647         (read_real): Bug fixed
3648         (init_at_eol, find_nml_node, match_namelist_name): Add new functions
3649         (match_namelist_name): New implemention
3650         * io/lock.c (ionml): New global variable
3651         (library_end): Free memory in ionml
3652         * io/open.c (st_open): Variable initializtion
3653         * io/read.c (max_value): 64 bits interger support
3654         (convert_precsion_real): New procedure to replace "strtod" with more
3655          features
3656         (read_f, read_radix): Input bug fix
3657         * io/transfer.c: (sf_seen_eor): New static variable
3658         (read_sf): Zeroize base buffer; fix bugs: single read statement can
3659         not get input in mutli line when read from stdin
3660         (formatted_transfer): Fix bug of FMT_O, FMT_B, FMT_Z for INTEGER type
3661          request
3662         (data_transfer_init): Clear internal buffer for Internel File I/O.
3663         Internal File now worked. Detect some error condition for namelist.
3664         Some minor bug fix
3665         (next_record_w): Internal file and Namelist I/O support.
3666         (st_set_nml_var, st_set_nml_var_float, st_set_nml_var_char,
3667         st_set_nml_var_complex, st_set_nml_var_log): Implemention.
3668         * io/unit.c (implicit_unit): Deletion
3669         (get_unit): Now cannot open a unit implicitly.
3670         * io/unix.c (mmap_alloc): Fix fatal error in calculating the length of
3671         mapped buffer.
3672         (mem_alloc_r_at): Internal file I/O support added
3673         (empty_internal_buffer): New function
3674         * io/write.c (extract_int): Support 64 bits interger processing
3675         (output_float): Varibale initialization
3676         (write_float): Infinite real number detection.
3677         (write_int): 64 bits integer I/O support
3678         (write_decimal): New function to output decimal number
3679         (otoa, btoa): Better implemention and 64 bits interger support
3680         (namelist_write): New function
3681         * runtime/error.c (itoa, xtoa): Better implemention and 64 bits
3682         interger support
3683
3684 2003-08-15  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3685
3686         * libgfortran.h (os_error, runtime_error,internal_error, sys_exit,
3687         get_mem ): Add attribute.
3688         * intrinsics/spread_generic.c (__spread): Fix spelling.
3689         * io/inquire.c (inquire_via_filename): Add const.
3690         * io/io.h (sys_exit): Add attribute.
3691         * io/io.h (move_pos_offset): Add move_pos_offset.
3692         * io/io.h (compare_file_filename, inquire_sequential, inquire_direct,
3693         inquire_formatted, inquire_unformatted, inquire_read, inquire_write,
3694         inquire_readwrite, convert_real, write_a, write_b, write_d, write_e,
3695         write_en, write_es, write_f, write_i, write_l, write_o, write_x,
3696         write_z): Add const.
3697         * io/read.c (convert_real): Add const.
3698         * io/transfer.c (type_name): Add const.
3699         * io/unix.c (unpack_filename, compare_file_filename,inquire_sequential,
3700         inquire_direct, inquire_formatted, inquire_unformatted, inquire_access,
3701         inquire_read, inquire_write, inquire_readwrite): Add const.
3702         * io/write.c (output_float): Remove unused variable.
3703         * io/write.c (write_a, extract_int, extract_real, output_float,
3704         write_float, write_int, write_i, write_b, write_o, write_z, write_d,
3705         write_e, write_f, write_en, write_es, write_logical, write_integer,
3706         write_character, write_real, write_complex): Add const.
3707         * runtime/error.c (rtoa): Remove unused variable.
3708         * runtime/select.c (select_string): Add const.
3709         * runtime/stop.c (stop_string): Add const.
3710
3711 2003-08-10  Paul Brook  <paul@nowt.org>
3712
3713         * Makefile.am (gfor_helper_src): Add intrinsics/abort.c.
3714         (FFLAGS): Add -fno-underscoring.
3715         * Makefile.in: Regenerate.
3716         * intrinsics/abort.c: New file.
3717
3718 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
3719
3720         * fmain.c (main): Do not call init and cleanup; call set_args instead.
3721         * libgfortran.h (init, cleanup): Remove declarations.
3722         (set_args): Add declaration.
3723         * runtime/main.c (init, cleanup): Make them static, and give them
3724         the constructor and destructor attributes.
3725         (set_args): New function.
3726
3727 2003-08-10  Paul Brook  <paul@nowt.org>
3728
3729         * intrinsics/strinf_intrinsics.c (compare_string): Return value based
3730         on which string is longest.
3731
3732 2003-08-10  Paul Brook  <paul@nowt.org>
3733
3734         * Makefile.am (EXTRA_DIST): Remove old files.
3735         * Makefile.in: Regenerate.
3736
3737 2003-07-26  Paul Brook  <paul@nowt.org>
3738
3739         Rename library to libgfortran.
3740         * libgfortran.h: Change prefix to _libgfortran_.
3741
3742 2003-07-24  Paul Brook  <paul@nowt.org>
3743
3744         * configure.in: Don't pull in system libtool.  Use toplevel
3745         auxiliary files.
3746
3747 2003-07-22  Paul Brook  <paul@nowt.org>
3748
3749         Regenerate all configury files.
3750
3751 2003-07-09  Chun Huang  <compiler@sohu.com>
3752
3753         * intrinsics/string_intrinsic.c (string_scan): New function.
3754         (string_verify): New function.
3755
3756 2003-06-25  Paul Brook  <paul@nowt.org>
3757
3758         * io/unix.c (mem_alloc_r_at, mem_alloc_w_at): Advance logical_offset.
3759         (mem_seek): Don't bother setting physical_offset.
3760
3761 2003-06-20  Paul Brook  <paul@nowt.org>
3762
3763         * libgfor.h (stop_numeric): Declare.
3764         * runtime/pause.c: New file.
3765         * Makefile.am: Add it.
3766
3767 2003-06-08  Paul Brook  <paul@nowt.org>
3768
3769         * m4/cexp.m4 (cabs): Use correct typed version.
3770         (csqrt): New function.
3771
3772 2003-06-07  Canqun Yang  <canqun@yahoo.com.cn>
3773
3774         Spotted by Benjamin and Tobias:
3775         * io/list_read.c: Add Separator '\t'.
3776         (parse_real, read_real): Accept real values starting with an optional
3777         sign follows a decimal point.
3778
3779 2003-06-06  Steven Bosscher  <steven@gcc.gnu.org>
3780
3781         * Makefile.am: Don't put cmath objects in subdir.
3782         * configure.in: Rename MATHOBJ to MATH_OBJ.
3783
3784 2003-06-02  Kejia Zhao  <Kejia_zh@yahoo.com.cn>
3785
3786         * intrinsics/associated.c: New file.
3787         * Makefile.am: Add it. Regenerate Makefile.in.
3788         * libgfor.h: Define g95_array_void, G95_DESCRIPTOR_DATA, and
3789         G95_DESCRIPTOR_DTYPE.
3790
3791 2003-06-01  Canqun Yang  <canqun@yahoo.com.cn>
3792
3793         * io/write.c (calcuate_exp): Rewrite it to avoid overflow.
3794         (calculate_G_format): Rewrite it to eliminate an infinte loop and set
3795         the scale_factor to 0 for F editing.
3796
3797 2003-05-11  Tobias Schlter  <innenminister@gmx.de>
3798
3799         * libgfor.h: Only include stdint.h if it exists.
3800
3801 2003-05-07  Paul Brook  <paul@nowt.org>
3802
3803         * libgfor.h: Use stdint.h types.
3804         * intrinsics/ishift.c: Ditto.
3805         * runtime/memory.c (malloc_t): Reorder fields for better alignment.
3806
3807 2003-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3808
3809         * libgfor.h (offsetof): Define if nobody else does.
3810         * runtime/memory.c (HEADER_SIZE): Use it.
3811
3812 2003-05-01  Tobias Schlter  <innenminister@gmx.de>
3813
3814         * configure.in: Require autoconf 2.54.
3815
3816 2003-04-28  Tobias Schlter  <innenminister@gmx.de>
3817         Paul Brook  <paul@nowt.org>
3818
3819         * intrinsics/reshape_generic.c: Copy the whole element, not just the
3820         first byte.
3821         * m4/transpose.m4: New file.
3822         * Makefile.am: Add them.
3823         Regenerate generated files.
3824
3825 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
3826
3827         * io/format.c (parse_format_list): Allow 'X' without integer
3828         prefix.  This is an extension.  Interpretation is '1X'.
3829
3830 2003-04-18  Tobias Schlter  <Tobias.Schlueter@physik.uni-muenchen.de>
3831
3832         * io/format.c (parse_format_list): Allow '0P'.
3833
3834 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
3835
3836         * Makefile.in: Re-regenerate for automake 1.7.3.
3837
3838 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
3839
3840         Port implementation for CHARACTER SELECT from Andy's tree.
3841         * runtime/select.c: New file
3842         * Makefile.am: Add it.
3843         * Makefile.in: Regenerate.
3844
3845 2003-04-17  Xiaoqiang Zhang <zhangapache@yahoo.com>
3846
3847         * io/transfer.c (formatted_transfer): Modified
3848         * io/unix.c (move_pos_offset): New Function.
3849         * io/format.c (parse_format_list): Modified.
3850
3851 2003-04-15  Xiaoqiang Zhang <zhangapache@yahoo.com>
3852
3853         * io/write.c (write_float,write_real): New implemention of
3854         FMT_G and default float editing.
3855         (calculate_exp,calculate_G_format,output_float): New Function.
3856         (write_float,write_real,write_logical): Modified
3857         * libgfor.h (default_rtoa): Remove Declaration.
3858         * runtime/error.c (default_rtoa): Remove Function.
3859
3860 2003-04-15  Steven Bosscher  <steven@gcc.gnu.org>
3861
3862         Spotted by Yang:
3863         * io/write.c (extract_real): Add missing break statement.
3864
3865 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
3866
3867         * cpu_time.c: Make sure we have a definition of HZ.  Don't
3868         rely on CLOCKS_PER_SEC, it is always 1000000, on any system.
3869
3870 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
3871             Paul Brook  <paul@nowt.org>
3872
3873         * configure.in: Check for process time headers and GETTIMEOFDAY.
3874         * makefile.am: Add intrinsics/cpu_time.c.
3875         * acinclude.m4: New file.
3876         * intrinsics/cpu_time.c: New file.
3877         * m4/dotprodl.m4: Fix typo.
3878         Regenerate generated files.
3879
3880 2003-04-11  Xiaoqiang Zhang <zhangapache@yahoo.com>
3881
3882         * io/write.c (extract_real): Ouput floating point value.
3883         (write_float): New Function.
3884         (write_e, write_f, write_en, write_es): Modified
3885         * io/transfer.c (formatted_transfer): Modified.
3886         * libgfor.h (default_rtoa): Declaration.
3887         (rtoa): Declaration.
3888         * runtime/error.c (default_rtoa): New Function.
3889         (rtoa): New Function.
3890
3891 2003-04-05  Paul Brook  <paul@nowt.org>
3892
3893         * intrinsics/spread_generic.c: New file.
3894         * Makefile.am: Add it. Regenerate Makefile.in.
3895
3896 2003-03-29  Paul Brook  <paul@nowt.org>
3897
3898         * intrinsics/pack_generic.c: New file.
3899         * intrinsics/unpack_generic.c: New file.
3900         * Makefile.am: Add them. Regenerate Makefile.in.
3901
3902 2003-03-25  Paul Brook  <paul@nowt.org>
3903
3904         * intrinsics/eoshift0.c: New file.
3905         * intrinsics/eoshift2.c: New file.
3906         * m4/eoshift1.m4: New file.
3907         * m4/eoshift3.m4: New file.
3908         * Makefile.am: Add them.
3909         * in_unpack_generic.c: Initialize src.
3910         Regenerate generated files.
3911
3912 2003-03-14  Paul Brook  <paul@nowt.org>
3913
3914         * m4/shape.m4: Work properly with array temporaries.
3915         * m4/in_pack.m4: Skip redundant checks for array temporaries.
3916         * runtime/in_pack_generic.c: Ditto.
3917
3918 2003-03-12  Paul Brook  <paul@nowt.org>
3919
3920         * m4/shape.m4: Work properly with noncontiguous arrays.
3921
3922 2003-03-08  Paul Brook  <paul@nowt.org>
3923
3924         * m4/in_pack.m4: Correctly handle zero sized and assumed size arrays.
3925         * runtime/in_pack_generic.c: Ditto.
3926
3927 2003-02-08  Paul Brook  <paul@nowt.org>
3928
3929         * intrinsics/reshape_generic.c: Use runtime_error to report errors.
3930         * io/close.c (st_close): Return void.
3931         * io/open.c (st_open): Return void.
3932         * libgfor.h (g95_array_char): Declare.
3933         (internal_malloc_size): Ditto.
3934         (internal_pack*, internal_unpack*): Ditto.
3935         * m4/in_pack.m4: Allocate storage if neccessary.  Fix logic for packed
3936         arrays.
3937         * m4/in_unpack.m4: Include file fixes.
3938         * m4/reshape.m4: Increment the correct source pointer.
3939         * Makefile.am (maxloc): Fix typo.
3940         * runtime/in_pack_generic.c: Call optimized functions. Allocate
3941         storage if neccessary. Fix logic for packed arrays.
3942         * runtime/in_unpack_generic.c: Call optimized functions.
3943         * runtime/main.c: Use runtime_error to report errors.
3944         * memory.c (internal_malloc_size): Make non-static.
3945
3946 2003-02-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3947
3948         * reshape_packed.c, lock.c: Add #include <string.h>.
3949         * libgfor.h, format.c, inquire.c, io.h, transfer.c, unix.c,
3950         environ.c, error.c, memory.c, string.c: Add const.
3951         * error.c (show_locus): Add void.
3952
3953 2003-02-21  Paul Brook  <paul@nowt.org>
3954
3955         * m4/in_pack.m4: Avoid returning const * parameter.
3956         * Makefile.am: Only regenerate files in maintainer mode.
3957
3958 2003-02-20  Paul Brook  <paul@nowt.org>
3959
3960         Add array repacking support functions.
3961         * m4/in_pack.m4, m4/in_unpack.m4: New files.
3962         * runtime/in_pack_generic.c, runtime/in_unpack_generic.c: New files.
3963         * Makefile.am: Build them.  Regenerate configury files.
3964         * generated/: New directory for generated files (need to move
3965         everything else there).
3966
3967 2003-02-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3968
3969         * m4/cexp.m4: Fix typo.
3970
3971 2003-01-26  Paul Brook  <paul@nowt.org>
3972
3973         * intrinsics/: Add missing generated files.
3974
3975 2003-01-26  Paul Brook  <paul@nowt.org>
3976
3977         * Makefile.am: Put -I before the filename.
3978
3979 2003-01-24  Paul Brook  <paul@nowt.org>
3980
3981         * configure.in: Add AM_MAINTAINER_MODE.
3982
3983 2003-01-23  Paul Brook  <paul@nowt.org>
3984
3985         * configure.in, Makefile.am: Modify to work with unmodified autoconf
3986         and auotmake.
3987         Also regenerate other configury files.
3988
3989 2003-01-21  Paul Brook  <paul@nowt.org>
3990
3991         * io/read.c: Don't use stdint.h, it doesn't exist on cygwin.
3992
3993 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3994
3995         * io/read.c (read_f): Don't use alloca, but safe get_mem instead.
3996         Don't include "alloca.h".
3997
3998 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3999
4000         * intrinsics/string.c: Rename to intrinsics/string_intrinsics.c.
4001         * Makefile.am: Adjust file name.
4002         * Makefile.in: Regenerate.
4003         * gfortypes.h: Kill, include everything in...
4004         * libgfor.h: ...here.  Include config.h
4005         * fmain.c, intrinsics/ishftc.c, intrinsic/reshape_generic.c,
4006         intrinsics/reshape_i4.c, intrinsics/reshape_i8.c,
4007         intrinsics/reshape_packed.c, intrinsics/size.c,
4008         m4/reshape.m4, runtime/main.c, runtime/memory.c: Use macro
4009         for prefix for all functions instead of hardcoded.
4010
4011 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4012
4013         * io/lock.c (library_end): Propagate library return
4014         code.
4015
4016 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4017
4018         Port fixes from Andy's tree:
4019         * io/read.c (read_decimal): Reverse sense of overflow
4020         comparison during integer reads.
4021         * io/format.c (revert): Fix comment.
4022         (next_format): Fix format revision.
4023         * io/unix.c: Fix and simplify mmap version of stream
4024         functions.
4025
4026 2003-01-11  Paul Brook  <paul@nowt.org>
4027
4028         * configure, Makefile.in: Regenerate.
4029
4030 2003-01-11  Paul Brook  <paul@nowt.org>
4031
4032         * runtime/stop.c: Rewrite.
4033
4034 2003-01-08  Paul Brook  <paul@nowt.org>
4035
4036         * configure, Makefile.in: Regenerate.
4037
4038 2003-01-05  Paul Brook  <paul@nowt.org>
4039
4040         * (*.m4) Move to m4/.
4041         * intrinsics/string.c (_gfor_string_index): New Function.
4042
4043 2002-12-29  Paul Brook  <paul@nowt.org>
4044
4045         * intrinsics/reshape.*: New files.
4046         * gcc_config.patch: Update to new GCC configure system.
4047
4048 2002-10-10  Paul Brook  <paul@nowt.org>
4049
4050         * intrinsics/size.c: New file.
4051         * intrinsics/shape.m4: New file.
4052         * Makefile.am: Add above files.
4053
4054 2002-10-02  Paul Brook  <paul@nowt.org>
4055
4056         * fmain.c (main): Move here.
4057         * libgfor.c: From here.
4058         * libgfor.h (gfor_init, gfor_runtime_cleanup): Declare.
4059         * Makefile.am: Build libgforbegin.
4060         * gcc_config.patch: Remove stray -march=athlon.
4061         * dotprodl.m4: Fix use of L8_TO_L4 macro.
4062         * ifunction.m4: Move variable declarations to allow compilation with
4063         gcc < 3.0
4064         * specific.m4, specific4.m4: Fix typo typecode->type_code.
4065         * README: Document use of patch -p1.
4066
4067 2002-09-12  Paul Brook  <paul@nowt.org>
4068
4069         * math/*: Add complex math library functions.
4070         * intrinsics/specific(2).m4: Generate Specific intrinsic functions.
4071         * Makefile.am: Add details for above.
4072         * configure.in: Use AC_PROG_F95.  Test for the presence of csin.
4073
4074 2002-09-09  Paul Brook  <paul@nowt.org>
4075
4076         * libgfor.c (determine_endianness): Use an array rather than a struct.
4077         * intrinsics/dotprod*, matmul*: Implement DOT_PRODUCT and MATMUL.
4078
4079 2002-09-09  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4080
4081         * libgfor.c: Add fatal signal handler.
4082         Romove superfluous abort() calls.
4083
4084 2002-09-07  Paul Brook <paul@nowt.org>
4085
4086         * Makefile.am, intrinsics: Major rewrite.
4087
4088 2002-09-02  Paul Brook <paul@nowt.org>
4089
4090         * Makefile.am: Added -I$(srcdir) to m4 rule.
4091
4092 2002-08-30  Paul Brook <paul@nowt.org>
4093
4094         * io/*: Integrated libgforio.
4095         * Makefile.am, configure.in: Make compatable with GCC. Build code for
4096         intrinsics in the intrisics directory.
4097         * intrinsics/intrinsics.m4: Move here. Strip directories from the
4098         filename. Add 'and' and 'all' intrinsics.
4099
4100 2002-08-17  Paul Brook <paul@nowt.org>
4101
4102         * ALL: First release as more than just a single file