OSDN Git Service

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