OSDN Git Service

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