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