Regenerate tree using Autoconf 2.64 and Automake 1.11.
[platform/upstream/gcc.git] / libgfortran / ChangeLog
1 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * Makefile.in: Regenerate.
4         * aclocal.m4: Regenerate.
5         * config.h.in: Regenerate.
6         * configure: Regenerate.
7
8 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9
10         * Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
11         * Makefile.in: Regenerate.
12
13 2009-08-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
14
15         PR libfortran/40962
16         * iso_c_binding.c (c_f_pointer_u0):  Multiply stride by
17         previous stride.
18
19 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
20
21         * Makefile.am (LTLDFLAGS): Add -bindir flag.
22         * Makefile.in: Regenerate.
23
24 2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
25
26         PR fortran/41075
27         * io/io.h (enum format_token): Add FMT_STAR.
28         * io/format.c (format_lex): Add case for FMT_STAR.
29         (parse_format_list): Parse FMT_STAR and check for left paren
30         after. (next_format0): Modify helper function to check for
31         unimited format and return the repeated format node.  Update
32         comments to clarify.
33         
34 2009-08-15  Kai Tietz  <kai.tietz@onevision.com>
35
36         * intrinsics/string_intrinsics_inc.c (string_len_trim): Use
37         __INTPTR_TYPE__ to cast from pointer to scalar integer, if
38         __INTPTR_TYPE is defined.
39
40 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
41
42         * fmain.c: Add comment saying file is deprecated.
43
44 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
45
46         PR libfortran/40863
47         * gfortran.map: Move new symbols to GFORTRAN_C99_1.1 version node.
48
49 2009-08-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
50
51         PR libfortran/40549
52         * Makefile.in (LTLDFLAGS): Add -no-undefined.
53         * Makefile.am: Regenerate.
54         * libgfortran.h: Remove unused block of code.
55
56 2009-08-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
57
58         PR libfortran/40853
59         * io/list_read.c (nml_get_obj_data): Do not set nl
60         pointer to first_nl if nl->next is NULL.
61
62 2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
63
64         * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
65         Don't set IEEE_FLAGS with @IEEE_FLAGS@.
66         * Makefile.in: Regenerate.
67
68 2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
69
70         * configure.host: Define ieee_flags and set it to -mieee for sh.
71         * configure.ac: Set IEEE_FLAGS with ieee_flags.
72         * Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
73         * configure: Regenerate.
74         * Makefile.in: Regenerate.
75
76 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
77
78         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
79
80 2009-07-27  Tobias Burnus  <burnus@net-b.de>
81
82         PR fortran/40863
83         * c99_functions.c: Define complex I, if not defined.
84         Create prototypes for C99 functions to silence warnings.
85         * gfortran.map: Add missing functions to GFORTRAN_C99_1.0
86         and new GFORTRAN_C99_1.1.
87
88 2009-07-25  Tobias Burnus  <burnus@net-b.de>
89
90         PR fortran/33197
91         * intrinsics/c99_functions.c (cacosf,cacos,cacosl,casinf,
92         casin,casind,catanf,catan,catanl,cacoshf,cacosh,cacoshl,
93         casinhf,casinh,casinhf,catanhf,catanh,catanhl): New functions.
94         * c99_protos.h: Add prototypes for those.
95
96 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
97
98         PR fortran/40643
99         PR fortran/31067
100         * libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
101         GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
102         GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
103         Define.
104         * m4/iparm.m4 (atype_inf, atype_nan): Define.
105         * m4/ifunction.m4: Formatting.
106         * m4/iforeach.m4: Likewise.
107         (START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
108         (START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
109         FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
110         until count[0] == extent[0].
111         * m4/minval.m4: Formatting.  Handle NaNs and infinities.  Optimize.
112         * m4/maxval.m4: Likewise.
113         * m4/minloc0.m4: Likewise.
114         * m4/maxloc0.m4: Likewise.
115         * m4/minloc1.m4: Likewise.
116         * m4/maxloc1.m4: Likewise.
117         * generated/maxloc0_16_i16.c: Regenerated.
118         * generated/maxloc0_16_i1.c: Likewise.
119         * generated/maxloc0_16_i2.c: Likewise.
120         * generated/maxloc0_16_i4.c: Likewise.
121         * generated/maxloc0_16_i8.c: Likewise.
122         * generated/maxloc0_16_r10.c: Likewise.
123         * generated/maxloc0_16_r16.c: Likewise.
124         * generated/maxloc0_16_r4.c: Likewise.
125         * generated/maxloc0_16_r8.c: Likewise.
126         * generated/maxloc0_4_i16.c: Likewise.
127         * generated/maxloc0_4_i1.c: Likewise.
128         * generated/maxloc0_4_i2.c: Likewise.
129         * generated/maxloc0_4_i4.c: Likewise.
130         * generated/maxloc0_4_i8.c: Likewise.
131         * generated/maxloc0_4_r10.c: Likewise.
132         * generated/maxloc0_4_r16.c: Likewise.
133         * generated/maxloc0_4_r4.c: Likewise.
134         * generated/maxloc0_4_r8.c: Likewise.
135         * generated/maxloc0_8_i16.c: Likewise.
136         * generated/maxloc0_8_i1.c: Likewise.
137         * generated/maxloc0_8_i2.c: Likewise.
138         * generated/maxloc0_8_i4.c: Likewise.
139         * generated/maxloc0_8_i8.c: Likewise.
140         * generated/maxloc0_8_r10.c: Likewise.
141         * generated/maxloc0_8_r16.c: Likewise.
142         * generated/maxloc0_8_r4.c: Likewise.
143         * generated/maxloc0_8_r8.c: Likewise.
144         * generated/maxloc1_16_i16.c: Likewise.
145         * generated/maxloc1_16_i1.c: Likewise.
146         * generated/maxloc1_16_i2.c: Likewise.
147         * generated/maxloc1_16_i4.c: Likewise.
148         * generated/maxloc1_16_i8.c: Likewise.
149         * generated/maxloc1_16_r10.c: Likewise.
150         * generated/maxloc1_16_r16.c: Likewise.
151         * generated/maxloc1_16_r4.c: Likewise.
152         * generated/maxloc1_16_r8.c: Likewise.
153         * generated/maxloc1_4_i16.c: Likewise.
154         * generated/maxloc1_4_i1.c: Likewise.
155         * generated/maxloc1_4_i2.c: Likewise.
156         * generated/maxloc1_4_i4.c: Likewise.
157         * generated/maxloc1_4_i8.c: Likewise.
158         * generated/maxloc1_4_r10.c: Likewise.
159         * generated/maxloc1_4_r16.c: Likewise.
160         * generated/maxloc1_4_r4.c: Likewise.
161         * generated/maxloc1_4_r8.c: Likewise.
162         * generated/maxloc1_8_i16.c: Likewise.
163         * generated/maxloc1_8_i1.c: Likewise.
164         * generated/maxloc1_8_i2.c: Likewise.
165         * generated/maxloc1_8_i4.c: Likewise.
166         * generated/maxloc1_8_i8.c: Likewise.
167         * generated/maxloc1_8_r10.c: Likewise.
168         * generated/maxloc1_8_r16.c: Likewise.
169         * generated/maxloc1_8_r4.c: Likewise.
170         * generated/maxloc1_8_r8.c: Likewise.
171         * generated/maxval_i16.c: Likewise.
172         * generated/maxval_i1.c: Likewise.
173         * generated/maxval_i2.c: Likewise.
174         * generated/maxval_i4.c: Likewise.
175         * generated/maxval_i8.c: Likewise.
176         * generated/maxval_r10.c: Likewise.
177         * generated/maxval_r16.c: Likewise.
178         * generated/maxval_r4.c: Likewise.
179         * generated/maxval_r8.c: Likewise.
180         * generated/minloc0_16_i16.c: Likewise.
181         * generated/minloc0_16_i1.c: Likewise.
182         * generated/minloc0_16_i2.c: Likewise.
183         * generated/minloc0_16_i4.c: Likewise.
184         * generated/minloc0_16_i8.c: Likewise.
185         * generated/minloc0_16_r10.c: Likewise.
186         * generated/minloc0_16_r16.c: Likewise.
187         * generated/minloc0_16_r4.c: Likewise.
188         * generated/minloc0_16_r8.c: Likewise.
189         * generated/minloc0_4_i16.c: Likewise.
190         * generated/minloc0_4_i1.c: Likewise.
191         * generated/minloc0_4_i2.c: Likewise.
192         * generated/minloc0_4_i4.c: Likewise.
193         * generated/minloc0_4_i8.c: Likewise.
194         * generated/minloc0_4_r10.c: Likewise.
195         * generated/minloc0_4_r16.c: Likewise.
196         * generated/minloc0_4_r4.c: Likewise.
197         * generated/minloc0_4_r8.c: Likewise.
198         * generated/minloc0_8_i16.c: Likewise.
199         * generated/minloc0_8_i1.c: Likewise.
200         * generated/minloc0_8_i2.c: Likewise.
201         * generated/minloc0_8_i4.c: Likewise.
202         * generated/minloc0_8_i8.c: Likewise.
203         * generated/minloc0_8_r10.c: Likewise.
204         * generated/minloc0_8_r16.c: Likewise.
205         * generated/minloc0_8_r4.c: Likewise.
206         * generated/minloc0_8_r8.c: Likewise.
207         * generated/minloc1_16_i16.c: Likewise.
208         * generated/minloc1_16_i1.c: Likewise.
209         * generated/minloc1_16_i2.c: Likewise.
210         * generated/minloc1_16_i4.c: Likewise.
211         * generated/minloc1_16_i8.c: Likewise.
212         * generated/minloc1_16_r10.c: Likewise.
213         * generated/minloc1_16_r16.c: Likewise.
214         * generated/minloc1_16_r4.c: Likewise.
215         * generated/minloc1_16_r8.c: Likewise.
216         * generated/minloc1_4_i16.c: Likewise.
217         * generated/minloc1_4_i1.c: Likewise.
218         * generated/minloc1_4_i2.c: Likewise.
219         * generated/minloc1_4_i4.c: Likewise.
220         * generated/minloc1_4_i8.c: Likewise.
221         * generated/minloc1_4_r10.c: Likewise.
222         * generated/minloc1_4_r16.c: Likewise.
223         * generated/minloc1_4_r4.c: Likewise.
224         * generated/minloc1_4_r8.c: Likewise.
225         * generated/minloc1_8_i16.c: Likewise.
226         * generated/minloc1_8_i1.c: Likewise.
227         * generated/minloc1_8_i2.c: Likewise.
228         * generated/minloc1_8_i4.c: Likewise.
229         * generated/minloc1_8_i8.c: Likewise.
230         * generated/minloc1_8_r10.c: Likewise.
231         * generated/minloc1_8_r16.c: Likewise.
232         * generated/minloc1_8_r4.c: Likewise.
233         * generated/minloc1_8_r8.c: Likewise.
234         * generated/minval_i16.c: Likewise.
235         * generated/minval_i1.c: Likewise.
236         * generated/minval_i2.c: Likewise.
237         * generated/minval_i4.c: Likewise.
238         * generated/minval_i8.c: Likewise.
239         * generated/minval_r10.c: Likewise.
240         * generated/minval_r16.c: Likewise.
241         * generated/minval_r4.c: Likewise.
242         * generated/minval_r8.c: Likewise.
243         * generated/product_c10.c: Likewise.
244         * generated/product_c16.c: Likewise.
245         * generated/product_c4.c: Likewise.
246         * generated/product_c8.c: Likewise.
247         * generated/product_i16.c: Likewise.
248         * generated/product_i1.c: Likewise.
249         * generated/product_i2.c: Likewise.
250         * generated/product_i4.c: Likewise.
251         * generated/product_i8.c: Likewise.
252         * generated/product_r10.c: Likewise.
253         * generated/product_r16.c: Likewise.
254         * generated/product_r4.c: Likewise.
255         * generated/product_r8.c: Likewise.
256         * generated/sum_c10.c: Likewise.
257         * generated/sum_c16.c: Likewise.
258         * generated/sum_c4.c: Likewise.
259         * generated/sum_c8.c: Likewise.
260         * generated/sum_i16.c: Likewise.
261         * generated/sum_i1.c: Likewise.
262         * generated/sum_i2.c: Likewise.
263         * generated/sum_i4.c: Likewise.
264         * generated/sum_i8.c: Likewise.
265         * generated/sum_r10.c: Likewise.
266         * generated/sum_r16.c: Likewise.
267         * generated/sum_r4.c: Likewise.
268         * generated/sum_r8.c: Likewise.
269
270 2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
271
272         PR libfortran/32784
273         * unix.c (regular_file): Check for CONIN$ CONOUT$, and CONERR$ and open
274         the respective /dev/conin or /dev/conout devices.  This is Cygwin
275         specific.
276
277 2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
278
279         PR libfortran/34670
280         PR libfortran/36874
281         * Makefile.am:  Add bounds.c
282         * libgfortran.h (bounds_equal_extents):  Add prototype.
283         (bounds_iforeach_return):  Likewise.
284         (bounds_ifunction_return):  Likewise.
285         (bounds_reduced_extents):  Likewise.
286         * runtime/bounds.c:  New file.
287         (bounds_iforeach_return):  New function; correct typo in
288         error message.
289         (bounds_ifunction_return):  New function.
290         (bounds_equal_extents):  New function.
291         (bounds_reduced_extents):  Likewise.
292         * intrinsics/cshift0.c (cshift0):  Use new functions
293         for bounds checking.
294         * intrinsics/eoshift0.c (eoshift0):  Likewise.
295         * intrinsics/eoshift2.c (eoshift2):  Likewise.
296         * m4/iforeach.m4:  Likewise.
297         * m4/eoshift1.m4:  Likewise.
298         * m4/eoshift3.m4:  Likewise.
299         * m4/cshift1.m4:  Likewise.
300         * m4/ifunction.m4:  Likewise.
301         * Makefile.in:  Regenerated.
302         * generated/cshift1_16.c: Regenerated.
303         * generated/cshift1_4.c: Regenerated.
304         * generated/cshift1_8.c: Regenerated.
305         * generated/eoshift1_16.c: Regenerated.
306         * generated/eoshift1_4.c: Regenerated.
307         * generated/eoshift1_8.c: Regenerated.
308         * generated/eoshift3_16.c: Regenerated.
309         * generated/eoshift3_4.c: Regenerated.
310         * generated/eoshift3_8.c: Regenerated.
311         * generated/maxloc0_16_i1.c: Regenerated.
312         * generated/maxloc0_16_i16.c: Regenerated.
313         * generated/maxloc0_16_i2.c: Regenerated.
314         * generated/maxloc0_16_i4.c: Regenerated.
315         * generated/maxloc0_16_i8.c: Regenerated.
316         * generated/maxloc0_16_r10.c: Regenerated.
317         * generated/maxloc0_16_r16.c: Regenerated.
318         * generated/maxloc0_16_r4.c: Regenerated.
319         * generated/maxloc0_16_r8.c: Regenerated.
320         * generated/maxloc0_4_i1.c: Regenerated.
321         * generated/maxloc0_4_i16.c: Regenerated.
322         * generated/maxloc0_4_i2.c: Regenerated.
323         * generated/maxloc0_4_i4.c: Regenerated.
324         * generated/maxloc0_4_i8.c: Regenerated.
325         * generated/maxloc0_4_r10.c: Regenerated.
326         * generated/maxloc0_4_r16.c: Regenerated.
327         * generated/maxloc0_4_r4.c: Regenerated.
328         * generated/maxloc0_4_r8.c: Regenerated.
329         * generated/maxloc0_8_i1.c: Regenerated.
330         * generated/maxloc0_8_i16.c: Regenerated.
331         * generated/maxloc0_8_i2.c: Regenerated.
332         * generated/maxloc0_8_i4.c: Regenerated.
333         * generated/maxloc0_8_i8.c: Regenerated.
334         * generated/maxloc0_8_r10.c: Regenerated.
335         * generated/maxloc0_8_r16.c: Regenerated.
336         * generated/maxloc0_8_r4.c: Regenerated.
337         * generated/maxloc0_8_r8.c: Regenerated.
338         * generated/maxloc1_16_i1.c: Regenerated.
339         * generated/maxloc1_16_i16.c: Regenerated.
340         * generated/maxloc1_16_i2.c: Regenerated.
341         * generated/maxloc1_16_i4.c: Regenerated.
342         * generated/maxloc1_16_i8.c: Regenerated.
343         * generated/maxloc1_16_r10.c: Regenerated.
344         * generated/maxloc1_16_r16.c: Regenerated.
345         * generated/maxloc1_16_r4.c: Regenerated.
346         * generated/maxloc1_16_r8.c: Regenerated.
347         * generated/maxloc1_4_i1.c: Regenerated.
348         * generated/maxloc1_4_i16.c: Regenerated.
349         * generated/maxloc1_4_i2.c: Regenerated.
350         * generated/maxloc1_4_i4.c: Regenerated.
351         * generated/maxloc1_4_i8.c: Regenerated.
352         * generated/maxloc1_4_r10.c: Regenerated.
353         * generated/maxloc1_4_r16.c: Regenerated.
354         * generated/maxloc1_4_r4.c: Regenerated.
355         * generated/maxloc1_4_r8.c: Regenerated.
356         * generated/maxloc1_8_i1.c: Regenerated.
357         * generated/maxloc1_8_i16.c: Regenerated.
358         * generated/maxloc1_8_i2.c: Regenerated.
359         * generated/maxloc1_8_i4.c: Regenerated.
360         * generated/maxloc1_8_i8.c: Regenerated.
361         * generated/maxloc1_8_r10.c: Regenerated.
362         * generated/maxloc1_8_r16.c: Regenerated.
363         * generated/maxloc1_8_r4.c: Regenerated.
364         * generated/maxloc1_8_r8.c: Regenerated.
365         * generated/maxval_i1.c: Regenerated.
366         * generated/maxval_i16.c: Regenerated.
367         * generated/maxval_i2.c: Regenerated.
368         * generated/maxval_i4.c: Regenerated.
369         * generated/maxval_i8.c: Regenerated.
370         * generated/maxval_r10.c: Regenerated.
371         * generated/maxval_r16.c: Regenerated.
372         * generated/maxval_r4.c: Regenerated.
373         * generated/maxval_r8.c: Regenerated.
374         * generated/minloc0_16_i1.c: Regenerated.
375         * generated/minloc0_16_i16.c: Regenerated.
376         * generated/minloc0_16_i2.c: Regenerated.
377         * generated/minloc0_16_i4.c: Regenerated.
378         * generated/minloc0_16_i8.c: Regenerated.
379         * generated/minloc0_16_r10.c: Regenerated.
380         * generated/minloc0_16_r16.c: Regenerated.
381         * generated/minloc0_16_r4.c: Regenerated.
382         * generated/minloc0_16_r8.c: Regenerated.
383         * generated/minloc0_4_i1.c: Regenerated.
384         * generated/minloc0_4_i16.c: Regenerated.
385         * generated/minloc0_4_i2.c: Regenerated.
386         * generated/minloc0_4_i4.c: Regenerated.
387         * generated/minloc0_4_i8.c: Regenerated.
388         * generated/minloc0_4_r10.c: Regenerated.
389         * generated/minloc0_4_r16.c: Regenerated.
390         * generated/minloc0_4_r4.c: Regenerated.
391         * generated/minloc0_4_r8.c: Regenerated.
392         * generated/minloc0_8_i1.c: Regenerated.
393         * generated/minloc0_8_i16.c: Regenerated.
394         * generated/minloc0_8_i2.c: Regenerated.
395         * generated/minloc0_8_i4.c: Regenerated.
396         * generated/minloc0_8_i8.c: Regenerated.
397         * generated/minloc0_8_r10.c: Regenerated.
398         * generated/minloc0_8_r16.c: Regenerated.
399         * generated/minloc0_8_r4.c: Regenerated.
400         * generated/minloc0_8_r8.c: Regenerated.
401         * generated/minloc1_16_i1.c: Regenerated.
402         * generated/minloc1_16_i16.c: Regenerated.
403         * generated/minloc1_16_i2.c: Regenerated.
404         * generated/minloc1_16_i4.c: Regenerated.
405         * generated/minloc1_16_i8.c: Regenerated.
406         * generated/minloc1_16_r10.c: Regenerated.
407         * generated/minloc1_16_r16.c: Regenerated.
408         * generated/minloc1_16_r4.c: Regenerated.
409         * generated/minloc1_16_r8.c: Regenerated.
410         * generated/minloc1_4_i1.c: Regenerated.
411         * generated/minloc1_4_i16.c: Regenerated.
412         * generated/minloc1_4_i2.c: Regenerated.
413         * generated/minloc1_4_i4.c: Regenerated.
414         * generated/minloc1_4_i8.c: Regenerated.
415         * generated/minloc1_4_r10.c: Regenerated.
416         * generated/minloc1_4_r16.c: Regenerated.
417         * generated/minloc1_4_r4.c: Regenerated.
418         * generated/minloc1_4_r8.c: Regenerated.
419         * generated/minloc1_8_i1.c: Regenerated.
420         * generated/minloc1_8_i16.c: Regenerated.
421         * generated/minloc1_8_i2.c: Regenerated.
422         * generated/minloc1_8_i4.c: Regenerated.
423         * generated/minloc1_8_i8.c: Regenerated.
424         * generated/minloc1_8_r10.c: Regenerated.
425         * generated/minloc1_8_r16.c: Regenerated.
426         * generated/minloc1_8_r4.c: Regenerated.
427         * generated/minloc1_8_r8.c: Regenerated.
428         * generated/minval_i1.c: Regenerated.
429         * generated/minval_i16.c: Regenerated.
430         * generated/minval_i2.c: Regenerated.
431         * generated/minval_i4.c: Regenerated.
432         * generated/minval_i8.c: Regenerated.
433         * generated/minval_r10.c: Regenerated.
434         * generated/minval_r16.c: Regenerated.
435         * generated/minval_r4.c: Regenerated.
436         * generated/minval_r8.c: Regenerated.
437         * generated/product_c10.c: Regenerated.
438         * generated/product_c16.c: Regenerated.
439         * generated/product_c4.c: Regenerated.
440         * generated/product_c8.c: Regenerated.
441         * generated/product_i1.c: Regenerated.
442         * generated/product_i16.c: Regenerated.
443         * generated/product_i2.c: Regenerated.
444         * generated/product_i4.c: Regenerated.
445         * generated/product_i8.c: Regenerated.
446         * generated/product_r10.c: Regenerated.
447         * generated/product_r16.c: Regenerated.
448         * generated/product_r4.c: Regenerated.
449         * generated/product_r8.c: Regenerated.
450         * generated/sum_c10.c: Regenerated.
451         * generated/sum_c16.c: Regenerated.
452         * generated/sum_c4.c: Regenerated.
453         * generated/sum_c8.c: Regenerated.
454         * generated/sum_i1.c: Regenerated.
455         * generated/sum_i16.c: Regenerated.
456         * generated/sum_i2.c: Regenerated.
457         * generated/sum_i4.c: Regenerated.
458         * generated/sum_i8.c: Regenerated.
459         * generated/sum_r10.c: Regenerated.
460         * generated/sum_r16.c: Regenerated.
461         * generated/sum_r4.c: Regenerated.
462         * generated/sum_r8.c: Regenerated.
463
464 2009-07-17  Janne Blomqvist  <jb@gcc.gnu.org>
465             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
466                 
467         PR libfortran/40714
468         * io/transfer.c (finalize_transfer): Set current_record to 0
469         before returning in case of error.
470
471 2009-07-12  Tobias Burnus  <burnus@net-b.de>
472
473         PR libfortran/22423
474         * io/io.h (namelist_type): Use the proper enum for GFC_DTYPE_*.
475         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Make sure
476         variable is initialized to silence warning.
477
478 2009-07-10  Steven G. Kargl  <kargl@gcc.gnu.org>
479
480         * c99_functions.c (ccoshf, ccosh, ccoshl, ctanhf, ctanh, ctanl):
481         Fix errant minus.
482
483 2009-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
484
485         PR libfortran/40330
486         PR libfortran/40662
487         * io/io.h (st_parameter_dt): Define format_not_saved bit used to signal
488         whether the parsed format data was previously saved. Used to determine
489         if the current format data should be freed or not.
490         * io/transfer.c (st_read_done): Use the format_not_saved bit.
491         (st_write_done): Likewise.
492         * io/format.c (parse_format_list): Add boolean pointer to arg list. This
493         pointer is used to return status to the caller regarding whether it is
494         safe to cache the parsed format data.  Currently, if a FMT_STRING token
495         is encounetered, it is not safe to cache. Also, added a local boolean
496         variable to hold this information as recursive calls to
497         parse_format_list are made.  Remove previous save_format logic.
498         (parse_format): Do not use the format caching facility if the current
499         unit is an internal unit or if it is not safe to save parsed format
500         data.
501         
502 2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
503
504         PR libfortran/40576
505         * io/transfer.c (sset): Adjust exit condition for loop.
506
507 2009-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
508
509         PR libfortran/40508
510         * io/format.c: Don't save parsed format data for internal units.
511
512 2009-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
513
514         PR fortran/37577
515         Port from fortran-dev
516         * runtime/in_pack_generic (internal_pack):  Remove unnecessary
517         test for stride == 0.
518         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
519         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
520         of stride in "shape" argument.  Use array access macros for
521         accessing array descriptors.
522         * libgfortran.h (struct descriptor_dimension):  Change stride
523         to _stride, lbound to _lbound and ubound to _ubound.
524         (GFC_DIMENSION_LBOUND):  Use new name(s) in struct
525         descriptor_dimension.
526         (GFC_DIMENSION_UBOUND):  Likewise.
527         (GFC_DIMENSION_STRIDE):  Likewise.
528         (GFC_DIMENSION_EXTENT):  Likewise.
529         (GFC_DIMENSION_SET):  Likewise.
530         (GFC_DESCRIPTOR_LBOUND):  Likewise.
531         (GFC_DESCRIPTOR_UBOUND):  Likewise.
532         (GFC_DESCRIPTOR_EXTENT):  Likewise.
533         (GFC_DESCRIPTOR_STRIDE):  Likewise.
534         * io/transfer.c (transfer_array):  Use array access macros.
535         Use byte-sized strides.
536         * intrinsics/eoshift0.c (eoshift0):  Use array access
537         macros everywhere.
538         * m4/in_pack.m4 (internal_pack_'rtype_ccode`):  Use
539         array access macros for accessing array descriptors.
540         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):
541         Likewise.
542         * m4/matmull.m4 (matmul_'rtype_code`):  Likewise.
543         * m4/matmul.m4 (matmul_'rtype_code`):  Likewise.
544         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
545         (unpack1_'rtype_code`):  Likewise.
546         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise.
547         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Use array access
548         macros everywhere.
549                 * intrinsics/dtime.c (dtime_sub):  Use array access macros
550         for accessing array descriptors.
551         * intrinsics/cshift0 (cshift0):  Likewise.
552         * intrinsics/etime.c:  Likewise.  Remove redundant calculation
553         of rdim.
554         * m4/cshift0.m4 (cshift0_'rtype_code`):  Use array access macros
555         for accessing array descriptors.
556         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
557         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
558         (spread_scalar_'rtype_code`):  Likewise.
559         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
560         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
561         * m4/eoshift1.m4 (eoshift1):  Likewise.  Remove size argument,
562         calculate within function.
563         (eoshift1_'atype_kind`):  Remove size argument from call
564         to eoshift1.
565         (eoshift1_'atype_kind`_char):  Likewise.
566         (eoshift1_'atype_kind`_char4):  Likewise.
567         * m4/eoshift3.m4 (eoshift3):  Remove size argument, calculate
568         within function. Use array access macros for accessing array
569         descriptors.
570         (eoshift3_'atype_kind`):  Remove size argument from call
571         to eoshift1.
572         (eoshift3_'atype_kind`_char):  Likewise.
573         (eoshift3_'atype_kind`_char4):  Likewise.
574         * m4/shape.m4 (shape_'rtype_kind`):  Use array access macros
575         for accessing array descriptors.
576         * m4/cshift1.m4 (cshift1): Remove size argument, calculate
577         within function. Use array access macros for accessing array
578         descriptors.
579         (cshift1_'atype_kind`):  Remove size argument from call to
580         cshift1.
581         (cshift1_'atype_kind`_char):  Remove size argument from call to
582         cshift1.
583         (cshift1_'atype_kind`_char4):  Remove size argument from call to
584         cshift1.
585         * m4/reshape.m4 (reshape_'rtype_ccode`):  Use array access macros
586         for accessing array descriptors.
587         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
588         * intrinsics/pack_generic.c (pack_internal):  Use array access
589         macros for accessing array descriptors.
590         (pack_s_internal):  Likewise.
591         * intrinsics/transpose_generic.c (transpose_internal):  Remove
592         size argument, calculate from array descriptor. Use array
593         access macros for accessing array descriptors.
594         (transpose):  Remove size argument from call.
595         (transpoe_char):  Likewise.
596         (transpose_char4):  Likewise.
597         * intrinsics/move_alloc.c (move_alloc):  Use array access macros
598         for accessing array descriptors.
599         * intrinsics/spread_generic.c (spread_internal):  Remove size
600         argument, calculate from array descriptor.  Use array access
601         macros for accessing array descriptors.
602         (spread_internal_scalar):  Likewise.
603         (spread):  Remove size argument from call to spread_internal.
604         (spread_char):  Mark argument source_length as unused.
605         Remove size argument from call to spread_internal.
606         (spread_char4):  Likewise.
607         (spread_char_scalar):  Likewise.
608         (spread_char4_scalar):  Likewise.
609         * intrinsics/unpack_generic.c (unpack_internal):  Use array access
610         macros for accessing array descriptors.
611         * intrinsics/eoshift2.c (eoshift2):  Remove size argument, calculate
612         from array descriptor instead.  Use array access macros for
613         accessing array descriptors.
614         (eoshift2_##N):  Remove size argument from call to eoshift2.
615         (eoshift2_##N_##char):  Likewise.
616         (eoshift2_##N_##char4):  Likewise.
617         * intrinsics/reshape_generic.c (reshape_internal):  Use array
618         access macross for accessing array descriptors.
619         * libgfortran.h:  Introduce new macros GFC_DIMENSION_LBOUND,
620         GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT,
621         GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND,
622         GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES,
623         GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES
624         * runtime/in_pack_generic.c (internal_pack):  Use new macros
625         for array descriptor access.
626         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
627         * intrinsics/dtime.c (dtime_sub):  Likewise.
628         * intrinsics/cshift0 (cshift0):  Remove argument size,
629         calculate directly from the array descriptor.  Use new macros
630         for array descriptor access.
631         * cshift0_##N:  Remove shift argument in call to cshift0.
632         * cshift0_##N_char:  Mark array_length as unused.  Remove
633         array_length in call to cshift0.
634         * cshift0_##N_char4:  Likewise.
635         * intrisics/etime.c:  Use new macros for array descriptor access.
636         * intrinsics/stat.c (stat_i4_sub_0):  Likewise.
637         (stat_i8_sub_0):  Likewise.
638         (fstat_i4_sub):  Likewise.
639         (fstat_i8_sub):  Likewise.
640         * intrinsics/date_and_time.c (date_and_time):  Likewise.
641         (secnds):  Likewise.
642         (itime_i4):  Likewise.
643         (itime_i8):  Likewise.
644         (idate_i4):  Likewise.
645         (idate_i8):  Likewise.
646         (gmtime_i4):  Likewise.
647         (gmtime_i8):  Likewise.
648         (ltime_i4):  Likewise.
649         (litme_i8):  Likewise.
650         * intrinsics/associated.c (associated):  Likewise.
651         * intrinsics/eoshift0.c (eoshift0):  Likewise.
652         * intriniscs/size.c (size0):  Likewise.
653         * intrinsics/random.c (arandom_r4):  Likewise.
654         (arandom_r8):  Likewise.
655         (arandom_r10):  Likewise.
656         (arandom_r16):  Likewise.
657         (random_seed_i4):  Likewise.
658         (random_seed_i8):  Likewise.
659         * io/list_read.c (nml_parse_qualifier):  Likewise.
660         (nml_touch_nodes):  Likewise.
661         (nml_read_obj):  Likewise.
662         (get_name):  Likewise.
663         * io/transfer.c (transfer_array):  Likewise.
664         (init_loop_spec):  Likewise.
665         (st_set_nml_var_dim):  Likewise.
666         * io/write.c (nml_write_obj):  Likewise.
667         (obj_loop):  Likewise.
668         * generated/all_l1.c: Regenerated.
669         * generated/all_l16.c: Regenerated.
670         * generated/all_l2.c: Regenerated.
671         * generated/all_l4.c: Regenerated.
672         * generated/all_l8.c: Regenerated.
673         * generated/any_l1.c: Regenerated.
674         * generated/any_l16.c: Regenerated.
675         * generated/any_l2.c: Regenerated.
676         * generated/any_l4.c: Regenerated.
677         * generated/any_l8.c: Regenerated.
678         * generated/count_16_l.c: Regenerated.
679         * generated/count_1_l.c: Regenerated.
680         * generated/count_2_l.c: Regenerated.
681         * generated/count_4_l.c: Regenerated.
682         * generated/count_8_l.c: Regenerated.
683         * generated/cshift0_c10.c: Regenerated.
684         * generated/cshift0_c16.c: Regenerated.
685         * generated/cshift0_c4.c: Regenerated.
686         * generated/cshift0_c8.c: Regenerated.
687         * generated/cshift0_i1.c: Regenerated.
688         * generated/cshift0_i16.c: Regenerated.
689         * generated/cshift0_i2.c: Regenerated.
690         * generated/cshift0_i4.c: Regenerated.
691         * generated/cshift0_i8.c: Regenerated.
692         * generated/cshift0_r10.c: Regenerated.
693         * generated/cshift0_r16.c: Regenerated.
694         * generated/cshift0_r4.c: Regenerated.
695         * generated/cshift0_r8.c: Regenerated.
696         * generated/cshift1_16.c: Regenerated.
697         * generated/cshift1_4.c: Regenerated.
698         * generated/cshift1_8.c: Regenerated.
699         * generated/eoshift1_16.c: Regenerated.
700         * generated/eoshift1_4.c: Regenerated.
701         * generated/eoshift1_8.c: Regenerated.
702         * generated/eoshift3_16.c: Regenerated.
703         * generated/eoshift3_4.c: Regenerated.
704         * generated/eoshift3_8.c: Regenerated.
705         * generated/in_pack_c10.c: Regenerated.
706         * generated/in_pack_c16.c: Regenerated.
707         * generated/in_pack_c4.c: Regenerated.
708         * generated/in_pack_c8.c: Regenerated.
709         * generated/in_pack_i1.c: Regenerated.
710         * generated/in_pack_i16.c: Regenerated.
711         * generated/in_pack_i2.c: Regenerated.
712         * generated/in_pack_i4.c: Regenerated.
713         * generated/in_pack_i8.c: Regenerated.
714         * generated/in_pack_r10.c: Regenerated.
715         * generated/in_pack_r16.c: Regenerated.
716         * generated/in_pack_r4.c: Regenerated.
717         * generated/in_pack_r8.c: Regenerated.
718         * generated/in_unpack_c10.c: Regenerated.
719         * generated/in_unpack_c16.c: Regenerated.
720         * generated/in_unpack_c4.c: Regenerated.
721         * generated/in_unpack_c8.c: Regenerated.
722         * generated/in_unpack_i1.c: Regenerated.
723         * generated/in_unpack_i16.c: Regenerated.
724         * generated/in_unpack_i2.c: Regenerated.
725         * generated/in_unpack_i4.c: Regenerated.
726         * generated/in_unpack_i8.c: Regenerated.
727         * generated/in_unpack_r10.c: Regenerated.
728         * generated/in_unpack_r16.c: Regenerated.
729         * generated/in_unpack_r4.c: Regenerated.
730         * generated/in_unpack_r8.c: Regenerated.
731         * generated/matmul_c10.c: Regenerated.
732         * generated/matmul_c16.c: Regenerated.
733         * generated/matmul_c4.c: Regenerated.
734         * generated/matmul_c8.c: Regenerated.
735         * generated/matmul_i1.c: Regenerated.
736         * generated/matmul_i16.c: Regenerated.
737         * generated/matmul_i2.c: Regenerated.
738         * generated/matmul_i4.c: Regenerated.
739         * generated/matmul_i8.c: Regenerated.
740         * generated/matmul_l16.c: Regenerated.
741         * generated/matmul_l4.c: Regenerated.
742         * generated/matmul_l8.c: Regenerated.
743         * generated/matmul_r10.c: Regenerated.
744         * generated/matmul_r16.c: Regenerated.
745         * generated/matmul_r4.c: Regenerated.
746         * generated/matmul_r8.c: Regenerated.
747         * generated/maxloc0_16_i1.c: Regenerated.
748         * generated/maxloc0_16_i16.c: Regenerated.
749         * generated/maxloc0_16_i2.c: Regenerated.
750         * generated/maxloc0_16_i4.c: Regenerated.
751         * generated/maxloc0_16_i8.c: Regenerated.
752         * generated/maxloc0_16_r10.c: Regenerated.
753         * generated/maxloc0_16_r16.c: Regenerated.
754         * generated/maxloc0_16_r4.c: Regenerated.
755         * generated/maxloc0_16_r8.c: Regenerated.
756         * generated/maxloc0_4_i1.c: Regenerated.
757         * generated/maxloc0_4_i16.c: Regenerated.
758         * generated/maxloc0_4_i2.c: Regenerated.
759         * generated/maxloc0_4_i4.c: Regenerated.
760         * generated/maxloc0_4_i8.c: Regenerated.
761         * generated/maxloc0_4_r10.c: Regenerated.
762         * generated/maxloc0_4_r16.c: Regenerated.
763         * generated/maxloc0_4_r4.c: Regenerated.
764         * generated/maxloc0_4_r8.c: Regenerated.
765         * generated/maxloc0_8_i1.c: Regenerated.
766         * generated/maxloc0_8_i16.c: Regenerated.
767         * generated/maxloc0_8_i2.c: Regenerated.
768         * generated/maxloc0_8_i4.c: Regenerated.
769         * generated/maxloc0_8_i8.c: Regenerated.
770         * generated/maxloc0_8_r10.c: Regenerated.
771         * generated/maxloc0_8_r16.c: Regenerated.
772         * generated/maxloc0_8_r4.c: Regenerated.
773         * generated/maxloc0_8_r8.c: Regenerated.
774         * generated/maxloc1_16_i1.c: Regenerated.
775         * generated/maxloc1_16_i16.c: Regenerated.
776         * generated/maxloc1_16_i2.c: Regenerated.
777         * generated/maxloc1_16_i4.c: Regenerated.
778         * generated/maxloc1_16_i8.c: Regenerated.
779         * generated/maxloc1_16_r10.c: Regenerated.
780         * generated/maxloc1_16_r16.c: Regenerated.
781         * generated/maxloc1_16_r4.c: Regenerated.
782         * generated/maxloc1_16_r8.c: Regenerated.
783         * generated/maxloc1_4_i1.c: Regenerated.
784         * generated/maxloc1_4_i16.c: Regenerated.
785         * generated/maxloc1_4_i2.c: Regenerated.
786         * generated/maxloc1_4_i4.c: Regenerated.
787         * generated/maxloc1_4_i8.c: Regenerated.
788         * generated/maxloc1_4_r10.c: Regenerated.
789         * generated/maxloc1_4_r16.c: Regenerated.
790         * generated/maxloc1_4_r4.c: Regenerated.
791         * generated/maxloc1_4_r8.c: Regenerated.
792         * generated/maxloc1_8_i1.c: Regenerated.
793         * generated/maxloc1_8_i16.c: Regenerated.
794         * generated/maxloc1_8_i2.c: Regenerated.
795         * generated/maxloc1_8_i4.c: Regenerated.
796         * generated/maxloc1_8_i8.c: Regenerated.
797         * generated/maxloc1_8_r10.c: Regenerated.
798         * generated/maxloc1_8_r16.c: Regenerated.
799         * generated/maxloc1_8_r4.c: Regenerated.
800         * generated/maxloc1_8_r8.c: Regenerated.
801         * generated/maxval_i1.c: Regenerated.
802         * generated/maxval_i16.c: Regenerated.
803         * generated/maxval_i2.c: Regenerated.
804         * generated/maxval_i4.c: Regenerated.
805         * generated/maxval_i8.c: Regenerated.
806         * generated/maxval_r10.c: Regenerated.
807         * generated/maxval_r16.c: Regenerated.
808         * generated/maxval_r4.c: Regenerated.
809         * generated/maxval_r8.c: Regenerated.
810         * generated/minloc0_16_i1.c: Regenerated.
811         * generated/minloc0_16_i16.c: Regenerated.
812         * generated/minloc0_16_i2.c: Regenerated.
813         * generated/minloc0_16_i4.c: Regenerated.
814         * generated/minloc0_16_i8.c: Regenerated.
815         * generated/minloc0_16_r10.c: Regenerated.
816         * generated/minloc0_16_r16.c: Regenerated.
817         * generated/minloc0_16_r4.c: Regenerated.
818         * generated/minloc0_16_r8.c: Regenerated.
819         * generated/minloc0_4_i1.c: Regenerated.
820         * generated/minloc0_4_i16.c: Regenerated.
821         * generated/minloc0_4_i2.c: Regenerated.
822         * generated/minloc0_4_i4.c: Regenerated.
823         * generated/minloc0_4_i8.c: Regenerated.
824         * generated/minloc0_4_r10.c: Regenerated.
825         * generated/minloc0_4_r16.c: Regenerated.
826         * generated/minloc0_4_r4.c: Regenerated.
827         * generated/minloc0_4_r8.c: Regenerated.
828         * generated/minloc0_8_i1.c: Regenerated.
829         * generated/minloc0_8_i16.c: Regenerated.
830         * generated/minloc0_8_i2.c: Regenerated.
831         * generated/minloc0_8_i4.c: Regenerated.
832         * generated/minloc0_8_i8.c: Regenerated.
833         * generated/minloc0_8_r10.c: Regenerated.
834         * generated/minloc0_8_r16.c: Regenerated.
835         * generated/minloc0_8_r4.c: Regenerated.
836         * generated/minloc0_8_r8.c: Regenerated.
837         * generated/minloc1_16_i1.c: Regenerated.
838         * generated/minloc1_16_i16.c: Regenerated.
839         * generated/minloc1_16_i2.c: Regenerated.
840         * generated/minloc1_16_i4.c: Regenerated.
841         * generated/minloc1_16_i8.c: Regenerated.
842         * generated/minloc1_16_r10.c: Regenerated.
843         * generated/minloc1_16_r16.c: Regenerated.
844         * generated/minloc1_16_r4.c: Regenerated.
845         * generated/minloc1_16_r8.c: Regenerated.
846         * generated/minloc1_4_i1.c: Regenerated.
847         * generated/minloc1_4_i16.c: Regenerated.
848         * generated/minloc1_4_i2.c: Regenerated.
849         * generated/minloc1_4_i4.c: Regenerated.
850         * generated/minloc1_4_i8.c: Regenerated.
851         * generated/minloc1_4_r10.c: Regenerated.
852         * generated/minloc1_4_r16.c: Regenerated.
853         * generated/minloc1_4_r4.c: Regenerated.
854         * generated/minloc1_4_r8.c: Regenerated.
855         * generated/minloc1_8_i1.c: Regenerated.
856         * generated/minloc1_8_i16.c: Regenerated.
857         * generated/minloc1_8_i2.c: Regenerated.
858         * generated/minloc1_8_i4.c: Regenerated.
859         * generated/minloc1_8_i8.c: Regenerated.
860         * generated/minloc1_8_r10.c: Regenerated.
861         * generated/minloc1_8_r16.c: Regenerated.
862         * generated/minloc1_8_r4.c: Regenerated.
863         * generated/minloc1_8_r8.c: Regenerated.
864         * generated/minval_i1.c: Regenerated.
865         * generated/minval_i16.c: Regenerated.
866         * generated/minval_i2.c: Regenerated.
867         * generated/minval_i4.c: Regenerated.
868         * generated/minval_i8.c: Regenerated.
869         * generated/minval_r10.c: Regenerated.
870         * generated/minval_r16.c: Regenerated.
871         * generated/minval_r4.c: Regenerated.
872         * generated/minval_r8.c: Regenerated.
873         * generated/pack_c10.c: Regenerated.
874         * generated/pack_c16.c: Regenerated.
875         * generated/pack_c4.c: Regenerated.
876         * generated/pack_c8.c: Regenerated.
877         * generated/pack_i1.c: Regenerated.
878         * generated/pack_i16.c: Regenerated.
879         * generated/pack_i2.c: Regenerated.
880         * generated/pack_i4.c: Regenerated.
881         * generated/pack_i8.c: Regenerated.
882         * generated/pack_r10.c: Regenerated.
883         * generated/pack_r16.c: Regenerated.
884         * generated/pack_r4.c: Regenerated.
885         * generated/pack_r8.c: Regenerated.
886         * generated/product_c10.c: Regenerated.
887         * generated/product_c16.c: Regenerated.
888         * generated/product_c4.c: Regenerated.
889         * generated/product_c8.c: Regenerated.
890         * generated/product_i1.c: Regenerated.
891         * generated/product_i16.c: Regenerated.
892         * generated/product_i2.c: Regenerated.
893         * generated/product_i4.c: Regenerated.
894         * generated/product_i8.c: Regenerated.
895         * generated/product_r10.c: Regenerated.
896         * generated/product_r16.c: Regenerated.
897         * generated/product_r4.c: Regenerated.
898         * generated/product_r8.c: Regenerated.
899         * generated/reshape_c10.c: Regenerated.
900         * generated/reshape_c16.c: Regenerated.
901         * generated/reshape_c4.c: Regenerated.
902         * generated/reshape_c8.c: Regenerated.
903         * generated/reshape_i16.c: Regenerated.
904         * generated/reshape_i4.c: Regenerated.
905         * generated/reshape_i8.c: Regenerated.
906         * generated/reshape_r10.c: Regenerated.
907         * generated/reshape_r16.c: Regenerated.
908         * generated/reshape_r4.c: Regenerated.
909         * generated/reshape_r8.c: Regenerated.
910         * generated/shape_i16.c: Regenerated.
911         * generated/shape_i4.c: Regenerated.
912         * generated/shape_i8.c: Regenerated.
913         * generated/spread_c10.c: Regenerated.
914         * generated/spread_c16.c: Regenerated.
915         * generated/spread_c4.c: Regenerated.
916         * generated/spread_c8.c: Regenerated.
917         * generated/spread_i1.c: Regenerated.
918         * generated/spread_i16.c: Regenerated.
919         * generated/spread_i2.c: Regenerated.
920         * generated/spread_i4.c: Regenerated.
921         * generated/spread_i8.c: Regenerated.
922         * generated/spread_r10.c: Regenerated.
923         * generated/spread_r16.c: Regenerated.
924         * generated/spread_r4.c: Regenerated.
925         * generated/spread_r8.c: Regenerated.
926         * generated/sum_c10.c: Regenerated.
927         * generated/sum_c16.c: Regenerated.
928         * generated/sum_c4.c: Regenerated.
929         * generated/sum_c8.c: Regenerated.
930         * generated/sum_i1.c: Regenerated.
931         * generated/sum_i16.c: Regenerated.
932         * generated/sum_i2.c: Regenerated.
933         * generated/sum_i4.c: Regenerated.
934         * generated/sum_i8.c: Regenerated.
935         * generated/sum_r10.c: Regenerated.
936         * generated/sum_r16.c: Regenerated.
937         * generated/sum_r4.c: Regenerated.
938         * generated/sum_r8.c: Regenerated.
939         * generated/transpose_c10.c: Regenerated.
940         * generated/transpose_c16.c: Regenerated.
941         * generated/transpose_c4.c: Regenerated.
942         * generated/transpose_c8.c: Regenerated.
943         * generated/transpose_i16.c: Regenerated.
944         * generated/transpose_i4.c: Regenerated.
945         * generated/transpose_i8.c: Regenerated.
946         * generated/transpose_r10.c: Regenerated.
947         * generated/transpose_r16.c: Regenerated.
948         * generated/transpose_r4.c: Regenerated.
949         * generated/transpose_r8.c: Regenerated.
950         * generated/unpack_c10.c: Regenerated.
951         * generated/unpack_c16.c: Regenerated.
952         * generated/unpack_c4.c: Regenerated.
953         * generated/unpack_c8.c: Regenerated.
954         * generated/unpack_i1.c: Regenerated.
955         * generated/unpack_i16.c: Regenerated.
956         * generated/unpack_i2.c: Regenerated.
957         * generated/unpack_i4.c: Regenerated.
958         * generated/unpack_i8.c: Regenerated.
959         * generated/unpack_r10.c: Regenerated.
960         * generated/unpack_r16.c: Regenerated.
961         * generated/unpack_r4.c: Regenerated.
962         * generated/unpack_r8.c: Regenerated.
963
964 2009-06-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
965
966         * fmain.c (main): Don't PREFIX set_args.
967         * libgfortran.h (set_args): Use iexport_proto.
968         * runtime/main.c (set_args): Use iexport.
969
970 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
971
972         PR libfortran/40008
973         * libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT.
974         * io/open.c (st_open): Don't error on negative unit number if NEWUNIT
975         was specified. If NEWUNIT is specified, call new function to get the
976         unique unit number and assign it.
977         * io/io.h (st_parameter_open): Add pointer to newunit.  Add prototype for
978         next_available_newunit. Add prototype for new function,
979         get_unique_unit_number.
980         * io/unit.c: Declare next_available_newunit. Define the first newunit
981         number. (init_units): Initialize next_available_unit.
982         (get_unique_unit_number): New function. Fix whitespace and comments.
983         * io/transfer.c (data_transfer_init): Update error message to not be
984         specific to OPEN statements.
985
986 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
987
988         PR libfortran/40334
989         * io/list_read.c (list_formatted_read_scalar): Set the end file
990         conditions after a return from EOF error.
991
992 2009-06-04  Janne Blomqvist  <jb@gcc.gnu.org>
993
994         PR libfortran/40330
995         * io/format.c (free_format_hash_table): Also free and nullify hash key.
996         (save_parsed_format): Copy string rather than pointer copy.
997         
998 2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
999
1000         PR fortran/40019
1001         * intrinsics/bit_intrinsics.c: New file.
1002         * gfortran.map (GFORTRAN_1.2): New list.
1003         * Makefile.am: Add intrinsics/bit_intrinsics.c.
1004         * Makefile.in: Regenerate.
1005
1006 2009-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
1007
1008         PR libfortran/40190
1009         * configure.ac: Check for localtime_r and gmtime_r.
1010         * intrinsics/date_and_time.c: Add fallback implementations for
1011         localtime_r and gmtime_r.
1012         (date_and_time): Change to use localtime_r and gmtime_r instead of
1013         localtime and gmtime, respectively.
1014         (itime0): Use localtime_r instead of localtime.
1015         (ltime_0): Likewise.
1016         (gmtime_0): Use gmtime_r instead of gmtime.
1017         * config.h.in: Regenerated
1018         * configure: Regenerated.
1019
1020 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1021
1022         PR fortran/39178
1023         * runtime/main.c (store_exe_path): Remove static attribute.
1024         * libgfortran.h: Add back store_exe_path prototype.
1025
1026 2009-05-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1027
1028         PR libfortran/40187
1029         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
1030         of stride in "shape" argument.
1031
1032 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1033
1034         PR fortran/39178
1035         * runtime/main.c (store_exe_path): Make static
1036         and multiple-times callable.
1037         (set_args): Call store_exe_path.
1038         * libgfortran.h: Remove store_exe_path prototype.
1039         * fmain.c (main): Remove store_exe_path call.
1040
1041 2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1042
1043         PR libfortran/37754
1044         * io/write_float.def: Simplify format calculation.
1045         
1046 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1047
1048         PR fortran/22423
1049         * io/transfer.c (read_block_direct): Avoid warning.
1050         * runtime/string.c (compare0): Avoid warning.
1051
1052 2009-04-30  Janne Blomqvist  <jb@gcc.gnu.org>
1053
1054         PR libfortran/39667
1055         * io/file_pos.c (st_rewind): Don't truncate or flush.
1056         * io/intrinsics.c (fgetc): Flush if switching mode.
1057         (fputc): Likewise.
1058
1059 2009-04-18  Janne Blomqvist  <jb@gcc.gnu.org>
1060
1061         PR libfortran/39782
1062         * io/transfer.c (data_transfer_init): Don't flush before seek.
1063         (finalize_transfer): Remove extra flush.
1064
1065 2009-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1066
1067         * io/io.h (is_preconnected): Remove prototype.
1068         * io/unix.c (is_preconnected): Remove function.
1069
1070 2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1071
1072         * configure.ac: Test for -ffunction-sections -fdata-sections and
1073         set SECTION_FLAGS accordingly.
1074         * configure: Regenerate.
1075
1076         * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS.
1077         * Makefile.in: Regenerate.
1078
1079 2009-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1080
1081         PR libfortran/38668
1082         * io/transfer.c (finalize_transfer): Don't flush for advance='no'.
1083
1084 2009-04-15 Danny Smith  <dannysmith@clear.net.nz>
1085
1086         * io/write.c (itoa) : Rename back to gfc_itoa.
1087         (write_i): Adjust call to write_decimal.
1088         (write_integer):  Use gfc_itoa.
1089
1090 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1091
1092         * io/io.h (move_pos_offset): Remove prototype.
1093         * io/transfer.c (formatted_transfer_scalar_read): Use sseek
1094         instead of move_pos_offset.
1095         * io/unix.c (move_pos_offset): Remove.
1096
1097 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1098
1099         PR libfortran/39665 libfortran/39702 libfortran/39709
1100         * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
1101         * io/list_read.c (read_complex): Read directly into user pointer.
1102         (read_real): Likewise.
1103         (list_formatted_read_scalar): Update read_complex and read_real calls.
1104         (nml_read_obj): Read directly into user pointer.
1105
1106 2009-04-09  Janne Blomqvist  <jb@gcc.gnu.org>
1107
1108         PR libfortran/39665
1109         * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
1110         * io/read.c (convert_real): Add note about alignment requirements.
1111
1112 2009-04-09  Nick Clifton  <nickc@redhat.com>
1113
1114         * m4/cshift0.m4: Change copyright header to refer to version 3
1115         of the GNU General Public License with version 3.1 of the GCC
1116         Runtime Library Exception and to point readers at the COPYING3
1117         and COPYING3.RUNTIME files and the FSF's license web page.
1118         * c99_protos.h: Likewise.
1119         * config/fpu-387.h: Likewise.
1120         * config/fpu-aix.h: Likewise.
1121         * config/fpu-generic.h: Likewise.
1122         * config/fpu-glibc.h: Likewise.
1123         * config/fpu-sysv.h: Likewise.
1124         * intrinsics/abort.c: Likewise.
1125         * intrinsics/access.c: Likewise.
1126         * intrinsics/args.c: Likewise.
1127         * intrinsics/associated.c: Likewise.
1128         * intrinsics/c99_functions.c: Likewise.
1129         * intrinsics/chdir.c: Likewise.
1130         * intrinsics/chmod.c: Likewise.
1131         * intrinsics/clock.c: Likewise.
1132         * intrinsics/cpu_time.c: Likewise.
1133         * intrinsics/cshift0.c: Likewise.
1134         * intrinsics/ctime.c: Likewise.
1135         * intrinsics/date_and_time.c: Likewise.
1136         * intrinsics/dprod_r8.f90: Likewise.
1137         * intrinsics/dtime.c: Likewise.
1138         * intrinsics/env.c: Likewise.
1139         * intrinsics/eoshift0.c: Likewise.
1140         * intrinsics/eoshift2.c: Likewise.
1141         * intrinsics/erfc_scaled.c: Likewise.
1142         * intrinsics/erfc_scaled_inc.c: Likewise.
1143         * intrinsics/etime.c: Likewise.
1144         * intrinsics/exit.c: Likewise.
1145         * intrinsics/f2c_specifics.F90: Likewise.
1146         * intrinsics/fnum.c: Likewise.
1147         * intrinsics/gerror.c: Likewise.
1148         * intrinsics/getXid.c: Likewise.
1149         * intrinsics/getcwd.c: Likewise.
1150         * intrinsics/getlog.c: Likewise.
1151         * intrinsics/hostnm.c: Likewise.
1152         * intrinsics/ierrno.c: Likewise.
1153         * intrinsics/ishftc.c: Likewise.
1154         * intrinsics/iso_c_binding.c: Likewise.
1155         * intrinsics/iso_c_binding.h: Likewise.
1156         * intrinsics/iso_c_generated_procs.c: Likewise.
1157         * intrinsics/kill.c: Likewise.
1158         * intrinsics/link.c: Likewise.
1159         * intrinsics/malloc.c: Likewise.
1160         * intrinsics/move_alloc.c: Likewise.
1161         * intrinsics/mvbits.c: Likewise.
1162         * intrinsics/pack_generic.c: Likewise.
1163         * intrinsics/perror.c: Likewise.
1164         * intrinsics/rand.c: Likewise.
1165         * intrinsics/random.c: Likewise.
1166         * intrinsics/rename.c: Likewise.
1167         * intrinsics/reshape_generic.c: Likewise.
1168         * intrinsics/reshape_packed.c: Likewise.
1169         * intrinsics/selected_char_kind.c: Likewise.
1170         * intrinsics/selected_int_kind.f90: Likewise.
1171         * intrinsics/selected_real_kind.f90: Likewise.
1172         * intrinsics/signal.c: Likewise.
1173         * intrinsics/size.c: Likewise.
1174         * intrinsics/sleep.c: Likewise.
1175         * intrinsics/spread_generic.c: Likewise.
1176         * intrinsics/stat.c: Likewise.
1177         * intrinsics/string_intrinsics.c: Likewise.
1178         * intrinsics/string_intrinsics_inc.c: Likewise.
1179         * intrinsics/symlnk.c: Likewise.
1180         * intrinsics/system.c: Likewise.
1181         * intrinsics/system_clock.c: Likewise.
1182         * intrinsics/time.c: Likewise.
1183         * intrinsics/time_1.h: Likewise.
1184         * intrinsics/transpose_generic.c: Likewise.
1185         * intrinsics/umask.c: Likewise.
1186         * intrinsics/unlink.c: Likewise.
1187         * intrinsics/unpack_generic.c: Likewise.
1188         * io/close.c: Likewise.
1189         * io/fbuf.c: Likewise.
1190         * io/file_pos.c: Likewise.
1191         * io/format.c: Likewise.
1192         * io/inquire.c: Likewise.
1193         * io/intrinsics.c: Likewise.
1194         * io/io.h: Likewise.
1195         * io/list_read.c: Likewise.
1196         * io/lock.c: Likewise.
1197         * io/open.c: Likewise.
1198         * io/read.c: Likewise.
1199         * io/size_from_kind.c: Likewise.
1200         * io/transfer.c: Likewise.
1201         * io/unit.c: Likewise.
1202         * io/unix.c: Likewise.
1203         * io/write.c: Likewise.
1204         * io/write_float.def: Likewise.
1205         * libgfortran.h: Likewise.
1206         * m4/all.m4: Likewise.
1207         * m4/any.m4: Likewise.
1208         * m4/count.m4: Likewise.
1209         * m4/cshift1.m4: Likewise.
1210         * m4/eoshift1.m4: Likewise.
1211         * m4/eoshift3.m4: Likewise.
1212         * m4/exponent.m4: Likewise.
1213         * m4/fraction.m4: Likewise.
1214         * m4/head.m4: Likewise.
1215         * m4/in_pack.m4: Likewise.
1216         * m4/in_unpack.m4: Likewise.
1217         * m4/matmul.m4: Likewise.
1218         * m4/matmull.m4: Likewise.
1219         * m4/maxloc0.m4: Likewise.
1220         * m4/maxloc1.m4: Likewise.
1221         * m4/maxval.m4: Likewise.
1222         * m4/minloc0.m4: Likewise.
1223         * m4/minloc1.m4: Likewise.
1224         * m4/minval.m4: Likewise.
1225         * m4/nearest.m4: Likewise.
1226         * m4/pack.m4: Likewise.
1227         * m4/pow.m4: Likewise.
1228         * m4/product.m4: Likewise.
1229         * m4/reshape.m4: Likewise.
1230         * m4/rrspacing.m4: Likewise.
1231         * m4/set_exponent.m4: Likewise.
1232         * m4/shape.m4: Likewise.
1233         * m4/spacing.m4: Likewise.
1234         * m4/spread.m4: Likewise.
1235         * m4/sum.m4: Likewise.
1236         * m4/transpose.m4: Likewise.
1237         * m4/unpack.m4: Likewise.
1238         * runtime/backtrace.c: Likewise.
1239         * runtime/compile_options.c: Likewise.
1240         * runtime/convert_char.c: Likewise.
1241         * runtime/environ.c: Likewise.
1242         * runtime/error.c: Likewise.
1243         * runtime/in_pack_generic.c: Likewise.
1244         * runtime/in_unpack_generic.c: Likewise.
1245         * runtime/main.c: Likewise.
1246         * runtime/memory.c: Likewise.
1247         * runtime/pause.c: Likewise.
1248         * runtime/select.c: Likewise.
1249         * runtime/select_inc.c: Likewise.
1250         * runtime/stop.c: Likewise.
1251         * runtime/string.c: Likewise.
1252         * generated/_abs_c10.F90: Regenerate.
1253         * generated/_abs_c16.F90: Regenerate.
1254         * generated/_abs_c4.F90: Regenerate.
1255         * generated/_abs_c8.F90: Regenerate.
1256         * generated/_abs_i16.F90: Regenerate.
1257         * generated/_abs_i4.F90: Regenerate.
1258         * generated/_abs_i8.F90: Regenerate.
1259         * generated/_abs_r10.F90: Regenerate.
1260         * generated/_abs_r16.F90: Regenerate.
1261         * generated/_abs_r4.F90: Regenerate.
1262         * generated/_abs_r8.F90: Regenerate.
1263         * generated/_acos_r10.F90: Regenerate.
1264         * generated/_acos_r16.F90: Regenerate.
1265         * generated/_acos_r4.F90: Regenerate.
1266         * generated/_acos_r8.F90: Regenerate.
1267         * generated/_acosh_r10.F90: Regenerate.
1268         * generated/_acosh_r16.F90: Regenerate.
1269         * generated/_acosh_r4.F90: Regenerate.
1270         * generated/_acosh_r8.F90: Regenerate.
1271         * generated/_aimag_c10.F90: Regenerate.
1272         * generated/_aimag_c16.F90: Regenerate.
1273         * generated/_aimag_c4.F90: Regenerate.
1274         * generated/_aimag_c8.F90: Regenerate.
1275         * generated/_aint_r10.F90: Regenerate.
1276         * generated/_aint_r16.F90: Regenerate.
1277         * generated/_aint_r4.F90: Regenerate.
1278         * generated/_aint_r8.F90: Regenerate.
1279         * generated/_anint_r10.F90: Regenerate.
1280         * generated/_anint_r16.F90: Regenerate.
1281         * generated/_anint_r4.F90: Regenerate.
1282         * generated/_anint_r8.F90: Regenerate.
1283         * generated/_asin_r10.F90: Regenerate.
1284         * generated/_asin_r16.F90: Regenerate.
1285         * generated/_asin_r4.F90: Regenerate.
1286         * generated/_asin_r8.F90: Regenerate.
1287         * generated/_asinh_r10.F90: Regenerate.
1288         * generated/_asinh_r16.F90: Regenerate.
1289         * generated/_asinh_r4.F90: Regenerate.
1290         * generated/_asinh_r8.F90: Regenerate.
1291         * generated/_atan2_r10.F90: Regenerate.
1292         * generated/_atan2_r16.F90: Regenerate.
1293         * generated/_atan2_r4.F90: Regenerate.
1294         * generated/_atan2_r8.F90: Regenerate.
1295         * generated/_atan_r10.F90: Regenerate.
1296         * generated/_atan_r16.F90: Regenerate.
1297         * generated/_atan_r4.F90: Regenerate.
1298         * generated/_atan_r8.F90: Regenerate.
1299         * generated/_atanh_r10.F90: Regenerate.
1300         * generated/_atanh_r16.F90: Regenerate.
1301         * generated/_atanh_r4.F90: Regenerate.
1302         * generated/_atanh_r8.F90: Regenerate.
1303         * generated/_conjg_c10.F90: Regenerate.
1304         * generated/_conjg_c16.F90: Regenerate.
1305         * generated/_conjg_c4.F90: Regenerate.
1306         * generated/_conjg_c8.F90: Regenerate.
1307         * generated/_cos_c10.F90: Regenerate.
1308         * generated/_cos_c16.F90: Regenerate.
1309         * generated/_cos_c4.F90: Regenerate.
1310         * generated/_cos_c8.F90: Regenerate.
1311         * generated/_cos_r10.F90: Regenerate.
1312         * generated/_cos_r16.F90: Regenerate.
1313         * generated/_cos_r4.F90: Regenerate.
1314         * generated/_cos_r8.F90: Regenerate.
1315         * generated/_cosh_r10.F90: Regenerate.
1316         * generated/_cosh_r16.F90: Regenerate.
1317         * generated/_cosh_r4.F90: Regenerate.
1318         * generated/_cosh_r8.F90: Regenerate.
1319         * generated/_dim_i16.F90: Regenerate.
1320         * generated/_dim_i4.F90: Regenerate.
1321         * generated/_dim_i8.F90: Regenerate.
1322         * generated/_dim_r10.F90: Regenerate.
1323         * generated/_dim_r16.F90: Regenerate.
1324         * generated/_dim_r4.F90: Regenerate.
1325         * generated/_dim_r8.F90: Regenerate.
1326         * generated/_exp_c10.F90: Regenerate.
1327         * generated/_exp_c16.F90: Regenerate.
1328         * generated/_exp_c4.F90: Regenerate.
1329         * generated/_exp_c8.F90: Regenerate.
1330         * generated/_exp_r10.F90: Regenerate.
1331         * generated/_exp_r16.F90: Regenerate.
1332         * generated/_exp_r4.F90: Regenerate.
1333         * generated/_exp_r8.F90: Regenerate.
1334         * generated/_log10_r10.F90: Regenerate.
1335         * generated/_log10_r16.F90: Regenerate.
1336         * generated/_log10_r4.F90: Regenerate.
1337         * generated/_log10_r8.F90: Regenerate.
1338         * generated/_log_c10.F90: Regenerate.
1339         * generated/_log_c16.F90: Regenerate.
1340         * generated/_log_c4.F90: Regenerate.
1341         * generated/_log_c8.F90: Regenerate.
1342         * generated/_log_r10.F90: Regenerate.
1343         * generated/_log_r16.F90: Regenerate.
1344         * generated/_log_r4.F90: Regenerate.
1345         * generated/_log_r8.F90: Regenerate.
1346         * generated/_mod_i16.F90: Regenerate.
1347         * generated/_mod_i4.F90: Regenerate.
1348         * generated/_mod_i8.F90: Regenerate.
1349         * generated/_mod_r10.F90: Regenerate.
1350         * generated/_mod_r16.F90: Regenerate.
1351         * generated/_mod_r4.F90: Regenerate.
1352         * generated/_mod_r8.F90: Regenerate.
1353         * generated/_sign_i16.F90: Regenerate.
1354         * generated/_sign_i4.F90: Regenerate.
1355         * generated/_sign_i8.F90: Regenerate.
1356         * generated/_sign_r10.F90: Regenerate.
1357         * generated/_sign_r16.F90: Regenerate.
1358         * generated/_sign_r4.F90: Regenerate.
1359         * generated/_sign_r8.F90: Regenerate.
1360         * generated/_sin_c10.F90: Regenerate.
1361         * generated/_sin_c16.F90: Regenerate.
1362         * generated/_sin_c4.F90: Regenerate.
1363         * generated/_sin_c8.F90: Regenerate.
1364         * generated/_sin_r10.F90: Regenerate.
1365         * generated/_sin_r16.F90: Regenerate.
1366         * generated/_sin_r4.F90: Regenerate.
1367         * generated/_sin_r8.F90: Regenerate.
1368         * generated/_sinh_r10.F90: Regenerate.
1369         * generated/_sinh_r16.F90: Regenerate.
1370         * generated/_sinh_r4.F90: Regenerate.
1371         * generated/_sinh_r8.F90: Regenerate.
1372         * generated/_sqrt_c10.F90: Regenerate.
1373         * generated/_sqrt_c16.F90: Regenerate.
1374         * generated/_sqrt_c4.F90: Regenerate.
1375         * generated/_sqrt_c8.F90: Regenerate.
1376         * generated/_sqrt_r10.F90: Regenerate.
1377         * generated/_sqrt_r16.F90: Regenerate.
1378         * generated/_sqrt_r4.F90: Regenerate.
1379         * generated/_sqrt_r8.F90: Regenerate.
1380         * generated/_tan_r10.F90: Regenerate.
1381         * generated/_tan_r16.F90: Regenerate.
1382         * generated/_tan_r4.F90: Regenerate.
1383         * generated/_tan_r8.F90: Regenerate.
1384         * generated/_tanh_r10.F90: Regenerate.
1385         * generated/_tanh_r16.F90: Regenerate.
1386         * generated/_tanh_r4.F90: Regenerate.
1387         * generated/_tanh_r8.F90: Regenerate.
1388         * generated/all_l1.c: Regenerate.
1389         * generated/all_l16.c: Regenerate.
1390         * generated/all_l2.c: Regenerate.
1391         * generated/all_l4.c: Regenerate.
1392         * generated/all_l8.c: Regenerate.
1393         * generated/any_l1.c: Regenerate.
1394         * generated/any_l16.c: Regenerate.
1395         * generated/any_l2.c: Regenerate.
1396         * generated/any_l4.c: Regenerate.
1397         * generated/any_l8.c: Regenerate.
1398         * generated/count_16_l.c: Regenerate.
1399         * generated/count_1_l.c: Regenerate.
1400         * generated/count_2_l.c: Regenerate.
1401         * generated/count_4_l.c: Regenerate.
1402         * generated/count_8_l.c: Regenerate.
1403         * generated/cshift0_c10.c: Regenerate.
1404         * generated/cshift0_c16.c: Regenerate.
1405         * generated/cshift0_c4.c: Regenerate.
1406         * generated/cshift0_c8.c: Regenerate.
1407         * generated/cshift0_i1.c: Regenerate.
1408         * generated/cshift0_i16.c: Regenerate.
1409         * generated/cshift0_i2.c: Regenerate.
1410         * generated/cshift0_i4.c: Regenerate.
1411         * generated/cshift0_i8.c: Regenerate.
1412         * generated/cshift0_r10.c: Regenerate.
1413         * generated/cshift0_r16.c: Regenerate.
1414         * generated/cshift0_r4.c: Regenerate.
1415         * generated/cshift0_r8.c: Regenerate.
1416         * generated/cshift1_16.c: Regenerate.
1417         * generated/cshift1_4.c: Regenerate.
1418         * generated/cshift1_8.c: Regenerate.
1419         * generated/eoshift1_16.c: Regenerate.
1420         * generated/eoshift1_4.c: Regenerate.
1421         * generated/eoshift1_8.c: Regenerate.
1422         * generated/eoshift3_16.c: Regenerate.
1423         * generated/eoshift3_4.c: Regenerate.
1424         * generated/eoshift3_8.c: Regenerate.
1425         * generated/exponent_r10.c: Regenerate.
1426         * generated/exponent_r16.c: Regenerate.
1427         * generated/exponent_r4.c: Regenerate.
1428         * generated/exponent_r8.c: Regenerate.
1429         * generated/fraction_r10.c: Regenerate.
1430         * generated/fraction_r16.c: Regenerate.
1431         * generated/fraction_r4.c: Regenerate.
1432         * generated/fraction_r8.c: Regenerate.
1433         * generated/in_pack_c10.c: Regenerate.
1434         * generated/in_pack_c16.c: Regenerate.
1435         * generated/in_pack_c4.c: Regenerate.
1436         * generated/in_pack_c8.c: Regenerate.
1437         * generated/in_pack_i1.c: Regenerate.
1438         * generated/in_pack_i16.c: Regenerate.
1439         * generated/in_pack_i2.c: Regenerate.
1440         * generated/in_pack_i4.c: Regenerate.
1441         * generated/in_pack_i8.c: Regenerate.
1442         * generated/in_pack_r10.c: Regenerate.
1443         * generated/in_pack_r16.c: Regenerate.
1444         * generated/in_pack_r4.c: Regenerate.
1445         * generated/in_pack_r8.c: Regenerate.
1446         * generated/in_unpack_c10.c: Regenerate.
1447         * generated/in_unpack_c16.c: Regenerate.
1448         * generated/in_unpack_c4.c: Regenerate.
1449         * generated/in_unpack_c8.c: Regenerate.
1450         * generated/in_unpack_i1.c: Regenerate.
1451         * generated/in_unpack_i16.c: Regenerate.
1452         * generated/in_unpack_i2.c: Regenerate.
1453         * generated/in_unpack_i4.c: Regenerate.
1454         * generated/in_unpack_i8.c: Regenerate.
1455         * generated/in_unpack_r10.c: Regenerate.
1456         * generated/in_unpack_r16.c: Regenerate.
1457         * generated/in_unpack_r4.c: Regenerate.
1458         * generated/in_unpack_r8.c: Regenerate.
1459         * generated/matmul_c10.c: Regenerate.
1460         * generated/matmul_c16.c: Regenerate.
1461         * generated/matmul_c4.c: Regenerate.
1462         * generated/matmul_c8.c: Regenerate.
1463         * generated/matmul_i1.c: Regenerate.
1464         * generated/matmul_i16.c: Regenerate.
1465         * generated/matmul_i2.c: Regenerate.
1466         * generated/matmul_i4.c: Regenerate.
1467         * generated/matmul_i8.c: Regenerate.
1468         * generated/matmul_l16.c: Regenerate.
1469         * generated/matmul_l4.c: Regenerate.
1470         * generated/matmul_l8.c: Regenerate.
1471         * generated/matmul_r10.c: Regenerate.
1472         * generated/matmul_r16.c: Regenerate.
1473         * generated/matmul_r4.c: Regenerate.
1474         * generated/matmul_r8.c: Regenerate.
1475         * generated/maxloc0_16_i1.c: Regenerate.
1476         * generated/maxloc0_16_i16.c: Regenerate.
1477         * generated/maxloc0_16_i2.c: Regenerate.
1478         * generated/maxloc0_16_i4.c: Regenerate.
1479         * generated/maxloc0_16_i8.c: Regenerate.
1480         * generated/maxloc0_16_r10.c: Regenerate.
1481         * generated/maxloc0_16_r16.c: Regenerate.
1482         * generated/maxloc0_16_r4.c: Regenerate.
1483         * generated/maxloc0_16_r8.c: Regenerate.
1484         * generated/maxloc0_4_i1.c: Regenerate.
1485         * generated/maxloc0_4_i16.c: Regenerate.
1486         * generated/maxloc0_4_i2.c: Regenerate.
1487         * generated/maxloc0_4_i4.c: Regenerate.
1488         * generated/maxloc0_4_i8.c: Regenerate.
1489         * generated/maxloc0_4_r10.c: Regenerate.
1490         * generated/maxloc0_4_r16.c: Regenerate.
1491         * generated/maxloc0_4_r4.c: Regenerate.
1492         * generated/maxloc0_4_r8.c: Regenerate.
1493         * generated/maxloc0_8_i1.c: Regenerate.
1494         * generated/maxloc0_8_i16.c: Regenerate.
1495         * generated/maxloc0_8_i2.c: Regenerate.
1496         * generated/maxloc0_8_i4.c: Regenerate.
1497         * generated/maxloc0_8_i8.c: Regenerate.
1498         * generated/maxloc0_8_r10.c: Regenerate.
1499         * generated/maxloc0_8_r16.c: Regenerate.
1500         * generated/maxloc0_8_r4.c: Regenerate.
1501         * generated/maxloc0_8_r8.c: Regenerate.
1502         * generated/maxloc1_16_i1.c: Regenerate.
1503         * generated/maxloc1_16_i16.c: Regenerate.
1504         * generated/maxloc1_16_i2.c: Regenerate.
1505         * generated/maxloc1_16_i4.c: Regenerate.
1506         * generated/maxloc1_16_i8.c: Regenerate.
1507         * generated/maxloc1_16_r10.c: Regenerate.
1508         * generated/maxloc1_16_r16.c: Regenerate.
1509         * generated/maxloc1_16_r4.c: Regenerate.
1510         * generated/maxloc1_16_r8.c: Regenerate.
1511         * generated/maxloc1_4_i1.c: Regenerate.
1512         * generated/maxloc1_4_i16.c: Regenerate.
1513         * generated/maxloc1_4_i2.c: Regenerate.
1514         * generated/maxloc1_4_i4.c: Regenerate.
1515         * generated/maxloc1_4_i8.c: Regenerate.
1516         * generated/maxloc1_4_r10.c: Regenerate.
1517         * generated/maxloc1_4_r16.c: Regenerate.
1518         * generated/maxloc1_4_r4.c: Regenerate.
1519         * generated/maxloc1_4_r8.c: Regenerate.
1520         * generated/maxloc1_8_i1.c: Regenerate.
1521         * generated/maxloc1_8_i16.c: Regenerate.
1522         * generated/maxloc1_8_i2.c: Regenerate.
1523         * generated/maxloc1_8_i4.c: Regenerate.
1524         * generated/maxloc1_8_i8.c: Regenerate.
1525         * generated/maxloc1_8_r10.c: Regenerate.
1526         * generated/maxloc1_8_r16.c: Regenerate.
1527         * generated/maxloc1_8_r4.c: Regenerate.
1528         * generated/maxloc1_8_r8.c: Regenerate.
1529         * generated/maxval_i1.c: Regenerate.
1530         * generated/maxval_i16.c: Regenerate.
1531         * generated/maxval_i2.c: Regenerate.
1532         * generated/maxval_i4.c: Regenerate.
1533         * generated/maxval_i8.c: Regenerate.
1534         * generated/maxval_r10.c: Regenerate.
1535         * generated/maxval_r16.c: Regenerate.
1536         * generated/maxval_r4.c: Regenerate.
1537         * generated/maxval_r8.c: Regenerate.
1538         * generated/minloc0_16_i1.c: Regenerate.
1539         * generated/minloc0_16_i16.c: Regenerate.
1540         * generated/minloc0_16_i2.c: Regenerate.
1541         * generated/minloc0_16_i4.c: Regenerate.
1542         * generated/minloc0_16_i8.c: Regenerate.
1543         * generated/minloc0_16_r10.c: Regenerate.
1544         * generated/minloc0_16_r16.c: Regenerate.
1545         * generated/minloc0_16_r4.c: Regenerate.
1546         * generated/minloc0_16_r8.c: Regenerate.
1547         * generated/minloc0_4_i1.c: Regenerate.
1548         * generated/minloc0_4_i16.c: Regenerate.
1549         * generated/minloc0_4_i2.c: Regenerate.
1550         * generated/minloc0_4_i4.c: Regenerate.
1551         * generated/minloc0_4_i8.c: Regenerate.
1552         * generated/minloc0_4_r10.c: Regenerate.
1553         * generated/minloc0_4_r16.c: Regenerate.
1554         * generated/minloc0_4_r4.c: Regenerate.
1555         * generated/minloc0_4_r8.c: Regenerate.
1556         * generated/minloc0_8_i1.c: Regenerate.
1557         * generated/minloc0_8_i16.c: Regenerate.
1558         * generated/minloc0_8_i2.c: Regenerate.
1559         * generated/minloc0_8_i4.c: Regenerate.
1560         * generated/minloc0_8_i8.c: Regenerate.
1561         * generated/minloc0_8_r10.c: Regenerate.
1562         * generated/minloc0_8_r16.c: Regenerate.
1563         * generated/minloc0_8_r4.c: Regenerate.
1564         * generated/minloc0_8_r8.c: Regenerate.
1565         * generated/minloc1_16_i1.c: Regenerate.
1566         * generated/minloc1_16_i16.c: Regenerate.
1567         * generated/minloc1_16_i2.c: Regenerate.
1568         * generated/minloc1_16_i4.c: Regenerate.
1569         * generated/minloc1_16_i8.c: Regenerate.
1570         * generated/minloc1_16_r10.c: Regenerate.
1571         * generated/minloc1_16_r16.c: Regenerate.
1572         * generated/minloc1_16_r4.c: Regenerate.
1573         * generated/minloc1_16_r8.c: Regenerate.
1574         * generated/minloc1_4_i1.c: Regenerate.
1575         * generated/minloc1_4_i16.c: Regenerate.
1576         * generated/minloc1_4_i2.c: Regenerate.
1577         * generated/minloc1_4_i4.c: Regenerate.
1578         * generated/minloc1_4_i8.c: Regenerate.
1579         * generated/minloc1_4_r10.c: Regenerate.
1580         * generated/minloc1_4_r16.c: Regenerate.
1581         * generated/minloc1_4_r4.c: Regenerate.
1582         * generated/minloc1_4_r8.c: Regenerate.
1583         * generated/minloc1_8_i1.c: Regenerate.
1584         * generated/minloc1_8_i16.c: Regenerate.
1585         * generated/minloc1_8_i2.c: Regenerate.
1586         * generated/minloc1_8_i4.c: Regenerate.
1587         * generated/minloc1_8_i8.c: Regenerate.
1588         * generated/minloc1_8_r10.c: Regenerate.
1589         * generated/minloc1_8_r16.c: Regenerate.
1590         * generated/minloc1_8_r4.c: Regenerate.
1591         * generated/minloc1_8_r8.c: Regenerate.
1592         * generated/minval_i1.c: Regenerate.
1593         * generated/minval_i16.c: Regenerate.
1594         * generated/minval_i2.c: Regenerate.
1595         * generated/minval_i4.c: Regenerate.
1596         * generated/minval_i8.c: Regenerate.
1597         * generated/minval_r10.c: Regenerate.
1598         * generated/minval_r16.c: Regenerate.
1599         * generated/minval_r4.c: Regenerate.
1600         * generated/minval_r8.c: Regenerate.
1601         * generated/misc_specifics.F90: Regenerate.
1602         * generated/nearest_r10.c: Regenerate.
1603         * generated/nearest_r16.c: Regenerate.
1604         * generated/nearest_r4.c: Regenerate.
1605         * generated/nearest_r8.c: Regenerate.
1606         * generated/pack_c10.c: Regenerate.
1607         * generated/pack_c16.c: Regenerate.
1608         * generated/pack_c4.c: Regenerate.
1609         * generated/pack_c8.c: Regenerate.
1610         * generated/pack_i1.c: Regenerate.
1611         * generated/pack_i16.c: Regenerate.
1612         * generated/pack_i2.c: Regenerate.
1613         * generated/pack_i4.c: Regenerate.
1614         * generated/pack_i8.c: Regenerate.
1615         * generated/pack_r10.c: Regenerate.
1616         * generated/pack_r16.c: Regenerate.
1617         * generated/pack_r4.c: Regenerate.
1618         * generated/pack_r8.c: Regenerate.
1619         * generated/pow_c10_i16.c: Regenerate.
1620         * generated/pow_c10_i4.c: Regenerate.
1621         * generated/pow_c10_i8.c: Regenerate.
1622         * generated/pow_c16_i16.c: Regenerate.
1623         * generated/pow_c16_i4.c: Regenerate.
1624         * generated/pow_c16_i8.c: Regenerate.
1625         * generated/pow_c4_i16.c: Regenerate.
1626         * generated/pow_c4_i4.c: Regenerate.
1627         * generated/pow_c4_i8.c: Regenerate.
1628         * generated/pow_c8_i16.c: Regenerate.
1629         * generated/pow_c8_i4.c: Regenerate.
1630         * generated/pow_c8_i8.c: Regenerate.
1631         * generated/pow_i16_i16.c: Regenerate.
1632         * generated/pow_i16_i4.c: Regenerate.
1633         * generated/pow_i16_i8.c: Regenerate.
1634         * generated/pow_i4_i16.c: Regenerate.
1635         * generated/pow_i4_i4.c: Regenerate.
1636         * generated/pow_i4_i8.c: Regenerate.
1637         * generated/pow_i8_i16.c: Regenerate.
1638         * generated/pow_i8_i4.c: Regenerate.
1639         * generated/pow_i8_i8.c: Regenerate.
1640         * generated/pow_r10_i16.c: Regenerate.
1641         * generated/pow_r10_i8.c: Regenerate.
1642         * generated/pow_r16_i16.c: Regenerate.
1643         * generated/pow_r16_i8.c: Regenerate.
1644         * generated/pow_r4_i16.c: Regenerate.
1645         * generated/pow_r4_i8.c: Regenerate.
1646         * generated/pow_r8_i16.c: Regenerate.
1647         * generated/pow_r8_i8.c: Regenerate.
1648         * generated/product_c10.c: Regenerate.
1649         * generated/product_c16.c: Regenerate.
1650         * generated/product_c4.c: Regenerate.
1651         * generated/product_c8.c: Regenerate.
1652         * generated/product_i1.c: Regenerate.
1653         * generated/product_i16.c: Regenerate.
1654         * generated/product_i2.c: Regenerate.
1655         * generated/product_i4.c: Regenerate.
1656         * generated/product_i8.c: Regenerate.
1657         * generated/product_r10.c: Regenerate.
1658         * generated/product_r16.c: Regenerate.
1659         * generated/product_r4.c: Regenerate.
1660         * generated/product_r8.c: Regenerate.
1661         * generated/reshape_c10.c: Regenerate.
1662         * generated/reshape_c16.c: Regenerate.
1663         * generated/reshape_c4.c: Regenerate.
1664         * generated/reshape_c8.c: Regenerate.
1665         * generated/reshape_i16.c: Regenerate.
1666         * generated/reshape_i4.c: Regenerate.
1667         * generated/reshape_i8.c: Regenerate.
1668         * generated/reshape_r10.c: Regenerate.
1669         * generated/reshape_r16.c: Regenerate.
1670         * generated/reshape_r4.c: Regenerate.
1671         * generated/reshape_r8.c: Regenerate.
1672         * generated/rrspacing_r10.c: Regenerate.
1673         * generated/rrspacing_r16.c: Regenerate.
1674         * generated/rrspacing_r4.c: Regenerate.
1675         * generated/rrspacing_r8.c: Regenerate.
1676         * generated/set_exponent_r10.c: Regenerate.
1677         * generated/set_exponent_r16.c: Regenerate.
1678         * generated/set_exponent_r4.c: Regenerate.
1679         * generated/set_exponent_r8.c: Regenerate.
1680         * generated/shape_i16.c: Regenerate.
1681         * generated/shape_i4.c: Regenerate.
1682         * generated/shape_i8.c: Regenerate.
1683         * generated/spacing_r10.c: Regenerate.
1684         * generated/spacing_r16.c: Regenerate.
1685         * generated/spacing_r4.c: Regenerate.
1686         * generated/spacing_r8.c: Regenerate.
1687         * generated/spread_c10.c: Regenerate.
1688         * generated/spread_c16.c: Regenerate.
1689         * generated/spread_c4.c: Regenerate.
1690         * generated/spread_c8.c: Regenerate.
1691         * generated/spread_i1.c: Regenerate.
1692         * generated/spread_i16.c: Regenerate.
1693         * generated/spread_i2.c: Regenerate.
1694         * generated/spread_i4.c: Regenerate.
1695         * generated/spread_i8.c: Regenerate.
1696         * generated/spread_r10.c: Regenerate.
1697         * generated/spread_r16.c: Regenerate.
1698         * generated/spread_r4.c: Regenerate.
1699         * generated/spread_r8.c: Regenerate.
1700         * generated/sum_c10.c: Regenerate.
1701         * generated/sum_c16.c: Regenerate.
1702         * generated/sum_c4.c: Regenerate.
1703         * generated/sum_c8.c: Regenerate.
1704         * generated/sum_i1.c: Regenerate.
1705         * generated/sum_i16.c: Regenerate.
1706         * generated/sum_i2.c: Regenerate.
1707         * generated/sum_i4.c: Regenerate.
1708         * generated/sum_i8.c: Regenerate.
1709         * generated/sum_r10.c: Regenerate.
1710         * generated/sum_r16.c: Regenerate.
1711         * generated/sum_r4.c: Regenerate.
1712         * generated/sum_r8.c: Regenerate.
1713         * generated/transpose_c10.c: Regenerate.
1714         * generated/transpose_c16.c: Regenerate.
1715         * generated/transpose_c4.c: Regenerate.
1716         * generated/transpose_c8.c: Regenerate.
1717         * generated/transpose_i16.c: Regenerate.
1718         * generated/transpose_i4.c: Regenerate.
1719         * generated/transpose_i8.c: Regenerate.
1720         * generated/transpose_r10.c: Regenerate.
1721         * generated/transpose_r16.c: Regenerate.
1722         * generated/transpose_r4.c: Regenerate.
1723         * generated/transpose_r8.c: Regenerate.
1724         * generated/unpack_c10.c: Regenerate.
1725         * generated/unpack_c16.c: Regenerate.
1726         * generated/unpack_c4.c: Regenerate.
1727         * generated/unpack_c8.c: Regenerate.
1728         * generated/unpack_i1.c: Regenerate.
1729         * generated/unpack_i16.c: Regenerate.
1730         * generated/unpack_i2.c: Regenerate.
1731         * generated/unpack_i4.c: Regenerate.
1732         * generated/unpack_i8.c: Regenerate.
1733         * generated/unpack_r10.c: Regenerate.
1734         * generated/unpack_r16.c: Regenerate.
1735         * generated/unpack_r4.c: Regenerate.
1736         * generated/unpack_r8.c: Regenerate.
1737
1738 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
1739
1740         * io/open.c (already_open): Test for POSIX close return value.
1741         * io/unit.c (close_unit_1): Likewise.
1742         * io/unix.c (raw_close): Return 0 for success for preconnected units.
1743
1744 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
1745
1746         * runtime/string.c (compare0): Use gfc_charlen_type.
1747         * runtime/error.c (gfc_itoa): Move to io/write.c
1748         (xtoa): Rename to gfc_xtoa.
1749         * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
1750         * intrinsics/cshift0.c (cshift0): Use index_type for shift arg.
1751         * intrinsics/date_and_time.c (date_and_time): Use index_type.
1752         (itime_i4): Likewise.
1753         (itime_i8): Likewise.
1754         (idate_i4): Likewise.
1755         (idate_i8): Likewise.
1756         (gmtime_i4): Likewise.
1757         (gmtime_i8): Likewise.
1758         (ltime_i4): Likewise.
1759         (ltime_i8): Likewise.
1760         * libgfortran.h (gfc_itoa): Remove prototype.
1761         (xtoa): Rename prototype to gfc_xtoa.
1762         * io/list_read.c (nml_read_obj): Use size_t for string length.
1763         * io/transfer.c (read_block_direct): Change nbytes arg from
1764         pointer to value.
1765         (unformatted_read): Minor cleanup, call read_block_directly properly.
1766         (skip_record): Use ssize_t.
1767         (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
1768         (iolength_transfer): Make sure to multiply before cast.
1769         * io/intrinsics.c (fgetc): Remove unnecessary variable.
1770         * io/format.c (format_hash): Use gfc_charlen_type.
1771         * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
1772         make static.
1773         (write_i): Call with pointer to itoa.
1774         (write_z): Call with pointer to gfc_xtoa.
1775         (write_integer): Pointer to itoa.
1776         (nml_write_obj): Type cleanup, don't call strlen in loop.
1777         
1778 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR libgfortran/39664
1781         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
1782         STDERR_FILENO nor STDIN_FILENO.
1783
1784 2009-04-06  David Edelsohn  <edelsohn@gnu.org>
1785         
1786         * io/io.h (struct stream): Rename truncate to trunc.
1787         (struncate): Same.
1788         * io/unix.c (raw_init): Rename truncate to trunc.
1789         (buf_init): Same.
1790         (open_internal): Same.
1791         
1792 2009-04-05  Daniel Kraft  <d@domob.eu>
1793
1794         PR fortran/38654
1795         * io/read.c (read_f): Reworked to speed up floating point parsing.
1796         (convert_real): Use pointer-casting instead of memcpy and temporaries.
1797
1798 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1799
1800         PR libfortran/37754
1801         * io/io.h (format_hash_entry): New structure for hash table.
1802         (format_hash_table): The hash table itself.
1803         (free_format_data): Revise function prototype.
1804         (free_format_hash_table, init_format_hash,
1805         free_format_hash): New function prototypes.
1806         * io/unit.c (close_unit_1): Use free_format_hash_table.
1807         * io/transfer.c (st_read_done, st_write_done): Free format data if
1808         internal unit.
1809         * io/format.c (free_format_hash_table): New function that frees any
1810         memory allocated previously for cached format data.
1811         (reset_node): New static helper function to reset the format counters
1812         for a format node.
1813         (reset_fnode_counters): New static function recursively calls reset_node
1814         to traverse the fnode tree.
1815         (format_hash): New simple hash function based on XOR, probabalistic,
1816         tosses collisions.
1817         (save_parsed_format): New static function to save the parsed format
1818         data to use again.
1819         (find_parsed_format): New static function searches the hash table
1820         looking for a match.
1821         (free_format_data): Revised to accept pointer to format data rather than
1822         the dtp pointer so that the function can be used in more places.
1823         (format_lex): Editorial.
1824         (parse_format_list): Set flag used to determine of format data hashing
1825         is to be used.  Internal units are not persistent enough for this.
1826         (revert): Move to ne location in file.
1827         (parse_format): Use new functions to look for previously parsed
1828         format strings and use them rather than re-parse.  If not found, saves
1829         the parsed format data for later use.
1830         
1831 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1832
1833         PR libfortran/37754
1834         * io/transfer.c (formatted_transfer_scalar): Remove this function by
1835         factoring it into two new functions, one for read and one for write,
1836         eliminating all the conditionals for read or write mode.
1837         (formatted transfer_scalar_read): New function.
1838         (formatted transfer_scalar_write): New function.
1839         (formatted_transfer): Use new functions.
1840
1841 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
1842
1843         PR libfortran/25561 libfortran/37754
1844         * io/io.h (struct stream): Define new stream interface function
1845         pointers, and inline functions for accessing it.
1846         (struct fbuf): Use int instead of size_t, remove flushed element.
1847         (mem_alloc_w): New prototype.
1848         (mem_alloc_r): New prototype.
1849         (stream_at_bof): Remove prototype.
1850         (stream_at_eof): Remove prototype.
1851         (file_position): Remove prototype.
1852         (flush): Remove prototype.
1853         (stream_offset): Remove prototype.
1854         (unit_truncate): New prototype.
1855         (read_block_form): Change to return pointer, int* argument.
1856         (hit_eof): New prototype.
1857         (fbuf_init): Change prototype.
1858         (fbuf_reset): Change prototype.
1859         (fbuf_alloc): Change prototype.
1860         (fbuf_flush): Change prototype.
1861         (fbuf_seek): Change prototype.
1862         (fbuf_read): New prototype.
1863         (fbuf_getc_refill): New prototype.
1864         (fbuf_getc): New inline function.
1865         * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
1866         (fbuf_debug): New function.
1867         (fbuf_reset): Flush, and return position offset.
1868         (fbuf_alloc): Simplify, don't flush, just realloc.
1869         (fbuf_flush): Make usable for read mode, salvage remaining bytes.
1870         (fbuf_seek): New whence argument.
1871         (fbuf_read): New function.
1872         (fbuf_getc_refill): New function.
1873         * io/file_pos.c (formatted_backspace): Use new stream interface.
1874         (unformatted_backspace): Likewise.
1875         (st_backspace): Make sure format buffer is reset, use new stream
1876         interface, use unit_truncate.
1877         (st_endfile): Likewise.
1878         (st_rewind): Likewise.
1879         * io/intrinsics.c: Use new stream interface.
1880         * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
1881         to resize.
1882         (free_saved): Don't check u.p.scratch.
1883         (next_char): Use new stream interface, use fbuf_getc() for external files.
1884         (finish_list_read): flush format buffer.
1885         (nml_query): Update to use modified interface:s
1886         * io/open.c (test_endfile): Use new stream interface.
1887         (edit_modes): Likewise.
1888         (new_unit): Likewise, set bytes_left to 1 for stream files.
1889         * io/read.c (read_l): Use new read_block_form interface.
1890         (read_utf8): Likewise.
1891         (read_utf8_char1): Likewise.
1892         (read_default_char1): Likewise.
1893         (read_utf8_char4): Likewise.
1894         (read_default_char4): Likewise.
1895         (read_a): Likewise.
1896         (read_a_char4): Likewise.
1897         (read_decimal): Likewise.
1898         (read_radix): Likewise.
1899         (read_f): Likewise.
1900         * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
1901         usage of u.p.line_buffer.
1902         (read_block_form): Update interface to return pointer, use
1903         fbuf_read for direct access.
1904         (read_block_direct): Update to new stream interface.
1905         (write_block): Use mem_alloc_w for internal I/O.
1906         (write_buf): Update to new stream interface.
1907         (formatted_transfer_scalar): Don't use u.p.line_buffer, use
1908         fbuf_seek for external files.
1909         (us_read): Update to new stream interface.
1910         (us_write): Likewise.
1911         (data_transfer_init): Always check if we switch modes and flush.
1912         (skip_record): Use new stream interface, fix comparison.
1913         (next_record_r): Check for and reset u.p.at_eof, use new stream
1914         interface, use fbuf_getc for spacing.
1915         (write_us_marker): Update to new stream interface, don't inline.
1916         (next_record_w_unf): Likewise.
1917         (sset): New function.
1918         (next_record_w): Use new stream interface, use fbuf for printing
1919         newline.
1920         (next_record): Use new stream interface.
1921         (finalize_transfer): Remove sfree call, use new stream interface.
1922         (st_iolength_done): Don't use u.p.scratch.
1923         (st_read): Don't check for end of file.
1924         (st_read_done): Don't use u.p.scratch, use unit_truncate.
1925         (hit_eof): New function.
1926         * io/unit.c (init_units): Always init fbuf for formatted units.
1927         (update_position): Use new stream interface.
1928         (unit_truncate): New function.
1929         (finish_last_advance_record): Use fbuf to print newline.
1930         * io/unix.c: Remove unused SSIZE_MAX macro.
1931         (BUFFER_SIZE): Make static const variable rather than macro.
1932         (struct unix_stream): Remove dirty_offset, len, method,
1933         small_buffer. Order elements by decreasing size.
1934         (struct int_stream): Remove.
1935         (move_pos_offset): Remove usage of dirty_offset.
1936         (reset_stream): Remove.
1937         (do_read): Rename to raw_read, update to match new stream
1938         interface.
1939         (do_write): Rename to raw_write, update to new stream interface.
1940         (raw_seek): New function.
1941         (raw_tell): New function.
1942         (raw_truncate): New function.
1943         (raw_close): New function.
1944         (raw_flush): New function.
1945         (raw_init): New function.
1946         (fd_alloc): Remove.
1947         (fd_alloc_r_at): Remove.
1948         (fd_alloc_w_at): Remove.
1949         (fd_sfree): Remove.
1950         (fd_seek): Remove.
1951         (fd_truncate): Remove.
1952         (fd_sset): Remove.
1953         (fd_read): Remove.
1954         (fd_write): Remove.
1955         (fd_close): Remove.
1956         (fd_open): Remove.
1957         (fd_flush): Rename to buf_flush, update to new stream interface
1958         and unix_stream.
1959         (buf_read): New function.
1960         (buf_write): New function.
1961         (buf_seek): New function.
1962         (buf_tell): New function.
1963         (buf_truncate): New function.
1964         (buf_close): New function.
1965         (buf_init): New function.
1966         (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
1967         (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
1968         (mem_read): Change to match new stream interface.
1969         (mem_write): Likewise.
1970         (mem_seek): Likewise.
1971         (mem_tell): Likewise.
1972         (mem_truncate): Likewise.
1973         (mem_close): Likewise.
1974         (mem_flush): New function.
1975         (mem_sfree): Remove.
1976         (empty_internal_buffer): Cast to correct type.
1977         (open_internal): Use correct type, init function pointers.
1978         (fd_to_stream): Test whether to open file as buffered or raw.
1979         (output_stream): Remove mode set.
1980         (error_stream): Likewise.
1981         (flush_all_units_1): Use new stream interface.
1982         (flush_all_units): Likewise.
1983         (stream_at_bof): Remove.
1984         (stream_at_eof): Remove.
1985         (file_position): Remove.
1986         (file_length): Update logic to use stream interface.
1987         (flush): Remove.
1988         (stream_offset): Remove.
1989         * io/write.c (write_utf8_char4): Use int instead of size_t.
1990         (write_x): Extra safety check.
1991         (namelist_write_newline): Use new stream interface.
1992
1993 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1994
1995         PR fortran/33595
1996         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
1997         Revise checks to round up.
1998         (roundf): Likewise.
1999
2000 2009-03-28  Daniel Kraft  <d@domob.eu>
2001
2002         * intrinsics/string_intrinsics.c: #include <assert.h>
2003         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
2004         instead of calculating the length directly.
2005         (string_len_trim): For KIND=1, speed search up.
2006
2007 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2008
2009         PR libfortran/39528
2010         * io/list_read.c (list_formatted_read_scalar): Move check for read
2011         completion to just after the check for a repeated value.
2012
2013 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2014
2015         PR libfortran/39402
2016         * io/write_float.def (output_float): Handle F0.d formatting correctly
2017         for any d when value is 0.0.
2018
2019 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2020
2021         * configure: Regenerate.
2022
2023 2009-01-21  Daniel Kraft  <d@domob.eu>
2024
2025         PR fortran/38887
2026         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
2027         abort when called with empty array.
2028         * m4/in_unpack.m4:  Ditto.
2029         * generated/in_unpack_i1.c:  Regenerated.
2030         * generated/in_unpack_i2.c:  Regenerated.
2031         * generated/in_unpack_i4.c:  Regenerated.
2032         * generated/in_unpack_i8.c:  Regenerated.
2033         * generated/in_unpack_i16.c: Regenerated.
2034         * generated/in_unpack_r4.c:  Regenerated.
2035         * generated/in_unpack_r8.c:  Regenerated.
2036         * generated/in_unpack_r10.c: Regenerated.
2037         * generated/in_unpack_r16.c: Regenerated.
2038         * generated/in_unpack_c4.c:  Regenerated.
2039         * generated/in_unpack_c8.c:  Regenerated.
2040         * generated/in_unpack_c10.c: Regenerated.
2041         * generated/in_unpack_c16.c: Regenerated.
2042
2043 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2044
2045         PR libfortran/38772
2046         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
2047         allowing proper digit testing. White space fix.
2048
2049 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2050
2051         PR libfortran/38735
2052         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
2053         internal units.
2054
2055 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2056
2057         PR fortran/31832
2058         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
2059         broken powf.
2060         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
2061         * intrinsics/c99_functions.c: Use internal powf implementation if
2062         HAVE_BROKEN_POWF is defined.
2063         * configure: Rebuilt.
2064         * config.h.in: Rebuilt.
2065
2066 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2067
2068         PR libfortran/37472
2069         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
2070         to avoid sensitivity to round-off.
2071
2072 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2073
2074         PR libfortran/38398
2075         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
2076         suppress blanks for g0 formatting.
2077         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
2078         for g0 formatting.
2079         * io.c (write.c): Do not use ES formatting and use new bit to suppress
2080         blanks.
2081         * io/write_float.def (output_float): Adjust the location of setting the
2082         width so that it can be adjusted when suppressing blanks.  Set number of
2083         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
2084         clean-up and add some white space for readability.
2085         
2086 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2087
2088         * configure: Regenerate.
2089
2090 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2091
2092         PR libfortran/38504
2093         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
2094         returned by gfc_itoa.
2095
2096 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2097
2098         PR libfortran/38430
2099         * io/transfer.c (data_transfer_init): Move constraint check for REC=
2100         and STREAM access into condition for other REC= constraints to simplify.
2101         Comment out this constraint to avoid breaking compatibility with 4.3
2102         until later.  Added a TODO for above comment and this one.
2103         Fix test for max pos.
2104
2105 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2106
2107         PR libfortran/38291
2108         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
2109         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
2110         comment.
2111
2112 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
2113
2114         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
2115
2116 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2117
2118         PR libfortran/38291
2119         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
2120         Add check for unit opened with ACCESS="stream". Flush and seek if
2121         current stream position does not match. Check ENDFILE on read.
2122
2123 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2124
2125         PR fortran/38285
2126         * write_float.def (WRITE_FLOAT): Zero the float value for special case
2127         only if scale_factor = 0.
2128         
2129 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
2130
2131         PR libfortran/38234
2132         * intrinsics/reshape_generic.c (reshape_internal):
2133         Source can be larger than shape.
2134         * m4/reshape.m4:  Likewise.
2135         * generated/reshape_c10.c Regenerated.
2136         * generated/reshape_c16.c Regenerated.
2137         * generated/reshape_c4.c Regenerated.
2138         * generated/reshape_c8.c Regenerated.
2139         * generated/reshape_i16.c Regenerated.
2140         * generated/reshape_i4.c Regenerated.
2141         * generated/reshape_i8.c Regenerated.
2142         * generated/reshape_r10.c Regenerated.
2143         * generated/reshape_r16.c Regenerated.
2144         * generated/reshape_r4.c Regenerated.
2145         * generated/reshape_r8.c Regenerated.
2146
2147 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
2148
2149         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
2150         format attribute.
2151
2152
2153 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2154
2155         PR libfortran/38225
2156         * intrinsics/reshape_generic.c (reshape_internal):
2157         Use all dimensions of source for bounds checking.
2158         * m4/reshape.m4:  Likewise.
2159         * generated/reshape_c10.c Regenerated.
2160         * generated/reshape_c16.c Regenerated.
2161         * generated/reshape_c4.c Regenerated.
2162         * generated/reshape_c8.c Regenerated.
2163         * generated/reshape_i16.c Regenerated.
2164         * generated/reshape_i4.c Regenerated.
2165         * generated/reshape_i8.c Regenerated.
2166         * generated/reshape_r10.c Regenerated.
2167         * generated/reshape_r16.c Regenerated.
2168         * generated/reshape_r4.c Regenerated.
2169         * generated/reshape_r8.c Regenerated.
2170
2171 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
2172
2173         PR libfortran/37839
2174         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
2175         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
2176         (st_parameter_inquire): Reorder and fix types of round, sign and
2177         pending fields.
2178         (st_parameter_43, st_parameter_44): Removed.
2179         (st_parameter_dt): Put back struct definition directly to u.p
2180         declaration.  Change type of u.p.size_used from gfc_offset to
2181         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
2182         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
2183         pad, round and sign fields after the union.
2184         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
2185         flags2 if it is defined.
2186         * io/transfer.c (read_sf, read_block_form, write_block): Cast
2187         additions to size_used to GFC_IO_INT instead of gfc_offset.
2188         (data_transfer_init): Clear whole u.p struct.  Adjust
2189         for moving id, pos, asynchronous, blank, decimal, delim, pad,
2190         round and sign fields from u.p directly into st_parameter_dt.
2191         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
2192         * io/file_pos.c (st_endfile): Clear whole u.p struct.
2193
2194 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2195
2196         PR libfortran/37472
2197         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
2198         G format specification to F format.
2199
2200 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2201
2202         PR libfortran/38135
2203         * m4/reshape.m4:  Correct bounds checking when PAD is present.
2204         Treat PAD as if it were SOURCE when SOURCE is empty.
2205         * intrinsics/reshape_generic.c:  Likewise.
2206         * generated/reshape_c10.c Regenerated.
2207         * generated/reshape_c16.c Regenerated.
2208         * generated/reshape_c4.c Regenerated.
2209         * generated/reshape_c8.c Regenerated.
2210         * generated/reshape_i16.c Regenerated.
2211         * generated/reshape_i4.c Regenerated.
2212         * generated/reshape_i8.c Regenerated.
2213         * generated/reshape_r10.c Regenerated.
2214         * generated/reshape_r16.c Regenerated.
2215         * generated/reshape_r4.c Regenerated.
2216         * generated/reshape_r8.c Regenerated.
2217
2218 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2219
2220         PR libfortran/38097
2221         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
2222         conditions for BZ/BN.
2223         * io/unit.c (get_internal_unit): Initialize flags.blank.
2224         * io/transfer.c (data_transfer_init): Fix whitespace.
2225
2226 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2227
2228         PR libfortran/37294
2229         * io/write.c (namelist_write_newline): Use array loop specification to
2230         advance to next internal array unit record. (namelist_write): Adjust to
2231         accomodate the internal array unit behavior.
2232
2233 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
2234
2235         PR fortran/37159
2236         * intrinsics/random.c: Added comment to adapt check.c, should
2237         kiss_size change.
2238         Few cosmetic changes to existing comments.
2239
2240 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2241
2242         PR libfortran/37707
2243         * io/list_read.c (read_character): Remove code to look ahead in namelist
2244         reads to descriminate non-delimited strings from namelist objects.
2245         * io/write.c (namelist_write): Delimit character strings with quote or
2246         apostrophe, defaulting to quote.
2247
2248 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2249
2250         PR libfortran/34670
2251         * intrinsics/transpose_generic.c:  Implement bounds checking.
2252         * m4/transpose.m4:  Likewise.
2253         * generated/transpose_c8.c: Regenerated.
2254         * generated/transpose_c16.c: Regenerated.
2255         * generated/transpose_r10.c: Regenerated.
2256         * generated/transpose_i8.c: Regenerated.
2257         * generated/transpose_c10.c: Regenerated.
2258         * generated/transpose_r4.c: Regenerated.
2259         * generated/transpose_c4.c: Regenerated.
2260         * generated/transpose_i16.c: Regenerated.
2261         * generated/transpose_i4.c: Regenerated.
2262         * generated/transpose_r8.c: Regenerated.
2263         * generated/transpose_r16.c: Regenerated.
2264
2265 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2266
2267         PR libfortran/37834
2268         * io/write_float.def (output_float): Emit '0.' for special case of
2269         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
2270
2271 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2272
2273         PR libfortran/37863
2274         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
2275         * io/io.h (st_parameter_44): Fix id type declaration.
2276
2277 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2278
2279         * io/file_pos.c (unformatted_backspace): Normal case is
2280         GFC_CONVERT_NATIVE.
2281         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
2282         as unlikely.
2283         (readl_block_form):  Likewise.
2284         (read_block_direct):  Likewise.
2285         (write_block):  Likewise.
2286         (write_buf):  Likewise.
2287         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
2288         (next_record_w_unf):  Mark paths leading to generate_error()
2289         as unlikely.
2290
2291 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2292
2293         PR libfortran/34670
2294         * generated/spread_r4.c: Regenerated.
2295
2296 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2297
2298         PR libfortran/34670
2299         * intrinsics/reshape_generic.c:  Add bounds checking.
2300         * m4/reshape.m4:  Likewise.
2301         * generated/reshape_c10.c: Regenerated.
2302         * generated/reshape_c16.c: Regenerated.
2303         * generated/reshape_c4.c: Regenerated.
2304         * generated/reshape_c8.c: Regenerated.
2305         * generated/reshape_i16.c: Regenerated.
2306         * generated/reshape_i4.c: Regenerated.
2307         * generated/reshape_i8.c: Regenerated.
2308         * generated/reshape_r10.c: Regenerated.
2309         * generated/reshape_r16.c: Regenerated.
2310         * generated/reshape_r4.c: Regenerated.
2311         * generated/reshape_r8.c: Regenerated.
2312         * generated/spread_r4.c: Regenerated.
2313
2314 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2315
2316         PR libfortran/37083
2317         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
2318         (finish_list_read): Add EOF check.
2319
2320 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2321
2322         PR libfortran/37753
2323         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
2324         is the usual case.  Check for kind==1 for non-byte-reversing
2325         operation.
2326         (unformatted_write):  Likewise.
2327
2328 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2329
2330         PR libfortran/37707
2331         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
2332         is greater than zero, call nml_object_read with the first object rather
2333         than the sub-object.
2334
2335 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2336             Steve Ellcey  <sje@cup.hp.com>
2337
2338         * configure: Regenerate for new libtool.
2339         * Makefile.in: Ditto.
2340
2341 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2342
2343         PR libfortran/37498
2344         * list_read.c (eat_separator): Revert previous patch and move
2345         delim_status, decimal_status, and pad_status to gfc_unit.
2346         (parse_real): Ditto. (read_real): Ditto.
2347         * read.c (read_a): Likewise. (read_a_char4): Likewise.
2348         (read_f): Likewise.
2349         * inquire.c (inquire_via_unit): Add missing check for
2350         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
2351         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
2352         to gfc_unit.
2353         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
2354         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
2355         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
2356         (write_character): Ditto. (write_real_g0): Ditto.
2357         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
2358         (namelist_write): Ditto.
2359         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
2360
2361 2008-09-24  Tobias Burnus  <burnus@net-b.de>
2362
2363         * runtime/compile_options.c (init_compile_options):
2364         Sync flags with front end.
2365
2366 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2367
2368         PR libfortran/37498
2369         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
2370         area.
2371         * list_read.c (eat_separator): Only access F2003 I/O parameters if
2372         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
2373         (read_real): Ditto.
2374         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
2375         strictly necessary. (read_f): Likewise.
2376         * io.h (unit_sign_s): New enumerator to allow duplication of
2377         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
2378         (st_parameter_43): New structure copied from 4.3 version of 
2379         st_paramater_dt private section. (st_parameter_44): New structure with
2380         F2003 items added. (st_parameter_dt): Modified to create union of new
2381         and old structures to allow correct memory setting for 4.3 ABI
2382         compatibility. Bumped the pad size.
2383         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
2384         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
2385         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
2386         add comment, fix formatting.
2387         * write.c (write_default_char4): Likewise though not strictly necessary.
2388         (write_utf8_char4): Ditto. (write_character): Ditto.
2389         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
2390         (nml_write_obj): Ditto. (namelist_write): Ditto.
2391         * write_float.def (calculate_sign): Eliminate warning by including all
2392         cases in switch. (output_float): Output only decimal point of F2003 flag
2393         is not set.
2394
2395 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2396             H. J. Lu  <hongjiu.lu@intel.com>
2397
2398         * mk-sik-inc.sh: Make -Wunused-variable proof.
2399         * mk-srk-inc.sh: Make -Wunused-variable proof.
2400
2401 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2402
2403         * mk-kinds-h.sh: Make -Wunused-variable proof.
2404
2405 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2406
2407         PR fortran/37203
2408         * intrinsics/reshape_generic.c:  Add checking on
2409         out-of-bounds and duplicate values of order argument.
2410         * m4/reshape.m4:  Likewise.
2411         * generated/reshape_c10.c: Regenerated.
2412         * generated/reshape_c16.c: Regenerated.
2413         * generated/reshape_c4.c: Regenerated.
2414         * generated/reshape_c8.c: Regenerated.
2415         * generated/reshape_i16.c: Regenerated.
2416         * generated/reshape_i4.c: Regenerated.
2417         * generated/reshape_i8.c: Regenerated.
2418         * generated/reshape_r10.c: Regenerated.
2419         * generated/reshape_r16.c: Regenerated.
2420         * generated/reshape_r4.c: Regenerated.
2421         * generated/reshape_r8.c: Regenerated.
2422
2423 2008-09-06  Tobias Burnus  <burnus@net-b.de>
2424
2425         * libgfortran.h (likely,unlikely): New makros.
2426         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
2427         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
2428         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
2429         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
2430         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
2431         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
2432         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
2433
2434         * generated/minval_r8.c: Regenerated.
2435         * generated/spread_r10.c: Regenerated.
2436         * generated/minloc1_16_r16.c: Regenerated.
2437         * generated/maxloc1_4_r8.c: Regenerated.
2438         * generated/sum_i8.c: Regenerated.
2439         * generated/any_l16.c: Regenerated.
2440         * generated/spread_i8.c: Regenerated.
2441         * generated/maxval_i2.c: Regenerated.
2442         * generated/any_l2.c: Regenerated.
2443         * generated/product_r4.c: Regenerated.
2444         * generated/maxloc1_8_i4.c: Regenerated.
2445         * generated/maxloc0_4_r4.c: Regenerated.
2446         * generated/all_l1.c: Regenerated.
2447         * generated/matmul_r8.c: Regenerated.
2448         * generated/product_i2.c: Regenerated.
2449         * generated/minloc0_4_r16.c: Regenerated.
2450         * generated/minloc0_4_i1.c: Regenerated.
2451         * generated/maxloc0_4_r16.c: Regenerated.
2452         * generated/maxloc0_4_i2.c: Regenerated.
2453         * generated/minloc1_8_r16.c: Regenerated.
2454         * generated/maxloc1_8_r16.c: Regenerated.
2455         * generated/maxloc0_8_i8.c: Regenerated.
2456         * generated/sum_r16.c: Regenerated.
2457         * generated/sum_i1.c: Regenerated.
2458         * generated/minloc1_4_r8.c: Regenerated.
2459         * generated/maxloc1_16_r16.c: Regenerated.
2460         * generated/minloc1_16_i4.c: Regenerated.
2461         * generated/maxloc1_16_i4.c: Regenerated.
2462         * generated/minloc0_16_i8.c: Regenerated.
2463         * generated/spread_i1.c: Regenerated.
2464         * generated/maxloc0_16_i8.c: Regenerated.
2465         * generated/maxval_r16.c: Regenerated.
2466         * generated/product_c10.c: Regenerated.
2467         * generated/minloc1_8_i4.c: Regenerated.
2468         * generated/minloc0_16_i16.c: Regenerated.
2469         * generated/matmul_r16.c: Regenerated.
2470         * generated/minloc0_4_r4.c: Regenerated.
2471         * generated/all_l2.c: Regenerated.
2472         * generated/product_c4.c: Regenerated.
2473         * generated/sum_r4.c: Regenerated.
2474         * generated/minloc0_4_i2.c: Regenerated.
2475         * generated/spread_c10.c: Regenerated.
2476         * generated/maxloc0_8_i1.c: Regenerated.
2477         * generated/spread_r4.c: Regenerated.
2478         * generated/minloc0_8_i8.c: Regenerated.
2479         * generated/matmul_c8.c: Regenerated.
2480         * generated/all_l16.c: Regenerated.
2481         * generated/minloc1_16_r10.c: Regenerated.
2482         * generated/sum_i2.c: Regenerated.
2483         * generated/minloc0_16_i1.c: Regenerated.
2484         * generated/maxloc0_16_i1.c: Regenerated.
2485         * generated/maxloc1_8_r8.c: Regenerated.
2486         * generated/minval_i16.c: Regenerated.
2487         * generated/spread_i2.c: Regenerated.
2488         * generated/maxval_i4.c: Regenerated.
2489         * generated/minval_i8.c: Regenerated.
2490         * generated/any_l4.c: Regenerated.
2491         * generated/maxloc1_4_i8.c: Regenerated.
2492         * generated/maxloc0_16_i16.c: Regenerated.
2493         * generated/maxloc0_8_r4.c: Regenerated.
2494         * generated/minloc1_4_i16.c: Regenerated.
2495         * generated/maxloc1_4_i16.c: Regenerated.
2496         * generated/minloc0_4_r10.c: Regenerated.
2497         * generated/minloc0_8_i16.c: Regenerated.
2498         * generated/maxloc0_4_r10.c: Regenerated.
2499         * generated/maxloc0_8_i16.c: Regenerated.
2500         * generated/minloc1_8_r10.c: Regenerated.
2501         * generated/product_i4.c: Regenerated.
2502         * generated/minloc0_16_r4.c: Regenerated.
2503         * generated/sum_c16.c: Regenerated.
2504         * generated/maxloc1_8_r10.c: Regenerated.
2505         * generated/maxloc0_16_r4.c: Regenerated.
2506         * generated/minloc1_16_r8.c: Regenerated.
2507         * generated/minloc0_8_i1.c: Regenerated.
2508         * generated/maxloc0_4_i4.c: Regenerated.
2509         * generated/maxloc1_16_r8.c: Regenerated.
2510         * generated/maxloc0_8_i2.c: Regenerated.
2511         * generated/sum_r10.c: Regenerated.
2512         * generated/count_4_l.c: Regenerated.
2513         * generated/sum_c4.c: Regenerated.
2514         * generated/count_8_l.c: Regenerated.
2515         * generated/maxloc1_16_r10.c: Regenerated.
2516         * generated/matmul_i8.c: Regenerated.
2517         * generated/minloc0_16_i2.c: Regenerated.
2518         * generated/minloc1_8_r8.c: Regenerated.
2519         * generated/maxloc0_16_i2.c: Regenerated.
2520         * generated/spread_c4.c: Regenerated.
2521         * generated/matmul_c16.c: Regenerated.
2522         * generated/maxval_r10.c: Regenerated.
2523         * generated/minval_i1.c: Regenerated.
2524         * generated/maxloc1_4_i1.c: Regenerated.
2525         * generated/matmul_r10.c: Regenerated.
2526         * generated/minloc1_4_i8.c: Regenerated.
2527         * generated/minloc0_8_r4.c: Regenerated.
2528         * generated/matmul_l4.c: Regenerated.
2529         * generated/product_i16.c: Regenerated.
2530         * generated/minloc0_16_r16.c: Regenerated.
2531         * generated/all_l4.c: Regenerated.
2532         * generated/minloc0_4_i4.c: Regenerated.
2533         * generated/minloc0_8_i2.c: Regenerated.
2534         * generated/matmul_i1.c: Regenerated.
2535         * generated/minval_r4.c: Regenerated.
2536         * generated/maxloc1_4_r4.c: Regenerated.
2537         * generated/spread_i16.c: Regenerated.
2538         * generated/sum_i4.c: Regenerated.
2539         * generated/maxval_r8.c: Regenerated.
2540         * generated/spread_i4.c: Regenerated.
2541         * generated/minloc1_4_i1.c: Regenerated.
2542         * generated/minval_r16.c: Regenerated.
2543         * generated/minval_i2.c: Regenerated.
2544         * generated/maxloc1_4_i2.c: Regenerated.
2545         * generated/product_r8.c: Regenerated.
2546         * generated/maxloc1_8_i8.c: Regenerated.
2547         * generated/maxloc0_4_r8.c: Regenerated.
2548         * generated/maxloc0_16_r16.c: Regenerated.
2549         * generated/matmul_r4.c: Regenerated.
2550         * generated/sum_c10.c: Regenerated.
2551         * generated/minloc1_4_r16.c: Regenerated.
2552         * generated/maxloc1_4_r16.c: Regenerated.
2553         * generated/minloc0_8_r16.c: Regenerated.
2554         * generated/maxloc0_8_r16.c: Regenerated.
2555         * generated/count_1_l.c: Regenerated.
2556         * generated/maxloc0_8_i4.c: Regenerated.
2557         * generated/matmul_i2.c: Regenerated.
2558         * generated/minloc1_4_r4.c: Regenerated.
2559         * generated/matmul_c10.c: Regenerated.
2560         * generated/minloc0_16_i4.c: Regenerated.
2561         * generated/maxloc0_16_i4.c: Regenerated.
2562         * generated/minloc1_16_i8.c: Regenerated.
2563         * generated/maxloc1_16_i8.c: Regenerated.
2564         * generated/minloc1_4_i2.c: Regenerated.
2565         * generated/matmul_l16.c: Regenerated.
2566         * generated/maxloc1_8_i1.c: Regenerated.
2567         * generated/minloc0_16_r10.c: Regenerated.
2568         * generated/minloc1_8_i8.c: Regenerated.
2569         * generated/minloc0_4_r8.c: Regenerated.
2570         * generated/product_r16.c: Regenerated.
2571         * generated/product_c8.c: Regenerated.
2572         * generated/sum_r8.c: Regenerated.
2573         * generated/minloc0_8_i4.c: Regenerated.
2574         * generated/matmul_c4.c: Regenerated.
2575         * generated/minloc1_16_i16.c: Regenerated.
2576         * generated/spread_r8.c: Regenerated.
2577         * generated/maxloc1_8_r4.c: Regenerated.
2578         * generated/minloc1_16_i1.c: Regenerated.
2579         * generated/maxloc1_16_i1.c: Regenerated.
2580         * generated/spread_r16.c: Regenerated.
2581         * generated/minval_r10.c: Regenerated.
2582         * generated/count_16_l.c: Regenerated.
2583         * generated/minval_i4.c: Regenerated.
2584         * generated/minloc1_8_i1.c: Regenerated.
2585         * generated/maxloc1_4_i4.c: Regenerated.
2586         * generated/maxloc1_8_i2.c: Regenerated.
2587         * generated/maxval_i8.c: Regenerated.
2588         * generated/any_l8.c: Regenerated.
2589         * generated/maxloc0_16_r10.c: Regenerated.
2590         * generated/minloc0_4_i16.c: Regenerated.
2591         * generated/maxloc0_8_r8.c: Regenerated.
2592         * generated/maxloc0_4_i16.c: Regenerated.
2593         * generated/minloc1_4_r10.c: Regenerated.
2594         * generated/minloc1_8_i16.c: Regenerated.
2595         * generated/maxloc1_4_r10.c: Regenerated.
2596         * generated/maxloc1_8_i16.c: Regenerated.
2597         * generated/minloc0_8_r10.c: Regenerated.
2598         * generated/maxloc0_8_r10.c: Regenerated.
2599         * generated/minloc1_16_r4.c: Regenerated.
2600         * generated/maxloc1_16_r4.c: Regenerated.
2601         * generated/minloc0_16_r8.c: Regenerated.
2602         * generated/product_i8.c: Regenerated.
2603         * generated/maxloc0_16_r8.c: Regenerated.
2604         * generated/sum_i16.c: Regenerated.
2605         * generated/count_2_l.c: Regenerated.
2606         * generated/maxloc0_4_i8.c: Regenerated.
2607         * generated/maxloc1_16_i16.c: Regenerated.
2608         * generated/matmul_i4.c: Regenerated.
2609         * generated/minloc1_8_r4.c: Regenerated.
2610         * generated/sum_c8.c: Regenerated.
2611         * generated/minloc1_16_i2.c: Regenerated.
2612         * generated/maxloc1_16_i2.c: Regenerated.
2613         * generated/maxval_i16.c: Regenerated.
2614         * generated/spread_c8.c: Regenerated.
2615         * generated/matmul_i16.c: Regenerated.
2616         * generated/minloc1_4_i4.c: Regenerated.
2617         * generated/maxval_i1.c: Regenerated.
2618         * generated/minloc1_8_i2.c: Regenerated.
2619         * generated/any_l1.c: Regenerated.
2620         * generated/product_c16.c: Regenerated.
2621         * generated/minloc0_8_r8.c: Regenerated.
2622         * generated/matmul_l8.c: Regenerated.
2623         * generated/product_r10.c: Regenerated.
2624         * generated/product_i1.c: Regenerated.
2625         * generated/all_l8.c: Regenerated.
2626         * generated/maxloc0_4_i1.c: Regenerated.
2627         * generated/minloc0_4_i8.c: Regenerated.
2628         * generated/spread_c16.c: Regenerated.
2629         * generated/maxval_r4.c: Regenerated.
2630
2631 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2632
2633         PR libfortran/37301
2634         PR libfortran/37228
2635         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
2636         * io/transfer.c (formatted_transfer_scalar): Use new function.
2637         * io/format.c (parse_format_list): Enable g0.d.
2638         * io/write.c (write_a_char4): Delete unused var.
2639         (set_fnode_default): New function to set the default fnode w, d, and e
2640         factored from write_real. (write_real): Use new factored function.
2641         (write_real_g0): New function that sets d to that passed by g0.d format
2642         specifier and set format to ES.  Default values for w and e are used
2643         from the new function, set_fnode_default.
2644
2645 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2646
2647         * runtime/error.c: Fix cast for printf.
2648
2649 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2650
2651         PR libfortran/36895
2652         * io/write.c (namelist_write_newline): New function to correctly mark
2653         next records in both external and internal units.
2654         (nml_write_obj): Use new function.
2655         (namelist_write: Use new function.
2656
2657 2008-08-19  Tobias Burnus  <burnus@net-b.de>
2658
2659         PR libfortran/35863
2660         * io/write.c (write_a_char4): Add missing variable declaration
2661         in HAVE_CRLF block.
2662
2663 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2664
2665         PR libfortran/35863
2666         * intrinsics/selected_char_kind.c: Enable iso_10646.
2667         * io/read.c (typedef uchar): New type.
2668         (read_utf8): New function to read a single UTF-8 encoded character.
2669         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
2670         (read_default_char1): New functio to read default into KIND=1 string.
2671         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
2672         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
2673         (read_a): Modify to use the new functions.
2674         (read_a_char4): Modify to use the new functions.
2675         * io/write.c (error.h): Add include. (typedef uchar): New type.
2676         (write_default_char4): New function to default write KIND=4 string.
2677         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
2678         (write_a_char4): Modify to use new functions.
2679         (write_character): Modify to use new functions.
2680
2681 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
2682
2683         PR libfortran/37123
2684         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
2685
2686 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2687
2688         PR libfortran/36886
2689         * Makefile.am:  Added $(i_cshift0_c).
2690         Added $(i_cshift0_c) to gfor_built_specific_src.
2691         Add rule to build from cshift0.m4.
2692         * Makefile.in:  Regenerated.
2693         * libgfortran.h:  Addedd prototypes for cshift0_i1,
2694         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
2695         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
2696         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
2697         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
2698         * intrinsics/cshift0.c:  Remove helper functions for
2699         the innter shift loop.
2700         (cshift0):  Call specific functions depending on type
2701         of array argument.  Only call specific functions for
2702         correct alignment for other types.
2703         * m4/cshift0.m4:  New file.
2704         * generated/cshift0_i1.c:  New file.
2705         * generated/cshift0_i2.c:  New file.
2706         * generated/cshift0_i4.c:  New file.
2707         * generated/cshift0_i8:.c  New file.
2708         * generated/cshift0_i16.c:  New file.
2709         * generated/cshift0_r4.c:  New file.
2710         * generated/cshift0_r8.c:  New file.
2711         * generated/cshift0_r10.c:  New file.
2712         * generated/cshift0_r16.c:  New file.
2713         * generated/cshift0_c4.c:  New file.
2714         * generated/cshift0_c8.c:  New file.
2715         * generated/cshift0_c10.c:  New file.
2716         * generated/cshift0_c16.c:  New file.
2717
2718 2008-07-27  Tobias Burnus  <burnus@net-b.de>
2719
2720         PR fortran/36132
2721         PR fortran/29952
2722         PR fortran/36909
2723         * runtime/error.c: New function runtime_error_at.
2724         * gfortran.map: Ditto.
2725         * libgfortran.h: Ditto.
2726
2727 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2728
2729         PR fortran/36582
2730         * io/list_read.c: If variable rank is zero, do not adjust the found
2731         namelist object pointer.
2732
2733 2008-07-22  Daniel Kraft  <d@domob.eu>
2734
2735         PR fortran/29835
2736         * io/format.c (struct format_data):  New member error_element.
2737         (unexpected_element):  Added '%c' to message.
2738         (next_char):  Keep track of last parsed character in fmt->error_element.
2739         (format_error):  If the message is unexpected_element, output the
2740         offending character, too.
2741
2742 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2743
2744         PR libfortran/36890
2745         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
2746         signed/unsigned comparison warning in formatted_backspace.
2747
2748 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2749
2750         PR libfortran/36773
2751         * intrinsics/cshift0.c (cshift0):  Return early if size of array
2752         is zero.
2753         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
2754         return array is zero.
2755         * intrinsics/eoshift2.c (eoshift2):  Likewise.
2756         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
2757         is zero.
2758         * m4/eoshift3.m4 (eoshift3):  Likewise.
2759         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
2760         array is zero.
2761         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
2762         array is zero.
2763         * generated/cshift1_16.c: Regenerated.
2764         * generated/cshift1_4.c: Regenerated.
2765         * generated/cshift1_8.c: Regenerated.
2766         * generated/eoshift1_16.c: Regenerated.
2767         * generated/eoshift1_4.c: Regenerated.
2768         * generated/eoshift1_8.c: Regenerated.
2769         * generated/eoshift3_16.c: Regenerated.
2770         * generated/eoshift3_4.c: Regenerated.
2771         * generated/eoshift3_8.c: Regenerated.
2772
2773 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2774
2775         PR fortran/36857
2776         * io/write_float.def: Comment out locale dependent code and fix general
2777         comments.
2778         
2779 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2780
2781         PR fortran/36341
2782         PR fortran/34670
2783         * m4/matmul.m4:  Add bounds checking.
2784         * m4/matmull.m4:  Likewise.
2785         * generated/matmul_c10.c: Regenerated.
2786         * generated/matmul_c16.c: Regenerated.
2787         * generated/matmul_c4.c: Regenerated.
2788         * generated/matmul_c8.c: Regenerated.
2789         * generated/matmul_i1.c: Regenerated.
2790         * generated/matmul_i16.c: Regenerated.
2791         * generated/matmul_i2.c: Regenerated.
2792         * generated/matmul_i4.c: Regenerated.
2793         * generated/matmul_i8.c: Regenerated.
2794         * generated/matmul_l16.c: Regenerated.
2795         * generated/matmul_l4.c: Regenerated.
2796         * generated/matmul_l8.c: Regenerated.
2797         * generated/matmul_r10.c: Regenerated.
2798         * generated/matmul_r16.c: Regenerated.
2799         * generated/matmul_r4.c: Regenerated.
2800         * generated/matmul_r8.c: Regenerated.
2801
2802 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2803
2804         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
2805         variable name.
2806         * configure: Regenerate.
2807
2808 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2809
2810         PR fortran/36676
2811         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
2812         
2813 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2814
2815         PR fortran/36657
2816         * io/list_read.c (read_character): Check for '!' along with separators.
2817         (find_nml_name): Likewise and eat the comment if found.
2818
2819 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2820
2821         * configure: Regenerate.
2822
2823 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2824
2825         PR fortran/36546
2826         * io/list_read.c (eat_separator): Add tab character to condition
2827         for looping past whitespace.
2828
2829 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2830
2831         PR fortran/36515
2832         * libgfortran.h (compile_options_t): Add int range_check to structure.
2833         * runtime/compile_options.c (set_options): Add range_check option.
2834         (init_compile_options): Likewise.
2835         *io/read.c (read_decimal): Change overflow checks to include
2836         range_check.
2837         
2838 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2839
2840         PR fortran/36538
2841         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
2842         tabs.
2843
2844 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2845
2846         PR fortran/35863
2847         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
2848         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
2849         big_endian. (determine_endianness): Add endian_off and set its value
2850         according to big_endian.
2851         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
2852         * io/io.h: Add prototype declarations for new functions.
2853         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
2854         (list_formatted_read): Calculate stride based on kind for character type
2855         and use it when calling list_formatted_read_scalar.
2856         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
2857         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
2858         * io/read.c (read_a_char4): New function to handle formatted read.
2859         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
2860         (write_a_char4): New function to handle formatted write.
2861         (write_character): Modify to accept the kind parameter and adjust for
2862         endianess of the machine. (list_formatted_write): Calculate the stride
2863         resulting from the kind and adjust the list_formatted_write_scalar call
2864         accordingly. (nml_write_obj): Adjust calls to write_character.
2865         (namelist_write): Likewise.
2866         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
2867         'kind' argument to better describe what it is. Add calls to new
2868         functions for kind == 4. (formatted_transfer): Modify to handle the case
2869         of type character and kind equals 4 to pass in the kind to the transfer
2870         routines. (transfer_character_wide): Add this new function.
2871         (transfer_array): Don't set kind to the character string length. Adjust
2872         strides bases on character kind.
2873         (unformatted_read): Adjust size based on kind for character types.
2874         (unformatted_write): Likewise. (data_transfer_init): Change
2875         l8_to_l4_offset to big_endian.
2876         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
2877
2878 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2879
2880         * configure.ac (AM_CFLAGS): Remove -Werror again.
2881         * configure: Regenerate.
2882
2883 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2884
2885         PR libgfortran/36518
2886         * configure.ac (AM_CFLAGS): Add -Werror.
2887         * configure: Regenerate.
2888         * m4/ifunction_logical.m4: Cast "n" to "(int)".
2889         * generated/any_l16.c: Regenerate.
2890         * generated/any_l2.c: Regenerate.
2891         * generated/all_l1.c: Regenerate.
2892         * generated/all_l2.c: Regenerate.
2893         * generated/all_l16.c: Regenerate.
2894         * generated/any_l4.c: Regenerate.
2895         * generated/count_4_l.c: Regenerate.
2896         * generated/count_8_l.c: Regenerate.
2897         * generated/all_l4.c: Regenerate.
2898         * generated/count_1_l.c: Regenerate.
2899         * generated/count_16_l.c: Regenerate.
2900         * generated/any_l8.c: Regenerate.
2901         * generated/count_2_l.c: Regenerate.
2902         * generated/any_l1.c: Regenerate.
2903         * generated/all_l8.c: Regenerate.
2904
2905 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2906
2907         PR fortran/36495
2908         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
2909         * configure: (generated) ditto.
2910         * intrinsics/dprod_r8.f90: Add "implicit none".
2911
2912 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2913
2914         PR libfortran/36420
2915         PR libfortran/36421
2916         PR libfortran/36422
2917         * io/io.h: Add prototype for write_real.
2918         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
2919         use write_real.
2920         * io/format.c: Add zero width error message. (parse_format_list): Use
2921         error message for FMT_A if followed by FMT_ZERO. Use zero width error
2922         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
2923         Fix typo in comment.
2924         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
2925         (write_l): Add wlen variable and use it if FMT_G and width is zero.
2926         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
2927         formatting. (write_real): Remove static declaration.
2928
2929 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2930
2931         PR fortran/36319
2932         * intrinsics/string_intrinsics_inc.c (string_index): Return
2933         correct value for zero-length substring.
2934         * intrinsics/cshift0.c: Add _char4 variant.
2935         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
2936         wider than a single byte. Add _char4 variant and use above
2937         functionality.
2938         * intrinsics/eoshift2.c (eoshift2): Likewise.
2939         * m4/eoshift1.m4: Likewise.
2940         * m4/eoshift3.m4: Likewise.
2941         * m4/cshift1.m4: Add _char4 variants.
2942         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
2943         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
2944         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
2945         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
2946         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
2947         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
2948         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
2949         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
2950         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
2951         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
2952         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
2953         * generated/eoshift3_4.c: Regenerate.
2954         * generated/eoshift1_8.c: Regenerate.
2955         * generated/eoshift1_16.c: Regenerate.
2956         * generated/cshift1_4.c: Regenerate.
2957         * generated/eoshift1_4.c: Regenerate.
2958         * generated/eoshift3_8.c: Regenerate.
2959         * generated/eoshift3_16.c: Regenerate.
2960         * generated/cshift1_8.c: Regenerate.
2961         * generated/cshift1_16.c: Regenerate.
2962
2963 2008-05-25  Tobias Burnus  <burnus@net-b.de>
2964
2965         PR fortran/32600
2966         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
2967         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
2968         * gfortran.map (c_f_procpointer): Remove.
2969
2970 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2971
2972         PR libgfortran/36302
2973         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
2974         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
2975         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
2976         _gfortran_cshift0_16_char.  Sort alphabetically.
2977         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
2978         * intrinsics/eoshift2.c:  Likewise.
2979         * intrinsics/cshift0.c:  Likewise.
2980
2981 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2982
2983         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
2984         pointer is restrict.
2985         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
2986         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
2987         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
2988         (spread_scalar_'rtype_code`): Likewise.
2989         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2990         * m4/eoshift1.m4 (eoshift1):  Likewise.
2991         * m4/eoshift3.m4 (eoshift3):  Likewise.
2992         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
2993         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
2994         (unpack1_'rtype_code`):  Likewise.
2995         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
2996         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
2997         * intrinsics/eoshift0.c (eoshift0):  Likewise.
2998         * intrinsics/eoshift2.c (eoshift2):  Likewise.
2999         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
3000         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
3001         * generated/eoshift1_16.c: Regenerated.
3002         * generated/eoshift1_4.c: Regenerated.
3003         * generated/eoshift1_8.c: Regenerated.
3004         * generated/eoshift3_16.c: Regenerated.
3005         * generated/eoshift3_4.c: Regenerated.
3006         * generated/eoshift3_8.c: Regenerated.
3007         * generated/in_pack_c10.c: Regenerated.
3008         * generated/in_pack_c16.c: Regenerated.
3009         * generated/in_pack_c4.c: Regenerated.
3010         * generated/in_pack_c8.c: Regenerated.
3011         * generated/in_pack_i1.c: Regenerated.
3012         * generated/in_pack_i16.c: Regenerated.
3013         * generated/in_pack_i2.c: Regenerated.
3014         * generated/in_pack_i4.c: Regenerated.
3015         * generated/in_pack_i8.c: Regenerated.
3016         * generated/in_pack_r10.c: Regenerated.
3017         * generated/in_pack_r16.c: Regenerated.
3018         * generated/in_pack_r4.c: Regenerated.
3019         * generated/in_pack_r8.c: Regenerated.
3020         * generated/in_unpack_c10.c: Regenerated.
3021         * generated/in_unpack_c16.c: Regenerated.
3022         * generated/in_unpack_c4.c: Regenerated.
3023         * generated/in_unpack_c8.c: Regenerated.
3024         * generated/in_unpack_i1.c: Regenerated.
3025         * generated/in_unpack_i16.c: Regenerated.
3026         * generated/in_unpack_i2.c: Regenerated.
3027         * generated/in_unpack_i4.c: Regenerated.
3028         * generated/in_unpack_i8.c: Regenerated.
3029         * generated/in_unpack_r10.c: Regenerated.
3030         * generated/in_unpack_r16.c: Regenerated.
3031         * generated/in_unpack_r4.c: Regenerated.
3032         * generated/in_unpack_r8.c: Regenerated.
3033         * generated/maxloc0_16_i1.c: Regenerated.
3034         * generated/maxloc0_16_i16.c: Regenerated.
3035         * generated/maxloc0_16_i2.c: Regenerated.
3036         * generated/maxloc0_16_i4.c: Regenerated.
3037         * generated/maxloc0_16_i8.c: Regenerated.
3038         * generated/maxloc0_16_r10.c: Regenerated.
3039         * generated/maxloc0_16_r16.c: Regenerated.
3040         * generated/maxloc0_16_r4.c: Regenerated.
3041         * generated/maxloc0_16_r8.c: Regenerated.
3042         * generated/maxloc0_4_i1.c: Regenerated.
3043         * generated/maxloc0_4_i16.c: Regenerated.
3044         * generated/maxloc0_4_i2.c: Regenerated.
3045         * generated/maxloc0_4_i4.c: Regenerated.
3046         * generated/maxloc0_4_i8.c: Regenerated.
3047         * generated/maxloc0_4_r10.c: Regenerated.
3048         * generated/maxloc0_4_r16.c: Regenerated.
3049         * generated/maxloc0_4_r4.c: Regenerated.
3050         * generated/maxloc0_4_r8.c: Regenerated.
3051         * generated/maxloc0_8_i1.c: Regenerated.
3052         * generated/maxloc0_8_i16.c: Regenerated.
3053         * generated/maxloc0_8_i2.c: Regenerated.
3054         * generated/maxloc0_8_i4.c: Regenerated.
3055         * generated/maxloc0_8_i8.c: Regenerated.
3056         * generated/maxloc0_8_r10.c: Regenerated.
3057         * generated/maxloc0_8_r16.c: Regenerated.
3058         * generated/maxloc0_8_r4.c: Regenerated.
3059         * generated/maxloc0_8_r8.c: Regenerated.
3060         * generated/minloc0_16_i1.c: Regenerated.
3061         * generated/minloc0_16_i16.c: Regenerated.
3062         * generated/minloc0_16_i2.c: Regenerated.
3063         * generated/minloc0_16_i4.c: Regenerated.
3064         * generated/minloc0_16_i8.c: Regenerated.
3065         * generated/minloc0_16_r10.c: Regenerated.
3066         * generated/minloc0_16_r16.c: Regenerated.
3067         * generated/minloc0_16_r4.c: Regenerated.
3068         * generated/minloc0_16_r8.c: Regenerated.
3069         * generated/minloc0_4_i1.c: Regenerated.
3070         * generated/minloc0_4_i16.c: Regenerated.
3071         * generated/minloc0_4_i2.c: Regenerated.
3072         * generated/minloc0_4_i4.c: Regenerated.
3073         * generated/minloc0_4_i8.c: Regenerated.
3074         * generated/minloc0_4_r10.c: Regenerated.
3075         * generated/minloc0_4_r16.c: Regenerated.
3076         * generated/minloc0_4_r4.c: Regenerated.
3077         * generated/minloc0_4_r8.c: Regenerated.
3078         * generated/minloc0_8_i1.c: Regenerated.
3079         * generated/minloc0_8_i16.c: Regenerated.
3080         * generated/minloc0_8_i2.c: Regenerated.
3081         * generated/minloc0_8_i4.c: Regenerated.
3082         * generated/minloc0_8_i8.c: Regenerated.
3083         * generated/minloc0_8_r10.c: Regenerated.
3084         * generated/minloc0_8_r16.c: Regenerated.
3085         * generated/minloc0_8_r4.c: Regenerated.
3086         * generated/minloc0_8_r8.c: Regenerated.
3087         * generated/pack_c10.c: Regenerated.
3088         * generated/pack_c16.c: Regenerated.
3089         * generated/pack_c4.c: Regenerated.
3090         * generated/pack_c8.c: Regenerated.
3091         * generated/pack_i1.c: Regenerated.
3092         * generated/pack_i16.c: Regenerated.
3093         * generated/pack_i2.c: Regenerated.
3094         * generated/pack_i4.c: Regenerated.
3095         * generated/pack_i8.c: Regenerated.
3096         * generated/pack_r10.c: Regenerated.
3097         * generated/pack_r16.c: Regenerated.
3098         * generated/pack_r4.c: Regenerated.
3099         * generated/pack_r8.c: Regenerated.
3100         * generated/spread_c10.c: Regenerated.
3101         * generated/spread_c16.c: Regenerated.
3102         * generated/spread_c4.c: Regenerated.
3103         * generated/spread_c8.c: Regenerated.
3104         * generated/spread_i1.c: Regenerated.
3105         * generated/spread_i16.c: Regenerated.
3106         * generated/spread_i2.c: Regenerated.
3107         * generated/spread_i4.c: Regenerated.
3108         * generated/spread_i8.c: Regenerated.
3109         * generated/spread_r10.c: Regenerated.
3110         * generated/spread_r16.c: Regenerated.
3111         * generated/spread_r4.c: Regenerated.
3112         * generated/spread_r8.c: Regenerated.
3113         * generated/transpose_c10.c: Regenerated.
3114         * generated/transpose_c16.c: Regenerated.
3115         * generated/transpose_c4.c: Regenerated.
3116         * generated/transpose_c8.c: Regenerated.
3117         * generated/transpose_i16.c: Regenerated.
3118         * generated/transpose_i4.c: Regenerated.
3119         * generated/transpose_i8.c: Regenerated.
3120         * generated/transpose_r10.c: Regenerated.
3121         * generated/transpose_r16.c: Regenerated.
3122         * generated/transpose_r4.c: Regenerated.
3123         * generated/transpose_r8.c: Regenerated.
3124         * generated/unpack_c10.c: Regenerated.
3125         * generated/unpack_c16.c: Regenerated.
3126         * generated/unpack_c4.c: Regenerated.
3127         * generated/unpack_c8.c: Regenerated.
3128         * generated/unpack_i1.c: Regenerated.
3129         * generated/unpack_i16.c: Regenerated.
3130         * generated/unpack_i2.c: Regenerated.
3131         * generated/unpack_i4.c: Regenerated.
3132         * generated/unpack_i8.c: Regenerated.
3133         * generated/unpack_r10.c: Regenerated.
3134         * generated/unpack_r16.c: Regenerated.
3135         * generated/unpack_r4.c: Regenerated.
3136         * generated/unpack_r8.c: Regenerated.
3137
3138 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3139
3140         * runtime/select.c: Moved content to select_inc.c. Include it. 
3141         Add macros for different character types.
3142         * runtime/select_inc.c: New file.
3143         * runtime/convert_char.c: New file.
3144         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
3145         functions.
3146         * intrinsics/transpose_generic.c (transpose_char4): New function.
3147         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
3148         New functions.
3149         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
3150         New functions.
3151         * intrinsics/reshape_generic.c (reshape_char): Use
3152         gfc_charlen_type as type for length variables.
3153         (reshape_char4): New function.
3154         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
3155         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
3156         _gfortran_transpose_char4, _gfortran_spread_char4,
3157         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
3158         _gfortran_pack_char4, _gfortran_pack_s_char4,
3159         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
3160         * Makefile.am: Add runtime/convert_char.c.
3161         * Makefile.in: Regenerate.
3162
3163 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
3164
3165         * io/list_read.c (list_formatted_read_scalar):  Declare
3166         type as volatile to shut up compiler warning.
3167
3168 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3169
3170         PR libfortran/25561
3171         * io/io.h (struct fbuf): Change pointer to position offset.
3172         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
3173         changes.
3174         (fbuf_reset): ptr=>pos changes.
3175         (fbuf_alloc): If the request doesn't fit, don't waste memory by
3176         keeping flushed bytes. ptr=>pos changes.
3177         (fbuf_flush): ptr=>pos changes.
3178         (fbuf_seek): Don't seek past the left tab limit, don't update active
3179         byte count.
3180         * io/open.c (new_unit): If RECL has been specified, used that as
3181         initial buffer size.
3182
3183 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3184
3185         PR libfortran/35632
3186         * io/open.c (new_unit): Set stream position to correct value.
3187
3188 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
3189
3190         PR libfortran/25561
3191         * Makefile.am: Add fbuf.c to gfor_io_src.
3192         * Makefile.in: Regenerate.
3193         * io/io.h (read_block): Remove.
3194         (struct stream): Remove alloc_r_at function pointer.
3195         (salloc_r): Remove.
3196         (salloc_r_at): Remove.
3197         (salloc_w_at): Remove.
3198         (salloc_w): Remove offset argument.
3199         (struct fbuf): New struct for format buffer.
3200         (struct gfc_unit): Add fbuf.
3201         (read_block_form): New prototype.
3202         (fbuf_init): Likewise.
3203         (fbuf_destroy): Likewise.
3204         (fbuf_reset): Likewise.
3205         (fbuf_alloc): Likewise.
3206         (fbuf_flush): Likewise.
3207         (fbuf_seek): Likewise.
3208         * io/file_pos.c (formatted_backspace): Change to use sread.
3209         (unformatted_backspace): Likewise.
3210         (st_backspace): Flush format buffer.
3211         (st_rewind): Likewise.
3212         * io/list_read.c (next_char): Likewise.
3213         (nml_query): Tidying, flush format buffer.
3214         * io/open.c (new_unit): Init format buffer.
3215         * io/read.c (read_l): Change to use read_block_form.
3216         (read_a): Likewise.
3217         (read_decimal): Likewise.
3218         (read_radix): Likewise.
3219         (read_f): Likewise.
3220         (read_x): Empty reads also for stream I/O.
3221         * io/transfer.c (read_sf): Change to use sread.
3222         (read_block): Rename to read_block_form, change prototype, use sread.
3223         (read_block_direct): Don't seek stream files.
3224         (write_block): Change to use fbuf if external file, don't seek stream
3225         files.
3226         (write_buf): Don't seek stream files.
3227         (formatted_transfer_scalar): Use fbuf for external files.
3228         (us_read): Change to use sread.
3229         (pre_position): Do nothing for stream I/O.
3230         (data_transfer_init): Flush fbuf when switching from write to read, if
3231         POS is specified, seek stream file to correct offset.
3232         (skip_record): Change to use sread.
3233         (min_off): New function.
3234         (next_record_r): Change to use sread.
3235         (next_record_w): Change to use sset/sseek, flush fbuf.
3236         (finalize_transfer): Flush fbuf.
3237         * io/unit.c (init_units): Init fbuf for stdout, stderr.
3238         (close_unit_1): Destroy fbuf.
3239         (finish_last_advance_record): Flush fbuf, no need to seek.
3240         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
3241         (fd_alloc_w_at): Likewise.
3242         (fd_read): Remove third argument to fd_alloc_r_at.
3243         (fd_write): Remove third argument to fd_alloc_w_at.
3244         (fd_sset): Likewise.
3245         (fd_open): Don't set alloc_r_at.
3246         (mem_alloc_r_at): Remove unused where argument.
3247         (mem_alloc_w_at): Likewise.
3248         (mem_read): Don't incorrectly return previous errno, remove unused
3249         third argument to alloc function.
3250         (mem_write): Likewise.
3251         (mem_set): Likewise.
3252         (open_internal): Don't set alloc_r_at pointer.
3253         * io/fbuf.c: New file.
3254
3255 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3256
3257         * libgfortran.h (gfc_char4_t): New type.
3258         (GFC_SIZE_OF_CHAR_KIND): New macro.
3259         (compare_string): Adjust prototype.
3260         (compare_string_char4): New prototype.
3261         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
3262         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
3263         _gfortran_concat_string_char4, _gfortran_string_index_char4,
3264         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
3265         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
3266         _gfortran_string_verify_char4.
3267         * intrinsics/string_intrinsics_inc.c: New file from content of
3268         string_intrinsics.c with types replaced by macros.
3269         * intrinsics/string_intrinsics.c: Move content to
3270         string_intrinsics_inc.c.
3271
3272 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3273
3274         PR libfortran/36202
3275         * io/list_read (eat_separator): Handle the CR-LF case correctly.
3276
3277 2008-05-09  Julian Brown  <julian@codesourcery.com>
3278
3279         * Makefile.am (LTLDFLAGS): New.
3280         (libgfortran_la_LDFLAGS): Use above.
3281         * Makefile.in: Regenerate.
3282
3283 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3284
3285         PR libfortran/36131
3286         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
3287         (next_record_w): Likewise.
3288
3289 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3290
3291         PR libfortran/35995
3292         * m4/ifunction_logical.m4:  If the extent of "array"
3293         is less than zero, set it to zero.  Use an explicit
3294         flag for breaking out of the main loop to avoid, because
3295         the data pointer for "array" may be NULL for an empty
3296         array.
3297         * m4/ifunction.m4:  Likewise.
3298         * generated/all_l1.c: Regenerated.
3299         * generated/all_l16.c: Regenerated.
3300         * generated/all_l2.c: Regenerated.
3301         * generated/all_l4.c: Regenerated.
3302         * generated/all_l8.c: Regenerated.
3303         * generated/any_l1.c: Regenerated.
3304         * generated/any_l16.c: Regenerated.
3305         * generated/any_l2.c: Regenerated.
3306         * generated/any_l4.c: Regenerated.
3307         * generated/any_l8.c: Regenerated.
3308         * generated/count_16_l.c: Regenerated.
3309         * generated/count_1_l.c: Regenerated.
3310         * generated/count_2_l.c: Regenerated.
3311         * generated/count_4_l.c: Regenerated.
3312         * generated/count_8_l.c: Regenerated.
3313         * generated/maxloc1_16_i1.c: Regenerated.
3314         * generated/maxloc1_16_i16.c: Regenerated.
3315         * generated/maxloc1_16_i2.c: Regenerated.
3316         * generated/maxloc1_16_i4.c: Regenerated.
3317         * generated/maxloc1_16_i8.c: Regenerated.
3318         * generated/maxloc1_16_r10.c: Regenerated.
3319         * generated/maxloc1_16_r16.c: Regenerated.
3320         * generated/maxloc1_16_r4.c: Regenerated.
3321         * generated/maxloc1_16_r8.c: Regenerated.
3322         * generated/maxloc1_4_i1.c: Regenerated.
3323         * generated/maxloc1_4_i16.c: Regenerated.
3324         * generated/maxloc1_4_i2.c: Regenerated.
3325         * generated/maxloc1_4_i4.c: Regenerated.
3326         * generated/maxloc1_4_i8.c: Regenerated.
3327         * generated/maxloc1_4_r10.c: Regenerated.
3328         * generated/maxloc1_4_r16.c: Regenerated.
3329         * generated/maxloc1_4_r4.c: Regenerated.
3330         * generated/maxloc1_4_r8.c: Regenerated.
3331         * generated/maxloc1_8_i1.c: Regenerated.
3332         * generated/maxloc1_8_i16.c: Regenerated.
3333         * generated/maxloc1_8_i2.c: Regenerated.
3334         * generated/maxloc1_8_i4.c: Regenerated.
3335         * generated/maxloc1_8_i8.c: Regenerated.
3336         * generated/maxloc1_8_r10.c: Regenerated.
3337         * generated/maxloc1_8_r16.c: Regenerated.
3338         * generated/maxloc1_8_r4.c: Regenerated.
3339         * generated/maxloc1_8_r8.c: Regenerated.
3340         * generated/maxval_i1.c: Regenerated.
3341         * generated/maxval_i16.c: Regenerated.
3342         * generated/maxval_i2.c: Regenerated.
3343         * generated/maxval_i4.c: Regenerated.
3344         * generated/maxval_i8.c: Regenerated.
3345         * generated/maxval_r10.c: Regenerated.
3346         * generated/maxval_r16.c: Regenerated.
3347         * generated/maxval_r4.c: Regenerated.
3348         * generated/maxval_r8.c: Regenerated.
3349         * generated/minloc1_16_i1.c: Regenerated.
3350         * generated/minloc1_16_i16.c: Regenerated.
3351         * generated/minloc1_16_i2.c: Regenerated.
3352         * generated/minloc1_16_i4.c: Regenerated.
3353         * generated/minloc1_16_i8.c: Regenerated.
3354         * generated/minloc1_16_r10.c: Regenerated.
3355         * generated/minloc1_16_r16.c: Regenerated.
3356         * generated/minloc1_16_r4.c: Regenerated.
3357         * generated/minloc1_16_r8.c: Regenerated.
3358         * generated/minloc1_4_i1.c: Regenerated.
3359         * generated/minloc1_4_i16.c: Regenerated.
3360         * generated/minloc1_4_i2.c: Regenerated.
3361         * generated/minloc1_4_i4.c: Regenerated.
3362         * generated/minloc1_4_i8.c: Regenerated.
3363         * generated/minloc1_4_r10.c: Regenerated.
3364         * generated/minloc1_4_r16.c: Regenerated.
3365         * generated/minloc1_4_r4.c: Regenerated.
3366         * generated/minloc1_4_r8.c: Regenerated.
3367         * generated/minloc1_8_i1.c: Regenerated.
3368         * generated/minloc1_8_i16.c: Regenerated.
3369         * generated/minloc1_8_i2.c: Regenerated.
3370         * generated/minloc1_8_i4.c: Regenerated.
3371         * generated/minloc1_8_i8.c: Regenerated.
3372         * generated/minloc1_8_r10.c: Regenerated.
3373         * generated/minloc1_8_r16.c: Regenerated.
3374         * generated/minloc1_8_r4.c: Regenerated.
3375         * generated/minloc1_8_r8.c: Regenerated.
3376         * generated/minval_i1.c: Regenerated.
3377         * generated/minval_i16.c: Regenerated.
3378         * generated/minval_i2.c: Regenerated.
3379         * generated/minval_i4.c: Regenerated.
3380         * generated/minval_i8.c: Regenerated.
3381         * generated/minval_r10.c: Regenerated.
3382         * generated/minval_r16.c: Regenerated.
3383         * generated/minval_r4.c: Regenerated.
3384         * generated/minval_r8.c: Regenerated.
3385         * generated/product_c10.c: Regenerated.
3386         * generated/product_c16.c: Regenerated.
3387         * generated/product_c4.c: Regenerated.
3388         * generated/product_c8.c: Regenerated.
3389         * generated/product_i1.c: Regenerated.
3390         * generated/product_i16.c: Regenerated.
3391         * generated/product_i2.c: Regenerated.
3392         * generated/product_i4.c: Regenerated.
3393         * generated/product_i8.c: Regenerated.
3394         * generated/product_r10.c: Regenerated.
3395         * generated/product_r16.c: Regenerated.
3396         * generated/product_r4.c: Regenerated.
3397         * generated/product_r8.c: Regenerated.
3398         * generated/sum_c10.c: Regenerated.
3399         * generated/sum_c16.c: Regenerated.
3400         * generated/sum_c4.c: Regenerated.
3401         * generated/sum_c8.c: Regenerated.
3402         * generated/sum_i1.c: Regenerated.
3403         * generated/sum_i16.c: Regenerated.
3404         * generated/sum_i2.c: Regenerated.
3405         * generated/sum_i4.c: Regenerated.
3406         * generated/sum_i8.c: Regenerated.
3407         * generated/sum_r10.c: Regenerated.
3408         * generated/sum_r16.c: Regenerated.
3409         * generated/sum_r4.c: Regenerated.
3410         * generated/sum_r8.c: Regenerated.
3411
3412 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3413
3414         PR libfortran/35990
3415         * intrinsics/pack_generic.c:  Really commit.
3416
3417 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3418
3419         PR libfortran/35990
3420         * intrinsics/pack_generic.c:  If an extent of the source
3421         array is less then zero, set it to zero.  Set the source
3422         pointer to NULL if the source size is zero.  Set the total
3423         number of elements to zero if the vector has an extent
3424         less or equal to zero.
3425         * m4/pack.m4:  Set the source pointer to NULL if the
3426         source array is zero-sized.  Set the total number of
3427         elemements to zero if the vector has an extent less or
3428         equal to zero.
3429         * generated/pack_i1.c:  Regenerated.
3430         * generated/pack_i2.c:  Regenerated.
3431         * generated/pack_i4.c:  Regenerated.
3432         * generated/pack_i8.c:  Regenerated.
3433         * generated/pack_i16.c:  Regenerated.
3434         * generated/pack_r4.c:  Regenerated.
3435         * generated/pack_r8.c:  Regenerated.
3436         * generated/pack_r10.c:  Regenerated.
3437         * generated/pack_r16.c:  Regenerated.
3438         * generated/pack_c4.c:  Regenerated.
3439         * generated/pack_c8.c:  Regenerated.
3440         * generated/pack_c10.c:  Regenerated.
3441         * generated/pack_c16.c:  Regenerated.
3442
3443 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3444
3445         PR libfortran/36094
3446         * runtime/error.c (show_locus): Provide modified error message when
3447         filename has not yet been associated with a unit number.
3448         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
3449
3450 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3451
3452         * intrinsics/selected_char_kind.c: New file.
3453         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
3454         * Makefile.am: Add intrinsics/selected_char_kind.c.
3455         * Makefile.in: Regenerate.
3456
3457 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
3458
3459         PR libfortran/35993
3460         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
3461         implementation for multi-dimensional return arrays when
3462         the mask is .false.
3463         * generated/maxloc1_16_i1.c: Regenerated.
3464         * generated/maxloc1_16_i16.c: Regenerated.
3465         * generated/maxloc1_16_i2.c: Regenerated.
3466         * generated/maxloc1_16_i4.c: Regenerated.
3467         * generated/maxloc1_16_i8.c: Regenerated.
3468         * generated/maxloc1_16_r10.c: Regenerated.
3469         * generated/maxloc1_16_r16.c: Regenerated.
3470         * generated/maxloc1_16_r4.c: Regenerated.
3471         * generated/maxloc1_16_r8.c: Regenerated.
3472         * generated/maxloc1_4_i1.c: Regenerated.
3473         * generated/maxloc1_4_i16.c: Regenerated.
3474         * generated/maxloc1_4_i2.c: Regenerated.
3475         * generated/maxloc1_4_i4.c: Regenerated.
3476         * generated/maxloc1_4_i8.c: Regenerated.
3477         * generated/maxloc1_4_r10.c: Regenerated.
3478         * generated/maxloc1_4_r16.c: Regenerated.
3479         * generated/maxloc1_4_r4.c: Regenerated.
3480         * generated/maxloc1_4_r8.c: Regenerated.
3481         * generated/maxloc1_8_i1.c: Regenerated.
3482         * generated/maxloc1_8_i16.c: Regenerated.
3483         * generated/maxloc1_8_i2.c: Regenerated.
3484         * generated/maxloc1_8_i4.c: Regenerated.
3485         * generated/maxloc1_8_i8.c: Regenerated.
3486         * generated/maxloc1_8_r10.c: Regenerated.
3487         * generated/maxloc1_8_r16.c: Regenerated.
3488         * generated/maxloc1_8_r4.c: Regenerated.
3489         * generated/maxloc1_8_r8.c: Regenerated.
3490         * generated/maxval_i1.c: Regenerated.
3491         * generated/maxval_i16.c: Regenerated.
3492         * generated/maxval_i2.c: Regenerated.
3493         * generated/maxval_i4.c: Regenerated.
3494         * generated/maxval_i8.c: Regenerated.
3495         * generated/maxval_r10.c: Regenerated.
3496         * generated/maxval_r16.c: Regenerated.
3497         * generated/maxval_r4.c: Regenerated.
3498         * generated/maxval_r8.c: Regenerated.
3499         * generated/minloc1_16_i1.c: Regenerated.
3500         * generated/minloc1_16_i16.c: Regenerated.
3501         * generated/minloc1_16_i2.c: Regenerated.
3502         * generated/minloc1_16_i4.c: Regenerated.
3503         * generated/minloc1_16_i8.c: Regenerated.
3504         * generated/minloc1_16_r10.c: Regenerated.
3505         * generated/minloc1_16_r16.c: Regenerated.
3506         * generated/minloc1_16_r4.c: Regenerated.
3507         * generated/minloc1_16_r8.c: Regenerated.
3508         * generated/minloc1_4_i1.c: Regenerated.
3509         * generated/minloc1_4_i16.c: Regenerated.
3510         * generated/minloc1_4_i2.c: Regenerated.
3511         * generated/minloc1_4_i4.c: Regenerated.
3512         * generated/minloc1_4_i8.c: Regenerated.
3513         * generated/minloc1_4_r10.c: Regenerated.
3514         * generated/minloc1_4_r16.c: Regenerated.
3515         * generated/minloc1_4_r4.c: Regenerated.
3516         * generated/minloc1_4_r8.c: Regenerated.
3517         * generated/minloc1_8_i1.c: Regenerated.
3518         * generated/minloc1_8_i16.c: Regenerated.
3519         * generated/minloc1_8_i2.c: Regenerated.
3520         * generated/minloc1_8_i4.c: Regenerated.
3521         * generated/minloc1_8_i8.c: Regenerated.
3522         * generated/minloc1_8_r10.c: Regenerated.
3523         * generated/minloc1_8_r16.c: Regenerated.
3524         * generated/minloc1_8_r4.c: Regenerated.
3525         * generated/minloc1_8_r8.c: Regenerated.
3526         * generated/minval_i1.c: Regenerated.
3527         * generated/minval_i16.c: Regenerated.
3528         * generated/minval_i2.c: Regenerated.
3529         * generated/minval_i4.c: Regenerated.
3530         * generated/minval_i8.c: Regenerated.
3531         * generated/minval_r10.c: Regenerated.
3532         * generated/minval_r16.c: Regenerated.
3533         * generated/minval_r4.c: Regenerated.
3534         * generated/minval_r8.c: Regenerated.
3535         * generated/product_c10.c: Regenerated.
3536         * generated/product_c16.c: Regenerated.
3537         * generated/product_c4.c: Regenerated.
3538         * generated/product_c8.c: Regenerated.
3539         * generated/product_i1.c: Regenerated.
3540         * generated/product_i16.c: Regenerated.
3541         * generated/product_i2.c: Regenerated.
3542         * generated/product_i4.c: Regenerated.
3543         * generated/product_i8.c: Regenerated.
3544         * generated/product_r10.c: Regenerated.
3545         * generated/product_r16.c: Regenerated.
3546         * generated/product_r4.c: Regenerated.
3547         * generated/product_r8.c: Regenerated.
3548         * generated/sum_c10.c: Regenerated.
3549         * generated/sum_c16.c: Regenerated.
3550         * generated/sum_c4.c: Regenerated.
3551         * generated/sum_c8.c: Regenerated.
3552         * generated/sum_i1.c: Regenerated.
3553         * generated/sum_i16.c: Regenerated.
3554         * generated/sum_i2.c: Regenerated.
3555         * generated/sum_i4.c: Regenerated.
3556         * generated/sum_i8.c: Regenerated.
3557         * generated/sum_r10.c: Regenerated.
3558         * generated/sum_r16.c: Regenerated.
3559         * generated/sum_r4.c: Regenerated.
3560         * generated/sum_r8.c: Regenerated.
3561
3562 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
3563
3564         PR libfortran/35960
3565         * m4/reshape.m4:  Fix typo in last commit.
3566         * generated/reshape_i4.c:  Regererated.
3567         * generated/reshape_i8.c:  Regenerated.
3568         * generated/reshape_i16.c:  Regenerated.
3569         * generated/reshape_r4.c:  Regenerated.
3570         * generated/reshape_r8.c:  Regenerated.
3571         * generated/reshape_r10.c:  Regenerated.
3572         * generated/reshape_r16.c:  Regenerated.
3573         * generated/reshape_c4.c:  Regenerated.
3574         * generated/reshape_c8.c:  Regenerated.
3575         * generated/reshape_c10.c:  Regenerated.
3576         * generated/reshape_c16.c:  Regenerated.
3577
3578 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3579
3580         * intrinsics/time_1.h (__time_1): Remove unused variable.
3581
3582 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
3583
3584         PR libfortran/35988
3585         * m4/matmul.m4:  Only issue a runtime error if extents are
3586         non-zero.
3587         * generated/matmul_i1.c:  Regenerated.
3588         * generated/matmul_i2.c:  Regenerated.
3589         * generated/matmul_i4.c:  Regenerated.
3590         * generated/matmul_i8.c:  Regenerated.
3591         * generated/matmul_i16.c:  Regenerated.
3592         * generated/matmul_r4.c:  Regenerated.
3593         * generated/matmul_r8.c:  Regenerated.
3594         * generated/matmul_r10.c:  Regenerated.
3595         * generated/matmul_r16.c:  Regenerated.
3596         * generated/matmul_c4.c:  Regenerated.
3597         * generated/matmul_c8.c:  Regenerated.
3598         * generated/matmul_c10.c:  Regenerated.
3599         * generated/matmul_c16.c:  Regenerated.
3600
3601 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3602
3603         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
3604         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
3605         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
3606         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
3607         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
3608         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
3609         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
3610         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
3611         Fix cache variable names.
3612         * configure, Makefile.in: Regenerate.
3613
3614 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3615
3616         PR fortran/35991
3617         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
3618
3619 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
3620
3621         PR libfortran/35960
3622         * intrinsics/reshape_generic.c (reshape_internal): If the size
3623         of the resized array is zero, as determined by the SHAPE
3624         argument, return early.
3625         * m4/reshape.m4:  Likewise.
3626         * generated/reshape_i4.c:  Regererated.
3627         * generated/reshape_i8.c:  Regenerated.
3628         * generated/reshape_i16.c:  Regenerated.
3629         * generated/reshape_r4.c:  Regenerated.
3630         * generated/reshape_r8.c:  Regenerated.
3631         * generated/reshape_r10.c:  Regenerated.
3632         * generated/reshape_r16.c:  Regenerated.
3633         * generated/reshape_c4.c:  Regenerated.
3634         * generated/reshape_c8.c:  Regenerated.
3635         * generated/reshape_c10.c:  Regenerated.
3636         * generated/reshape_c16.c:  Regenerated.
3637
3638 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3639
3640         PR bootstrap/35457
3641         * aclocal.m4: Regenerate.
3642         * configure: Regenerate.
3643
3644 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
3645
3646         PR libfortran/32972
3647         * intrinsics/spread_generic.c (spread):  Use spread_i2()
3648         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
3649
3650 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
3651         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3652
3653         PR libfortran/32972
3654         PR libfortran/32512
3655         configure.ac:  Add test for uintptr_t.
3656         configure:  Regenerated.
3657         config.h.in:  Regenerated.
3658         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
3659         GFC_DTYPE_DERIVED_2:  New macro.
3660         GFC_DTYPE_DERIVED_4:  New macro.
3661         GFC_DTYPE_DERIVED_8:  New macro.
3662         GFC_DTYPE_DERIVED_16:  New macro.
3663         GFC_UNALIGNED_2:  New macro.
3664         GFC_UNALIGNED_4:  New macro.
3665         GFC_UNALIGNED_8:  New macro.
3666         GFC_UNALIGNED_16:  New macro.
3667         intptr_t:  Define if we don't have it.
3668         uintptr_t:  Likewise.
3669         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
3670         * intrinsics/signal.c (signal_sub):  Likewise.
3671         (signal_sub_int):  Likewise.
3672         (alarm_sub_int_i4):  Likewise.
3673         * intrinsics/spread_generic.c (spread):  Use the integer
3674         routines for handling derived types of sizes 1, 2, 4, 8 and 16
3675         if the alignment of all pointers is correct.
3676         (spread_scalar):  Likewise.
3677         * intrinsics/pack_generic.c (pack):  Likewise.
3678         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
3679         * intrinsics/unpack_generic.c (unpack1):  Likewise.
3680         (unpack0):  Likewise.
3681         * runtime/in_pack_generic.c (internal_pack):  Likewise.
3682         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
3683
3684 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
3685
3686         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
3687         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
3688         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
3689         is used.
3690         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
3691         nml_read_obj call.  Use snprintf instead of sprintf when %s
3692         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
3693         of parse_err_msg array.  Append " for namelist variable " and
3694         nl->var_name to it.
3695         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
3696         sizeof nml_err_msg as extra argument to nml_get_obj_data.
3697
3698 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3699
3700         PR fortran/25829 28655
3701         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
3702         and flags.status. (st_open): Initialize flags.async.
3703         * io/list_read.c (read_charactor): Use delim_status instead of
3704         flags.delim.
3705         * io/read.c (read_x): Use pad_status instead of flags.pad.
3706         * io/inquire.c (inquire_via_unit): Add new checks.
3707         (inquire_via_filename): Likewise.
3708         * io/io.h (st_parameter_inquire): Add new flags.
3709         (st_parameter_dt): Likewise.
3710         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
3711         flags.async.
3712         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
3713         pad_status instead of flags.pad. (read_block): Likewise.
3714         (data_transfer_init): Set flags.async and add checks.
3715         * io/write.c (write_character): Use delim_status.
3716         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
3717         (namelist_write): Likewise.
3718
3719 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3720
3721         PR fortran/25829 28655
3722         * gfortran.map: Add new symbol, _gfortran_st_wait.
3723         * libgfortran.h (st_paramter_common): Add new I/O parameters.
3724         * open.c (st_option decimal_opt[], st_option encoding_opt[],
3725         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
3726         parameter option arrays. (edit_modes): Add checks for new parameters.
3727         (new_unit): Likewise. (st_open): Likewise.
3728         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
3729         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
3730         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
3731         * read.c (read_a): Use decimal status flag to allow comma in place of a
3732         decimal point. (read_f): Allow comma as acceptable character in float.
3733         According to decimal flag, substitute a period for a comma.
3734         (read_x): If decimal status flag is comma, disable the read_comma flag,
3735         not allowing comma as a delimiter, an extension otherwise.
3736         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
3737         unit_async): New enumerators. Add all new I/O parameters.
3738         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
3739         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
3740         (fd_sfree): Use new enumerator. (fd_read): Likewise.
3741         (fd_write): Likewise. (fd_close): Fix whitespace.
3742         (fd_open): Use new enumertors. (tempfile, regular_file,
3743         open_external): Fix whitespace. (output_stream, error_stream): Set
3744         method. (stream_offset): Fix whitespace.
3745         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
3746         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
3747         based on new decimal_status flag. (data_transfer_init): Initialize new
3748         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
3749         * format.c: (format_lex): Add format specifiers DP, DC, and D.
3750         (parse_format_list): Parse the new specifiers.
3751         * write.c (write_decimal): Use new sign enumerators to set the sign.
3752         (write_complex): Handle decimal comma and semi-colon separator.
3753         (nml_write_obj): Likewise.
3754         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
3755         sign enumerators. (output_float): Likewise. Use new decimal_status flag
3756         to set the decimal character to a point or a comma.
3757         
3758 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
3759
3760         PR libfortran/32972
3761         PR libfortran/32512
3762         * Makefile.am:  Add new variable, i_spread_c, containing
3763         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
3764         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
3765         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
3766         * Makefile.in:  Regenerated.
3767         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
3768         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
3769         spread_c4, spread_c8, spread_c10, spread_c16,
3770         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
3771         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
3772         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
3773         spread_scalar_c10 and spread_scalar_c16.
3774         Add macros to isolate both type and size information
3775         from array descriptors with a single mask operation.
3776         * intrinsics/spread_generic.c:  Add calls to specific
3777         spread functions.
3778         * m4/spread.m4:  New file.
3779         * generated/spread_i1.c:  New file.
3780         * generated/spread_i2.c:  New file.
3781         * generated/spread_i4.c:  New file.
3782         * generated/spread_i8.c:  New file.
3783         * generated/spread_i16.c:  New file.
3784         * generated/spread_r4.c:  New file.
3785         * generated/spread_r8.c:  New file.
3786         * generated/spread_r10.c:  New file.
3787         * generated/spread_r16.c:  New file.
3788         * generated/spread_c4.c:  New file.
3789         * generated/spread_c8.c:  New file.
3790         * generated/spread_c10.c:  New file.
3791         * generated/spread_c16.c:  New file.
3792
3793 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3794
3795         PR libfortran/35699
3796         * io/transfer.c (write_buf):  Don't pad the record, just return if the
3797         data is NULL.  (next_record_w): If there are bytes left in the record
3798         for unformatted direct I/O, pad out the record with zero bytes.
3799
3800 2008-03-28  Tobias Burnus  <burnus@net-b.de>
3801
3802         PR fortran/35721
3803         * intrinsics/associated.c (associated): Ignore different
3804         stride of pointer vs. target if only one element is referred.
3805
3806 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3807
3808         * io/unix.c (fd_close):  Do not close STDIN.
3809
3810 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
3811
3812         PR libfortran/32972
3813         * Makefile.am:  Add new variable, i_unpack_c, containing
3814         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
3815         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
3816         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
3817         and unpack_c16.c
3818         Add i_unpack_c to gfor_built_src.
3819         Add rule to generate i_unpack_c from m4/unpack.m4.
3820         * Makefile.in:  Regenerated.
3821         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
3822         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
3823         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
3824         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
3825         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
3826         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
3827         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
3828         unpack1 functions.
3829         (unpack0):  Add calls to specific unpack0 functions.
3830         * m4/unpack.m4:  New file.
3831         * generated/unpack_i1.c:  New file.
3832         * generated/unpack_i2.c:  New file.
3833         * generated/unpack_i4.c:  New file.
3834         * generated/unpack_i8.c:  New file.
3835         * generated/unpack_i16.c:  New file.
3836         * generated/unpack_r4.c:  New file.
3837         * generated/unpack_r8.c:  New file.
3838         * generated/unpack_r10.c:  New file.
3839         * generated/unpack_r16.c:  New file.
3840         * generated/unpack_c4.c:  New file.
3841         * generated/unpack_c8.c:  New file.
3842         * generated/unpack_c10.c:  New file.
3843         * generated/unpack_c16.c:  New file.
3844
3845 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3846
3847         PR libfortran/35632
3848         * io/transfer.c (data_transfer_init):  Fix whitespace.
3849         (next_record_w): Truncate the file only if the stream
3850         position is short of the file end.
3851
3852 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3853
3854         * intrinsics/pack_generic.c:  Fix typo.
3855
3856 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
3857
3858         * gfortran.map: Move erfc_scaled symbols to new symbol node
3859         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
3860
3861 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
3862
3863         PR libfortran/32972
3864         * runtime/in_pack_generic.c (internal_pack):  Call correct
3865         function, pack_i16, for GFC_INTEGER_16.
3866
3867 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
3868
3869         PR libfortran/32972
3870         * Makefile.am:  Add new variable, i_pack_c, containing
3871         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
3872         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
3873         pack_c8.c, pack_c10.c, pack_c16.c.
3874         Add m4/pack.m4 to m4_files.
3875         Add i_pack_c to gfor_built_src.
3876         Add rule to generate i_pack_c from m4/pack.m4.
3877         * Makefile.in:  Regenerated.
3878         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
3879         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
3880         pack_c10, pack_c16.
3881         * intrinsics/pack_generic.c:  Add calls to specific
3882         pack functions.
3883         * m4/pack.m4:  New file.
3884         * generated/pack_i1.c:  New file.
3885         * generated/pack_i2.c:  New file.
3886         * generated/pack_i4.c:  New file.
3887         * generated/pack_i8.c:  New file.
3888         * generated/pack_i16.c:  New file.
3889         * generated/pack_r4.c:  New file.
3890         * generated/pack_r8.c:  New file.
3891         * generated/pack_r10.c:  New file.
3892         * generated/pack_r16.c:  New file.
3893         * generated/pack_c4.c:  New file.
3894         * generated/pack_c8.c:  New file.
3895         * generated/pack_c10.c:  New file.
3896         * generated/pack_c16.c:  New file.
3897
3898 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3899
3900         PR libfortran/35627
3901         * io/list_read.c (free_line): Clear the line buffer enable flag and
3902         reset the index into line_buffer, aka item_count.
3903         (next_char): Cleanup whitespace.
3904         (read_logical): Use unget_char to assure that the first character of the
3905         bad logical is saved in case it is part of an object name. Remove the
3906         clearing of index and flag that is now in free_line.
3907         (read_real): Likewise.
3908
3909 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
3910
3911         PR libfortran/32972
3912         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
3913         last commit.
3914
3915 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
3916
3917         PR libfortran/32972
3918         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
3919         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
3920         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
3921         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
3922         in_unpack_r16.c.
3923         * Makefile.in: Regenerate.
3924         * libgfortran.h:  Add prototypes for internal_pack_1,
3925         internal_pack_2, internal_pack_16, internal_pack_r4,
3926         internal_pack_r8, internal_pack_r10, internal_pack_r16,
3927         internal_pack_c10 and internal_pack_c16.  Add prototypes for
3928         internal_unpack_1, internal_unpack_2, internal_unpack_16,
3929         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
3930         internal_unpack_r16, internal_unpack_c10 and
3931         internal_unpack_c16.
3932         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
3933         of hardwired sizes.
3934         Add calls to internal_pack_1, internal_pack_2,
3935         internal_pack_16, internal_pack_r4, internal_pack_r8,
3936         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
3937         internal_pack_c16.
3938         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
3939         instead of hardwired sizes.
3940         Add calls to internal_unpack_1, internal_unpack_2,
3941         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
3942         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
3943         and internal_unpack_c16.
3944         * generated/in_pack_r4.c:  New file.
3945         * generated/in_pack_i2.c:  New file.
3946         * generated/in_unpack_i1.c:  New file.
3947         * generated/in_pack_r10.c:  New file.
3948         * generated/in_unpack_r4.c:  New file.
3949         * generated/in_unpack_i2.c:  New file.
3950         * generated/in_unpack_r16.c:  New file.
3951         * generated/in_pack_r8.c:  New file.
3952         * generated/in_unpack_r10.c:  New file.
3953         * generated/in_unpack_r8.c:  New file.
3954         * generated/in_pack_r16.c:  New file.
3955         * generated/in_pack_i1.c:  New file.
3956
3957 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3958
3959         PR libfortran/35617
3960         * io/list_read.c (eat_separator): If next character after eatline is '!'
3961         then eatline again. 
3962
3963 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3964
3965         * aclocal.m4: Regenerate.
3966         * configure: Likewise.
3967         * Makefile.in: Likewise.
3968
3969 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3970
3971         PR libfortran/35524
3972         * intrinsics/erfc_scaled_inc.c: Only define the long double
3973         variant of erfc_scaled if expl is available.
3974
3975 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3976
3977         PR libfortran/32812
3978         * intrinsics/random.c (scramble_seed, unscramble_seed): New
3979         functions.
3980         (random_seed_i4): Scramble the seed the user gives us before
3981         storing it, and unscramble it when we return it back later.
3982
3983 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
3984
3985         PR libfortran/35293
3986         * io/unix.c (fd_truncate): Fold s->special_file case into
3987         success case of ftruncate/chsize call instead of the failure case.
3988         Make failure case actually return failure.  Properly update stream
3989         pointers on failure.  Call runtime_error for targets without
3990         neither ftruncate nor chsize where such a call would be needed.
3991
3992 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3993
3994         PR fortran/33197
3995         * intrinsics/erfc_scaled_inc.c: New file.
3996         * intrinsics/erfc_scaled.c: New file.
3997         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
3998         * Makefile.am: Add intrinsics/erfc_scaled.c.
3999         * config.h.in: Regenerate.
4000         * configure: Regenerate.
4001         * Makefile.in: Regenerate.
4002
4003 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4004
4005         PR libfortran/35355
4006         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
4007         for mingw.
4008
4009 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4010
4011         PR libfortran/35063
4012         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
4013         instead of macro kludge.
4014         
4015 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4016
4017         PR fortran/29549
4018         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
4019         libgfortran.
4020         * Makefile.in: Regenerated.
4021
4022 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4023
4024         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
4025         * generated/all_l1.c: Regenerate.
4026         * generated/all_l2.c: Regenerate.
4027         * generated/all_l4.c: Regenerate.
4028         * generated/all_l8.c: Regenerate.
4029         * generated/all_l16.c: Regenerate.
4030         * generated/any_l1.c: Regenerate.
4031         * generated/any_l2.c: Regenerate.
4032         * generated/any_l4.c: Regenerate.
4033         * generated/any_l8.c: Regenerate.
4034         * generated/any_l16.c: Regenerate.
4035         * generated/count_1_l.c: Regenerate.
4036         * generated/count_2_l.c: Regenerate.
4037         * generated/count_4_l.c: Regenerate.
4038         * generated/count_8_l.c: Regenerate.
4039         * generated/count_16_l.c: Regenerate.
4040
4041 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4042
4043         PR libfortran/32841
4044         * acinclude.m4: Don't use HAVE_MATH_H.
4045         * configure: Regenerate.
4046
4047 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4048
4049         PR libfortran/35132
4050         * io/transfer.c (next_record_w): Truncate after the last record for
4051         STREAM I/O.
4052
4053         PR libfortran/34954
4054         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
4055
4056         PR libfortran/34974
4057         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
4058         is less than zero. (next_record_w): Use sseek to position the file to
4059         the max position reached.
4060
4061 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4062
4063         PR libfortran/35036
4064         * write_float.def (output_float):  Add error checks for zero digits
4065         after decimal point in E and D format specifiers.
4066         
4067 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4068
4069         PR libfortran/35063
4070         * io/unit.c (destroy_unit_mutex): New function that uses
4071         __gthread_mutex_destroy_function or pthread_mutex_destroy after
4072         unlocking and before free_mem for final closure of I/O unit.
4073         (delete_root): Use new function.
4074         (free_internal_unit): Likewise.
4075         (close_unit_1): Likewise.
4076
4077 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
4078
4079         PR libfortran/35001
4080         * m4/shape.m4:  Return 0 for extents <= 0.
4081         * generated/shape_i4.c:  Regenerated.
4082         * generated/shape_i8.c:  Regenerated.
4083         * generated/shape_i16.c:  Regenerated.
4084
4085 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
4086
4087         PR libfortran/34980
4088         * m4/shape.m4:  If return array is empty, return early.
4089         * generated/shape_i4.c:  Regenerated.
4090         * generated/shape_i8.c:  Regenerated.
4091         * generated/shape_i16.c:  Regenerated.
4092
4093 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
4094
4095         PR libfofortran/34887
4096         * io/transfer.c (next_record_w): Always move to the farthest
4097         position when completing the record (also when we are
4098         processing a slash edit descriptor).
4099
4100 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4101
4102         PR libfortran/34876
4103         * io/transfer.c (write_buf): Handle case of zero sized array.
4104         (transfer_array): Set data pointer to NULL and size to zero.  Then
4105         make a data transfer and return.
4106         
4107 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
4108
4109         * configure: Regenerate.
4110
4111 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4112
4113         PR libfortran/34795
4114         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
4115         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
4116         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
4117         FORAMATTED, and UNFORMATTED inquiries.
4118         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
4119         for files that are not opened. (inquire_direct): Same.
4120         (inquire_formatted): Same.
4121         
4122 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4123
4124         PR libfortran/34782
4125         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
4126         of the current max_pos or the newly calculated position.
4127
4128 2008-01-18  Tobias Burnus  <burnus@net-b.de>
4129
4130         * io/write.c (write_real): Increase default precision
4131         for REAL(16) by one.
4132
4133 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
4134
4135         PR libfortran/34669
4136         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
4137         to avoid piping the -fdump-parse-tree output to the assembler
4138         when configuring with -pipe.
4139         * mk-sik-inc.sh: Likewise.
4140         * mk-srk-inc.sh: Likewise.
4141
4142 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
4143
4144         PR libfortran/34671
4145         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
4146         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
4147         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
4148         _gfortran_count_8_l Removed _gfortran_count_16_l16,
4149         _gfortran_count_16_l4, _gfortran_count_16_l8,
4150         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
4151         _gfortran_count_8_l16, _gfortran_count_8_l4 and
4152         _gfortran_count_8_l8.
4153         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
4154         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
4155         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
4156         generated/count_16_l4.c, generated/count_4_l8.c,
4157         generated/count_8_l8.c, generated/count_16_l8.c,
4158         generated/count_4_l16.c, generated/count_8_l16.c, and
4159         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
4160         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
4161         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
4162         any of the files generated from all.m4, any.m4 and count.m4.
4163         * Makefile.in:  Regenerated.
4164         * m4/ifunction_logical.m4:  New file.  Use
4165         GFC_LOGICAL_1 pointer for access to source arrays.
4166         * m4/any.m4:  Include ifunction_logical.m4 instead of
4167         ifunction.m4.  Don't check atype_name.
4168         * m4/all.m4:  Likewise.
4169         * m4/count.m4:  Likewise.
4170         * generated/any_l1.c:  New file.
4171         * generated/any_l2.c:  New file.
4172         * generated/all_l1.c:  New file.
4173         * generated/count_1_l.c:  New file.
4174         * generated/count_2_l.c:  New file.
4175         * generated/count_4_l.c:  New file.
4176         * generated/count_8_l.c:  New file.
4177         * generated/count_16_l.c:  New file.
4178         * generated/any_l4.c:  Regenerated.
4179         * generated/any_l8.c:  Regenerated.
4180         * generated/any_l16.c:  Regenerated.
4181         * generated/all_l4.c: Regenerated.
4182         * generated/all_l8.c: Regenerated.
4183         * generated/all_l16.c: Regenerated.
4184         * generated/count_4_l4.c:  Removed.
4185         * generated/count_4_l8.c:  Removed.
4186         * generated/count_4_l16.c:  Removed.
4187         * generated/count_8_l4.c:  Removed.
4188         * generated/count_8_l8.c:  Removed.
4189         * generated/count_8_l16.c:  Removed.
4190         * generated/count_16_l4.c:  Removed.
4191         * generated/count_16_l8.c:  Removed.
4192         * generated/count_16_l16.c:  Removed.
4193
4194 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
4195
4196         PR libfortran/34746
4197         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
4198         in printf format for all bounds checking; cast all
4199         integer-like arguments to runtime_error() to long int.
4200         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4201         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4202         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
4203         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4204         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4205         * generated/all_l16.c: Regenerated.
4206         * generated/all_l4.c: Regenerated.
4207         * generated/all_l8.c: Regenerated.
4208         * generated/any_l16.c: Regenerated.
4209         * generated/any_l4.c: Regenerated.
4210         * generated/any_l8.c: Regenerated.
4211         * generated/count_16_l16.c: Regenerated.
4212         * generated/count_16_l4.c: Regenerated.
4213         * generated/count_16_l8.c: Regenerated.
4214         * generated/count_4_l16.c: Regenerated.
4215         * generated/count_4_l4.c: Regenerated.
4216         * generated/count_4_l8.c: Regenerated.
4217         * generated/count_8_l16.c: Regenerated.
4218         * generated/count_8_l4.c: Regenerated.
4219         * generated/count_8_l8.c: Regenerated.
4220         * generated/maxloc0_16_i1.c: Regenerated.
4221         * generated/maxloc0_16_i16.c: Regenerated.
4222         * generated/maxloc0_16_i2.c: Regenerated.
4223         * generated/maxloc0_16_i4.c: Regenerated.
4224         * generated/maxloc0_16_i8.c: Regenerated.
4225         * generated/maxloc0_16_r10.c: Regenerated.
4226         * generated/maxloc0_16_r16.c: Regenerated.
4227         * generated/maxloc0_16_r4.c: Regenerated.
4228         * generated/maxloc0_16_r8.c: Regenerated.
4229         * generated/maxloc0_4_i1.c: Regenerated.
4230         * generated/maxloc0_4_i16.c: Regenerated.
4231         * generated/maxloc0_4_i2.c: Regenerated.
4232         * generated/maxloc0_4_i4.c: Regenerated.
4233         * generated/maxloc0_4_i8.c: Regenerated.
4234         * generated/maxloc0_4_r10.c: Regenerated.
4235         * generated/maxloc0_4_r16.c: Regenerated.
4236         * generated/maxloc0_4_r4.c: Regenerated.
4237         * generated/maxloc0_4_r8.c: Regenerated.
4238         * generated/maxloc0_8_i1.c: Regenerated.
4239         * generated/maxloc0_8_i16.c: Regenerated.
4240         * generated/maxloc0_8_i2.c: Regenerated.
4241         * generated/maxloc0_8_i4.c: Regenerated.
4242         * generated/maxloc0_8_i8.c: Regenerated.
4243         * generated/maxloc0_8_r10.c: Regenerated.
4244         * generated/maxloc0_8_r16.c: Regenerated.
4245         * generated/maxloc0_8_r4.c: Regenerated.
4246         * generated/maxloc0_8_r8.c: Regenerated.
4247         * generated/maxloc1_16_i1.c: Regenerated.
4248         * generated/maxloc1_16_i16.c: Regenerated.
4249         * generated/maxloc1_16_i2.c: Regenerated.
4250         * generated/maxloc1_16_i4.c: Regenerated.
4251         * generated/maxloc1_16_i8.c: Regenerated.
4252         * generated/maxloc1_16_r10.c: Regenerated.
4253         * generated/maxloc1_16_r16.c: Regenerated.
4254         * generated/maxloc1_16_r4.c: Regenerated.
4255         * generated/maxloc1_16_r8.c: Regenerated.
4256         * generated/maxloc1_4_i1.c: Regenerated.
4257         * generated/maxloc1_4_i16.c: Regenerated.
4258         * generated/maxloc1_4_i2.c: Regenerated.
4259         * generated/maxloc1_4_i4.c: Regenerated.
4260         * generated/maxloc1_4_i8.c: Regenerated.
4261         * generated/maxloc1_4_r10.c: Regenerated.
4262         * generated/maxloc1_4_r16.c: Regenerated.
4263         * generated/maxloc1_4_r4.c: Regenerated.
4264         * generated/maxloc1_4_r8.c: Regenerated.
4265         * generated/maxloc1_8_i1.c: Regenerated.
4266         * generated/maxloc1_8_i16.c: Regenerated.
4267         * generated/maxloc1_8_i2.c: Regenerated.
4268         * generated/maxloc1_8_i4.c: Regenerated.
4269         * generated/maxloc1_8_i8.c: Regenerated.
4270         * generated/maxloc1_8_r10.c: Regenerated.
4271         * generated/maxloc1_8_r16.c: Regenerated.
4272         * generated/maxloc1_8_r4.c: Regenerated.
4273         * generated/maxloc1_8_r8.c: Regenerated.
4274         * generated/maxval_i1.c: Regenerated.
4275         * generated/maxval_i16.c: Regenerated.
4276         * generated/maxval_i2.c: Regenerated.
4277         * generated/maxval_i4.c: Regenerated.
4278         * generated/maxval_i8.c: Regenerated.
4279         * generated/maxval_r10.c: Regenerated.
4280         * generated/maxval_r16.c: Regenerated.
4281         * generated/maxval_r4.c: Regenerated.
4282         * generated/maxval_r8.c: Regenerated.
4283         * generated/minloc0_16_i1.c: Regenerated.
4284         * generated/minloc0_16_i16.c: Regenerated.
4285         * generated/minloc0_16_i2.c: Regenerated.
4286         * generated/minloc0_16_i4.c: Regenerated.
4287         * generated/minloc0_16_i8.c: Regenerated.
4288         * generated/minloc0_16_r10.c: Regenerated.
4289         * generated/minloc0_16_r16.c: Regenerated.
4290         * generated/minloc0_16_r4.c: Regenerated.
4291         * generated/minloc0_16_r8.c: Regenerated.
4292         * generated/minloc0_4_i1.c: Regenerated.
4293         * generated/minloc0_4_i16.c: Regenerated.
4294         * generated/minloc0_4_i2.c: Regenerated.
4295         * generated/minloc0_4_i4.c: Regenerated.
4296         * generated/minloc0_4_i8.c: Regenerated.
4297         * generated/minloc0_4_r10.c: Regenerated.
4298         * generated/minloc0_4_r16.c: Regenerated.
4299         * generated/minloc0_4_r4.c: Regenerated.
4300         * generated/minloc0_4_r8.c: Regenerated.
4301         * generated/minloc0_8_i1.c: Regenerated.
4302         * generated/minloc0_8_i16.c: Regenerated.
4303         * generated/minloc0_8_i2.c: Regenerated.
4304         * generated/minloc0_8_i4.c: Regenerated.
4305         * generated/minloc0_8_i8.c: Regenerated.
4306         * generated/minloc0_8_r10.c: Regenerated.
4307         * generated/minloc0_8_r16.c: Regenerated.
4308         * generated/minloc0_8_r4.c: Regenerated.
4309         * generated/minloc0_8_r8.c: Regenerated.
4310         * generated/minloc1_16_i1.c: Regenerated.
4311         * generated/minloc1_16_i16.c: Regenerated.
4312         * generated/minloc1_16_i2.c: Regenerated.
4313         * generated/minloc1_16_i4.c: Regenerated.
4314         * generated/minloc1_16_i8.c: Regenerated.
4315         * generated/minloc1_16_r10.c: Regenerated.
4316         * generated/minloc1_16_r16.c: Regenerated.
4317         * generated/minloc1_16_r4.c: Regenerated.
4318         * generated/minloc1_16_r8.c: Regenerated.
4319         * generated/minloc1_4_i1.c: Regenerated.
4320         * generated/minloc1_4_i16.c: Regenerated.
4321         * generated/minloc1_4_i2.c: Regenerated.
4322         * generated/minloc1_4_i4.c: Regenerated.
4323         * generated/minloc1_4_i8.c: Regenerated.
4324         * generated/minloc1_4_r10.c: Regenerated.
4325         * generated/minloc1_4_r16.c: Regenerated.
4326         * generated/minloc1_4_r4.c: Regenerated.
4327         * generated/minloc1_4_r8.c: Regenerated.
4328         * generated/minloc1_8_i1.c: Regenerated.
4329         * generated/minloc1_8_i16.c: Regenerated.
4330         * generated/minloc1_8_i2.c: Regenerated.
4331         * generated/minloc1_8_i4.c: Regenerated.
4332         * generated/minloc1_8_i8.c: Regenerated.
4333         * generated/minloc1_8_r10.c: Regenerated.
4334         * generated/minloc1_8_r16.c: Regenerated.
4335         * generated/minloc1_8_r4.c: Regenerated.
4336         * generated/minloc1_8_r8.c: Regenerated.
4337         * generated/minval_i1.c: Regenerated.
4338         * generated/minval_i16.c: Regenerated.
4339         * generated/minval_i2.c: Regenerated.
4340         * generated/minval_i4.c: Regenerated.
4341         * generated/minval_i8.c: Regenerated.
4342         * generated/minval_r10.c: Regenerated.
4343         * generated/minval_r16.c: Regenerated.
4344         * generated/minval_r4.c: Regenerated.
4345         * generated/minval_r8.c: Regenerated.
4346         * generated/product_c10.c: Regenerated.
4347         * generated/product_c16.c: Regenerated.
4348         * generated/product_c4.c: Regenerated.
4349         * generated/product_c8.c: Regenerated.
4350         * generated/product_i1.c: Regenerated.
4351         * generated/product_i16.c: Regenerated.
4352         * generated/product_i2.c: Regenerated.
4353         * generated/product_i4.c: Regenerated.
4354         * generated/product_i8.c: Regenerated.
4355         * generated/product_r10.c: Regenerated.
4356         * generated/product_r16.c: Regenerated.
4357         * generated/product_r4.c: Regenerated.
4358         * generated/product_r8.c: Regenerated.
4359         * generated/sum_c10.c: Regenerated.
4360         * generated/sum_c16.c: Regenerated.
4361         * generated/sum_c4.c: Regenerated.
4362         * generated/sum_c8.c: Regenerated.
4363         * generated/sum_i1.c: Regenerated.
4364         * generated/sum_i16.c: Regenerated.
4365         * generated/sum_i2.c: Regenerated.
4366         * generated/sum_i4.c: Regenerated.
4367         * generated/sum_i8.c: Regenerated.
4368         * generated/sum_r10.c: Regenerated.
4369         * generated/sum_r16.c: Regenerated.
4370         * generated/sum_r4.c: Regenerated.
4371         * generated/sum_r8.c: Regenerated.
4372
4373 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
4374
4375         PR libfortran/34670
4376         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
4377         (u_name):  New macro for the upper case name of the intrinsic.
4378         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
4379         bounds checking and rank check, depending on
4380         compile_options.bounds_check.
4381         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4382         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4383         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
4384         bounds checking and rank check, depending on
4385         compile_options.bounds_check.
4386         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4387         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4388         * generated/all_l16.c: Regenerated.
4389         * generated/all_l4.c: Regenerated.
4390         * generated/all_l8.c: Regenerated.
4391         * generated/any_l16.c: Regenerated.
4392         * generated/any_l4.c: Regenerated.
4393         * generated/any_l8.c: Regenerated.
4394         * generated/count_16_l16.c: Regenerated.
4395         * generated/count_16_l4.c: Regenerated.
4396         * generated/count_16_l8.c: Regenerated.
4397         * generated/count_4_l16.c: Regenerated.
4398         * generated/count_4_l4.c: Regenerated.
4399         * generated/count_4_l8.c: Regenerated.
4400         * generated/count_8_l16.c: Regenerated.
4401         * generated/count_8_l4.c: Regenerated.
4402         * generated/count_8_l8.c: Regenerated.
4403         * generated/maxloc0_16_i1.c: Regenerated.
4404         * generated/maxloc0_16_i16.c: Regenerated.
4405         * generated/maxloc0_16_i2.c: Regenerated.
4406         * generated/maxloc0_16_i4.c: Regenerated.
4407         * generated/maxloc0_16_i8.c: Regenerated.
4408         * generated/maxloc0_16_r10.c: Regenerated.
4409         * generated/maxloc0_16_r16.c: Regenerated.
4410         * generated/maxloc0_16_r4.c: Regenerated.
4411         * generated/maxloc0_16_r8.c: Regenerated.
4412         * generated/maxloc0_4_i1.c: Regenerated.
4413         * generated/maxloc0_4_i16.c: Regenerated.
4414         * generated/maxloc0_4_i2.c: Regenerated.
4415         * generated/maxloc0_4_i4.c: Regenerated.
4416         * generated/maxloc0_4_i8.c: Regenerated.
4417         * generated/maxloc0_4_r10.c: Regenerated.
4418         * generated/maxloc0_4_r16.c: Regenerated.
4419         * generated/maxloc0_4_r4.c: Regenerated.
4420         * generated/maxloc0_4_r8.c: Regenerated.
4421         * generated/maxloc0_8_i1.c: Regenerated.
4422         * generated/maxloc0_8_i16.c: Regenerated.
4423         * generated/maxloc0_8_i2.c: Regenerated.
4424         * generated/maxloc0_8_i4.c: Regenerated.
4425         * generated/maxloc0_8_i8.c: Regenerated.
4426         * generated/maxloc0_8_r10.c: Regenerated.
4427         * generated/maxloc0_8_r16.c: Regenerated.
4428         * generated/maxloc0_8_r4.c: Regenerated.
4429         * generated/maxloc0_8_r8.c: Regenerated.
4430         * generated/maxloc1_16_i1.c: Regenerated.
4431         * generated/maxloc1_16_i16.c: Regenerated.
4432         * generated/maxloc1_16_i2.c: Regenerated.
4433         * generated/maxloc1_16_i4.c: Regenerated.
4434         * generated/maxloc1_16_i8.c: Regenerated.
4435         * generated/maxloc1_16_r10.c: Regenerated.
4436         * generated/maxloc1_16_r16.c: Regenerated.
4437         * generated/maxloc1_16_r4.c: Regenerated.
4438         * generated/maxloc1_16_r8.c: Regenerated.
4439         * generated/maxloc1_4_i1.c: Regenerated.
4440         * generated/maxloc1_4_i16.c: Regenerated.
4441         * generated/maxloc1_4_i2.c: Regenerated.
4442         * generated/maxloc1_4_i4.c: Regenerated.
4443         * generated/maxloc1_4_i8.c: Regenerated.
4444         * generated/maxloc1_4_r10.c: Regenerated.
4445         * generated/maxloc1_4_r16.c: Regenerated.
4446         * generated/maxloc1_4_r4.c: Regenerated.
4447         * generated/maxloc1_4_r8.c: Regenerated.
4448         * generated/maxloc1_8_i1.c: Regenerated.
4449         * generated/maxloc1_8_i16.c: Regenerated.
4450         * generated/maxloc1_8_i2.c: Regenerated.
4451         * generated/maxloc1_8_i4.c: Regenerated.
4452         * generated/maxloc1_8_i8.c: Regenerated.
4453         * generated/maxloc1_8_r10.c: Regenerated.
4454         * generated/maxloc1_8_r16.c: Regenerated.
4455         * generated/maxloc1_8_r4.c: Regenerated.
4456         * generated/maxloc1_8_r8.c: Regenerated.
4457         * generated/maxval_i1.c: Regenerated.
4458         * generated/maxval_i16.c: Regenerated.
4459         * generated/maxval_i2.c: Regenerated.
4460         * generated/maxval_i4.c: Regenerated.
4461         * generated/maxval_i8.c: Regenerated.
4462         * generated/maxval_r10.c: Regenerated.
4463         * generated/maxval_r16.c: Regenerated.
4464         * generated/maxval_r4.c: Regenerated.
4465         * generated/maxval_r8.c: Regenerated.
4466         * generated/minloc0_16_i1.c: Regenerated.
4467         * generated/minloc0_16_i16.c: Regenerated.
4468         * generated/minloc0_16_i2.c: Regenerated.
4469         * generated/minloc0_16_i4.c: Regenerated.
4470         * generated/minloc0_16_i8.c: Regenerated.
4471         * generated/minloc0_16_r10.c: Regenerated.
4472         * generated/minloc0_16_r16.c: Regenerated.
4473         * generated/minloc0_16_r4.c: Regenerated.
4474         * generated/minloc0_16_r8.c: Regenerated.
4475         * generated/minloc0_4_i1.c: Regenerated.
4476         * generated/minloc0_4_i16.c: Regenerated.
4477         * generated/minloc0_4_i2.c: Regenerated.
4478         * generated/minloc0_4_i4.c: Regenerated.
4479         * generated/minloc0_4_i8.c: Regenerated.
4480         * generated/minloc0_4_r10.c: Regenerated.
4481         * generated/minloc0_4_r16.c: Regenerated.
4482         * generated/minloc0_4_r4.c: Regenerated.
4483         * generated/minloc0_4_r8.c: Regenerated.
4484         * generated/minloc0_8_i1.c: Regenerated.
4485         * generated/minloc0_8_i16.c: Regenerated.
4486         * generated/minloc0_8_i2.c: Regenerated.
4487         * generated/minloc0_8_i4.c: Regenerated.
4488         * generated/minloc0_8_i8.c: Regenerated.
4489         * generated/minloc0_8_r10.c: Regenerated.
4490         * generated/minloc0_8_r16.c: Regenerated.
4491         * generated/minloc0_8_r4.c: Regenerated.
4492         * generated/minloc0_8_r8.c: Regenerated.
4493         * generated/minloc1_16_i1.c: Regenerated.
4494         * generated/minloc1_16_i16.c: Regenerated.
4495         * generated/minloc1_16_i2.c: Regenerated.
4496         * generated/minloc1_16_i4.c: Regenerated.
4497         * generated/minloc1_16_i8.c: Regenerated.
4498         * generated/minloc1_16_r10.c: Regenerated.
4499         * generated/minloc1_16_r16.c: Regenerated.
4500         * generated/minloc1_16_r4.c: Regenerated.
4501         * generated/minloc1_16_r8.c: Regenerated.
4502         * generated/minloc1_4_i1.c: Regenerated.
4503         * generated/minloc1_4_i16.c: Regenerated.
4504         * generated/minloc1_4_i2.c: Regenerated.
4505         * generated/minloc1_4_i4.c: Regenerated.
4506         * generated/minloc1_4_i8.c: Regenerated.
4507         * generated/minloc1_4_r10.c: Regenerated.
4508         * generated/minloc1_4_r16.c: Regenerated.
4509         * generated/minloc1_4_r4.c: Regenerated.
4510         * generated/minloc1_4_r8.c: Regenerated.
4511         * generated/minloc1_8_i1.c: Regenerated.
4512         * generated/minloc1_8_i16.c: Regenerated.
4513         * generated/minloc1_8_i2.c: Regenerated.
4514         * generated/minloc1_8_i4.c: Regenerated.
4515         * generated/minloc1_8_i8.c: Regenerated.
4516         * generated/minloc1_8_r10.c: Regenerated.
4517         * generated/minloc1_8_r16.c: Regenerated.
4518         * generated/minloc1_8_r4.c: Regenerated.
4519         * generated/minloc1_8_r8.c: Regenerated.
4520         * generated/minval_i1.c: Regenerated.
4521         * generated/minval_i16.c: Regenerated.
4522         * generated/minval_i2.c: Regenerated.
4523         * generated/minval_i4.c: Regenerated.
4524         * generated/minval_i8.c: Regenerated.
4525         * generated/minval_r10.c: Regenerated.
4526         * generated/minval_r16.c: Regenerated.
4527         * generated/minval_r4.c: Regenerated.
4528         * generated/minval_r8.c: Regenerated.
4529         * generated/product_c10.c: Regenerated.
4530         * generated/product_c16.c: Regenerated.
4531         * generated/product_c4.c: Regenerated.
4532         * generated/product_c8.c: Regenerated.
4533         * generated/product_i1.c: Regenerated.
4534         * generated/product_i16.c: Regenerated.
4535         * generated/product_i2.c: Regenerated.
4536         * generated/product_i4.c: Regenerated.
4537         * generated/product_i8.c: Regenerated.
4538         * generated/product_r10.c: Regenerated.
4539         * generated/product_r16.c: Regenerated.
4540         * generated/product_r4.c: Regenerated.
4541         * generated/product_r8.c: Regenerated.
4542         * generated/sum_c10.c: Regenerated.
4543         * generated/sum_c16.c: Regenerated.
4544         * generated/sum_c4.c: Regenerated.
4545         * generated/sum_c8.c: Regenerated.
4546         * generated/sum_i1.c: Regenerated.
4547         * generated/sum_i16.c: Regenerated.
4548         * generated/sum_i2.c: Regenerated.
4549         * generated/sum_i4.c: Regenerated.
4550         * generated/sum_i8.c: Regenerated.
4551         * generated/sum_r10.c: Regenerated.
4552         * generated/sum_r16.c: Regenerated.
4553         * generated/sum_r4.c: Regenerated.
4554         * generated/sum_r8.c: Regenerated.
4555
4556 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4557
4558         PR libfortran/34676
4559         * io/list_read.c (next_char): Only save the EOF condition for later if
4560         advance="no".
4561
4562 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
4563
4564         PR libfortran/34565
4565         * io/io.h:  Adjust protoypes for open_internal(),
4566         next_array_record() and init_loop_spec().
4567         * io/list_read.c (next_char):  Use argument "finished"
4568         of next_array_record to check for end on internal file.
4569         * io/unit.c:  Calculate the offset for an array
4570         internal file and supply this informatin to open_internal().
4571         * io/unix.c (open_internal):  Set the offset for the internal
4572         file on open.
4573         * io/transfer.c (init_loop_spec):  Calculate the starting
4574         record in case of negative strides.  Return size of 0 for
4575         an empty array.
4576         (next_array_record):  Use an extra flag to signal that the
4577         array is finished.
4578         (next_record_r):  Use the new flag to next_array_record().
4579         (next_record_w):  Likewise.