OSDN Git Service

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