OSDN Git Service

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