OSDN Git Service

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