OSDN Git Service

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