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