OSDN Git Service

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