OSDN Git Service

2006-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2006-12-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2
3         PR libgfortran/30014
4         *io/io.h (st_parameter_dt): Change *size and *iolength type to
5         GFC_IO_INT.
6         *io/transfer.c (finalize_transfer): Cast dtp->u.p.size_used to
7         GFC_IO_INT.  (iolength_transfer): Cast size * nelems to GFC_IO_INT.
8
9 2006-12-17  Tobias Burnus  <burnus@net-b.de>
10
11         * intrinsics/associated.c: Check for associated(NULL,NULL).
12
13 2006-12-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
14
15         PR libfortran/30145
16         * io/transfer.c (transfer_array):  Check for negative extent.
17
18 2006-12-13  Richard Guenther  <rguenther@suse.de>
19
20         PR fortran/30115
21         * runtime/memory.c (allocate_size): Change interface to
22         void *()(size_t, GFC_INTEGER_4 *).
23         (allocate): Likewise.
24         (allocate64): Likewise.
25         (allocate_array): Change interface to
26         void *()(void *, size_t, GFC_INTEGER_4 *).
27         (allocate64_array): Likewise.
28         (deallocate): Change interface to
29         void ()(void *, GFC_INTEGER_4 *).
30
31 2006-12-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
32
33         PR libfortran/29810
34         * intrinsics/c99_functions.c (fmodf, fmodl, floorl): New functions.
35         * c99_protos.h (fmodf, fmodl, floorl): New prototypes.
36         * configure.ac: Check for fmodf, fmod and fmodl.
37         * configure: Regenerate.
38         * config.h.in: Regenerate.
39
40 2006-12-06  Thomas Koenig  <Thomas.Koenig@online.de>
41
42         PR libfortran/30009
43         PR libfortran/30056
44         * libgfortran.h:  Add ERROR_CORRUPT_FILE to error_codes.
45         * runtime/error.c (translate_error):  Add handling for
46         ERROR_CORRUPT_FILE.
47         * io/transfer.c (read_block_direct):  Add comment about
48         EOR for stream files.
49         Remove test for no bytes left for direct access files.
50         Generate an ERROR_SHORT_RECORD if the read was short.
51         For unformatted sequential files:  Check endfile condition.
52         Remove test for no bytes left.  End of file here means
53         that the file structure has been corrupted.  Pre-position
54         the file for the next record in case of error.
55         (write_buf):  Whitespace fix.  Subtract the number of bytes
56         written from bytes_left.
57
58 2006-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
59
60         PR libfortran/30005
61         * io/open.c: Add errno.h include.
62         (new_unit): Add new error messages with file name for file open.
63
64 2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>
65
66         PR libfortran/29568
67         * libgfortran/libgfortran.h (compile_options_t):  Add
68         record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
69         * runtime/compile_options.c (set_record_marker):  Change
70         default to four-byte record marker.
71         (set_max_subrecord_length):  New function.
72         * runtime/error.c (translate_error):  Change error message
73         for short record on unformatted read.
74         * io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
75         and continued.
76         * io/file_pos.c (unformatted_backspace):  Change default of record
77         marker size to four bytes.  Loop over subrecords.
78         * io/open.c:  Default recl is max_offset.  If
79         compile_options.max_subrecord_length has been set, set set
80         u->recl_subrecord to its value, to the maximum value otherwise.
81         * io/transfer.c (top level):  Add prototypes for us_read, us_write,
82         next_record_r_unf and next_record_w_unf.
83         (read_block_direct):  Separate codepaths for unformatted direct
84         and unformatted sequential.  If a recl has been set by the
85         user, use the number of bytes left for the record if it is smaller
86         than the read request.  Loop over subrecords.  Set an error if the
87         user has set a recl and the read was short.
88         (write_buf):  Separate codepaths for unformatted direct and
89         unformatted sequential. If a recl has been set by the
90         user, use the number of bytes left for the record if it is smaller
91         than the read request.  Loop over subrecords.  Set an error if the
92         user has set a recl and the read was short.
93         (us_read):  Add parameter continued (to indicate that bytes_left
94         should not be intialized).  Change default of record marker size
95         to four bytes. Use subrecord.  If the subrecord length is smaller than
96         zero, this indicates a continuation.
97         (us_write):  Add parameter continued (to indicate that the continued
98         flag should be set).  Use subrecord.
99         (pre_position):  Use 0 for continued on us_write and us_read calls.
100         (skip_record):  New function.
101         (next_record_r_unf):  New function.
102         (next_record_r):  Use next_record_r_unf.
103         (write_us_marker):  Default size for record markers is four bytes.
104         (next_record_w_unf):  New function.
105         (next_record_w):  Use next_record_w_unf.
106
107 2006-11-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
108
109         * Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c.
110         * Makefile.in: Regenerate.
111         * intrinsics/erf.c: Remove.
112         * intrinsics/bessel.c: Remove.
113         * c99_protos.h: Add prototypes for bessel and error functions.
114         * intrinsics/c99_functions.c: Move content for intrinsics/erf.c
115         and intrinsics/bessel.c here.
116
117 2006-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
118
119         * io/io.h (unit_flags): Add new flag has_recl.
120         * io.open.c (new_unit): Set flag if RECL= was specified.
121         * io/transfer.c (us_write): If flag set, leave recl as initialized by
122         new_unit.
123
124 2006-11-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
125
126         * io/open.c (new_unit): Format %d expects an int variable.
127         * runtime/error.c (show_locus): Format %d expects an int variable.
128
129 2006-11-08  Steven G. Kargl <kargl@gcc.gnu.org>
130
131         * io/read.c (max_value): Hide "int n" in an #ifdef.
132
133 2006-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
134
135         PR libgfortran/29752
136         * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO.
137
138 2006-11-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
139
140         * io/transfer.c (next_record_w): Fix indentation.
141
142 2006-11-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
143
144         PR libgfortran/25545
145         * io/transfer.c (write_block): Cleanup code paths between
146         stream and non-stream I/O.
147         (write_buf):  Cleanup.
148         (read_block): Cleanup.
149         (finalize_transfer): Call next_record for '$' edit descriptor handling
150         of internal unit. Cleanup code for readability.
151
152 2006-11-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
153
154         PR libfortran/27895
155         * intrinsics/reshape_generic.c (reshape_internal): Fix so that it
156         works correctly for zero-sized arrays.
157         * m4/reshape.m4: Likewise.
158         * generated/reshape_r16.c: Regenerate.
159         * generated/reshape_c4.c: Regenerate.
160         * generated/reshape_i4.c: Regenerate.
161         * generated/reshape_c16.c: Regenerate.
162         * generated/reshape_r10.c: Regenerate.
163         * generated/reshape_r8.c: Regenerate.
164         * generated/reshape_c10.c: Regenerate.
165         * generated/reshape_c8.c: Regenerate.
166         * generated/reshape_i8.c: Regenerate.
167         * generated/reshape_i16.c: Regenerate.
168         * generated/reshape_r4.c: Regenerate.
169
170 2006-10-31  Thomas Koenig  <Thomas.Koenig@online.de>
171
172         PR libfortran/29627
173         * libgfortran.h: Add ERROR_SHORT_RECORD
174         * runtime/error.c (translate_error): Add case
175         for ERROR_SHORT_RECORD.
176         * io/transfer.c (read_block_direct):  Separate codepaths
177         for stream and record unformatted I/O.  Remove unneeded
178         tests for standard input, padding and formatted I/O.
179         If the record is short, read in as much data as possible,
180         then raise the error.
181
182 2006-10-30  Tobias Burnus  <burnus@net-b.de>
183
184         PR fortran/29452
185         * runtime/string.c (compare0): Check whether string lengths match.
186
187 2006-10-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
188
189         * configure: Regenerate.
190         * Makefile.in: Regenerate.
191         * aclocal.m4: Regenerate.
192
193 2006-10-28  Tobias Burnus <burnus@net-b.de>
194
195         PR fortran/29625
196         * io/transfer.c (formatted_transfer_scalar): Allow binary edit
197           descriptors for real variables; give error for BOZ edit
198           descriptor for non-integers when using -std=f*.
199
200 2006-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
201
202         PR libgfortran/29563
203         * io/list_read.c (next_char): Fix an error in previous commit.
204
205 2006-10-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
206
207         PR libgfortran/29563
208         * io/io.h (st_parameter_dt): Add new flag at_eof.
209         * io/list_read.c (next_char): Set flag when EOF and return '\n' to
210         signal EOR.  Check flag on next call and jump out.
211         * io/unit.c (get_internal_unit): Initialize new flag.
212
213 2006-10-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
214
215         PR fortran/26025
216         * m4/matmul.m4: Add possible call to gemm routine.
217         * generated/matmul_r8.c: Regenerate.
218         * generated/matmul_r16.c: Regenerate.
219         * generated/matmul_c8.c: Regenerate.
220         * generated/matmul_i8.c: Regenerate.
221         * generated/matmul_c16.c: Regenerate.
222         * generated/matmul_r10.c: Regenerate.
223         * generated/matmul_r4.c: Regenerate.
224         * generated/matmul_c10.c: Regenerate.
225         * generated/matmul_c4.c: Regenerate.
226         * generated/matmul_i4.c: Regenerate.
227         * generated/matmul_i16.c: Regenerate.
228
229 2006-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
230
231         * runtime/error.c: Add errno.h
232         (generate_error): Set iostat to errno on OS error.
233         * libgfortran.h: Set ERROR_OS to 5000
234
235 2006-10-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
236
237         * generated/minval_r8.c: Regenerate.
238         * generated/maxloc1_4_r8.c: Regenerate.
239         * generated/minloc1_16_r16.c: Regenerate.
240         * generated/sum_i8.c: Regenerate.
241         * generated/eoshift3_4.c: Regenerate.
242         * generated/any_l16.c: Regenerate.
243         * generated/eoshift1_8.c: Regenerate.
244         * generated/reshape_r16.c: Regenerate.
245         * generated/product_r4.c: Regenerate.
246         * generated/maxloc1_8_i4.c: Regenerate.
247         * generated/maxloc0_4_r4.c: Regenerate.
248         * generated/in_unpack_i8.c: Regenerate.
249         * generated/minloc0_4_r16.c: Regenerate.
250         * generated/reshape_c4.c: Regenerate.
251         * generated/maxloc0_4_r16.c: Regenerate.
252         * generated/minloc1_8_r16.c: Regenerate.
253         * generated/maxloc1_8_r16.c: Regenerate.
254         * generated/in_unpack_i16.c: Regenerate.
255         * generated/maxloc0_8_i8.c: Regenerate.
256         * generated/sum_r16.c: Regenerate.
257         * generated/minloc1_4_r8.c: Regenerate.
258         * generated/maxloc1_16_r16.c: Regenerate.
259         * generated/minloc1_16_i4.c: Regenerate.
260         * generated/maxloc1_16_i4.c: Regenerate.
261         * generated/minloc0_16_i8.c: Regenerate.
262         * generated/maxloc0_16_i8.c: Regenerate.
263         * generated/maxval_r16.c: Regenerate.
264         * generated/count_16_l16.c: Regenerate.
265         * generated/count_8_l8.c: Regenerate.
266         * generated/product_c10.c: Regenerate.
267         * generated/minloc1_8_i4.c: Regenerate.
268         * generated/minloc0_16_i16.c: Regenerate.
269         * generated/eoshift1_16.c: Regenerate.
270         * generated/minloc0_4_r4.c: Regenerate.
271         * generated/product_c4.c: Regenerate.
272         * generated/sum_r4.c: Regenerate.
273         * generated/in_pack_c16.c: Regenerate.
274         * generated/reshape_i4.c: Regenerate.
275         * generated/minloc0_8_i8.c: Regenerate.
276         * generated/minloc1_16_r10.c: Regenerate.
277         * generated/in_pack_c4.c: Regenerate.
278         * generated/all_l16.c: Regenerate.
279         * generated/reshape_c16.c: Regenerate.
280         * generated/maxloc1_8_r8.c: Regenerate.
281         * generated/minval_i16.c: Regenerate.
282         * generated/reshape_r10.c: Regenerate.
283         * generated/maxval_i4.c: Regenerate.
284         * generated/any_l4.c: Regenerate.
285         * generated/minval_i8.c: Regenerate.
286         * generated/maxloc1_4_i8.c: Regenerate.
287         * generated/maxloc0_16_i16.c: Regenerate.
288         * generated/maxloc0_8_r4.c: Regenerate.
289         * generated/minloc1_4_i16.c: Regenerate.
290         * generated/minloc0_4_r10.c: Regenerate.
291         * generated/maxloc1_4_i16.c: Regenerate.
292         * generated/minloc0_8_i16.c: Regenerate.
293         * generated/maxloc0_4_r10.c: Regenerate.
294         * generated/maxloc0_8_i16.c: Regenerate.
295         * generated/minloc1_8_r10.c: Regenerate.
296         * generated/product_i4.c: Regenerate.
297         * generated/minloc0_16_r4.c: Regenerate.
298         * generated/sum_c16.c: Regenerate.
299         * generated/maxloc1_8_r10.c: Regenerate.
300         * generated/maxloc0_16_r4.c: Regenerate.
301         * generated/minloc1_16_r8.c: Regenerate.
302         * generated/maxloc0_4_i4.c: Regenerate.
303         * generated/maxloc1_16_r8.c: Regenerate.
304         * generated/cshift1_4.c: Regenerate.
305         * generated/sum_r10.c: Regenerate.
306         * generated/sum_c4.c: Regenerate.
307         * generated/maxloc1_16_r10.c: Regenerate.
308         * generated/count_4_l16.c: Regenerate.
309         * generated/in_pack_i4.c: Regenerate.
310         * generated/minloc1_8_r8.c: Regenerate.
311         * generated/count_4_l4.c: Regenerate.
312         * generated/maxval_r10.c: Regenerate.
313         * generated/minloc1_4_i8.c: Regenerate.
314         * generated/in_unpack_c4.c: Regenerate.
315         * generated/minloc0_8_r4.c: Regenerate.
316         * generated/product_i16.c: Regenerate.
317         * generated/minloc0_16_r16.c: Regenerate.
318         * generated/reshape_r8.c: Regenerate.
319         * generated/all_l4.c: Regenerate.
320         * generated/in_pack_c10.c: Regenerate.
321         * generated/minloc0_4_i4.c: Regenerate.
322         * generated/reshape_c10.c: Regenerate.
323         * generated/minval_r4.c: Regenerate.
324         * generated/maxloc1_4_r4.c: Regenerate.
325         * generated/sum_i4.c: Regenerate.
326         * generated/count_16_l8.c: Regenerate.
327         * generated/maxval_r8.c: Regenerate.
328         * generated/eoshift1_4.c: Regenerate.
329         * generated/eoshift3_8.c: Regenerate.
330         * generated/minval_r16.c: Regenerate.
331         * generated/product_r8.c: Regenerate.
332         * generated/maxloc1_8_i8.c: Regenerate.
333         * generated/maxloc0_4_r8.c: Regenerate.
334         * generated/maxloc0_16_r16.c: Regenerate.
335         * generated/in_unpack_i4.c: Regenerate.
336         * generated/sum_c10.c: Regenerate.
337         * generated/minloc1_4_r16.c: Regenerate.
338         * generated/maxloc1_4_r16.c: Regenerate.
339         * generated/in_unpack_c16.c: Regenerate.
340         * generated/minloc0_8_r16.c: Regenerate.
341         * generated/reshape_c8.c: Regenerate.
342         * generated/maxloc0_8_r16.c: Regenerate.
343         * generated/maxloc0_8_i4.c: Regenerate.
344         * generated/minloc1_4_r4.c: Regenerate.
345         * generated/minloc0_16_i4.c: Regenerate.
346         * generated/maxloc0_16_i4.c: Regenerate.
347         * generated/minloc1_16_i8.c: Regenerate.
348         * generated/maxloc1_16_i8.c: Regenerate.
349         * generated/count_8_l4.c: Regenerate.
350         * generated/minloc0_16_r10.c: Regenerate.
351         * generated/minloc1_8_i8.c: Regenerate.
352         * generated/minloc0_4_r8.c: Regenerate.
353         * generated/product_r16.c: Regenerate.
354         * generated/product_c8.c: Regenerate.
355         * generated/sum_r8.c: Regenerate.
356         * generated/in_pack_i16.c: Regenerate.
357         * generated/minloc0_8_i4.c: Regenerate.
358         * generated/minloc1_16_i16.c: Regenerate.
359         * generated/reshape_i8.c: Regenerate.
360         * generated/in_pack_c8.c: Regenerate.
361         * generated/maxloc1_8_r4.c: Regenerate.
362         * generated/reshape_i16.c: Regenerate.
363         * generated/minval_r10.c: Regenerate.
364         * generated/minval_i4.c: Regenerate.
365         * generated/maxloc1_4_i4.c: Regenerate.
366         * generated/maxval_i8.c: Regenerate.
367         * generated/eoshift3_16.c: Regenerate.
368         * generated/any_l8.c: Regenerate.
369         * generated/maxloc0_16_r10.c: Regenerate.
370         * generated/minloc0_4_i16.c: Regenerate.
371         * generated/maxloc0_8_r8.c: Regenerate.
372         * generated/maxloc0_4_i16.c: Regenerate.
373         * generated/minloc1_4_r10.c: Regenerate.
374         * generated/minloc1_8_i16.c: Regenerate.
375         * generated/maxloc1_4_r10.c: Regenerate.
376         * generated/minloc0_8_r10.c: Regenerate.
377         * generated/maxloc1_8_i16.c: Regenerate.
378         * generated/in_unpack_c10.c: Regenerate.
379         * generated/maxloc0_8_r10.c: Regenerate.
380         * generated/minloc1_16_r4.c: Regenerate.
381         * generated/maxloc1_16_r4.c: Regenerate.
382         * generated/minloc0_16_r8.c: Regenerate.
383         * generated/product_i8.c: Regenerate.
384         * generated/maxloc0_16_r8.c: Regenerate.
385         * generated/sum_i16.c: Regenerate.
386         * generated/maxloc0_4_i8.c: Regenerate.
387         * generated/cshift1_8.c: Regenerate.
388         * generated/maxloc1_16_i16.c: Regenerate.
389         * generated/minloc1_8_r4.c: Regenerate.
390         * generated/sum_c8.c: Regenerate.
391         * generated/count_8_l16.c: Regenerate.
392         * generated/in_pack_i8.c: Regenerate.
393         * generated/maxval_i16.c: Regenerate.
394         * generated/count_4_l8.c: Regenerate.
395         * generated/minloc1_4_i4.c: Regenerate.
396         * generated/product_c16.c: Regenerate.
397         * generated/reshape_r4.c: Regenerate.
398         * generated/minloc0_8_r8.c: Regenerate.
399         * generated/in_unpack_c8.c: Regenerate.
400         * generated/product_r10.c: Regenerate.
401         * generated/cshift1_16.c: Regenerate.
402         * generated/all_l8.c: Regenerate.
403         * generated/minloc0_4_i8.c: Regenerate.
404         * generated/maxval_r4.c: Regenerate.
405         * generated/count_16_l4.c: Regenerate.
406
407 2006-10-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
408
409         PR libfortran/27895
410         * intrinsics/cshift0.c: Special cases for zero-sized arrays.
411         * intrinsics/pack_generic.c: Likewise.
412         * intrinsics/spread_generic.c: Likewise.
413
414 2006-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
415
416         PR libgfortran/29277
417         * io/write.c (write_a): Add conversion of LF to CR-LF for systems with
418         #define HAVE_CRLF.
419
420 2006-10-18  Tobias Burnus  <burnus@net-b.de>
421
422         * m4/in_pack.m4: Fixed a typo.
423         * m4/iforeach.m4: Fixed a typo.
424         * m4/eoshift1.m4: Fixed a typo.
425         * m4/eoshift3.m4: Fixed a typo.
426         * m4/cshift1.m4: Fixed a typo.
427         * m4/in_unpack.m4: Fixed a typo.
428         * m4/reshape.m4: Fixed a typo.
429         * m4/ifunction.m4: Fixed a typo.
430         * runtime/environ.c: Fixed a typo.
431         * runtime/in_pack_generic.c: Fixed a typo.
432         * runtime/in_unpack_generic.c: Fixed a typo.
433         * runtime/memory.c: Fixed a typo.
434         * intrinsics/cshift0.c: Fixed a typo.
435         * intrinsics/cpu_time.c: Fixed a typo.
436         * intrinsics/pack_generic.c: Fixed a typo.
437         * intrinsics/unpack_generic.c: Fixed a typo.
438         * intrinsics/eoshift0.c: Fixed a typo.
439         * intrinsics/eoshift2.c: Fixed a typo.
440         * intrinsics/reshape_generic.c: Fixed a typo.
441         * io/open.c: Fixed a typo.
442         * io/list_read.c: Fixed a typo.
443         * io/io.h: Fixed a typo.
444         * io/transfer.c: Fixed a typo.
445         * io/write.c: Fixed a typo.
446
447 2006-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
448
449         PR libgfortran/29277
450         * io/list_read.c (next_char): Update strm_pos.
451         (eat_separator): Delete extra call to unget_char.
452         * io/transfer.c (read_block): Use read_sf for formatted stream I/O.
453         (next_record_r): Update strm_pos for formatted stream I/O and handle
454         end-of-record correctly.
455         (next_record_w): Ditto.
456         (next_record): Enable next record (r/w) functions and update strm_pos.
457         (finalize_transfer): Call next_record to finish the record.
458
459 2006-10-13  Steven G. Kargl  <kargl@gcc.gnu.org>
460
461         * m4/spacing.m4: Use scalbn[f,l] if ldexp[f,l] is unavailable.
462         * m4/rrspacing.m4: Ditto.
463         * generated/spacing_r4.c: Regenerated.
464         * generated/spacing_r8.c: Ditto.
465         * generated/spacing_r10.c: Ditto.
466         * generated/spacing_r16.c: Ditto.
467         * generated/rrspacing_r4.c: Ditto.
468         * generated/rrspacing_r8.c: Ditto.
469         * generated/rrspacing_r10.c: Ditto.
470         * generated/rrspacing_r16.c: Ditto.
471
472 2006-10-06  Steven G. Kargl  <kargl@gcc.gnu.org>
473
474         PR fortran/15441
475         PR fortran/29312
476         * configure.ac: Add HAVE_LDEXPF, HAVE_LDEXP, and HAVE_LDEXPL
477         * m4/spacing.m4: New file.  Use new HAVE_* defines.
478         * m4/rrspacing.m4: Ditto.
479         * Makefile.am: Handle new files.
480         * configure: Regenerated.
481         * Makefile.in: Ditto.
482         * config.h.in: Ditto.
483         * generated/spacing_r4.c: Generated.
484         * generated/spacing_r8.c: Ditto.
485         * generated/spacing_r10.c: Ditto.
486         * generated/spacing_r16.c: Ditto.
487         * generated/rrspacing_r4.c: Ditto.
488         * generated/rrspacing_r8.c: Ditto.
489         * generated/rrspacing_r10.c: Ditto.
490         * generated/rrspacing_r16.c: Ditto.
491
492 2006-10-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
493
494         * intrinsics/hyper.c: Remove file.
495         * intrinsics/c99_functions.c: Add fallback functions asinhf,
496         acoshf and atanhf.
497         * Makefile.am: Remove file intrinsics/hyper.c.
498         * Makefile.in: Regenerate.
499
500 2006-10-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
501
502         * c99_protos.h: Correctly protect definitions of prototypes for
503         asinhf, acoshf and atanhf to be the same as in intrinsics/hyper.c.
504
505 2006-10-08  Paul Thomas  <pault@gcc.gnu.org>
506             Erik Edelmann  <edelmann@gcc.gnu.org>
507
508         PR libgfortran/20541
509         * Makefile.in : Add move_alloc.
510         * intrinsics/move_alloc.c: New function.
511         * Makefile.am : Add move_alloc.
512
513 2006-10-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
514
515         PR libfortran/26540
516         * intrinsics/signal.c (signal_sub, signal_sub_int): Use intptr_t
517         if available to cast function pointers to int and back.
518         * configure.ac: Check for intptr_t.
519         * config.h.in: Regenerate.
520         * configure: Regenerate.
521
522 2006-10-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
523
524         PR fortran/16580
525         PR fortran/29288
526         * libgfortran/Makefile.am: Add the new files to the build
527         process, and rules to build them.
528         * libgfortran/Makefile.in: Regenerate.
529         * libgfortran/m4/misc_specifics.m4: New file.
530         * libgfortran/m4/specific.m4: Add new special cases for function
531         with complex argument and real result, like abs_c* and aimag_c*.
532         * libgfortran/intrinsics/f2c_specifics.F90: Add specifics for
533         AIMAG, ASINH, ACOSH and ATANH.
534         * libgfortran/generated/_aimag_c4.F90: New file.
535         * libgfortran/generated/_aimag_c8.F90: New file.
536         * libgfortran/generated/_asinh_r10.F90: New file.
537         * libgfortran/generated/_acosh_r16.F90: New file.
538         * libgfortran/generated/_aimag_c10.F90: New file.
539         * libgfortran/generated/_atanh_r16.F90: New file.
540         * libgfortran/generated/_acosh_r4.F90: New file.
541         * libgfortran/generated/_acosh_r8.F90: New file.
542         * libgfortran/generated/_asinh_r4.F90: New file.
543         * libgfortran/generated/_asinh_r8.F90: New file.
544         * libgfortran/generated/_asinh_r16.F90: New file.
545         * libgfortran/generated/_atanh_r4.F90: New file.
546         * libgfortran/generated/_atanh_r8.F90: New file.
547         * libgfortran/generated/_acosh_r10.F90: New file.
548         * libgfortran/generated/misc_specifics.F90: New file.
549         * libgfortran/generated/_aimag_c16.F90: New file.
550         * libgfortran/generated/_atanh_r10.F90: New file.
551
552 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
553
554         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__
555         from test.
556         * configure: Regenerate.
557
558 2006-10-05  Steven G. Kargl  <kargl@gcc.gnu.org>
559
560         * Makefile.am: Use $(M4) instead of m4.
561         * Makefile.in: Regenerated.
562
563 2006-10-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
564
565         * libgfortran.h: Add prototype for internal_unpack_c16.
566
567 2006-09-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
568
569         PR libfortran/18791
570         * m4/specific.m4: Special-case cabs so that its return type is
571         real. Special-case conjg so that their suffices are _4, _8, _10 and
572         _16 instead of _c4, _c8, _c10 and _c16.
573         * intrinsics/f2c_specifics.F90: Special-case conjg functions so
574         that their suffices are _4 and _8 instead of _c4 and _c8.
575         * generated/_conjg_c4.F90: Regenerate.
576         * generated/_conjg_c8.F90: Regenerate.
577         * generated/_conjg_c10.F90: Regenerate.
578         * generated/_conjg_c16.F90: Regenerate.
579         * generated/_abs_c4.F90: Regenerate.
580         * generated/_abs_c8.F90: Regenerate.
581         * generated/_abs_c10.F90: Regenerate.
582         * generated/_abs_c16.F90: Regenerate.
583
584 2006-09-29  Steven G. Kargl  <kargl@gcc.gnu.org>
585
586         * intrinsics/cpu_time.c:  Add cpu_time_10 and cpu_time_16 routines.
587
588 2006-09-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
589 D
590         * Makefile.am: Install libgfortranbegin inside compiler libraries
591         directory instead of system libraries directory.
592         * Makefile.in: Regenerate.
593
594 2006-09-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
595
596         * Makefile.am: Remove dependency on gfortypes.h.
597         * Makefile.in: Regenerate.
598
599 2006-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
600
601         PR libfortran/27964
602         * configure.ac: Check for setmode() function.
603         * configure: Regenerate.
604         * config.h.in: Regenerate.
605         * io/unix.c (output_stream): Force stdout to binary mode. 
606         (error_stream): Force stderr to binary mode.
607
608 2006-09-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
609
610         PR libgfortran/29099
611         * intrinsics/date_and_time.c (secnds): Fix case of zero time.
612
613 2006-09-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
614
615         PR libgfortran/29053
616         * io.h (gfc_unit): Add variable, strm_pos, to track
617         STREAM I/O file position.
618         * file_pos.c (st_rewind): Set strm_pos to beginning.
619         * open.c (new_unit): Initialize strm_pos.
620         * read.c (read_x): Bump strm_pos.
621         * inquire.c (inquire_via_unit): Return strm_pos value.
622         * transfer.c (read_block),(read_block_direct),(write_block)
623         (write_buf): Seek to strm_pos - 1.  Update strm_pos when done.
624         (pre_position): Initialize strm_pos.
625         (data_transfer_init): Set strm_pos if DT_HAS_REC.
626         (finalize_transfer): Flush file, no need to update strm_pos.
627
628 2006-09-10  Paul Thomas  <pault@gcc.gnu.org>
629
630         PR libfortran/28947
631         * m4/matmul.m4: For the case where the second input argument is
632         transposed, ensure that the case with rank (a) == 1 is
633         correctly calculated.
634         * generated/matmul_r4.c: Regenerate.
635         * generated/matmul_r8.c: Regenerate.
636         * generated/matmul_r10.c: Regenerate.
637         * generated/matmul_r16.c: Regenerate.
638         * generated/matmul_c4.c: Regenerate.
639         * generated/matmul_c8.c: Regenerate.
640         * generated/matmul_c10.c: Regenerate.
641         * generated/matmul_c16.c: Regenerate.
642         * generated/matmul_i4.c: Regenerate.
643         * generated/matmul_i8.c: Regenerate.
644         * generated/matmul_i16.c: Regenerate.
645
646 2006-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
647
648         PR libgfortran/28354
649         * io/write.c: Check for special case of zero precision in format
650         and pre-round the real value.
651
652 2006-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
653
654         PR libgfortran/25828
655         * libgfortran.h: Rename GFC_LARGE_IO_INT to GFC_IO_INT.
656         * io/file_pos.c (st_backspace): Ignore if access=STREAM.
657         (st_rewind): Handle case of access=STREAM.
658         * io/open.c (access_opt): Add STREAM_ACCESS.
659         (edit_modes): Set current_record to zero only if not STREAM.
660         (new_unit): Initialize maxrec, recl, and last_record for STREAM.
661         * io/read.c (read_x): Advance file position for STREAM.
662         * io/io.h (enum unit_access): Align IOPARM flags with frontend.
663         Add ACCESS_STREAM. Add prototype for is_stream_io () function.
664         Use GFC_IO_INT.
665         * io/inquire.c (inquire_via_unit): Add text for access = "STREAM".
666         * io/unit.c (is_stream_io): New function to return true if access =
667         STREAM.
668         * io/transfer.c (file_mode): Add modes for unformatted stream and
669         formatted stream. (current_mode): Return appropriate file mode based
670         on access flags.
671         (read_block): Handle formatted stream reads.
672         (read_block_direct): Handle unformatted stream reads.
673         (write_block): Handle formatted stream writes.
674         (write_buf): Handle unformatted stream writes.
675         (unformatted_read): Fix up, use temporary for size.
676         (pre_position): Position file for STREAM access.
677         (data_transfer_init): Initialize for stream access, skip irrelevent
678         error checks.
679         (next_record_r),(next_record_w), and (next_record): Do nothing for
680         stream I/O.
681         (finalize_transfer): Flush when all done if stream I/O.
682
683 2006-08-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
684
685         * intrinsics/bessel.c: Add prototypes for all functions.
686
687 2006-08-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
688
689         * intrinsics/access.c (access_func): Remove export directive.
690
691 2006-08-02  Thomas Koenig  <Thomas.Koenig@online.de>
692
693         * Makefile.in:  Regenerate using automake 1.9.6.
694         * aclocal.m4:  Revert to previous version.
695
696 2006-08-01  Thomas Koenig  <Thomas.Koenig@online.de>
697
698         PR libfortran/28452
699         * Makefile.am:  Remove normalize.c.
700         * aclocal.m4:  Regenerate using aclocal 1.9.3.
701         * Makefile.in:  Regenerate using automake 1.9.3.
702         * libgfortran.h:  #include <float.h>.
703         Define GFC_REAL_*_DIGITS and GFC_REAL_*_RADIX.
704         Remove prototypes for normalize_r4_i4 and normalize_r8_i8.
705         * intrinsics/random.c (top level): Add prototypes for
706         random_r10, arandom_r10, random_r16 and arandom_r16.
707         (rnumber_4):  New static function.
708         (rnumber_8):  New static function.
709         (rnumber_10): New static function.
710         (rnumber_16): New static function.
711         (top level):  Set to kiss_size to 12 if we have
712         REAL(KIND=16), to 8 otherwise.
713         Define KISS_DEFAULT_SEED_1, KISS_DEFAULT_SEED_2 and
714         KISS_DEFAULT_SEED_3.
715         (kiss_random_kernel):  Take argument to differentiate
716         between different random number generators.
717         (random_r4):  Add argument to call to kiss_random_kernel,
718         use rnumber_*.
719         (random_r8):  Likewise.
720         (random_r10):  New function.
721         (random_r16):  New function.
722         (arandom_r4):  Add argument to call to kiss_random_kernel,
723         use_rnumber_*.
724         (arandom_r8):  Likewise.
725         (arandom_r10):  New function.
726         (arandom_r16):  New function.
727         * intrinsics/rand.c (rand):  Use shift and mask.
728         * runtime/normalize.c:  Remove.
729
730 2006-07-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
731
732         PR libgfortran/28335
733         * file_position.c (st_flush): Add clearer error when UNIT does not
734         exist. Add reference to standard in comment.
735
736 2006-07-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
737
738         PR libgfortran/28335
739         * close.c (st_close): Revert previous patch and add comment.
740         * file_position.c (st_flush): Revert previous patch and add comment.
741
742 2006-07-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
743
744         * intrinsics/date_and_time.c: Add functions for GMTIME and LTIME.
745         * intrinsics/access.c: New file.
746         * intrinsics/chmod.c: New file.
747         * configure.ac: Add checks for <sys/wait.h>, access, fork,execl
748         and wait.
749         * Makefile.am: Add new files intrinsics/access.c and
750         intrinsics/chmod.c.
751         * configure: Regenerate.
752         * config.h.in: Regenerate.
753         * Makefile.in: Regenerate.
754
755 2006-07-30  Janne Blomqvist  <jb@gcc.gnu.org>
756
757         * io/transfer.c (transfer_array): Remove stride0 fix.
758         
759 2006-07-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
760
761         * configure.ac: Check for function clock.
762         * Makefile.am: Compile new file intrinsics/clock.c.
763         * intrinsics/clock.c: New file.
764         * Makefile.in: Regenerate.
765         * configure: Regenerate.
766         * config.h.in: Regenerate.
767         * intrinsics/stat.c: Rename the old stat_i?_sub functions to
768         helper functions stat_i?_sub_0, and use them for both STAT and
769         LSTAT.
770
771 2006-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
772
773         PR libgfortran/28335
774         * close.c (st_close): Add error when UNIT does not exist.
775         * file_position.c (st_flush): Add error when UNIT does not exist.
776
777 2006-07-25  Paolo Bonzini  <bonzini@gnu.org>
778
779         PR build/26188
780         * configure: Regenerate.
781
782 2006-07-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
783
784         PR libgfortran/25289
785         * libgfortran.h: Add conditional definition of GFC_LARGE_IO_INT type.
786         * io/io.h (st_parameter_dt): Define rec as type GFC_LARGE_IO_INT.
787
788 2006-07-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
789
790         PR libgfortran/28339
791         * io/transfer.c (next_record_w): Use next_array_record result to set
792         END_FILE. (write_block): Test for END_FILE before the next write occurs.
793         * io/unit.c (get_internal_unit): Initialize iunit->endfile for internal
794         unit.
795
796 2006-07-19  Janne Blomqvist  <jb@gcc.gnu.org>
797
798         PR fortran/27919
799         * m4/dotprodc.m4: Remove.
800         * m4/dotprodl.m4: Remove.
801         * m4/dotprod.m4: Remove.
802         * generated/dotprod_*.c: Remove.
803         * Makefile.am: Remove any references to dot_product
804         implementation.
805         * Makefile.in: Regenerated.
806         
807 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
808
809         * configure: Regenerate.
810
811 2006-07-15  Steven G. Kargl  <kargls@comcast.net>
812
813         * intrinsics/etime.c: Remove etime_
814         * libtool-version: Bump from libgfortran.so.1 to libgfortran.so.2
815
816 2006-07-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
817
818         PR fortran/28163
819         * intrinsics/string_intrinsics.c (copy_string): Remove function.
820
821 2006-07-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
822
823         * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
824         idate_i4,idate_i8): New functions.
825
826 2006-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
827
828         PR libgfortran/27704
829         * runtime/error.c (notify_std): Pass common flags into function. Use
830         flags to show locus of error or warning.
831         * libgfortran.h: Add enum try.  Add prototype for notify_std.
832         * io/open.c (edit_modes): Allow status="old" and add extension to
833         allow status="scratch"
834         *io/list_read.c (nml_read_obj): Update call to notify_std.
835         *io/io.h: Remove enum try and prototype for notify_std.
836         *io/transfer.c (read_sf): Update call to notify_std.
837         *io/format.c (parse_format_list): Update call to notify_std.
838
839 2006-06-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
840
841         * io/io.h: Move proto for unit_to_fd...
842         * libgfortran.h: ...here.
843
844 2006-06-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
845
846         * intrinsics/ierrno.c: Don't include "io/io.h".
847         * intrinsics/sleep.c: Likewise.
848         * intrinsics/perror.c: Likewise.
849         * intrinsics/stat.c: Likewise.
850         * intrinsics/kill.c: Likewise.
851         * intrinsics/time.c: Likewise.
852         * intrinsics/fnum.c: Likewise.
853         * intrinsics/rename.c: Likewise.
854         * intrinsics/symlnk.c: Likewise.
855         * intrinsics/chdir.c: Likewise.
856         * intrinsics/link.c: Likewise.
857         * intrinsics/random.c: Don't include "io/io.h". Include <gthr.h>.
858         * intrinsics/rand.c: Likewise.
859
860 2006-06-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
861
862         PR fortran/28094
863         * Makefile.am: Add _mod_r10.F90 and _mod_r16.F90.
864         * Makefile.in: Regenerate.
865         * generated/_mod_r10.F90: New file.
866         * generated/_mod_r16.F90: New file.
867
868 2006-06-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
869
870         PR libfortran/26769
871         * Makefile.am: Add r4 and r8 versions of reshape and transpose.
872         * Makefile.in: Regenerate.
873         * generated/reshape_r4.c: New file.
874         * generated/reshape_r8.c: New file.
875         * generated/transpose_r4.c: New file.
876         * generated/transpose_r8.c: New file.
877
878 2006-06-20  Paul Thomas  <pault@gcc.gnu.org>
879
880         PR libfortran/28005
881         * m4/matmul.m4: aystride = 1 does not uniquely detect the
882         presence of a temporary transpose; an array element in the
883         first dimension produces the same signature.  Detect this
884         using the rank of a and add specific code.
885         * generated/matmul_r4.c: Regenerate.
886         * generated/matmul_r8.c: Regenerate.
887         * generated/matmul_r10.c: Regenerate.
888         * generated/matmul_r16.c: Regenerate.
889         * generated/matmul_c4.c: Regenerate.
890         * generated/matmul_c8.c: Regenerate.
891         * generated/matmul_c10.c: Regenerate.
892         * generated/matmul_c16.c: Regenerate.
893         * generated/matmul_i4.c: Regenerate.
894         * generated/matmul_i8.c: Regenerate.
895         * generated/matmul_i16.c: Regenerate.
896
897 2006-06-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
898
899         PR libgomp/27254
900         * io/unit.c (get_internal_unit): Initialize and lock thread mutex
901         for internal units.
902
903 2006-06-06  Janne Blomqvist  <jb@gcc.gnu.org>
904
905         * m4/in_pack.m4: Add TODO comment about detecting temporaries,
906         remove test for stride 0, update copyright year.
907         * m4/transpose.m4: Remove test for stride 0, update copyright
908         year.
909         * m4/iforeach.m4: Likewise.
910         * m4/shape.m4: Likewise.
911         * m4/in_unpack.m4: Likewise.
912         * m4/reshape.m4: Likewise.
913         * m4/ifunction.m4: Likewise.
914         * m4/matmul.m4: Likewise.
915         * m4/matmull.m4: Likewise.
916         * intrinsics/etime.c: Likewise.
917         * intrinsics/transpose_generic.c: Likewise.
918         * intrinsics/spread_generic.c: Likewise.
919         * intrinsics/stat.c: Likewise.
920         * intrinsics/reshape_generic.c: Likewise.
921         * intrinsics/random.c: Likewise.
922         * generated/*: Regenerated from above changed m4 files.
923         
924 2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
925
926         PR libgfortran/27757
927         * io/unix.c (fd_seek): Set active to zero.
928
929 2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
930
931         PR libgfortran/27634
932         * io/format.c (parse_format_list): Allow missing period in format only
933         if -std=legacy.
934
935 2006-05-28  Thomas Koenig  <Thomas.Koenig@online.de>
936
937         * intrinsics/string_intrinsics.c (compare_string):
938         Use memcmp instead of strncmp to avoid tripping over
939         CHAR(0) in a string.
940
941 2006-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
942
943         * io/io.h (find_or_create_unit): Correct export declaration.
944         
945 2006-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
946
947         * intrinsics/abort.c (abort_): Remove.
948
949 2006-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
950
951         * configure.ac: Remove AC_FUNC_MMAP.
952         * configure: Regenerated.
953         * Makefile.in: Regenerated.
954         * config.h.in: Regenerated.
955         * aclocal.m4: Regenerated.
956
957 2006-05-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
958
959         * intrinsics/associated.c (associated): Zero-sized arrays should
960         not be reported as ASSOCIATED.
961
962 2006-05-24  Carlos O'Donell  <carlos@codesourcery.com>
963
964         * Makefile.am: Add install-html target. Add install-html to .PHONY
965         * Makefile.in: Regenerate.
966         * aclocal.m4: Regenerate.
967         
968 2006-05-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
969
970         PR libgfortran/24459
971         * io/list_read.c (nml_parse_qualifier): Leave loop spec end value
972         at default value unless -std=f95 or if an array section
973         is specified in namelist input.  Warn if -pedantic.
974         * io/io.h (st_parameter_dt): Add expanded_read flag.
975
976 2006-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
977
978         PR libgfortran/22423
979         * io/transfer.c (read_block): Return NULL instead of nothing.
980         
981 2006-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
982
983         PR libgfortran/27575
984         * io/transfer.c (read_block):  Add check for end file condition.
985         (read_block_direct): Add check for end file condition.
986
987 2006-05-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
988
989         PR libfortran/26985
990         * m4/matmul.m4: Correct the condition for the memset call,
991         and remove the unneeded call to size0.
992         * generated/matmul_r4.c: Regenerate.
993         * generated/matmul_r8.c: Regenerate.
994         * generated/matmul_r10.c: Regenerate.
995         * generated/matmul_r16.c: Regenerate.
996         * generated/matmul_c4.c: Regenerate.
997         * generated/matmul_c8.c: Regenerate.
998         * generated/matmul_c10.c: Regenerate.
999         * generated/matmul_c16.c: Regenerate.
1000         * generated/matmul_i4.c: Regenerate.
1001         * generated/matmul_i8.c: Regenerate.
1002         * generated/matmul_i16.c: Regenerate.
1003
1004 2006-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1005
1006         PR libgfortran/27360
1007         * io/list_read.c (read_logical):  Free line_buffer and free saved.
1008
1009 2006-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1010
1011         PR libgfortran/27304
1012         * io/transfer.c (formatted_transfer_scalar):  Generate error if data
1013         descriptors are exhausted.
1014         * io/format.c (next_format0): Fix comment.
1015
1016 2006-04-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1017
1018         PR libgfortran/20257
1019         * io/io.h: Add prototypes for get_internal_unit and free_internal_unit.
1020         * io/unit.c (get_internal_unit): Initialize unit number, not zero.
1021         (free_internal_unit): New function to consolidate freeing memory.
1022         (get_unit): Initialize internal_unit_desc to NULL when unit is
1023         external.
1024         * io/unix.c (mem_close): Check for not NULL before freeing memory.
1025         * io/transfer.c (read_block): Reset bytes_left and skip error if unit
1026         is preconnected and default record length is reached.
1027         (read_block_direct): Ditto.
1028         (write_block): Ditto.
1029         (write_buf): Ditto.
1030         (data_transfer_init): Only flush if not internal unit.
1031         (finalize_transfer): Ditto and delete code to free memory used by
1032         internal units.
1033         (st_read_done): Use new function - free_internal_unit.
1034         (st_write_done): Use new function - free_internal unit.
1035
1036 2006-04-22  Jakub Jelinek  <jakub@redhat.com>
1037
1038         PR fortran/26769
1039         * Makefile.am (i_transpose_c): Add generated/transpose_r16.c.
1040         (i_reshape_c): Add generated/reshape_r16.c.
1041         * Makefile.in: Regenerated.
1042         * generated/transpose_r16.c: Generated new file.
1043         * generated/redhape_r16.c: Generated new file.
1044
1045 2006-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1046
1047         PR libgfortran/27138
1048         * io/list_read.c (eat_line): New function.
1049         (parse_repeat): Use new function and free_saved.
1050         (read_logical): Same.
1051         (read_integer): Use new function.
1052         (parse_real): Use nml_bad_return and new function.
1053         (read_complex): Use new function and free_saved.
1054         (read_real): Same.
1055
1056 2006-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1057
1058         PR libgfortran/26766
1059         * io/io.h: Add bit to identify associated unit as internal.
1060         * io/unit.c (get_external_unit): Renamed the find_unit_1 function to
1061         reflect the external unit functionality vs internal unit.
1062         (get_internal_unit): New function to allocate and initialize an internal
1063         unit structure.
1064         (get_unit): Use get_internal_unit and get_external_unit.
1065         (is_internal_unit): Revised to use new bit added in io.h.
1066         * io/transfer.c (data_transfer_init): Fix line width.
1067         (st_read_done): Free memory allocated for internal unit.
1068         (st_write_done): Add test to only flush and truncate when not an
1069         internal unit.  Free memory allocated for internal unit.
1070
1071 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
1072
1073         * io/io.h (st_parameter_dt): Revert 2005-12-10 change to
1074         u.pad, fix comment.
1075         (check_st_parameter_dt): New compile time assert.
1076
1077 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
1078
1079         PR libgfortran/24685
1080         * io/write.c (MIN_FIELD_WIDTH, STR, STR1): Define.
1081         (output_float): Increase buffer sizes for IEEE quad and IBM extended
1082         long double.
1083         (write_real): Output REAL(16) as 1PG43.34E4 rather than 1PG40.31E4.
1084
1085 2006-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1086
1087         PR libgfortran/26890
1088         * io/io.h: Revert change to pad size made on 2006-03-30.
1089         Add comment explaining dependency with fortran/trans-io.c.
1090         
1091 2006-04-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1092
1093         * io/write.c (output_float): Update condition to not error when
1094         decimal precision in format specifier is zero.
1095
1096 2006-04-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1097
1098         * config/fpu-387.h: Use previously added SSE code in all
1099         cases, as it really is the right thing to do.
1100
1101 2006-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1102
1103         PR libgfortran/26890
1104         * io/io.h: Add size_used to st_parameter_dt, adjust pad size.
1105         *io/transfer.c (data_transfer_init): Initialize size_used to zero.
1106         (read_sf): Use size_used.
1107         (read_block): Likewise.
1108         (read_block_direct): Likewise.
1109         (write_block): Likewise.
1110         (write_buf): Likewise and eliminate erroneous FAILURE return.
1111         (finalize_transfer): Assign value of size_used to *dtp->size.
1112
1113 2006-03-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1114
1115         PR libfortran/26712
1116         * config/fpu-387.h: Add special case for handling of SSE
1117         control bit on i386-darwin.
1118
1119 2006-03-30  Thomas Koenig  <Thomas.Koenig@online.de>
1120
1121         PR fortran/25031
1122         * runtime/memory.c (allocate_array):  If stat is present and
1123         the variable is already allocated, free the variable, do
1124         the allocation and set stat.
1125         (allocate_array_64):  Likewise.  Whitespace fix.
1126
1127 2006-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1128
1129         PR libgfortran/26880
1130         * io/file_pos.c (st_rewind): Clear read_bad flag.
1131
1132 2006-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1133
1134         PR libgfortran/26661
1135         * io/io.h: Add read_sf so it can be used by read_x.
1136         * io/transfer.c (read_sf): Pass no_error flag to read_sf.  Use it to
1137         break out rather than error on EOF or EOR conditions.
1138         (read_block): Update call to read_sf.
1139         (read_block_direct): Ditto.
1140         * io/read.c (read_x): Use the modified read_sf instead of read_block.
1141
1142 2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>
1143
1144         PR libfortran/26735
1145         * io/transfer.c (data_transfer_init):  Set u_flags.convert
1146         on an unopened unit if specified by environment variable
1147         (via get_unformatted_convert) or by compile-time option.
1148
1149 2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>
1150
1151         PR fortran/26769
1152         * Makefile.am:  Add transpose_r10.c and reshape_r10.c.
1153         * aclocal.m4:  Regenerate using aclocal 1.9.3.
1154         * Makefile.in:  Regenerate using automake 1.9.3.
1155         * m4/iparm.m4 (rtype_ccode):  If rtype_letter is `i',
1156         evaluate to rtype_kind, otherwise to rtype_code.
1157         * generated/transpose_r10.c:  Add.
1158         * generated/reshape_r10.c:  Add.
1159
1160 2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>
1161
1162         PR fortran/19303
1163         * libgfortran.h (compile_options_t):  Add record_marker.
1164         * runtime/compile_options.c (set_record_marker):
1165         New function.
1166         * io/open.c:  If we have four-byte record markers, use
1167         GFC_INTEGER_4_HUGE as default record length.
1168         * io/file_pos.c (unformatted_backspace):  Handle
1169         different size record markers.
1170         * io/transfer.c (us_read):  Likewise.
1171         (us_write):  Likewise.
1172         (next_record_r):  Likewise.
1173         (write_us_marker):  Likewise.
1174         (next_record_w):  Likewise.
1175
1176 2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>
1177
1178         PR fortran/20935
1179         * m4/iforeach.m4:  Add SCALAR_FOREACH_FUNCTION macro.
1180         * m4/ifunction.m4:  Add SCALAR_ARRAY_FUNCTION macro.
1181         * m4/minloc0.m4:  Use SCALAR_FOREACH_FUNCTION.
1182         * m4/minloc1.m4:  Use SCALAR_ARRAY_FUNCTION.
1183         * m4/maxloc0.m4:  Use SCALAR_FOREACH_FUNCTION.
1184         * m4/maxloc1.m4:  Use SCALAR_ARRAY_FUNCTION.
1185         * m4/minval.m4:  Likewise.
1186         * m4/maxval.m4:  Likewise.
1187         * m4/product.m4:  Likewise.
1188         * m4/sum.m4:  Likewise.
1189         * minloc0_16_i16.c : Regenerated.
1190         * minloc0_16_i4.c : Regenerated.
1191         * minloc0_16_i8.c : Regenerated.
1192         * minloc0_16_r10.c : Regenerated.
1193         * minloc0_16_r16.c : Regenerated.
1194         * minloc0_16_r4.c : Regenerated.
1195         * minloc0_16_r8.c : Regenerated.
1196         * minloc0_4_i16.c : Regenerated.
1197         * minloc0_4_i4.c : Regenerated.
1198         * minloc0_4_i8.c : Regenerated.
1199         * minloc0_4_r10.c : Regenerated.
1200         * minloc0_4_r16.c : Regenerated.
1201         * minloc0_4_r4.c : Regenerated.
1202         * minloc0_4_r8.c : Regenerated.
1203         * minloc0_8_i16.c : Regenerated.
1204         * minloc0_8_i4.c : Regenerated.
1205         * minloc0_8_i8.c : Regenerated.
1206         * minloc0_8_r10.c : Regenerated.
1207         * minloc0_8_r16.c : Regenerated.
1208         * minloc0_8_r4.c : Regenerated.
1209         * minloc0_8_r8.c : Regenerated.
1210         * minloc1_16_i16.c : Regenerated.
1211         * minloc1_16_i4.c : Regenerated.
1212         * minloc1_16_i8.c : Regenerated.
1213         * minloc1_16_r10.c : Regenerated.
1214         * minloc1_16_r16.c : Regenerated.
1215         * minloc1_16_r4.c : Regenerated.
1216         * minloc1_16_r8.c : Regenerated.
1217         * minloc1_4_i16.c : Regenerated.
1218         * minloc1_4_i4.c : Regenerated.
1219         * minloc1_4_i8.c : Regenerated.
1220         * minloc1_4_r10.c : Regenerated.
1221         * minloc1_4_r16.c : Regenerated.
1222         * minloc1_4_r4.c : Regenerated.
1223         * minloc1_4_r8.c : Regenerated.
1224         * minloc1_8_i16.c : Regenerated.
1225         * minloc1_8_i4.c : Regenerated.
1226         * minloc1_8_i8.c : Regenerated.
1227         * minloc1_8_r10.c : Regenerated.
1228         * minloc1_8_r16.c : Regenerated.
1229         * minloc1_8_r4.c : Regenerated.
1230         * minloc1_8_r8.c : Regenerated.
1231         * maxloc0_16_i16.c : Regenerated.
1232         * maxloc0_16_i4.c : Regenerated.
1233         * maxloc0_16_i8.c : Regenerated.
1234         * maxloc0_16_r10.c : Regenerated.
1235         * maxloc0_16_r16.c : Regenerated.
1236         * maxloc0_16_r4.c : Regenerated.
1237         * maxloc0_16_r8.c : Regenerated.
1238         * maxloc0_4_i16.c : Regenerated.
1239         * maxloc0_4_i4.c : Regenerated.
1240         * maxloc0_4_i8.c : Regenerated.
1241         * maxloc0_4_r10.c : Regenerated.
1242         * maxloc0_4_r16.c : Regenerated.
1243         * maxloc0_4_r4.c : Regenerated.
1244         * maxloc0_4_r8.c : Regenerated.
1245         * maxloc0_8_i16.c : Regenerated.
1246         * maxloc0_8_i4.c : Regenerated.
1247         * maxloc0_8_i8.c : Regenerated.
1248         * maxloc0_8_r10.c : Regenerated.
1249         * maxloc0_8_r16.c : Regenerated.
1250         * maxloc0_8_r4.c : Regenerated.
1251         * maxloc0_8_r8.c : Regenerated.
1252         * maxloc1_16_i16.c : Regenerated.
1253         * maxloc1_16_i4.c : Regenerated.
1254         * maxloc1_16_i8.c : Regenerated.
1255         * maxloc1_16_r10.c : Regenerated.
1256         * maxloc1_16_r16.c : Regenerated.
1257         * maxloc1_16_r4.c : Regenerated.
1258         * maxloc1_16_r8.c : Regenerated.
1259         * maxloc1_4_i16.c : Regenerated.
1260         * maxloc1_4_i4.c : Regenerated.
1261         * maxloc1_4_i8.c : Regenerated.
1262         * maxloc1_4_r10.c : Regenerated.
1263         * maxloc1_4_r16.c : Regenerated.
1264         * maxloc1_4_r4.c : Regenerated.
1265         * maxloc1_4_r8.c : Regenerated.
1266         * maxloc1_8_i16.c : Regenerated.
1267         * maxloc1_8_i4.c : Regenerated.
1268         * maxloc1_8_i8.c : Regenerated.
1269         * maxloc1_8_r10.c : Regenerated.
1270         * maxloc1_8_r16.c : Regenerated.
1271         * maxloc1_8_r4.c : Regenerated.
1272         * maxloc1_8_r8.c : Regenerated.
1273         * maxval_i16.c : Regenerated.
1274         * maxval_i4.c : Regenerated.
1275         * maxval_i8.c : Regenerated.
1276         * maxval_r10.c : Regenerated.
1277         * maxval_r16.c : Regenerated.
1278         * maxval_r4.c : Regenerated.
1279         * maxval_r8.c : Regenerated.
1280         * minval_i16.c : Regenerated.
1281         * minval_i4.c : Regenerated.
1282         * minval_i8.c : Regenerated.
1283         * minval_r10.c : Regenerated.
1284         * minval_r16.c : Regenerated.
1285         * minval_r4.c : Regenerated.
1286         * minval_r8.c : Regenerated.
1287         * sum_c10.c : Regenerated.
1288         * sum_c16.c : Regenerated.
1289         * sum_c4.c : Regenerated.
1290         * sum_c8.c : Regenerated.
1291         * sum_i16.c : Regenerated.
1292         * sum_i4.c : Regenerated.
1293         * sum_i8.c : Regenerated.
1294         * sum_r10.c : Regenerated.
1295         * sum_r16.c : Regenerated.
1296         * sum_r4.c : Regenerated.
1297         * sum_r8.c : Regenerated.
1298         * product_c10.c : Regenerated.
1299         * product_c16.c : Regenerated.
1300         * product_c4.c : Regenerated.
1301         * product_c8.c : Regenerated.
1302         * product_i16.c : Regenerated.
1303         * product_i4.c : Regenerated.
1304         * product_i8.c : Regenerated.
1305         * product_r10.c : Regenerated.
1306         * product_r16.c : Regenerated.
1307         * product_r4.c : Regenerated.
1308         * product_r8.c : Regenerated.
1309
1310 2006-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1311
1312         PR libgfortran/26509
1313         * libgfortran.h: Add ERROR_DIRECT_EOR.
1314         * runtime/error.c (translate_error): Add translation for new error.
1315         * io/transfer.c (write_buf): Add check for EOR when mode is 
1316         direct access.
1317
1318 2006-03-13  Paul Thomas  <pault@gcc.gnu.org>
1319
1320         PR fortran/25378
1321         * libgfortran/m4/minloc1.m4: Set the initial position to zero and
1322         modify the condition for updating it, to implement the F2003
1323         requirement for all(mask).eq.false.
1324         * libgfortran/m4/maxloc1.m4: The same.
1325         * libgfortran/m4/iforeach.m4: The same.
1326         * libgfortran/m4/minloc0.m4: The same.
1327         * libgfortran/m4/maxloc0.m4: The same.
1328         * libgfortran/generated/maxloc0_16_i16.c: Regenerated, together
1329         with 41 others.
1330         * libgfortran/generated/minloc0_16_i16.c: Regenerated, together
1331         with 41 others.
1332
1333 2006-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1334
1335         PR libgfortran/26499
1336         * io/file_pos (st_rewind): Flush always.
1337         * io/unix.c (fd_truncate): Return SUCCESS rather than FAILURE for
1338         special files like /dev/null.
1339         * io/transfer.c (st_write_done): Remove broken logic that
1340         prevented calling fd_truncate.
1341
1342 2006-03-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1343
1344         PR libgfortran/26554
1345         * io/list_read.c (read_logical): Return the value if not in namelist
1346         mode.
1347
1348 2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>
1349
1350         PR fortran/25031
1351         * runtime/memory.c:  Adjust copyright years.
1352         (allocate_array):  New function.
1353         (allocate64_array):  New function.
1354         * libgfortran.h (error_codes):  Add ERROR_ALLOCATION.
1355
1356 2006-02-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1357
1358         PR libgfortran/26136
1359         * io/io.h: Add flag for reading from line_buffer.
1360         * io/list_read.c (l_push_char): New function to save namelist
1361         input when reading logicals.
1362         (free_line): New function to free line_buffer memory.
1363         (next_char): Added feature to read from line_buffer.
1364         (read_logical): Use new functions to test for '=' after reading a
1365         logical value, checking for possible variable name.
1366         (namelist_read): Use free_line when all done.
1367
1368 2006-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1369
1370         PR libgfortran/26464
1371         * io/file_pos.c (st_backspace): Flush and truncate file
1372         when in AFTER_ENDFILE condition.
1373         * io/transfer.c (st_read_done): Remove flush, no longer needed.
1374
1375 2006-02-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1376
1377         PR libgfortran/26423
1378         * io/unix.c (fd_seek): Revert change from 25949.
1379         (fd_read): Same.
1380         (fd_write): Same.
1381
1382 2006-02-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1383
1384         * io/open.c (edit_modes): Correct abusive copy-pasting.
1385
1386 2006-02-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1387
1388         PR libfortran/24903
1389         * m4/dotprodc.m4: Use __builtin_conj instead of assigning real
1390         and imaginary parts separately.
1391         * generated/dotprod_c4.c: Regenerated.
1392         * generated/dotprod_c8.c: Regenerated.
1393         * generated/dotprod_c10.c: Regenerated.
1394         * generated/dotprod_c16.c: Regenerated.
1395
1396 2006-02-12  Janne Blomqvist  <jb@gcc.gnu.org>
1397
1398         PR libgfortran/25949
1399         * io/io.h: Add set function pointer to struct stream.  
1400         * io/unix.c (fd_seek): Only update offset, don't seek.
1401         (fd_sset): New function.
1402         (fd_read): Call lseek directly if necessary.
1403         (fd_write): Likewise.
1404         (fd_open): Set pointer to fd_sset.
1405         (mem_set): New function.
1406         (open_internal): Set pointer to mem_set.
1407         * io/transfer.c (write_block_direct): Rename to write_buf, add
1408         error return, non-pointer length argument.
1409         (unformatted_write): Update to use write_buf.
1410         (us_write): Simplify by using swrite instead of salloc_w.
1411         (write_us_marker): New function.
1412         (new_record_w): Use sset instead of memset, use write_us_marker,
1413         simplify by using swrite instead of salloc_w.
1414
1415 2006-02-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1416
1417         PR libfortran/25425
1418         * libgfortran.h: Add pedantic field to compile_options struct.
1419         * io/write.c (calculate_G_format): Depending on the standard,
1420         choose E or F format for list-directed output of 0.0.
1421         * runtime/error.c (notify_std): Make warning and error dependent
1422         on pedanticity.
1423         * runtime/compile_options.c (set_std): Use new pedantic argument.
1424
1425 2006-02-07  Dale Ranta  <dir@lanl.gov>
1426
1427         PR fortran/25577
1428         * intrinsics/mvbits.c: Shift '(TYPE)1' type when building 'lenmask'.
1429
1430 2006-02-07  Rainer Emrich <r.emrich@de.tecosim.com>
1431
1432         * intrinsics/c99_functions.c: Work around incompatible
1433         declarations of cabs{,f,l} on pre-C99 IRIX systems.
1434
1435 2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
1436
1437         PR libfortran/23815
1438         * runtime/environ.c (init_unformatted):  Add GFORTRAN_CONVERT_UNIT
1439         environment variable.
1440         (top level):  Add defines, type and static variables for
1441         GFORTRAN_CONVERT_UNIT handling.
1442         (search_unit):  New function.
1443         (match_word): New function.
1444         (match_integer): New function.
1445         (next_token): New function.
1446         (push_token): New function.
1447         (mark_single): New function.
1448         (mark_range): New funciton.
1449         (do_parse): New function.
1450         (init_unformatted): New function.
1451         (get_unformatted_convert): New function.
1452         * runtime/compile_options.c:  Add set_convert().
1453         * libgfortran.h:  Add convert to compile_options_t.
1454         * io/open.c (st_open): Call get_unformatted_convert to get
1455         unit default; if CONVERT_NONE is returned, check for
1456         the presence of a CONVERT specifier and use it.
1457         As default, use compile_options.convert.
1458         * io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
1459         "nothing has been set".
1460         (top level): Add prototype for get_unformatted_convert.
1461
1462 2006-02-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1463
1464         PR libfortran/24685
1465         * io/write.c (write_real): Widen the default format for real(10)
1466         variables output.
1467
1468 2006-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1469
1470         PR libgfortran/25835
1471         * io/transfer.c (st_read_done): Flush buffers when read is done.
1472
1473 2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1474
1475         PR libgfortran/25697
1476         * io/transfer.c (us_read): Detect end of file condition from previous
1477         operations and bail out (no need to pre-position).
1478
1479 2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1480
1481         PR libgfortran/25631
1482         * io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
1483         skips so that TL works correctly when no bytes_used yet.  
1484
1485 2006-01-16  Roger Sayle  <roger@eyesopen.com>
1486
1487         * configure.ac (CFLAGS): Update to include -std=gnu99 so that
1488         the configure tests will be run with the same environment as
1489         used to compile the libgfortran source code.
1490         * configure: Regenerate.
1491
1492 2006-01-12  Roger Sayle  <roger@eyesopen.com>
1493
1494         * intrinsics/c99_functions.c: Add function prototypes to avoid
1495         warnings from -Wstrict-prototypes -Wmissing-prototypes.  On Tru64
1496         work around a brain-dead libm by redirecting calls to cabs{,f,l}
1497         to a local __gfc_cabs{,f,l}.
1498
1499 2006-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
1500
1501         * configure.ac: Remove check for sys/mman.h.
1502         * configure: Regenerated.
1503         * Makefile.in: Regenerated.
1504         * config.h.in: Regenerated.
1505         * aclocal.m4: Regenerated.
1506         
1507 2006-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1508
1509         PR libgfortran/25598
1510         * io/file_pos.c (unformatted_backspace): Assure the new file position
1511         to seek is not less than zero.
1512         (st_backspace): Set unit bytes_left to zero.
1513         * io/transfer.c (next_record_r): Fix line lengths, no functional change.
1514
1515 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
1516
1517         PR target/25259
1518         * configure.ac: Use GCC_HEADER_STDINT.
1519         * libgfortran.h: Include gstdint.h.
1520         * aclocal.m4: Regenerate.
1521         * configure: Regenerate.
1522
1523 2006-01-01  Steven G. Kargl  <kargls@comcast.net>
1524
1525         * ChangeLog: Split into years ...
1526         * ChangeLog-2002: here.
1527         * ChangeLog-2003: here.
1528         * ChangeLog-2004: here.
1529         * ChangeLog-2005: here.