OSDN Git Service

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