OSDN Git Service

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