OSDN Git Service

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