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