OSDN Git Service

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