OSDN Git Service

* config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
4         Don't set IEEE_FLAGS with @IEEE_FLAGS@.
5         * Makefile.in: Regenerate.
6
7 2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8
9         * configure.host: Define ieee_flags and set it to -mieee for sh.
10         * configure.ac: Set IEEE_FLAGS with ieee_flags.
11         * Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
12         * configure: Regenerate.
13         * Makefile.in: Regenerate.
14
15 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16
17         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
18
19 2009-07-27  Tobias Burnus  <burnus@net-b.de>
20
21         PR fortran/40863
22         * c99_functions.c: Define complex I, if not defined.
23         Create prototypes for C99 functions to silence warnings.
24         * gfortran.map: Add missing functions to GFORTRAN_C99_1.0
25         and new GFORTRAN_C99_1.1.
26
27 2009-07-25  Tobias Burnus  <burnus@net-b.de>
28
29         PR fortran/33197
30         * intrinsics/c99_functions.c (cacosf,cacos,cacosl,casinf,
31         casin,casind,catanf,catan,catanl,cacoshf,cacosh,cacoshl,
32         casinhf,casinh,casinhf,catanhf,catanh,catanhl): New functions.
33         * c99_protos.h: Add prototypes for those.
34
35 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
36
37         PR fortran/40643
38         PR fortran/31067
39         * libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
40         GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
41         GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
42         Define.
43         * m4/iparm.m4 (atype_inf, atype_nan): Define.
44         * m4/ifunction.m4: Formatting.
45         * m4/iforeach.m4: Likewise.
46         (START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
47         (START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
48         FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
49         until count[0] == extent[0].
50         * m4/minval.m4: Formatting.  Handle NaNs and infinities.  Optimize.
51         * m4/maxval.m4: Likewise.
52         * m4/minloc0.m4: Likewise.
53         * m4/maxloc0.m4: Likewise.
54         * m4/minloc1.m4: Likewise.
55         * m4/maxloc1.m4: Likewise.
56         * generated/maxloc0_16_i16.c: Regenerated.
57         * generated/maxloc0_16_i1.c: Likewise.
58         * generated/maxloc0_16_i2.c: Likewise.
59         * generated/maxloc0_16_i4.c: Likewise.
60         * generated/maxloc0_16_i8.c: Likewise.
61         * generated/maxloc0_16_r10.c: Likewise.
62         * generated/maxloc0_16_r16.c: Likewise.
63         * generated/maxloc0_16_r4.c: Likewise.
64         * generated/maxloc0_16_r8.c: Likewise.
65         * generated/maxloc0_4_i16.c: Likewise.
66         * generated/maxloc0_4_i1.c: Likewise.
67         * generated/maxloc0_4_i2.c: Likewise.
68         * generated/maxloc0_4_i4.c: Likewise.
69         * generated/maxloc0_4_i8.c: Likewise.
70         * generated/maxloc0_4_r10.c: Likewise.
71         * generated/maxloc0_4_r16.c: Likewise.
72         * generated/maxloc0_4_r4.c: Likewise.
73         * generated/maxloc0_4_r8.c: Likewise.
74         * generated/maxloc0_8_i16.c: Likewise.
75         * generated/maxloc0_8_i1.c: Likewise.
76         * generated/maxloc0_8_i2.c: Likewise.
77         * generated/maxloc0_8_i4.c: Likewise.
78         * generated/maxloc0_8_i8.c: Likewise.
79         * generated/maxloc0_8_r10.c: Likewise.
80         * generated/maxloc0_8_r16.c: Likewise.
81         * generated/maxloc0_8_r4.c: Likewise.
82         * generated/maxloc0_8_r8.c: Likewise.
83         * generated/maxloc1_16_i16.c: Likewise.
84         * generated/maxloc1_16_i1.c: Likewise.
85         * generated/maxloc1_16_i2.c: Likewise.
86         * generated/maxloc1_16_i4.c: Likewise.
87         * generated/maxloc1_16_i8.c: Likewise.
88         * generated/maxloc1_16_r10.c: Likewise.
89         * generated/maxloc1_16_r16.c: Likewise.
90         * generated/maxloc1_16_r4.c: Likewise.
91         * generated/maxloc1_16_r8.c: Likewise.
92         * generated/maxloc1_4_i16.c: Likewise.
93         * generated/maxloc1_4_i1.c: Likewise.
94         * generated/maxloc1_4_i2.c: Likewise.
95         * generated/maxloc1_4_i4.c: Likewise.
96         * generated/maxloc1_4_i8.c: Likewise.
97         * generated/maxloc1_4_r10.c: Likewise.
98         * generated/maxloc1_4_r16.c: Likewise.
99         * generated/maxloc1_4_r4.c: Likewise.
100         * generated/maxloc1_4_r8.c: Likewise.
101         * generated/maxloc1_8_i16.c: Likewise.
102         * generated/maxloc1_8_i1.c: Likewise.
103         * generated/maxloc1_8_i2.c: Likewise.
104         * generated/maxloc1_8_i4.c: Likewise.
105         * generated/maxloc1_8_i8.c: Likewise.
106         * generated/maxloc1_8_r10.c: Likewise.
107         * generated/maxloc1_8_r16.c: Likewise.
108         * generated/maxloc1_8_r4.c: Likewise.
109         * generated/maxloc1_8_r8.c: Likewise.
110         * generated/maxval_i16.c: Likewise.
111         * generated/maxval_i1.c: Likewise.
112         * generated/maxval_i2.c: Likewise.
113         * generated/maxval_i4.c: Likewise.
114         * generated/maxval_i8.c: Likewise.
115         * generated/maxval_r10.c: Likewise.
116         * generated/maxval_r16.c: Likewise.
117         * generated/maxval_r4.c: Likewise.
118         * generated/maxval_r8.c: Likewise.
119         * generated/minloc0_16_i16.c: Likewise.
120         * generated/minloc0_16_i1.c: Likewise.
121         * generated/minloc0_16_i2.c: Likewise.
122         * generated/minloc0_16_i4.c: Likewise.
123         * generated/minloc0_16_i8.c: Likewise.
124         * generated/minloc0_16_r10.c: Likewise.
125         * generated/minloc0_16_r16.c: Likewise.
126         * generated/minloc0_16_r4.c: Likewise.
127         * generated/minloc0_16_r8.c: Likewise.
128         * generated/minloc0_4_i16.c: Likewise.
129         * generated/minloc0_4_i1.c: Likewise.
130         * generated/minloc0_4_i2.c: Likewise.
131         * generated/minloc0_4_i4.c: Likewise.
132         * generated/minloc0_4_i8.c: Likewise.
133         * generated/minloc0_4_r10.c: Likewise.
134         * generated/minloc0_4_r16.c: Likewise.
135         * generated/minloc0_4_r4.c: Likewise.
136         * generated/minloc0_4_r8.c: Likewise.
137         * generated/minloc0_8_i16.c: Likewise.
138         * generated/minloc0_8_i1.c: Likewise.
139         * generated/minloc0_8_i2.c: Likewise.
140         * generated/minloc0_8_i4.c: Likewise.
141         * generated/minloc0_8_i8.c: Likewise.
142         * generated/minloc0_8_r10.c: Likewise.
143         * generated/minloc0_8_r16.c: Likewise.
144         * generated/minloc0_8_r4.c: Likewise.
145         * generated/minloc0_8_r8.c: Likewise.
146         * generated/minloc1_16_i16.c: Likewise.
147         * generated/minloc1_16_i1.c: Likewise.
148         * generated/minloc1_16_i2.c: Likewise.
149         * generated/minloc1_16_i4.c: Likewise.
150         * generated/minloc1_16_i8.c: Likewise.
151         * generated/minloc1_16_r10.c: Likewise.
152         * generated/minloc1_16_r16.c: Likewise.
153         * generated/minloc1_16_r4.c: Likewise.
154         * generated/minloc1_16_r8.c: Likewise.
155         * generated/minloc1_4_i16.c: Likewise.
156         * generated/minloc1_4_i1.c: Likewise.
157         * generated/minloc1_4_i2.c: Likewise.
158         * generated/minloc1_4_i4.c: Likewise.
159         * generated/minloc1_4_i8.c: Likewise.
160         * generated/minloc1_4_r10.c: Likewise.
161         * generated/minloc1_4_r16.c: Likewise.
162         * generated/minloc1_4_r4.c: Likewise.
163         * generated/minloc1_4_r8.c: Likewise.
164         * generated/minloc1_8_i16.c: Likewise.
165         * generated/minloc1_8_i1.c: Likewise.
166         * generated/minloc1_8_i2.c: Likewise.
167         * generated/minloc1_8_i4.c: Likewise.
168         * generated/minloc1_8_i8.c: Likewise.
169         * generated/minloc1_8_r10.c: Likewise.
170         * generated/minloc1_8_r16.c: Likewise.
171         * generated/minloc1_8_r4.c: Likewise.
172         * generated/minloc1_8_r8.c: Likewise.
173         * generated/minval_i16.c: Likewise.
174         * generated/minval_i1.c: Likewise.
175         * generated/minval_i2.c: Likewise.
176         * generated/minval_i4.c: Likewise.
177         * generated/minval_i8.c: Likewise.
178         * generated/minval_r10.c: Likewise.
179         * generated/minval_r16.c: Likewise.
180         * generated/minval_r4.c: Likewise.
181         * generated/minval_r8.c: Likewise.
182         * generated/product_c10.c: Likewise.
183         * generated/product_c16.c: Likewise.
184         * generated/product_c4.c: Likewise.
185         * generated/product_c8.c: Likewise.
186         * generated/product_i16.c: Likewise.
187         * generated/product_i1.c: Likewise.
188         * generated/product_i2.c: Likewise.
189         * generated/product_i4.c: Likewise.
190         * generated/product_i8.c: Likewise.
191         * generated/product_r10.c: Likewise.
192         * generated/product_r16.c: Likewise.
193         * generated/product_r4.c: Likewise.
194         * generated/product_r8.c: Likewise.
195         * generated/sum_c10.c: Likewise.
196         * generated/sum_c16.c: Likewise.
197         * generated/sum_c4.c: Likewise.
198         * generated/sum_c8.c: Likewise.
199         * generated/sum_i16.c: Likewise.
200         * generated/sum_i1.c: Likewise.
201         * generated/sum_i2.c: Likewise.
202         * generated/sum_i4.c: Likewise.
203         * generated/sum_i8.c: Likewise.
204         * generated/sum_r10.c: Likewise.
205         * generated/sum_r16.c: Likewise.
206         * generated/sum_r4.c: Likewise.
207         * generated/sum_r8.c: Likewise.
208
209 2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
210
211         PR libfortran/32784
212         * unix.c (regular_file): Check for CONIN$ CONOUT$, and CONERR$ and open
213         the respective /dev/conin or /dev/conout devices.  This is Cygwin
214         specific.
215
216 2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
217
218         PR libfortran/34670
219         PR libfortran/36874
220         * Makefile.am:  Add bounds.c
221         * libgfortran.h (bounds_equal_extents):  Add prototype.
222         (bounds_iforeach_return):  Likewise.
223         (bounds_ifunction_return):  Likewise.
224         (bounds_reduced_extents):  Likewise.
225         * runtime/bounds.c:  New file.
226         (bounds_iforeach_return):  New function; correct typo in
227         error message.
228         (bounds_ifunction_return):  New function.
229         (bounds_equal_extents):  New function.
230         (bounds_reduced_extents):  Likewise.
231         * intrinsics/cshift0.c (cshift0):  Use new functions
232         for bounds checking.
233         * intrinsics/eoshift0.c (eoshift0):  Likewise.
234         * intrinsics/eoshift2.c (eoshift2):  Likewise.
235         * m4/iforeach.m4:  Likewise.
236         * m4/eoshift1.m4:  Likewise.
237         * m4/eoshift3.m4:  Likewise.
238         * m4/cshift1.m4:  Likewise.
239         * m4/ifunction.m4:  Likewise.
240         * Makefile.in:  Regenerated.
241         * generated/cshift1_16.c: Regenerated.
242         * generated/cshift1_4.c: Regenerated.
243         * generated/cshift1_8.c: Regenerated.
244         * generated/eoshift1_16.c: Regenerated.
245         * generated/eoshift1_4.c: Regenerated.
246         * generated/eoshift1_8.c: Regenerated.
247         * generated/eoshift3_16.c: Regenerated.
248         * generated/eoshift3_4.c: Regenerated.
249         * generated/eoshift3_8.c: Regenerated.
250         * generated/maxloc0_16_i1.c: Regenerated.
251         * generated/maxloc0_16_i16.c: Regenerated.
252         * generated/maxloc0_16_i2.c: Regenerated.
253         * generated/maxloc0_16_i4.c: Regenerated.
254         * generated/maxloc0_16_i8.c: Regenerated.
255         * generated/maxloc0_16_r10.c: Regenerated.
256         * generated/maxloc0_16_r16.c: Regenerated.
257         * generated/maxloc0_16_r4.c: Regenerated.
258         * generated/maxloc0_16_r8.c: Regenerated.
259         * generated/maxloc0_4_i1.c: Regenerated.
260         * generated/maxloc0_4_i16.c: Regenerated.
261         * generated/maxloc0_4_i2.c: Regenerated.
262         * generated/maxloc0_4_i4.c: Regenerated.
263         * generated/maxloc0_4_i8.c: Regenerated.
264         * generated/maxloc0_4_r10.c: Regenerated.
265         * generated/maxloc0_4_r16.c: Regenerated.
266         * generated/maxloc0_4_r4.c: Regenerated.
267         * generated/maxloc0_4_r8.c: Regenerated.
268         * generated/maxloc0_8_i1.c: Regenerated.
269         * generated/maxloc0_8_i16.c: Regenerated.
270         * generated/maxloc0_8_i2.c: Regenerated.
271         * generated/maxloc0_8_i4.c: Regenerated.
272         * generated/maxloc0_8_i8.c: Regenerated.
273         * generated/maxloc0_8_r10.c: Regenerated.
274         * generated/maxloc0_8_r16.c: Regenerated.
275         * generated/maxloc0_8_r4.c: Regenerated.
276         * generated/maxloc0_8_r8.c: Regenerated.
277         * generated/maxloc1_16_i1.c: Regenerated.
278         * generated/maxloc1_16_i16.c: Regenerated.
279         * generated/maxloc1_16_i2.c: Regenerated.
280         * generated/maxloc1_16_i4.c: Regenerated.
281         * generated/maxloc1_16_i8.c: Regenerated.
282         * generated/maxloc1_16_r10.c: Regenerated.
283         * generated/maxloc1_16_r16.c: Regenerated.
284         * generated/maxloc1_16_r4.c: Regenerated.
285         * generated/maxloc1_16_r8.c: Regenerated.
286         * generated/maxloc1_4_i1.c: Regenerated.
287         * generated/maxloc1_4_i16.c: Regenerated.
288         * generated/maxloc1_4_i2.c: Regenerated.
289         * generated/maxloc1_4_i4.c: Regenerated.
290         * generated/maxloc1_4_i8.c: Regenerated.
291         * generated/maxloc1_4_r10.c: Regenerated.
292         * generated/maxloc1_4_r16.c: Regenerated.
293         * generated/maxloc1_4_r4.c: Regenerated.
294         * generated/maxloc1_4_r8.c: Regenerated.
295         * generated/maxloc1_8_i1.c: Regenerated.
296         * generated/maxloc1_8_i16.c: Regenerated.
297         * generated/maxloc1_8_i2.c: Regenerated.
298         * generated/maxloc1_8_i4.c: Regenerated.
299         * generated/maxloc1_8_i8.c: Regenerated.
300         * generated/maxloc1_8_r10.c: Regenerated.
301         * generated/maxloc1_8_r16.c: Regenerated.
302         * generated/maxloc1_8_r4.c: Regenerated.
303         * generated/maxloc1_8_r8.c: Regenerated.
304         * generated/maxval_i1.c: Regenerated.
305         * generated/maxval_i16.c: Regenerated.
306         * generated/maxval_i2.c: Regenerated.
307         * generated/maxval_i4.c: Regenerated.
308         * generated/maxval_i8.c: Regenerated.
309         * generated/maxval_r10.c: Regenerated.
310         * generated/maxval_r16.c: Regenerated.
311         * generated/maxval_r4.c: Regenerated.
312         * generated/maxval_r8.c: Regenerated.
313         * generated/minloc0_16_i1.c: Regenerated.
314         * generated/minloc0_16_i16.c: Regenerated.
315         * generated/minloc0_16_i2.c: Regenerated.
316         * generated/minloc0_16_i4.c: Regenerated.
317         * generated/minloc0_16_i8.c: Regenerated.
318         * generated/minloc0_16_r10.c: Regenerated.
319         * generated/minloc0_16_r16.c: Regenerated.
320         * generated/minloc0_16_r4.c: Regenerated.
321         * generated/minloc0_16_r8.c: Regenerated.
322         * generated/minloc0_4_i1.c: Regenerated.
323         * generated/minloc0_4_i16.c: Regenerated.
324         * generated/minloc0_4_i2.c: Regenerated.
325         * generated/minloc0_4_i4.c: Regenerated.
326         * generated/minloc0_4_i8.c: Regenerated.
327         * generated/minloc0_4_r10.c: Regenerated.
328         * generated/minloc0_4_r16.c: Regenerated.
329         * generated/minloc0_4_r4.c: Regenerated.
330         * generated/minloc0_4_r8.c: Regenerated.
331         * generated/minloc0_8_i1.c: Regenerated.
332         * generated/minloc0_8_i16.c: Regenerated.
333         * generated/minloc0_8_i2.c: Regenerated.
334         * generated/minloc0_8_i4.c: Regenerated.
335         * generated/minloc0_8_i8.c: Regenerated.
336         * generated/minloc0_8_r10.c: Regenerated.
337         * generated/minloc0_8_r16.c: Regenerated.
338         * generated/minloc0_8_r4.c: Regenerated.
339         * generated/minloc0_8_r8.c: Regenerated.
340         * generated/minloc1_16_i1.c: Regenerated.
341         * generated/minloc1_16_i16.c: Regenerated.
342         * generated/minloc1_16_i2.c: Regenerated.
343         * generated/minloc1_16_i4.c: Regenerated.
344         * generated/minloc1_16_i8.c: Regenerated.
345         * generated/minloc1_16_r10.c: Regenerated.
346         * generated/minloc1_16_r16.c: Regenerated.
347         * generated/minloc1_16_r4.c: Regenerated.
348         * generated/minloc1_16_r8.c: Regenerated.
349         * generated/minloc1_4_i1.c: Regenerated.
350         * generated/minloc1_4_i16.c: Regenerated.
351         * generated/minloc1_4_i2.c: Regenerated.
352         * generated/minloc1_4_i4.c: Regenerated.
353         * generated/minloc1_4_i8.c: Regenerated.
354         * generated/minloc1_4_r10.c: Regenerated.
355         * generated/minloc1_4_r16.c: Regenerated.
356         * generated/minloc1_4_r4.c: Regenerated.
357         * generated/minloc1_4_r8.c: Regenerated.
358         * generated/minloc1_8_i1.c: Regenerated.
359         * generated/minloc1_8_i16.c: Regenerated.
360         * generated/minloc1_8_i2.c: Regenerated.
361         * generated/minloc1_8_i4.c: Regenerated.
362         * generated/minloc1_8_i8.c: Regenerated.
363         * generated/minloc1_8_r10.c: Regenerated.
364         * generated/minloc1_8_r16.c: Regenerated.
365         * generated/minloc1_8_r4.c: Regenerated.
366         * generated/minloc1_8_r8.c: Regenerated.
367         * generated/minval_i1.c: Regenerated.
368         * generated/minval_i16.c: Regenerated.
369         * generated/minval_i2.c: Regenerated.
370         * generated/minval_i4.c: Regenerated.
371         * generated/minval_i8.c: Regenerated.
372         * generated/minval_r10.c: Regenerated.
373         * generated/minval_r16.c: Regenerated.
374         * generated/minval_r4.c: Regenerated.
375         * generated/minval_r8.c: Regenerated.
376         * generated/product_c10.c: Regenerated.
377         * generated/product_c16.c: Regenerated.
378         * generated/product_c4.c: Regenerated.
379         * generated/product_c8.c: Regenerated.
380         * generated/product_i1.c: Regenerated.
381         * generated/product_i16.c: Regenerated.
382         * generated/product_i2.c: Regenerated.
383         * generated/product_i4.c: Regenerated.
384         * generated/product_i8.c: Regenerated.
385         * generated/product_r10.c: Regenerated.
386         * generated/product_r16.c: Regenerated.
387         * generated/product_r4.c: Regenerated.
388         * generated/product_r8.c: Regenerated.
389         * generated/sum_c10.c: Regenerated.
390         * generated/sum_c16.c: Regenerated.
391         * generated/sum_c4.c: Regenerated.
392         * generated/sum_c8.c: Regenerated.
393         * generated/sum_i1.c: Regenerated.
394         * generated/sum_i16.c: Regenerated.
395         * generated/sum_i2.c: Regenerated.
396         * generated/sum_i4.c: Regenerated.
397         * generated/sum_i8.c: Regenerated.
398         * generated/sum_r10.c: Regenerated.
399         * generated/sum_r16.c: Regenerated.
400         * generated/sum_r4.c: Regenerated.
401         * generated/sum_r8.c: Regenerated.
402
403 2009-07-17  Janne Blomqvist  <jb@gcc.gnu.org>
404             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
405                 
406         PR libfortran/40714
407         * io/transfer.c (finalize_transfer): Set current_record to 0
408         before returning in case of error.
409
410 2009-07-12  Tobias Burnus  <burnus@net-b.de>
411
412         PR libfortran/22423
413         * io/io.h (namelist_type): Use the proper enum for GFC_DTYPE_*.
414         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Make sure
415         variable is initialized to silence warning.
416
417 2009-07-10  Steven G. Kargl  <kargl@gcc.gnu.org>
418
419         * c99_functions.c (ccoshf, ccosh, ccoshl, ctanhf, ctanh, ctanl):
420         Fix errant minus.
421
422 2009-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
423
424         PR libfortran/40330
425         PR libfortran/40662
426         * io/io.h (st_parameter_dt): Define format_not_saved bit used to signal
427         whether the parsed format data was previously saved. Used to determine
428         if the current format data should be freed or not.
429         * io/transfer.c (st_read_done): Use the format_not_saved bit.
430         (st_write_done): Likewise.
431         * io/format.c (parse_format_list): Add boolean pointer to arg list. This
432         pointer is used to return status to the caller regarding whether it is
433         safe to cache the parsed format data.  Currently, if a FMT_STRING token
434         is encounetered, it is not safe to cache. Also, added a local boolean
435         variable to hold this information as recursive calls to
436         parse_format_list are made.  Remove previous save_format logic.
437         (parse_format): Do not use the format caching facility if the current
438         unit is an internal unit or if it is not safe to save parsed format
439         data.
440         
441 2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
442
443         PR libfortran/40576
444         * io/transfer.c (sset): Adjust exit condition for loop.
445
446 2009-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
447
448         PR libfortran/40508
449         * io/format.c: Don't save parsed format data for internal units.
450
451 2009-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
452
453         PR fortran/37577
454         Port from fortran-dev
455         * runtime/in_pack_generic (internal_pack):  Remove unnecessary
456         test for stride == 0.
457         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
458         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
459         of stride in "shape" argument.  Use array access macros for
460         accessing array descriptors.
461         * libgfortran.h (struct descriptor_dimension):  Change stride
462         to _stride, lbound to _lbound and ubound to _ubound.
463         (GFC_DIMENSION_LBOUND):  Use new name(s) in struct
464         descriptor_dimension.
465         (GFC_DIMENSION_UBOUND):  Likewise.
466         (GFC_DIMENSION_STRIDE):  Likewise.
467         (GFC_DIMENSION_EXTENT):  Likewise.
468         (GFC_DIMENSION_SET):  Likewise.
469         (GFC_DESCRIPTOR_LBOUND):  Likewise.
470         (GFC_DESCRIPTOR_UBOUND):  Likewise.
471         (GFC_DESCRIPTOR_EXTENT):  Likewise.
472         (GFC_DESCRIPTOR_STRIDE):  Likewise.
473         * io/transfer.c (transfer_array):  Use array access macros.
474         Use byte-sized strides.
475         * intrinsics/eoshift0.c (eoshift0):  Use array access
476         macros everywhere.
477         * m4/in_pack.m4 (internal_pack_'rtype_ccode`):  Use
478         array access macros for accessing array descriptors.
479         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):
480         Likewise.
481         * m4/matmull.m4 (matmul_'rtype_code`):  Likewise.
482         * m4/matmul.m4 (matmul_'rtype_code`):  Likewise.
483         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
484         (unpack1_'rtype_code`):  Likewise.
485         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise.
486         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Use array access
487         macros everywhere.
488                 * intrinsics/dtime.c (dtime_sub):  Use array access macros
489         for accessing array descriptors.
490         * intrinsics/cshift0 (cshift0):  Likewise.
491         * intrinsics/etime.c:  Likewise.  Remove redundant calculation
492         of rdim.
493         * m4/cshift0.m4 (cshift0_'rtype_code`):  Use array access macros
494         for accessing array descriptors.
495         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
496         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
497         (spread_scalar_'rtype_code`):  Likewise.
498         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
499         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
500         * m4/eoshift1.m4 (eoshift1):  Likewise.  Remove size argument,
501         calculate within function.
502         (eoshift1_'atype_kind`):  Remove size argument from call
503         to eoshift1.
504         (eoshift1_'atype_kind`_char):  Likewise.
505         (eoshift1_'atype_kind`_char4):  Likewise.
506         * m4/eoshift3.m4 (eoshift3):  Remove size argument, calculate
507         within function. Use array access macros for accessing array
508         descriptors.
509         (eoshift3_'atype_kind`):  Remove size argument from call
510         to eoshift1.
511         (eoshift3_'atype_kind`_char):  Likewise.
512         (eoshift3_'atype_kind`_char4):  Likewise.
513         * m4/shape.m4 (shape_'rtype_kind`):  Use array access macros
514         for accessing array descriptors.
515         * m4/cshift1.m4 (cshift1): Remove size argument, calculate
516         within function. Use array access macros for accessing array
517         descriptors.
518         (cshift1_'atype_kind`):  Remove size argument from call to
519         cshift1.
520         (cshift1_'atype_kind`_char):  Remove size argument from call to
521         cshift1.
522         (cshift1_'atype_kind`_char4):  Remove size argument from call to
523         cshift1.
524         * m4/reshape.m4 (reshape_'rtype_ccode`):  Use array access macros
525         for accessing array descriptors.
526         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
527         * intrinsics/pack_generic.c (pack_internal):  Use array access
528         macros for accessing array descriptors.
529         (pack_s_internal):  Likewise.
530         * intrinsics/transpose_generic.c (transpose_internal):  Remove
531         size argument, calculate from array descriptor. Use array
532         access macros for accessing array descriptors.
533         (transpose):  Remove size argument from call.
534         (transpoe_char):  Likewise.
535         (transpose_char4):  Likewise.
536         * intrinsics/move_alloc.c (move_alloc):  Use array access macros
537         for accessing array descriptors.
538         * intrinsics/spread_generic.c (spread_internal):  Remove size
539         argument, calculate from array descriptor.  Use array access
540         macros for accessing array descriptors.
541         (spread_internal_scalar):  Likewise.
542         (spread):  Remove size argument from call to spread_internal.
543         (spread_char):  Mark argument source_length as unused.
544         Remove size argument from call to spread_internal.
545         (spread_char4):  Likewise.
546         (spread_char_scalar):  Likewise.
547         (spread_char4_scalar):  Likewise.
548         * intrinsics/unpack_generic.c (unpack_internal):  Use array access
549         macros for accessing array descriptors.
550         * intrinsics/eoshift2.c (eoshift2):  Remove size argument, calculate
551         from array descriptor instead.  Use array access macros for
552         accessing array descriptors.
553         (eoshift2_##N):  Remove size argument from call to eoshift2.
554         (eoshift2_##N_##char):  Likewise.
555         (eoshift2_##N_##char4):  Likewise.
556         * intrinsics/reshape_generic.c (reshape_internal):  Use array
557         access macross for accessing array descriptors.
558         * libgfortran.h:  Introduce new macros GFC_DIMENSION_LBOUND,
559         GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT,
560         GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND,
561         GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES,
562         GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES
563         * runtime/in_pack_generic.c (internal_pack):  Use new macros
564         for array descriptor access.
565         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
566         * intrinsics/dtime.c (dtime_sub):  Likewise.
567         * intrinsics/cshift0 (cshift0):  Remove argument size,
568         calculate directly from the array descriptor.  Use new macros
569         for array descriptor access.
570         * cshift0_##N:  Remove shift argument in call to cshift0.
571         * cshift0_##N_char:  Mark array_length as unused.  Remove
572         array_length in call to cshift0.
573         * cshift0_##N_char4:  Likewise.
574         * intrisics/etime.c:  Use new macros for array descriptor access.
575         * intrinsics/stat.c (stat_i4_sub_0):  Likewise.
576         (stat_i8_sub_0):  Likewise.
577         (fstat_i4_sub):  Likewise.
578         (fstat_i8_sub):  Likewise.
579         * intrinsics/date_and_time.c (date_and_time):  Likewise.
580         (secnds):  Likewise.
581         (itime_i4):  Likewise.
582         (itime_i8):  Likewise.
583         (idate_i4):  Likewise.
584         (idate_i8):  Likewise.
585         (gmtime_i4):  Likewise.
586         (gmtime_i8):  Likewise.
587         (ltime_i4):  Likewise.
588         (litme_i8):  Likewise.
589         * intrinsics/associated.c (associated):  Likewise.
590         * intrinsics/eoshift0.c (eoshift0):  Likewise.
591         * intriniscs/size.c (size0):  Likewise.
592         * intrinsics/random.c (arandom_r4):  Likewise.
593         (arandom_r8):  Likewise.
594         (arandom_r10):  Likewise.
595         (arandom_r16):  Likewise.
596         (random_seed_i4):  Likewise.
597         (random_seed_i8):  Likewise.
598         * io/list_read.c (nml_parse_qualifier):  Likewise.
599         (nml_touch_nodes):  Likewise.
600         (nml_read_obj):  Likewise.
601         (get_name):  Likewise.
602         * io/transfer.c (transfer_array):  Likewise.
603         (init_loop_spec):  Likewise.
604         (st_set_nml_var_dim):  Likewise.
605         * io/write.c (nml_write_obj):  Likewise.
606         (obj_loop):  Likewise.
607         * generated/all_l1.c: Regenerated.
608         * generated/all_l16.c: Regenerated.
609         * generated/all_l2.c: Regenerated.
610         * generated/all_l4.c: Regenerated.
611         * generated/all_l8.c: Regenerated.
612         * generated/any_l1.c: Regenerated.
613         * generated/any_l16.c: Regenerated.
614         * generated/any_l2.c: Regenerated.
615         * generated/any_l4.c: Regenerated.
616         * generated/any_l8.c: Regenerated.
617         * generated/count_16_l.c: Regenerated.
618         * generated/count_1_l.c: Regenerated.
619         * generated/count_2_l.c: Regenerated.
620         * generated/count_4_l.c: Regenerated.
621         * generated/count_8_l.c: Regenerated.
622         * generated/cshift0_c10.c: Regenerated.
623         * generated/cshift0_c16.c: Regenerated.
624         * generated/cshift0_c4.c: Regenerated.
625         * generated/cshift0_c8.c: Regenerated.
626         * generated/cshift0_i1.c: Regenerated.
627         * generated/cshift0_i16.c: Regenerated.
628         * generated/cshift0_i2.c: Regenerated.
629         * generated/cshift0_i4.c: Regenerated.
630         * generated/cshift0_i8.c: Regenerated.
631         * generated/cshift0_r10.c: Regenerated.
632         * generated/cshift0_r16.c: Regenerated.
633         * generated/cshift0_r4.c: Regenerated.
634         * generated/cshift0_r8.c: Regenerated.
635         * generated/cshift1_16.c: Regenerated.
636         * generated/cshift1_4.c: Regenerated.
637         * generated/cshift1_8.c: Regenerated.
638         * generated/eoshift1_16.c: Regenerated.
639         * generated/eoshift1_4.c: Regenerated.
640         * generated/eoshift1_8.c: Regenerated.
641         * generated/eoshift3_16.c: Regenerated.
642         * generated/eoshift3_4.c: Regenerated.
643         * generated/eoshift3_8.c: Regenerated.
644         * generated/in_pack_c10.c: Regenerated.
645         * generated/in_pack_c16.c: Regenerated.
646         * generated/in_pack_c4.c: Regenerated.
647         * generated/in_pack_c8.c: Regenerated.
648         * generated/in_pack_i1.c: Regenerated.
649         * generated/in_pack_i16.c: Regenerated.
650         * generated/in_pack_i2.c: Regenerated.
651         * generated/in_pack_i4.c: Regenerated.
652         * generated/in_pack_i8.c: Regenerated.
653         * generated/in_pack_r10.c: Regenerated.
654         * generated/in_pack_r16.c: Regenerated.
655         * generated/in_pack_r4.c: Regenerated.
656         * generated/in_pack_r8.c: Regenerated.
657         * generated/in_unpack_c10.c: Regenerated.
658         * generated/in_unpack_c16.c: Regenerated.
659         * generated/in_unpack_c4.c: Regenerated.
660         * generated/in_unpack_c8.c: Regenerated.
661         * generated/in_unpack_i1.c: Regenerated.
662         * generated/in_unpack_i16.c: Regenerated.
663         * generated/in_unpack_i2.c: Regenerated.
664         * generated/in_unpack_i4.c: Regenerated.
665         * generated/in_unpack_i8.c: Regenerated.
666         * generated/in_unpack_r10.c: Regenerated.
667         * generated/in_unpack_r16.c: Regenerated.
668         * generated/in_unpack_r4.c: Regenerated.
669         * generated/in_unpack_r8.c: Regenerated.
670         * generated/matmul_c10.c: Regenerated.
671         * generated/matmul_c16.c: Regenerated.
672         * generated/matmul_c4.c: Regenerated.
673         * generated/matmul_c8.c: Regenerated.
674         * generated/matmul_i1.c: Regenerated.
675         * generated/matmul_i16.c: Regenerated.
676         * generated/matmul_i2.c: Regenerated.
677         * generated/matmul_i4.c: Regenerated.
678         * generated/matmul_i8.c: Regenerated.
679         * generated/matmul_l16.c: Regenerated.
680         * generated/matmul_l4.c: Regenerated.
681         * generated/matmul_l8.c: Regenerated.
682         * generated/matmul_r10.c: Regenerated.
683         * generated/matmul_r16.c: Regenerated.
684         * generated/matmul_r4.c: Regenerated.
685         * generated/matmul_r8.c: Regenerated.
686         * generated/maxloc0_16_i1.c: Regenerated.
687         * generated/maxloc0_16_i16.c: Regenerated.
688         * generated/maxloc0_16_i2.c: Regenerated.
689         * generated/maxloc0_16_i4.c: Regenerated.
690         * generated/maxloc0_16_i8.c: Regenerated.
691         * generated/maxloc0_16_r10.c: Regenerated.
692         * generated/maxloc0_16_r16.c: Regenerated.
693         * generated/maxloc0_16_r4.c: Regenerated.
694         * generated/maxloc0_16_r8.c: Regenerated.
695         * generated/maxloc0_4_i1.c: Regenerated.
696         * generated/maxloc0_4_i16.c: Regenerated.
697         * generated/maxloc0_4_i2.c: Regenerated.
698         * generated/maxloc0_4_i4.c: Regenerated.
699         * generated/maxloc0_4_i8.c: Regenerated.
700         * generated/maxloc0_4_r10.c: Regenerated.
701         * generated/maxloc0_4_r16.c: Regenerated.
702         * generated/maxloc0_4_r4.c: Regenerated.
703         * generated/maxloc0_4_r8.c: Regenerated.
704         * generated/maxloc0_8_i1.c: Regenerated.
705         * generated/maxloc0_8_i16.c: Regenerated.
706         * generated/maxloc0_8_i2.c: Regenerated.
707         * generated/maxloc0_8_i4.c: Regenerated.
708         * generated/maxloc0_8_i8.c: Regenerated.
709         * generated/maxloc0_8_r10.c: Regenerated.
710         * generated/maxloc0_8_r16.c: Regenerated.
711         * generated/maxloc0_8_r4.c: Regenerated.
712         * generated/maxloc0_8_r8.c: Regenerated.
713         * generated/maxloc1_16_i1.c: Regenerated.
714         * generated/maxloc1_16_i16.c: Regenerated.
715         * generated/maxloc1_16_i2.c: Regenerated.
716         * generated/maxloc1_16_i4.c: Regenerated.
717         * generated/maxloc1_16_i8.c: Regenerated.
718         * generated/maxloc1_16_r10.c: Regenerated.
719         * generated/maxloc1_16_r16.c: Regenerated.
720         * generated/maxloc1_16_r4.c: Regenerated.
721         * generated/maxloc1_16_r8.c: Regenerated.
722         * generated/maxloc1_4_i1.c: Regenerated.
723         * generated/maxloc1_4_i16.c: Regenerated.
724         * generated/maxloc1_4_i2.c: Regenerated.
725         * generated/maxloc1_4_i4.c: Regenerated.
726         * generated/maxloc1_4_i8.c: Regenerated.
727         * generated/maxloc1_4_r10.c: Regenerated.
728         * generated/maxloc1_4_r16.c: Regenerated.
729         * generated/maxloc1_4_r4.c: Regenerated.
730         * generated/maxloc1_4_r8.c: Regenerated.
731         * generated/maxloc1_8_i1.c: Regenerated.
732         * generated/maxloc1_8_i16.c: Regenerated.
733         * generated/maxloc1_8_i2.c: Regenerated.
734         * generated/maxloc1_8_i4.c: Regenerated.
735         * generated/maxloc1_8_i8.c: Regenerated.
736         * generated/maxloc1_8_r10.c: Regenerated.
737         * generated/maxloc1_8_r16.c: Regenerated.
738         * generated/maxloc1_8_r4.c: Regenerated.
739         * generated/maxloc1_8_r8.c: Regenerated.
740         * generated/maxval_i1.c: Regenerated.
741         * generated/maxval_i16.c: Regenerated.
742         * generated/maxval_i2.c: Regenerated.
743         * generated/maxval_i4.c: Regenerated.
744         * generated/maxval_i8.c: Regenerated.
745         * generated/maxval_r10.c: Regenerated.
746         * generated/maxval_r16.c: Regenerated.
747         * generated/maxval_r4.c: Regenerated.
748         * generated/maxval_r8.c: Regenerated.
749         * generated/minloc0_16_i1.c: Regenerated.
750         * generated/minloc0_16_i16.c: Regenerated.
751         * generated/minloc0_16_i2.c: Regenerated.
752         * generated/minloc0_16_i4.c: Regenerated.
753         * generated/minloc0_16_i8.c: Regenerated.
754         * generated/minloc0_16_r10.c: Regenerated.
755         * generated/minloc0_16_r16.c: Regenerated.
756         * generated/minloc0_16_r4.c: Regenerated.
757         * generated/minloc0_16_r8.c: Regenerated.
758         * generated/minloc0_4_i1.c: Regenerated.
759         * generated/minloc0_4_i16.c: Regenerated.
760         * generated/minloc0_4_i2.c: Regenerated.
761         * generated/minloc0_4_i4.c: Regenerated.
762         * generated/minloc0_4_i8.c: Regenerated.
763         * generated/minloc0_4_r10.c: Regenerated.
764         * generated/minloc0_4_r16.c: Regenerated.
765         * generated/minloc0_4_r4.c: Regenerated.
766         * generated/minloc0_4_r8.c: Regenerated.
767         * generated/minloc0_8_i1.c: Regenerated.
768         * generated/minloc0_8_i16.c: Regenerated.
769         * generated/minloc0_8_i2.c: Regenerated.
770         * generated/minloc0_8_i4.c: Regenerated.
771         * generated/minloc0_8_i8.c: Regenerated.
772         * generated/minloc0_8_r10.c: Regenerated.
773         * generated/minloc0_8_r16.c: Regenerated.
774         * generated/minloc0_8_r4.c: Regenerated.
775         * generated/minloc0_8_r8.c: Regenerated.
776         * generated/minloc1_16_i1.c: Regenerated.
777         * generated/minloc1_16_i16.c: Regenerated.
778         * generated/minloc1_16_i2.c: Regenerated.
779         * generated/minloc1_16_i4.c: Regenerated.
780         * generated/minloc1_16_i8.c: Regenerated.
781         * generated/minloc1_16_r10.c: Regenerated.
782         * generated/minloc1_16_r16.c: Regenerated.
783         * generated/minloc1_16_r4.c: Regenerated.
784         * generated/minloc1_16_r8.c: Regenerated.
785         * generated/minloc1_4_i1.c: Regenerated.
786         * generated/minloc1_4_i16.c: Regenerated.
787         * generated/minloc1_4_i2.c: Regenerated.
788         * generated/minloc1_4_i4.c: Regenerated.
789         * generated/minloc1_4_i8.c: Regenerated.
790         * generated/minloc1_4_r10.c: Regenerated.
791         * generated/minloc1_4_r16.c: Regenerated.
792         * generated/minloc1_4_r4.c: Regenerated.
793         * generated/minloc1_4_r8.c: Regenerated.
794         * generated/minloc1_8_i1.c: Regenerated.
795         * generated/minloc1_8_i16.c: Regenerated.
796         * generated/minloc1_8_i2.c: Regenerated.
797         * generated/minloc1_8_i4.c: Regenerated.
798         * generated/minloc1_8_i8.c: Regenerated.
799         * generated/minloc1_8_r10.c: Regenerated.
800         * generated/minloc1_8_r16.c: Regenerated.
801         * generated/minloc1_8_r4.c: Regenerated.
802         * generated/minloc1_8_r8.c: Regenerated.
803         * generated/minval_i1.c: Regenerated.
804         * generated/minval_i16.c: Regenerated.
805         * generated/minval_i2.c: Regenerated.
806         * generated/minval_i4.c: Regenerated.
807         * generated/minval_i8.c: Regenerated.
808         * generated/minval_r10.c: Regenerated.
809         * generated/minval_r16.c: Regenerated.
810         * generated/minval_r4.c: Regenerated.
811         * generated/minval_r8.c: Regenerated.
812         * generated/pack_c10.c: Regenerated.
813         * generated/pack_c16.c: Regenerated.
814         * generated/pack_c4.c: Regenerated.
815         * generated/pack_c8.c: Regenerated.
816         * generated/pack_i1.c: Regenerated.
817         * generated/pack_i16.c: Regenerated.
818         * generated/pack_i2.c: Regenerated.
819         * generated/pack_i4.c: Regenerated.
820         * generated/pack_i8.c: Regenerated.
821         * generated/pack_r10.c: Regenerated.
822         * generated/pack_r16.c: Regenerated.
823         * generated/pack_r4.c: Regenerated.
824         * generated/pack_r8.c: Regenerated.
825         * generated/product_c10.c: Regenerated.
826         * generated/product_c16.c: Regenerated.
827         * generated/product_c4.c: Regenerated.
828         * generated/product_c8.c: Regenerated.
829         * generated/product_i1.c: Regenerated.
830         * generated/product_i16.c: Regenerated.
831         * generated/product_i2.c: Regenerated.
832         * generated/product_i4.c: Regenerated.
833         * generated/product_i8.c: Regenerated.
834         * generated/product_r10.c: Regenerated.
835         * generated/product_r16.c: Regenerated.
836         * generated/product_r4.c: Regenerated.
837         * generated/product_r8.c: Regenerated.
838         * generated/reshape_c10.c: Regenerated.
839         * generated/reshape_c16.c: Regenerated.
840         * generated/reshape_c4.c: Regenerated.
841         * generated/reshape_c8.c: Regenerated.
842         * generated/reshape_i16.c: Regenerated.
843         * generated/reshape_i4.c: Regenerated.
844         * generated/reshape_i8.c: Regenerated.
845         * generated/reshape_r10.c: Regenerated.
846         * generated/reshape_r16.c: Regenerated.
847         * generated/reshape_r4.c: Regenerated.
848         * generated/reshape_r8.c: Regenerated.
849         * generated/shape_i16.c: Regenerated.
850         * generated/shape_i4.c: Regenerated.
851         * generated/shape_i8.c: Regenerated.
852         * generated/spread_c10.c: Regenerated.
853         * generated/spread_c16.c: Regenerated.
854         * generated/spread_c4.c: Regenerated.
855         * generated/spread_c8.c: Regenerated.
856         * generated/spread_i1.c: Regenerated.
857         * generated/spread_i16.c: Regenerated.
858         * generated/spread_i2.c: Regenerated.
859         * generated/spread_i4.c: Regenerated.
860         * generated/spread_i8.c: Regenerated.
861         * generated/spread_r10.c: Regenerated.
862         * generated/spread_r16.c: Regenerated.
863         * generated/spread_r4.c: Regenerated.
864         * generated/spread_r8.c: Regenerated.
865         * generated/sum_c10.c: Regenerated.
866         * generated/sum_c16.c: Regenerated.
867         * generated/sum_c4.c: Regenerated.
868         * generated/sum_c8.c: Regenerated.
869         * generated/sum_i1.c: Regenerated.
870         * generated/sum_i16.c: Regenerated.
871         * generated/sum_i2.c: Regenerated.
872         * generated/sum_i4.c: Regenerated.
873         * generated/sum_i8.c: Regenerated.
874         * generated/sum_r10.c: Regenerated.
875         * generated/sum_r16.c: Regenerated.
876         * generated/sum_r4.c: Regenerated.
877         * generated/sum_r8.c: Regenerated.
878         * generated/transpose_c10.c: Regenerated.
879         * generated/transpose_c16.c: Regenerated.
880         * generated/transpose_c4.c: Regenerated.
881         * generated/transpose_c8.c: Regenerated.
882         * generated/transpose_i16.c: Regenerated.
883         * generated/transpose_i4.c: Regenerated.
884         * generated/transpose_i8.c: Regenerated.
885         * generated/transpose_r10.c: Regenerated.
886         * generated/transpose_r16.c: Regenerated.
887         * generated/transpose_r4.c: Regenerated.
888         * generated/transpose_r8.c: Regenerated.
889         * generated/unpack_c10.c: Regenerated.
890         * generated/unpack_c16.c: Regenerated.
891         * generated/unpack_c4.c: Regenerated.
892         * generated/unpack_c8.c: Regenerated.
893         * generated/unpack_i1.c: Regenerated.
894         * generated/unpack_i16.c: Regenerated.
895         * generated/unpack_i2.c: Regenerated.
896         * generated/unpack_i4.c: Regenerated.
897         * generated/unpack_i8.c: Regenerated.
898         * generated/unpack_r10.c: Regenerated.
899         * generated/unpack_r16.c: Regenerated.
900         * generated/unpack_r4.c: Regenerated.
901         * generated/unpack_r8.c: Regenerated.
902
903 2009-06-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
904
905         * fmain.c (main): Don't PREFIX set_args.
906         * libgfortran.h (set_args): Use iexport_proto.
907         * runtime/main.c (set_args): Use iexport.
908
909 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
910
911         PR libfortran/40008
912         * libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT.
913         * io/open.c (st_open): Don't error on negative unit number if NEWUNIT
914         was specified. If NEWUNIT is specified, call new function to get the
915         unique unit number and assign it.
916         * io/io.h (st_parameter_open): Add pointer to newunit.  Add prototype for
917         next_available_newunit. Add prototype for new function,
918         get_unique_unit_number.
919         * io/unit.c: Declare next_available_newunit. Define the first newunit
920         number. (init_units): Initialize next_available_unit.
921         (get_unique_unit_number): New function. Fix whitespace and comments.
922         * io/transfer.c (data_transfer_init): Update error message to not be
923         specific to OPEN statements.
924
925 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
926
927         PR libfortran/40334
928         * io/list_read.c (list_formatted_read_scalar): Set the end file
929         conditions after a return from EOF error.
930
931 2009-06-04  Janne Blomqvist  <jb@gcc.gnu.org>
932
933         PR libfortran/40330
934         * io/format.c (free_format_hash_table): Also free and nullify hash key.
935         (save_parsed_format): Copy string rather than pointer copy.
936         
937 2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
938
939         PR fortran/40019
940         * intrinsics/bit_intrinsics.c: New file.
941         * gfortran.map (GFORTRAN_1.2): New list.
942         * Makefile.am: Add intrinsics/bit_intrinsics.c.
943         * Makefile.in: Regenerate.
944
945 2009-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
946
947         PR libfortran/40190
948         * configure.ac: Check for localtime_r and gmtime_r.
949         * intrinsics/date_and_time.c: Add fallback implementations for
950         localtime_r and gmtime_r.
951         (date_and_time): Change to use localtime_r and gmtime_r instead of
952         localtime and gmtime, respectively.
953         (itime0): Use localtime_r instead of localtime.
954         (ltime_0): Likewise.
955         (gmtime_0): Use gmtime_r instead of gmtime.
956         * config.h.in: Regenerated
957         * configure: Regenerated.
958
959 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
960
961         PR fortran/39178
962         * runtime/main.c (store_exe_path): Remove static attribute.
963         * libgfortran.h: Add back store_exe_path prototype.
964
965 2009-05-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
966
967         PR libfortran/40187
968         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
969         of stride in "shape" argument.
970
971 2009-05-26  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/39178
974         * runtime/main.c (store_exe_path): Make static
975         and multiple-times callable.
976         (set_args): Call store_exe_path.
977         * libgfortran.h: Remove store_exe_path prototype.
978         * fmain.c (main): Remove store_exe_path call.
979
980 2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
981
982         PR libfortran/37754
983         * io/write_float.def: Simplify format calculation.
984         
985 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
986
987         PR fortran/22423
988         * io/transfer.c (read_block_direct): Avoid warning.
989         * runtime/string.c (compare0): Avoid warning.
990
991 2009-04-30  Janne Blomqvist  <jb@gcc.gnu.org>
992
993         PR libfortran/39667
994         * io/file_pos.c (st_rewind): Don't truncate or flush.
995         * io/intrinsics.c (fgetc): Flush if switching mode.
996         (fputc): Likewise.
997
998 2009-04-18  Janne Blomqvist  <jb@gcc.gnu.org>
999
1000         PR libfortran/39782
1001         * io/transfer.c (data_transfer_init): Don't flush before seek.
1002         (finalize_transfer): Remove extra flush.
1003
1004 2009-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1005
1006         * io/io.h (is_preconnected): Remove prototype.
1007         * io/unix.c (is_preconnected): Remove function.
1008
1009 2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1010
1011         * configure.ac: Test for -ffunction-sections -fdata-sections and
1012         set SECTION_FLAGS accordingly.
1013         * configure: Regenerate.
1014
1015         * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS.
1016         * Makefile.in: Regenerate.
1017
1018 2009-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1019
1020         PR libfortran/38668
1021         * io/transfer.c (finalize_transfer): Don't flush for advance='no'.
1022
1023 2009-04-15 Danny Smith  <dannysmith@clear.net.nz>
1024
1025         * io/write.c (itoa) : Rename back to gfc_itoa.
1026         (write_i): Adjust call to write_decimal.
1027         (write_integer):  Use gfc_itoa.
1028
1029 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1030
1031         * io/io.h (move_pos_offset): Remove prototype.
1032         * io/transfer.c (formatted_transfer_scalar_read): Use sseek
1033         instead of move_pos_offset.
1034         * io/unix.c (move_pos_offset): Remove.
1035
1036 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1037
1038         PR libfortran/39665 libfortran/39702 libfortran/39709
1039         * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
1040         * io/list_read.c (read_complex): Read directly into user pointer.
1041         (read_real): Likewise.
1042         (list_formatted_read_scalar): Update read_complex and read_real calls.
1043         (nml_read_obj): Read directly into user pointer.
1044
1045 2009-04-09  Janne Blomqvist  <jb@gcc.gnu.org>
1046
1047         PR libfortran/39665
1048         * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
1049         * io/read.c (convert_real): Add note about alignment requirements.
1050
1051 2009-04-09  Nick Clifton  <nickc@redhat.com>
1052
1053         * m4/cshift0.m4: Change copyright header to refer to version 3
1054         of the GNU General Public License with version 3.1 of the GCC
1055         Runtime Library Exception and to point readers at the COPYING3
1056         and COPYING3.RUNTIME files and the FSF's license web page.
1057         * c99_protos.h: Likewise.
1058         * config/fpu-387.h: Likewise.
1059         * config/fpu-aix.h: Likewise.
1060         * config/fpu-generic.h: Likewise.
1061         * config/fpu-glibc.h: Likewise.
1062         * config/fpu-sysv.h: Likewise.
1063         * intrinsics/abort.c: Likewise.
1064         * intrinsics/access.c: Likewise.
1065         * intrinsics/args.c: Likewise.
1066         * intrinsics/associated.c: Likewise.
1067         * intrinsics/c99_functions.c: Likewise.
1068         * intrinsics/chdir.c: Likewise.
1069         * intrinsics/chmod.c: Likewise.
1070         * intrinsics/clock.c: Likewise.
1071         * intrinsics/cpu_time.c: Likewise.
1072         * intrinsics/cshift0.c: Likewise.
1073         * intrinsics/ctime.c: Likewise.
1074         * intrinsics/date_and_time.c: Likewise.
1075         * intrinsics/dprod_r8.f90: Likewise.
1076         * intrinsics/dtime.c: Likewise.
1077         * intrinsics/env.c: Likewise.
1078         * intrinsics/eoshift0.c: Likewise.
1079         * intrinsics/eoshift2.c: Likewise.
1080         * intrinsics/erfc_scaled.c: Likewise.
1081         * intrinsics/erfc_scaled_inc.c: Likewise.
1082         * intrinsics/etime.c: Likewise.
1083         * intrinsics/exit.c: Likewise.
1084         * intrinsics/f2c_specifics.F90: Likewise.
1085         * intrinsics/fnum.c: Likewise.
1086         * intrinsics/gerror.c: Likewise.
1087         * intrinsics/getXid.c: Likewise.
1088         * intrinsics/getcwd.c: Likewise.
1089         * intrinsics/getlog.c: Likewise.
1090         * intrinsics/hostnm.c: Likewise.
1091         * intrinsics/ierrno.c: Likewise.
1092         * intrinsics/ishftc.c: Likewise.
1093         * intrinsics/iso_c_binding.c: Likewise.
1094         * intrinsics/iso_c_binding.h: Likewise.
1095         * intrinsics/iso_c_generated_procs.c: Likewise.
1096         * intrinsics/kill.c: Likewise.
1097         * intrinsics/link.c: Likewise.
1098         * intrinsics/malloc.c: Likewise.
1099         * intrinsics/move_alloc.c: Likewise.
1100         * intrinsics/mvbits.c: Likewise.
1101         * intrinsics/pack_generic.c: Likewise.
1102         * intrinsics/perror.c: Likewise.
1103         * intrinsics/rand.c: Likewise.
1104         * intrinsics/random.c: Likewise.
1105         * intrinsics/rename.c: Likewise.
1106         * intrinsics/reshape_generic.c: Likewise.
1107         * intrinsics/reshape_packed.c: Likewise.
1108         * intrinsics/selected_char_kind.c: Likewise.
1109         * intrinsics/selected_int_kind.f90: Likewise.
1110         * intrinsics/selected_real_kind.f90: Likewise.
1111         * intrinsics/signal.c: Likewise.
1112         * intrinsics/size.c: Likewise.
1113         * intrinsics/sleep.c: Likewise.
1114         * intrinsics/spread_generic.c: Likewise.
1115         * intrinsics/stat.c: Likewise.
1116         * intrinsics/string_intrinsics.c: Likewise.
1117         * intrinsics/string_intrinsics_inc.c: Likewise.
1118         * intrinsics/symlnk.c: Likewise.
1119         * intrinsics/system.c: Likewise.
1120         * intrinsics/system_clock.c: Likewise.
1121         * intrinsics/time.c: Likewise.
1122         * intrinsics/time_1.h: Likewise.
1123         * intrinsics/transpose_generic.c: Likewise.
1124         * intrinsics/umask.c: Likewise.
1125         * intrinsics/unlink.c: Likewise.
1126         * intrinsics/unpack_generic.c: Likewise.
1127         * io/close.c: Likewise.
1128         * io/fbuf.c: Likewise.
1129         * io/file_pos.c: Likewise.
1130         * io/format.c: Likewise.
1131         * io/inquire.c: Likewise.
1132         * io/intrinsics.c: Likewise.
1133         * io/io.h: Likewise.
1134         * io/list_read.c: Likewise.
1135         * io/lock.c: Likewise.
1136         * io/open.c: Likewise.
1137         * io/read.c: Likewise.
1138         * io/size_from_kind.c: Likewise.
1139         * io/transfer.c: Likewise.
1140         * io/unit.c: Likewise.
1141         * io/unix.c: Likewise.
1142         * io/write.c: Likewise.
1143         * io/write_float.def: Likewise.
1144         * libgfortran.h: Likewise.
1145         * m4/all.m4: Likewise.
1146         * m4/any.m4: Likewise.
1147         * m4/count.m4: Likewise.
1148         * m4/cshift1.m4: Likewise.
1149         * m4/eoshift1.m4: Likewise.
1150         * m4/eoshift3.m4: Likewise.
1151         * m4/exponent.m4: Likewise.
1152         * m4/fraction.m4: Likewise.
1153         * m4/head.m4: Likewise.
1154         * m4/in_pack.m4: Likewise.
1155         * m4/in_unpack.m4: Likewise.
1156         * m4/matmul.m4: Likewise.
1157         * m4/matmull.m4: Likewise.
1158         * m4/maxloc0.m4: Likewise.
1159         * m4/maxloc1.m4: Likewise.
1160         * m4/maxval.m4: Likewise.
1161         * m4/minloc0.m4: Likewise.
1162         * m4/minloc1.m4: Likewise.
1163         * m4/minval.m4: Likewise.
1164         * m4/nearest.m4: Likewise.
1165         * m4/pack.m4: Likewise.
1166         * m4/pow.m4: Likewise.
1167         * m4/product.m4: Likewise.
1168         * m4/reshape.m4: Likewise.
1169         * m4/rrspacing.m4: Likewise.
1170         * m4/set_exponent.m4: Likewise.
1171         * m4/shape.m4: Likewise.
1172         * m4/spacing.m4: Likewise.
1173         * m4/spread.m4: Likewise.
1174         * m4/sum.m4: Likewise.
1175         * m4/transpose.m4: Likewise.
1176         * m4/unpack.m4: Likewise.
1177         * runtime/backtrace.c: Likewise.
1178         * runtime/compile_options.c: Likewise.
1179         * runtime/convert_char.c: Likewise.
1180         * runtime/environ.c: Likewise.
1181         * runtime/error.c: Likewise.
1182         * runtime/in_pack_generic.c: Likewise.
1183         * runtime/in_unpack_generic.c: Likewise.
1184         * runtime/main.c: Likewise.
1185         * runtime/memory.c: Likewise.
1186         * runtime/pause.c: Likewise.
1187         * runtime/select.c: Likewise.
1188         * runtime/select_inc.c: Likewise.
1189         * runtime/stop.c: Likewise.
1190         * runtime/string.c: Likewise.
1191         * generated/_abs_c10.F90: Regenerate.
1192         * generated/_abs_c16.F90: Regenerate.
1193         * generated/_abs_c4.F90: Regenerate.
1194         * generated/_abs_c8.F90: Regenerate.
1195         * generated/_abs_i16.F90: Regenerate.
1196         * generated/_abs_i4.F90: Regenerate.
1197         * generated/_abs_i8.F90: Regenerate.
1198         * generated/_abs_r10.F90: Regenerate.
1199         * generated/_abs_r16.F90: Regenerate.
1200         * generated/_abs_r4.F90: Regenerate.
1201         * generated/_abs_r8.F90: Regenerate.
1202         * generated/_acos_r10.F90: Regenerate.
1203         * generated/_acos_r16.F90: Regenerate.
1204         * generated/_acos_r4.F90: Regenerate.
1205         * generated/_acos_r8.F90: Regenerate.
1206         * generated/_acosh_r10.F90: Regenerate.
1207         * generated/_acosh_r16.F90: Regenerate.
1208         * generated/_acosh_r4.F90: Regenerate.
1209         * generated/_acosh_r8.F90: Regenerate.
1210         * generated/_aimag_c10.F90: Regenerate.
1211         * generated/_aimag_c16.F90: Regenerate.
1212         * generated/_aimag_c4.F90: Regenerate.
1213         * generated/_aimag_c8.F90: Regenerate.
1214         * generated/_aint_r10.F90: Regenerate.
1215         * generated/_aint_r16.F90: Regenerate.
1216         * generated/_aint_r4.F90: Regenerate.
1217         * generated/_aint_r8.F90: Regenerate.
1218         * generated/_anint_r10.F90: Regenerate.
1219         * generated/_anint_r16.F90: Regenerate.
1220         * generated/_anint_r4.F90: Regenerate.
1221         * generated/_anint_r8.F90: Regenerate.
1222         * generated/_asin_r10.F90: Regenerate.
1223         * generated/_asin_r16.F90: Regenerate.
1224         * generated/_asin_r4.F90: Regenerate.
1225         * generated/_asin_r8.F90: Regenerate.
1226         * generated/_asinh_r10.F90: Regenerate.
1227         * generated/_asinh_r16.F90: Regenerate.
1228         * generated/_asinh_r4.F90: Regenerate.
1229         * generated/_asinh_r8.F90: Regenerate.
1230         * generated/_atan2_r10.F90: Regenerate.
1231         * generated/_atan2_r16.F90: Regenerate.
1232         * generated/_atan2_r4.F90: Regenerate.
1233         * generated/_atan2_r8.F90: Regenerate.
1234         * generated/_atan_r10.F90: Regenerate.
1235         * generated/_atan_r16.F90: Regenerate.
1236         * generated/_atan_r4.F90: Regenerate.
1237         * generated/_atan_r8.F90: Regenerate.
1238         * generated/_atanh_r10.F90: Regenerate.
1239         * generated/_atanh_r16.F90: Regenerate.
1240         * generated/_atanh_r4.F90: Regenerate.
1241         * generated/_atanh_r8.F90: Regenerate.
1242         * generated/_conjg_c10.F90: Regenerate.
1243         * generated/_conjg_c16.F90: Regenerate.
1244         * generated/_conjg_c4.F90: Regenerate.
1245         * generated/_conjg_c8.F90: Regenerate.
1246         * generated/_cos_c10.F90: Regenerate.
1247         * generated/_cos_c16.F90: Regenerate.
1248         * generated/_cos_c4.F90: Regenerate.
1249         * generated/_cos_c8.F90: Regenerate.
1250         * generated/_cos_r10.F90: Regenerate.
1251         * generated/_cos_r16.F90: Regenerate.
1252         * generated/_cos_r4.F90: Regenerate.
1253         * generated/_cos_r8.F90: Regenerate.
1254         * generated/_cosh_r10.F90: Regenerate.
1255         * generated/_cosh_r16.F90: Regenerate.
1256         * generated/_cosh_r4.F90: Regenerate.
1257         * generated/_cosh_r8.F90: Regenerate.
1258         * generated/_dim_i16.F90: Regenerate.
1259         * generated/_dim_i4.F90: Regenerate.
1260         * generated/_dim_i8.F90: Regenerate.
1261         * generated/_dim_r10.F90: Regenerate.
1262         * generated/_dim_r16.F90: Regenerate.
1263         * generated/_dim_r4.F90: Regenerate.
1264         * generated/_dim_r8.F90: Regenerate.
1265         * generated/_exp_c10.F90: Regenerate.
1266         * generated/_exp_c16.F90: Regenerate.
1267         * generated/_exp_c4.F90: Regenerate.
1268         * generated/_exp_c8.F90: Regenerate.
1269         * generated/_exp_r10.F90: Regenerate.
1270         * generated/_exp_r16.F90: Regenerate.
1271         * generated/_exp_r4.F90: Regenerate.
1272         * generated/_exp_r8.F90: Regenerate.
1273         * generated/_log10_r10.F90: Regenerate.
1274         * generated/_log10_r16.F90: Regenerate.
1275         * generated/_log10_r4.F90: Regenerate.
1276         * generated/_log10_r8.F90: Regenerate.
1277         * generated/_log_c10.F90: Regenerate.
1278         * generated/_log_c16.F90: Regenerate.
1279         * generated/_log_c4.F90: Regenerate.
1280         * generated/_log_c8.F90: Regenerate.
1281         * generated/_log_r10.F90: Regenerate.
1282         * generated/_log_r16.F90: Regenerate.
1283         * generated/_log_r4.F90: Regenerate.
1284         * generated/_log_r8.F90: Regenerate.
1285         * generated/_mod_i16.F90: Regenerate.
1286         * generated/_mod_i4.F90: Regenerate.
1287         * generated/_mod_i8.F90: Regenerate.
1288         * generated/_mod_r10.F90: Regenerate.
1289         * generated/_mod_r16.F90: Regenerate.
1290         * generated/_mod_r4.F90: Regenerate.
1291         * generated/_mod_r8.F90: Regenerate.
1292         * generated/_sign_i16.F90: Regenerate.
1293         * generated/_sign_i4.F90: Regenerate.
1294         * generated/_sign_i8.F90: Regenerate.
1295         * generated/_sign_r10.F90: Regenerate.
1296         * generated/_sign_r16.F90: Regenerate.
1297         * generated/_sign_r4.F90: Regenerate.
1298         * generated/_sign_r8.F90: Regenerate.
1299         * generated/_sin_c10.F90: Regenerate.
1300         * generated/_sin_c16.F90: Regenerate.
1301         * generated/_sin_c4.F90: Regenerate.
1302         * generated/_sin_c8.F90: Regenerate.
1303         * generated/_sin_r10.F90: Regenerate.
1304         * generated/_sin_r16.F90: Regenerate.
1305         * generated/_sin_r4.F90: Regenerate.
1306         * generated/_sin_r8.F90: Regenerate.
1307         * generated/_sinh_r10.F90: Regenerate.
1308         * generated/_sinh_r16.F90: Regenerate.
1309         * generated/_sinh_r4.F90: Regenerate.
1310         * generated/_sinh_r8.F90: Regenerate.
1311         * generated/_sqrt_c10.F90: Regenerate.
1312         * generated/_sqrt_c16.F90: Regenerate.
1313         * generated/_sqrt_c4.F90: Regenerate.
1314         * generated/_sqrt_c8.F90: Regenerate.
1315         * generated/_sqrt_r10.F90: Regenerate.
1316         * generated/_sqrt_r16.F90: Regenerate.
1317         * generated/_sqrt_r4.F90: Regenerate.
1318         * generated/_sqrt_r8.F90: Regenerate.
1319         * generated/_tan_r10.F90: Regenerate.
1320         * generated/_tan_r16.F90: Regenerate.
1321         * generated/_tan_r4.F90: Regenerate.
1322         * generated/_tan_r8.F90: Regenerate.
1323         * generated/_tanh_r10.F90: Regenerate.
1324         * generated/_tanh_r16.F90: Regenerate.
1325         * generated/_tanh_r4.F90: Regenerate.
1326         * generated/_tanh_r8.F90: Regenerate.
1327         * generated/all_l1.c: Regenerate.
1328         * generated/all_l16.c: Regenerate.
1329         * generated/all_l2.c: Regenerate.
1330         * generated/all_l4.c: Regenerate.
1331         * generated/all_l8.c: Regenerate.
1332         * generated/any_l1.c: Regenerate.
1333         * generated/any_l16.c: Regenerate.
1334         * generated/any_l2.c: Regenerate.
1335         * generated/any_l4.c: Regenerate.
1336         * generated/any_l8.c: Regenerate.
1337         * generated/count_16_l.c: Regenerate.
1338         * generated/count_1_l.c: Regenerate.
1339         * generated/count_2_l.c: Regenerate.
1340         * generated/count_4_l.c: Regenerate.
1341         * generated/count_8_l.c: Regenerate.
1342         * generated/cshift0_c10.c: Regenerate.
1343         * generated/cshift0_c16.c: Regenerate.
1344         * generated/cshift0_c4.c: Regenerate.
1345         * generated/cshift0_c8.c: Regenerate.
1346         * generated/cshift0_i1.c: Regenerate.
1347         * generated/cshift0_i16.c: Regenerate.
1348         * generated/cshift0_i2.c: Regenerate.
1349         * generated/cshift0_i4.c: Regenerate.
1350         * generated/cshift0_i8.c: Regenerate.
1351         * generated/cshift0_r10.c: Regenerate.
1352         * generated/cshift0_r16.c: Regenerate.
1353         * generated/cshift0_r4.c: Regenerate.
1354         * generated/cshift0_r8.c: Regenerate.
1355         * generated/cshift1_16.c: Regenerate.
1356         * generated/cshift1_4.c: Regenerate.
1357         * generated/cshift1_8.c: Regenerate.
1358         * generated/eoshift1_16.c: Regenerate.
1359         * generated/eoshift1_4.c: Regenerate.
1360         * generated/eoshift1_8.c: Regenerate.
1361         * generated/eoshift3_16.c: Regenerate.
1362         * generated/eoshift3_4.c: Regenerate.
1363         * generated/eoshift3_8.c: Regenerate.
1364         * generated/exponent_r10.c: Regenerate.
1365         * generated/exponent_r16.c: Regenerate.
1366         * generated/exponent_r4.c: Regenerate.
1367         * generated/exponent_r8.c: Regenerate.
1368         * generated/fraction_r10.c: Regenerate.
1369         * generated/fraction_r16.c: Regenerate.
1370         * generated/fraction_r4.c: Regenerate.
1371         * generated/fraction_r8.c: Regenerate.
1372         * generated/in_pack_c10.c: Regenerate.
1373         * generated/in_pack_c16.c: Regenerate.
1374         * generated/in_pack_c4.c: Regenerate.
1375         * generated/in_pack_c8.c: Regenerate.
1376         * generated/in_pack_i1.c: Regenerate.
1377         * generated/in_pack_i16.c: Regenerate.
1378         * generated/in_pack_i2.c: Regenerate.
1379         * generated/in_pack_i4.c: Regenerate.
1380         * generated/in_pack_i8.c: Regenerate.
1381         * generated/in_pack_r10.c: Regenerate.
1382         * generated/in_pack_r16.c: Regenerate.
1383         * generated/in_pack_r4.c: Regenerate.
1384         * generated/in_pack_r8.c: Regenerate.
1385         * generated/in_unpack_c10.c: Regenerate.
1386         * generated/in_unpack_c16.c: Regenerate.
1387         * generated/in_unpack_c4.c: Regenerate.
1388         * generated/in_unpack_c8.c: Regenerate.
1389         * generated/in_unpack_i1.c: Regenerate.
1390         * generated/in_unpack_i16.c: Regenerate.
1391         * generated/in_unpack_i2.c: Regenerate.
1392         * generated/in_unpack_i4.c: Regenerate.
1393         * generated/in_unpack_i8.c: Regenerate.
1394         * generated/in_unpack_r10.c: Regenerate.
1395         * generated/in_unpack_r16.c: Regenerate.
1396         * generated/in_unpack_r4.c: Regenerate.
1397         * generated/in_unpack_r8.c: Regenerate.
1398         * generated/matmul_c10.c: Regenerate.
1399         * generated/matmul_c16.c: Regenerate.
1400         * generated/matmul_c4.c: Regenerate.
1401         * generated/matmul_c8.c: Regenerate.
1402         * generated/matmul_i1.c: Regenerate.
1403         * generated/matmul_i16.c: Regenerate.
1404         * generated/matmul_i2.c: Regenerate.
1405         * generated/matmul_i4.c: Regenerate.
1406         * generated/matmul_i8.c: Regenerate.
1407         * generated/matmul_l16.c: Regenerate.
1408         * generated/matmul_l4.c: Regenerate.
1409         * generated/matmul_l8.c: Regenerate.
1410         * generated/matmul_r10.c: Regenerate.
1411         * generated/matmul_r16.c: Regenerate.
1412         * generated/matmul_r4.c: Regenerate.
1413         * generated/matmul_r8.c: Regenerate.
1414         * generated/maxloc0_16_i1.c: Regenerate.
1415         * generated/maxloc0_16_i16.c: Regenerate.
1416         * generated/maxloc0_16_i2.c: Regenerate.
1417         * generated/maxloc0_16_i4.c: Regenerate.
1418         * generated/maxloc0_16_i8.c: Regenerate.
1419         * generated/maxloc0_16_r10.c: Regenerate.
1420         * generated/maxloc0_16_r16.c: Regenerate.
1421         * generated/maxloc0_16_r4.c: Regenerate.
1422         * generated/maxloc0_16_r8.c: Regenerate.
1423         * generated/maxloc0_4_i1.c: Regenerate.
1424         * generated/maxloc0_4_i16.c: Regenerate.
1425         * generated/maxloc0_4_i2.c: Regenerate.
1426         * generated/maxloc0_4_i4.c: Regenerate.
1427         * generated/maxloc0_4_i8.c: Regenerate.
1428         * generated/maxloc0_4_r10.c: Regenerate.
1429         * generated/maxloc0_4_r16.c: Regenerate.
1430         * generated/maxloc0_4_r4.c: Regenerate.
1431         * generated/maxloc0_4_r8.c: Regenerate.
1432         * generated/maxloc0_8_i1.c: Regenerate.
1433         * generated/maxloc0_8_i16.c: Regenerate.
1434         * generated/maxloc0_8_i2.c: Regenerate.
1435         * generated/maxloc0_8_i4.c: Regenerate.
1436         * generated/maxloc0_8_i8.c: Regenerate.
1437         * generated/maxloc0_8_r10.c: Regenerate.
1438         * generated/maxloc0_8_r16.c: Regenerate.
1439         * generated/maxloc0_8_r4.c: Regenerate.
1440         * generated/maxloc0_8_r8.c: Regenerate.
1441         * generated/maxloc1_16_i1.c: Regenerate.
1442         * generated/maxloc1_16_i16.c: Regenerate.
1443         * generated/maxloc1_16_i2.c: Regenerate.
1444         * generated/maxloc1_16_i4.c: Regenerate.
1445         * generated/maxloc1_16_i8.c: Regenerate.
1446         * generated/maxloc1_16_r10.c: Regenerate.
1447         * generated/maxloc1_16_r16.c: Regenerate.
1448         * generated/maxloc1_16_r4.c: Regenerate.
1449         * generated/maxloc1_16_r8.c: Regenerate.
1450         * generated/maxloc1_4_i1.c: Regenerate.
1451         * generated/maxloc1_4_i16.c: Regenerate.
1452         * generated/maxloc1_4_i2.c: Regenerate.
1453         * generated/maxloc1_4_i4.c: Regenerate.
1454         * generated/maxloc1_4_i8.c: Regenerate.
1455         * generated/maxloc1_4_r10.c: Regenerate.
1456         * generated/maxloc1_4_r16.c: Regenerate.
1457         * generated/maxloc1_4_r4.c: Regenerate.
1458         * generated/maxloc1_4_r8.c: Regenerate.
1459         * generated/maxloc1_8_i1.c: Regenerate.
1460         * generated/maxloc1_8_i16.c: Regenerate.
1461         * generated/maxloc1_8_i2.c: Regenerate.
1462         * generated/maxloc1_8_i4.c: Regenerate.
1463         * generated/maxloc1_8_i8.c: Regenerate.
1464         * generated/maxloc1_8_r10.c: Regenerate.
1465         * generated/maxloc1_8_r16.c: Regenerate.
1466         * generated/maxloc1_8_r4.c: Regenerate.
1467         * generated/maxloc1_8_r8.c: Regenerate.
1468         * generated/maxval_i1.c: Regenerate.
1469         * generated/maxval_i16.c: Regenerate.
1470         * generated/maxval_i2.c: Regenerate.
1471         * generated/maxval_i4.c: Regenerate.
1472         * generated/maxval_i8.c: Regenerate.
1473         * generated/maxval_r10.c: Regenerate.
1474         * generated/maxval_r16.c: Regenerate.
1475         * generated/maxval_r4.c: Regenerate.
1476         * generated/maxval_r8.c: Regenerate.
1477         * generated/minloc0_16_i1.c: Regenerate.
1478         * generated/minloc0_16_i16.c: Regenerate.
1479         * generated/minloc0_16_i2.c: Regenerate.
1480         * generated/minloc0_16_i4.c: Regenerate.
1481         * generated/minloc0_16_i8.c: Regenerate.
1482         * generated/minloc0_16_r10.c: Regenerate.
1483         * generated/minloc0_16_r16.c: Regenerate.
1484         * generated/minloc0_16_r4.c: Regenerate.
1485         * generated/minloc0_16_r8.c: Regenerate.
1486         * generated/minloc0_4_i1.c: Regenerate.
1487         * generated/minloc0_4_i16.c: Regenerate.
1488         * generated/minloc0_4_i2.c: Regenerate.
1489         * generated/minloc0_4_i4.c: Regenerate.
1490         * generated/minloc0_4_i8.c: Regenerate.
1491         * generated/minloc0_4_r10.c: Regenerate.
1492         * generated/minloc0_4_r16.c: Regenerate.
1493         * generated/minloc0_4_r4.c: Regenerate.
1494         * generated/minloc0_4_r8.c: Regenerate.
1495         * generated/minloc0_8_i1.c: Regenerate.
1496         * generated/minloc0_8_i16.c: Regenerate.
1497         * generated/minloc0_8_i2.c: Regenerate.
1498         * generated/minloc0_8_i4.c: Regenerate.
1499         * generated/minloc0_8_i8.c: Regenerate.
1500         * generated/minloc0_8_r10.c: Regenerate.
1501         * generated/minloc0_8_r16.c: Regenerate.
1502         * generated/minloc0_8_r4.c: Regenerate.
1503         * generated/minloc0_8_r8.c: Regenerate.
1504         * generated/minloc1_16_i1.c: Regenerate.
1505         * generated/minloc1_16_i16.c: Regenerate.
1506         * generated/minloc1_16_i2.c: Regenerate.
1507         * generated/minloc1_16_i4.c: Regenerate.
1508         * generated/minloc1_16_i8.c: Regenerate.
1509         * generated/minloc1_16_r10.c: Regenerate.
1510         * generated/minloc1_16_r16.c: Regenerate.
1511         * generated/minloc1_16_r4.c: Regenerate.
1512         * generated/minloc1_16_r8.c: Regenerate.
1513         * generated/minloc1_4_i1.c: Regenerate.
1514         * generated/minloc1_4_i16.c: Regenerate.
1515         * generated/minloc1_4_i2.c: Regenerate.
1516         * generated/minloc1_4_i4.c: Regenerate.
1517         * generated/minloc1_4_i8.c: Regenerate.
1518         * generated/minloc1_4_r10.c: Regenerate.
1519         * generated/minloc1_4_r16.c: Regenerate.
1520         * generated/minloc1_4_r4.c: Regenerate.
1521         * generated/minloc1_4_r8.c: Regenerate.
1522         * generated/minloc1_8_i1.c: Regenerate.
1523         * generated/minloc1_8_i16.c: Regenerate.
1524         * generated/minloc1_8_i2.c: Regenerate.
1525         * generated/minloc1_8_i4.c: Regenerate.
1526         * generated/minloc1_8_i8.c: Regenerate.
1527         * generated/minloc1_8_r10.c: Regenerate.
1528         * generated/minloc1_8_r16.c: Regenerate.
1529         * generated/minloc1_8_r4.c: Regenerate.
1530         * generated/minloc1_8_r8.c: Regenerate.
1531         * generated/minval_i1.c: Regenerate.
1532         * generated/minval_i16.c: Regenerate.
1533         * generated/minval_i2.c: Regenerate.
1534         * generated/minval_i4.c: Regenerate.
1535         * generated/minval_i8.c: Regenerate.
1536         * generated/minval_r10.c: Regenerate.
1537         * generated/minval_r16.c: Regenerate.
1538         * generated/minval_r4.c: Regenerate.
1539         * generated/minval_r8.c: Regenerate.
1540         * generated/misc_specifics.F90: Regenerate.
1541         * generated/nearest_r10.c: Regenerate.
1542         * generated/nearest_r16.c: Regenerate.
1543         * generated/nearest_r4.c: Regenerate.
1544         * generated/nearest_r8.c: Regenerate.
1545         * generated/pack_c10.c: Regenerate.
1546         * generated/pack_c16.c: Regenerate.
1547         * generated/pack_c4.c: Regenerate.
1548         * generated/pack_c8.c: Regenerate.
1549         * generated/pack_i1.c: Regenerate.
1550         * generated/pack_i16.c: Regenerate.
1551         * generated/pack_i2.c: Regenerate.
1552         * generated/pack_i4.c: Regenerate.
1553         * generated/pack_i8.c: Regenerate.
1554         * generated/pack_r10.c: Regenerate.
1555         * generated/pack_r16.c: Regenerate.
1556         * generated/pack_r4.c: Regenerate.
1557         * generated/pack_r8.c: Regenerate.
1558         * generated/pow_c10_i16.c: Regenerate.
1559         * generated/pow_c10_i4.c: Regenerate.
1560         * generated/pow_c10_i8.c: Regenerate.
1561         * generated/pow_c16_i16.c: Regenerate.
1562         * generated/pow_c16_i4.c: Regenerate.
1563         * generated/pow_c16_i8.c: Regenerate.
1564         * generated/pow_c4_i16.c: Regenerate.
1565         * generated/pow_c4_i4.c: Regenerate.
1566         * generated/pow_c4_i8.c: Regenerate.
1567         * generated/pow_c8_i16.c: Regenerate.
1568         * generated/pow_c8_i4.c: Regenerate.
1569         * generated/pow_c8_i8.c: Regenerate.
1570         * generated/pow_i16_i16.c: Regenerate.
1571         * generated/pow_i16_i4.c: Regenerate.
1572         * generated/pow_i16_i8.c: Regenerate.
1573         * generated/pow_i4_i16.c: Regenerate.
1574         * generated/pow_i4_i4.c: Regenerate.
1575         * generated/pow_i4_i8.c: Regenerate.
1576         * generated/pow_i8_i16.c: Regenerate.
1577         * generated/pow_i8_i4.c: Regenerate.
1578         * generated/pow_i8_i8.c: Regenerate.
1579         * generated/pow_r10_i16.c: Regenerate.
1580         * generated/pow_r10_i8.c: Regenerate.
1581         * generated/pow_r16_i16.c: Regenerate.
1582         * generated/pow_r16_i8.c: Regenerate.
1583         * generated/pow_r4_i16.c: Regenerate.
1584         * generated/pow_r4_i8.c: Regenerate.
1585         * generated/pow_r8_i16.c: Regenerate.
1586         * generated/pow_r8_i8.c: Regenerate.
1587         * generated/product_c10.c: Regenerate.
1588         * generated/product_c16.c: Regenerate.
1589         * generated/product_c4.c: Regenerate.
1590         * generated/product_c8.c: Regenerate.
1591         * generated/product_i1.c: Regenerate.
1592         * generated/product_i16.c: Regenerate.
1593         * generated/product_i2.c: Regenerate.
1594         * generated/product_i4.c: Regenerate.
1595         * generated/product_i8.c: Regenerate.
1596         * generated/product_r10.c: Regenerate.
1597         * generated/product_r16.c: Regenerate.
1598         * generated/product_r4.c: Regenerate.
1599         * generated/product_r8.c: Regenerate.
1600         * generated/reshape_c10.c: Regenerate.
1601         * generated/reshape_c16.c: Regenerate.
1602         * generated/reshape_c4.c: Regenerate.
1603         * generated/reshape_c8.c: Regenerate.
1604         * generated/reshape_i16.c: Regenerate.
1605         * generated/reshape_i4.c: Regenerate.
1606         * generated/reshape_i8.c: Regenerate.
1607         * generated/reshape_r10.c: Regenerate.
1608         * generated/reshape_r16.c: Regenerate.
1609         * generated/reshape_r4.c: Regenerate.
1610         * generated/reshape_r8.c: Regenerate.
1611         * generated/rrspacing_r10.c: Regenerate.
1612         * generated/rrspacing_r16.c: Regenerate.
1613         * generated/rrspacing_r4.c: Regenerate.
1614         * generated/rrspacing_r8.c: Regenerate.
1615         * generated/set_exponent_r10.c: Regenerate.
1616         * generated/set_exponent_r16.c: Regenerate.
1617         * generated/set_exponent_r4.c: Regenerate.
1618         * generated/set_exponent_r8.c: Regenerate.
1619         * generated/shape_i16.c: Regenerate.
1620         * generated/shape_i4.c: Regenerate.
1621         * generated/shape_i8.c: Regenerate.
1622         * generated/spacing_r10.c: Regenerate.
1623         * generated/spacing_r16.c: Regenerate.
1624         * generated/spacing_r4.c: Regenerate.
1625         * generated/spacing_r8.c: Regenerate.
1626         * generated/spread_c10.c: Regenerate.
1627         * generated/spread_c16.c: Regenerate.
1628         * generated/spread_c4.c: Regenerate.
1629         * generated/spread_c8.c: Regenerate.
1630         * generated/spread_i1.c: Regenerate.
1631         * generated/spread_i16.c: Regenerate.
1632         * generated/spread_i2.c: Regenerate.
1633         * generated/spread_i4.c: Regenerate.
1634         * generated/spread_i8.c: Regenerate.
1635         * generated/spread_r10.c: Regenerate.
1636         * generated/spread_r16.c: Regenerate.
1637         * generated/spread_r4.c: Regenerate.
1638         * generated/spread_r8.c: Regenerate.
1639         * generated/sum_c10.c: Regenerate.
1640         * generated/sum_c16.c: Regenerate.
1641         * generated/sum_c4.c: Regenerate.
1642         * generated/sum_c8.c: Regenerate.
1643         * generated/sum_i1.c: Regenerate.
1644         * generated/sum_i16.c: Regenerate.
1645         * generated/sum_i2.c: Regenerate.
1646         * generated/sum_i4.c: Regenerate.
1647         * generated/sum_i8.c: Regenerate.
1648         * generated/sum_r10.c: Regenerate.
1649         * generated/sum_r16.c: Regenerate.
1650         * generated/sum_r4.c: Regenerate.
1651         * generated/sum_r8.c: Regenerate.
1652         * generated/transpose_c10.c: Regenerate.
1653         * generated/transpose_c16.c: Regenerate.
1654         * generated/transpose_c4.c: Regenerate.
1655         * generated/transpose_c8.c: Regenerate.
1656         * generated/transpose_i16.c: Regenerate.
1657         * generated/transpose_i4.c: Regenerate.
1658         * generated/transpose_i8.c: Regenerate.
1659         * generated/transpose_r10.c: Regenerate.
1660         * generated/transpose_r16.c: Regenerate.
1661         * generated/transpose_r4.c: Regenerate.
1662         * generated/transpose_r8.c: Regenerate.
1663         * generated/unpack_c10.c: Regenerate.
1664         * generated/unpack_c16.c: Regenerate.
1665         * generated/unpack_c4.c: Regenerate.
1666         * generated/unpack_c8.c: Regenerate.
1667         * generated/unpack_i1.c: Regenerate.
1668         * generated/unpack_i16.c: Regenerate.
1669         * generated/unpack_i2.c: Regenerate.
1670         * generated/unpack_i4.c: Regenerate.
1671         * generated/unpack_i8.c: Regenerate.
1672         * generated/unpack_r10.c: Regenerate.
1673         * generated/unpack_r16.c: Regenerate.
1674         * generated/unpack_r4.c: Regenerate.
1675         * generated/unpack_r8.c: Regenerate.
1676
1677 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
1678
1679         * io/open.c (already_open): Test for POSIX close return value.
1680         * io/unit.c (close_unit_1): Likewise.
1681         * io/unix.c (raw_close): Return 0 for success for preconnected units.
1682
1683 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
1684
1685         * runtime/string.c (compare0): Use gfc_charlen_type.
1686         * runtime/error.c (gfc_itoa): Move to io/write.c
1687         (xtoa): Rename to gfc_xtoa.
1688         * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
1689         * intrinsics/cshift0.c (cshift0): Use index_type for shift arg.
1690         * intrinsics/date_and_time.c (date_and_time): Use index_type.
1691         (itime_i4): Likewise.
1692         (itime_i8): Likewise.
1693         (idate_i4): Likewise.
1694         (idate_i8): Likewise.
1695         (gmtime_i4): Likewise.
1696         (gmtime_i8): Likewise.
1697         (ltime_i4): Likewise.
1698         (ltime_i8): Likewise.
1699         * libgfortran.h (gfc_itoa): Remove prototype.
1700         (xtoa): Rename prototype to gfc_xtoa.
1701         * io/list_read.c (nml_read_obj): Use size_t for string length.
1702         * io/transfer.c (read_block_direct): Change nbytes arg from
1703         pointer to value.
1704         (unformatted_read): Minor cleanup, call read_block_directly properly.
1705         (skip_record): Use ssize_t.
1706         (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
1707         (iolength_transfer): Make sure to multiply before cast.
1708         * io/intrinsics.c (fgetc): Remove unnecessary variable.
1709         * io/format.c (format_hash): Use gfc_charlen_type.
1710         * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
1711         make static.
1712         (write_i): Call with pointer to itoa.
1713         (write_z): Call with pointer to gfc_xtoa.
1714         (write_integer): Pointer to itoa.
1715         (nml_write_obj): Type cleanup, don't call strlen in loop.
1716         
1717 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1718
1719         PR libgfortran/39664
1720         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
1721         STDERR_FILENO nor STDIN_FILENO.
1722
1723 2009-04-06  David Edelsohn  <edelsohn@gnu.org>
1724         
1725         * io/io.h (struct stream): Rename truncate to trunc.
1726         (struncate): Same.
1727         * io/unix.c (raw_init): Rename truncate to trunc.
1728         (buf_init): Same.
1729         (open_internal): Same.
1730         
1731 2009-04-05  Daniel Kraft  <d@domob.eu>
1732
1733         PR fortran/38654
1734         * io/read.c (read_f): Reworked to speed up floating point parsing.
1735         (convert_real): Use pointer-casting instead of memcpy and temporaries.
1736
1737 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1738
1739         PR libfortran/37754
1740         * io/io.h (format_hash_entry): New structure for hash table.
1741         (format_hash_table): The hash table itself.
1742         (free_format_data): Revise function prototype.
1743         (free_format_hash_table, init_format_hash,
1744         free_format_hash): New function prototypes.
1745         * io/unit.c (close_unit_1): Use free_format_hash_table.
1746         * io/transfer.c (st_read_done, st_write_done): Free format data if
1747         internal unit.
1748         * io/format.c (free_format_hash_table): New function that frees any
1749         memory allocated previously for cached format data.
1750         (reset_node): New static helper function to reset the format counters
1751         for a format node.
1752         (reset_fnode_counters): New static function recursively calls reset_node
1753         to traverse the fnode tree.
1754         (format_hash): New simple hash function based on XOR, probabalistic,
1755         tosses collisions.
1756         (save_parsed_format): New static function to save the parsed format
1757         data to use again.
1758         (find_parsed_format): New static function searches the hash table
1759         looking for a match.
1760         (free_format_data): Revised to accept pointer to format data rather than
1761         the dtp pointer so that the function can be used in more places.
1762         (format_lex): Editorial.
1763         (parse_format_list): Set flag used to determine of format data hashing
1764         is to be used.  Internal units are not persistent enough for this.
1765         (revert): Move to ne location in file.
1766         (parse_format): Use new functions to look for previously parsed
1767         format strings and use them rather than re-parse.  If not found, saves
1768         the parsed format data for later use.
1769         
1770 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1771
1772         PR libfortran/37754
1773         * io/transfer.c (formatted_transfer_scalar): Remove this function by
1774         factoring it into two new functions, one for read and one for write,
1775         eliminating all the conditionals for read or write mode.
1776         (formatted transfer_scalar_read): New function.
1777         (formatted transfer_scalar_write): New function.
1778         (formatted_transfer): Use new functions.
1779
1780 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
1781
1782         PR libfortran/25561 libfortran/37754
1783         * io/io.h (struct stream): Define new stream interface function
1784         pointers, and inline functions for accessing it.
1785         (struct fbuf): Use int instead of size_t, remove flushed element.
1786         (mem_alloc_w): New prototype.
1787         (mem_alloc_r): New prototype.
1788         (stream_at_bof): Remove prototype.
1789         (stream_at_eof): Remove prototype.
1790         (file_position): Remove prototype.
1791         (flush): Remove prototype.
1792         (stream_offset): Remove prototype.
1793         (unit_truncate): New prototype.
1794         (read_block_form): Change to return pointer, int* argument.
1795         (hit_eof): New prototype.
1796         (fbuf_init): Change prototype.
1797         (fbuf_reset): Change prototype.
1798         (fbuf_alloc): Change prototype.
1799         (fbuf_flush): Change prototype.
1800         (fbuf_seek): Change prototype.
1801         (fbuf_read): New prototype.
1802         (fbuf_getc_refill): New prototype.
1803         (fbuf_getc): New inline function.
1804         * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
1805         (fbuf_debug): New function.
1806         (fbuf_reset): Flush, and return position offset.
1807         (fbuf_alloc): Simplify, don't flush, just realloc.
1808         (fbuf_flush): Make usable for read mode, salvage remaining bytes.
1809         (fbuf_seek): New whence argument.
1810         (fbuf_read): New function.
1811         (fbuf_getc_refill): New function.
1812         * io/file_pos.c (formatted_backspace): Use new stream interface.
1813         (unformatted_backspace): Likewise.
1814         (st_backspace): Make sure format buffer is reset, use new stream
1815         interface, use unit_truncate.
1816         (st_endfile): Likewise.
1817         (st_rewind): Likewise.
1818         * io/intrinsics.c: Use new stream interface.
1819         * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
1820         to resize.
1821         (free_saved): Don't check u.p.scratch.
1822         (next_char): Use new stream interface, use fbuf_getc() for external files.
1823         (finish_list_read): flush format buffer.
1824         (nml_query): Update to use modified interface:s
1825         * io/open.c (test_endfile): Use new stream interface.
1826         (edit_modes): Likewise.
1827         (new_unit): Likewise, set bytes_left to 1 for stream files.
1828         * io/read.c (read_l): Use new read_block_form interface.
1829         (read_utf8): Likewise.
1830         (read_utf8_char1): Likewise.
1831         (read_default_char1): Likewise.
1832         (read_utf8_char4): Likewise.
1833         (read_default_char4): Likewise.
1834         (read_a): Likewise.
1835         (read_a_char4): Likewise.
1836         (read_decimal): Likewise.
1837         (read_radix): Likewise.
1838         (read_f): Likewise.
1839         * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
1840         usage of u.p.line_buffer.
1841         (read_block_form): Update interface to return pointer, use
1842         fbuf_read for direct access.
1843         (read_block_direct): Update to new stream interface.
1844         (write_block): Use mem_alloc_w for internal I/O.
1845         (write_buf): Update to new stream interface.
1846         (formatted_transfer_scalar): Don't use u.p.line_buffer, use
1847         fbuf_seek for external files.
1848         (us_read): Update to new stream interface.
1849         (us_write): Likewise.
1850         (data_transfer_init): Always check if we switch modes and flush.
1851         (skip_record): Use new stream interface, fix comparison.
1852         (next_record_r): Check for and reset u.p.at_eof, use new stream
1853         interface, use fbuf_getc for spacing.
1854         (write_us_marker): Update to new stream interface, don't inline.
1855         (next_record_w_unf): Likewise.
1856         (sset): New function.
1857         (next_record_w): Use new stream interface, use fbuf for printing
1858         newline.
1859         (next_record): Use new stream interface.
1860         (finalize_transfer): Remove sfree call, use new stream interface.
1861         (st_iolength_done): Don't use u.p.scratch.
1862         (st_read): Don't check for end of file.
1863         (st_read_done): Don't use u.p.scratch, use unit_truncate.
1864         (hit_eof): New function.
1865         * io/unit.c (init_units): Always init fbuf for formatted units.
1866         (update_position): Use new stream interface.
1867         (unit_truncate): New function.
1868         (finish_last_advance_record): Use fbuf to print newline.
1869         * io/unix.c: Remove unused SSIZE_MAX macro.
1870         (BUFFER_SIZE): Make static const variable rather than macro.
1871         (struct unix_stream): Remove dirty_offset, len, method,
1872         small_buffer. Order elements by decreasing size.
1873         (struct int_stream): Remove.
1874         (move_pos_offset): Remove usage of dirty_offset.
1875         (reset_stream): Remove.
1876         (do_read): Rename to raw_read, update to match new stream
1877         interface.
1878         (do_write): Rename to raw_write, update to new stream interface.
1879         (raw_seek): New function.
1880         (raw_tell): New function.
1881         (raw_truncate): New function.
1882         (raw_close): New function.
1883         (raw_flush): New function.
1884         (raw_init): New function.
1885         (fd_alloc): Remove.
1886         (fd_alloc_r_at): Remove.
1887         (fd_alloc_w_at): Remove.
1888         (fd_sfree): Remove.
1889         (fd_seek): Remove.
1890         (fd_truncate): Remove.
1891         (fd_sset): Remove.
1892         (fd_read): Remove.
1893         (fd_write): Remove.
1894         (fd_close): Remove.
1895         (fd_open): Remove.
1896         (fd_flush): Rename to buf_flush, update to new stream interface
1897         and unix_stream.
1898         (buf_read): New function.
1899         (buf_write): New function.
1900         (buf_seek): New function.
1901         (buf_tell): New function.
1902         (buf_truncate): New function.
1903         (buf_close): New function.
1904         (buf_init): New function.
1905         (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
1906         (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
1907         (mem_read): Change to match new stream interface.
1908         (mem_write): Likewise.
1909         (mem_seek): Likewise.
1910         (mem_tell): Likewise.
1911         (mem_truncate): Likewise.
1912         (mem_close): Likewise.
1913         (mem_flush): New function.
1914         (mem_sfree): Remove.
1915         (empty_internal_buffer): Cast to correct type.
1916         (open_internal): Use correct type, init function pointers.
1917         (fd_to_stream): Test whether to open file as buffered or raw.
1918         (output_stream): Remove mode set.
1919         (error_stream): Likewise.
1920         (flush_all_units_1): Use new stream interface.
1921         (flush_all_units): Likewise.
1922         (stream_at_bof): Remove.
1923         (stream_at_eof): Remove.
1924         (file_position): Remove.
1925         (file_length): Update logic to use stream interface.
1926         (flush): Remove.
1927         (stream_offset): Remove.
1928         * io/write.c (write_utf8_char4): Use int instead of size_t.
1929         (write_x): Extra safety check.
1930         (namelist_write_newline): Use new stream interface.
1931
1932 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1933
1934         PR fortran/33595
1935         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
1936         Revise checks to round up.
1937         (roundf): Likewise.
1938
1939 2009-03-28  Daniel Kraft  <d@domob.eu>
1940
1941         * intrinsics/string_intrinsics.c: #include <assert.h>
1942         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
1943         instead of calculating the length directly.
1944         (string_len_trim): For KIND=1, speed search up.
1945
1946 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1947
1948         PR libfortran/39528
1949         * io/list_read.c (list_formatted_read_scalar): Move check for read
1950         completion to just after the check for a repeated value.
1951
1952 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1953
1954         PR libfortran/39402
1955         * io/write_float.def (output_float): Handle F0.d formatting correctly
1956         for any d when value is 0.0.
1957
1958 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1959
1960         * configure: Regenerate.
1961
1962 2009-01-21  Daniel Kraft  <d@domob.eu>
1963
1964         PR fortran/38887
1965         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
1966         abort when called with empty array.
1967         * m4/in_unpack.m4:  Ditto.
1968         * generated/in_unpack_i1.c:  Regenerated.
1969         * generated/in_unpack_i2.c:  Regenerated.
1970         * generated/in_unpack_i4.c:  Regenerated.
1971         * generated/in_unpack_i8.c:  Regenerated.
1972         * generated/in_unpack_i16.c: Regenerated.
1973         * generated/in_unpack_r4.c:  Regenerated.
1974         * generated/in_unpack_r8.c:  Regenerated.
1975         * generated/in_unpack_r10.c: Regenerated.
1976         * generated/in_unpack_r16.c: Regenerated.
1977         * generated/in_unpack_c4.c:  Regenerated.
1978         * generated/in_unpack_c8.c:  Regenerated.
1979         * generated/in_unpack_c10.c: Regenerated.
1980         * generated/in_unpack_c16.c: Regenerated.
1981
1982 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1983
1984         PR libfortran/38772
1985         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
1986         allowing proper digit testing. White space fix.
1987
1988 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1989
1990         PR libfortran/38735
1991         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
1992         internal units.
1993
1994 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1995
1996         PR fortran/31832
1997         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
1998         broken powf.
1999         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
2000         * intrinsics/c99_functions.c: Use internal powf implementation if
2001         HAVE_BROKEN_POWF is defined.
2002         * configure: Rebuilt.
2003         * config.h.in: Rebuilt.
2004
2005 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2006
2007         PR libfortran/37472
2008         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
2009         to avoid sensitivity to round-off.
2010
2011 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2012
2013         PR libfortran/38398
2014         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
2015         suppress blanks for g0 formatting.
2016         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
2017         for g0 formatting.
2018         * io.c (write.c): Do not use ES formatting and use new bit to suppress
2019         blanks.
2020         * io/write_float.def (output_float): Adjust the location of setting the
2021         width so that it can be adjusted when suppressing blanks.  Set number of
2022         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
2023         clean-up and add some white space for readability.
2024         
2025 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2026
2027         * configure: Regenerate.
2028
2029 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2030
2031         PR libfortran/38504
2032         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
2033         returned by gfc_itoa.
2034
2035 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2036
2037         PR libfortran/38430
2038         * io/transfer.c (data_transfer_init): Move constraint check for REC=
2039         and STREAM access into condition for other REC= constraints to simplify.
2040         Comment out this constraint to avoid breaking compatibility with 4.3
2041         until later.  Added a TODO for above comment and this one.
2042         Fix test for max pos.
2043
2044 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2045
2046         PR libfortran/38291
2047         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
2048         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
2049         comment.
2050
2051 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
2052
2053         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
2054
2055 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2056
2057         PR libfortran/38291
2058         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
2059         Add check for unit opened with ACCESS="stream". Flush and seek if
2060         current stream position does not match. Check ENDFILE on read.
2061
2062 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2063
2064         PR fortran/38285
2065         * write_float.def (WRITE_FLOAT): Zero the float value for special case
2066         only if scale_factor = 0.
2067         
2068 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
2069
2070         PR libfortran/38234
2071         * intrinsics/reshape_generic.c (reshape_internal):
2072         Source can be larger than shape.
2073         * m4/reshape.m4:  Likewise.
2074         * generated/reshape_c10.c Regenerated.
2075         * generated/reshape_c16.c Regenerated.
2076         * generated/reshape_c4.c Regenerated.
2077         * generated/reshape_c8.c Regenerated.
2078         * generated/reshape_i16.c Regenerated.
2079         * generated/reshape_i4.c Regenerated.
2080         * generated/reshape_i8.c Regenerated.
2081         * generated/reshape_r10.c Regenerated.
2082         * generated/reshape_r16.c Regenerated.
2083         * generated/reshape_r4.c Regenerated.
2084         * generated/reshape_r8.c Regenerated.
2085
2086 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
2087
2088         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
2089         format attribute.
2090
2091
2092 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2093
2094         PR libfortran/38225
2095         * intrinsics/reshape_generic.c (reshape_internal):
2096         Use all dimensions of source for bounds checking.
2097         * m4/reshape.m4:  Likewise.
2098         * generated/reshape_c10.c Regenerated.
2099         * generated/reshape_c16.c Regenerated.
2100         * generated/reshape_c4.c Regenerated.
2101         * generated/reshape_c8.c Regenerated.
2102         * generated/reshape_i16.c Regenerated.
2103         * generated/reshape_i4.c Regenerated.
2104         * generated/reshape_i8.c Regenerated.
2105         * generated/reshape_r10.c Regenerated.
2106         * generated/reshape_r16.c Regenerated.
2107         * generated/reshape_r4.c Regenerated.
2108         * generated/reshape_r8.c Regenerated.
2109
2110 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
2111
2112         PR libfortran/37839
2113         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
2114         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
2115         (st_parameter_inquire): Reorder and fix types of round, sign and
2116         pending fields.
2117         (st_parameter_43, st_parameter_44): Removed.
2118         (st_parameter_dt): Put back struct definition directly to u.p
2119         declaration.  Change type of u.p.size_used from gfc_offset to
2120         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
2121         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
2122         pad, round and sign fields after the union.
2123         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
2124         flags2 if it is defined.
2125         * io/transfer.c (read_sf, read_block_form, write_block): Cast
2126         additions to size_used to GFC_IO_INT instead of gfc_offset.
2127         (data_transfer_init): Clear whole u.p struct.  Adjust
2128         for moving id, pos, asynchronous, blank, decimal, delim, pad,
2129         round and sign fields from u.p directly into st_parameter_dt.
2130         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
2131         * io/file_pos.c (st_endfile): Clear whole u.p struct.
2132
2133 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2134
2135         PR libfortran/37472
2136         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
2137         G format specification to F format.
2138
2139 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2140
2141         PR libfortran/38135
2142         * m4/reshape.m4:  Correct bounds checking when PAD is present.
2143         Treat PAD as if it were SOURCE when SOURCE is empty.
2144         * intrinsics/reshape_generic.c:  Likewise.
2145         * generated/reshape_c10.c Regenerated.
2146         * generated/reshape_c16.c Regenerated.
2147         * generated/reshape_c4.c Regenerated.
2148         * generated/reshape_c8.c Regenerated.
2149         * generated/reshape_i16.c Regenerated.
2150         * generated/reshape_i4.c Regenerated.
2151         * generated/reshape_i8.c Regenerated.
2152         * generated/reshape_r10.c Regenerated.
2153         * generated/reshape_r16.c Regenerated.
2154         * generated/reshape_r4.c Regenerated.
2155         * generated/reshape_r8.c Regenerated.
2156
2157 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2158
2159         PR libfortran/38097
2160         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
2161         conditions for BZ/BN.
2162         * io/unit.c (get_internal_unit): Initialize flags.blank.
2163         * io/transfer.c (data_transfer_init): Fix whitespace.
2164
2165 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2166
2167         PR libfortran/37294
2168         * io/write.c (namelist_write_newline): Use array loop specification to
2169         advance to next internal array unit record. (namelist_write): Adjust to
2170         accomodate the internal array unit behavior.
2171
2172 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
2173
2174         PR fortran/37159
2175         * intrinsics/random.c: Added comment to adapt check.c, should
2176         kiss_size change.
2177         Few cosmetic changes to existing comments.
2178
2179 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2180
2181         PR libfortran/37707
2182         * io/list_read.c (read_character): Remove code to look ahead in namelist
2183         reads to descriminate non-delimited strings from namelist objects.
2184         * io/write.c (namelist_write): Delimit character strings with quote or
2185         apostrophe, defaulting to quote.
2186
2187 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2188
2189         PR libfortran/34670
2190         * intrinsics/transpose_generic.c:  Implement bounds checking.
2191         * m4/transpose.m4:  Likewise.
2192         * generated/transpose_c8.c: Regenerated.
2193         * generated/transpose_c16.c: Regenerated.
2194         * generated/transpose_r10.c: Regenerated.
2195         * generated/transpose_i8.c: Regenerated.
2196         * generated/transpose_c10.c: Regenerated.
2197         * generated/transpose_r4.c: Regenerated.
2198         * generated/transpose_c4.c: Regenerated.
2199         * generated/transpose_i16.c: Regenerated.
2200         * generated/transpose_i4.c: Regenerated.
2201         * generated/transpose_r8.c: Regenerated.
2202         * generated/transpose_r16.c: Regenerated.
2203
2204 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2205
2206         PR libfortran/37834
2207         * io/write_float.def (output_float): Emit '0.' for special case of
2208         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
2209
2210 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2211
2212         PR libfortran/37863
2213         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
2214         * io/io.h (st_parameter_44): Fix id type declaration.
2215
2216 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2217
2218         * io/file_pos.c (unformatted_backspace): Normal case is
2219         GFC_CONVERT_NATIVE.
2220         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
2221         as unlikely.
2222         (readl_block_form):  Likewise.
2223         (read_block_direct):  Likewise.
2224         (write_block):  Likewise.
2225         (write_buf):  Likewise.
2226         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
2227         (next_record_w_unf):  Mark paths leading to generate_error()
2228         as unlikely.
2229
2230 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2231
2232         PR libfortran/34670
2233         * generated/spread_r4.c: Regenerated.
2234
2235 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2236
2237         PR libfortran/34670
2238         * intrinsics/reshape_generic.c:  Add bounds checking.
2239         * m4/reshape.m4:  Likewise.
2240         * generated/reshape_c10.c: Regenerated.
2241         * generated/reshape_c16.c: Regenerated.
2242         * generated/reshape_c4.c: Regenerated.
2243         * generated/reshape_c8.c: Regenerated.
2244         * generated/reshape_i16.c: Regenerated.
2245         * generated/reshape_i4.c: Regenerated.
2246         * generated/reshape_i8.c: Regenerated.
2247         * generated/reshape_r10.c: Regenerated.
2248         * generated/reshape_r16.c: Regenerated.
2249         * generated/reshape_r4.c: Regenerated.
2250         * generated/reshape_r8.c: Regenerated.
2251         * generated/spread_r4.c: Regenerated.
2252
2253 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2254
2255         PR libfortran/37083
2256         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
2257         (finish_list_read): Add EOF check.
2258
2259 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2260
2261         PR libfortran/37753
2262         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
2263         is the usual case.  Check for kind==1 for non-byte-reversing
2264         operation.
2265         (unformatted_write):  Likewise.
2266
2267 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2268
2269         PR libfortran/37707
2270         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
2271         is greater than zero, call nml_object_read with the first object rather
2272         than the sub-object.
2273
2274 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2275             Steve Ellcey  <sje@cup.hp.com>
2276
2277         * configure: Regenerate for new libtool.
2278         * Makefile.in: Ditto.
2279
2280 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2281
2282         PR libfortran/37498
2283         * list_read.c (eat_separator): Revert previous patch and move
2284         delim_status, decimal_status, and pad_status to gfc_unit.
2285         (parse_real): Ditto. (read_real): Ditto.
2286         * read.c (read_a): Likewise. (read_a_char4): Likewise.
2287         (read_f): Likewise.
2288         * inquire.c (inquire_via_unit): Add missing check for
2289         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
2290         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
2291         to gfc_unit.
2292         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
2293         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
2294         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
2295         (write_character): Ditto. (write_real_g0): Ditto.
2296         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
2297         (namelist_write): Ditto.
2298         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
2299
2300 2008-09-24  Tobias Burnus  <burnus@net-b.de>
2301
2302         * runtime/compile_options.c (init_compile_options):
2303         Sync flags with front end.
2304
2305 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2306
2307         PR libfortran/37498
2308         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
2309         area.
2310         * list_read.c (eat_separator): Only access F2003 I/O parameters if
2311         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
2312         (read_real): Ditto.
2313         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
2314         strictly necessary. (read_f): Likewise.
2315         * io.h (unit_sign_s): New enumerator to allow duplication of
2316         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
2317         (st_parameter_43): New structure copied from 4.3 version of 
2318         st_paramater_dt private section. (st_parameter_44): New structure with
2319         F2003 items added. (st_parameter_dt): Modified to create union of new
2320         and old structures to allow correct memory setting for 4.3 ABI
2321         compatibility. Bumped the pad size.
2322         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
2323         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
2324         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
2325         add comment, fix formatting.
2326         * write.c (write_default_char4): Likewise though not strictly necessary.
2327         (write_utf8_char4): Ditto. (write_character): Ditto.
2328         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
2329         (nml_write_obj): Ditto. (namelist_write): Ditto.
2330         * write_float.def (calculate_sign): Eliminate warning by including all
2331         cases in switch. (output_float): Output only decimal point of F2003 flag
2332         is not set.
2333
2334 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2335             H. J. Lu  <hongjiu.lu@intel.com>
2336
2337         * mk-sik-inc.sh: Make -Wunused-variable proof.
2338         * mk-srk-inc.sh: Make -Wunused-variable proof.
2339
2340 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2341
2342         * mk-kinds-h.sh: Make -Wunused-variable proof.
2343
2344 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2345
2346         PR fortran/37203
2347         * intrinsics/reshape_generic.c:  Add checking on
2348         out-of-bounds and duplicate values of order argument.
2349         * m4/reshape.m4:  Likewise.
2350         * generated/reshape_c10.c: Regenerated.
2351         * generated/reshape_c16.c: Regenerated.
2352         * generated/reshape_c4.c: Regenerated.
2353         * generated/reshape_c8.c: Regenerated.
2354         * generated/reshape_i16.c: Regenerated.
2355         * generated/reshape_i4.c: Regenerated.
2356         * generated/reshape_i8.c: Regenerated.
2357         * generated/reshape_r10.c: Regenerated.
2358         * generated/reshape_r16.c: Regenerated.
2359         * generated/reshape_r4.c: Regenerated.
2360         * generated/reshape_r8.c: Regenerated.
2361
2362 2008-09-06  Tobias Burnus  <burnus@net-b.de>
2363
2364         * libgfortran.h (likely,unlikely): New makros.
2365         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
2366         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
2367         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
2368         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
2369         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
2370         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
2371         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
2372
2373         * generated/minval_r8.c: Regenerated.
2374         * generated/spread_r10.c: Regenerated.
2375         * generated/minloc1_16_r16.c: Regenerated.
2376         * generated/maxloc1_4_r8.c: Regenerated.
2377         * generated/sum_i8.c: Regenerated.
2378         * generated/any_l16.c: Regenerated.
2379         * generated/spread_i8.c: Regenerated.
2380         * generated/maxval_i2.c: Regenerated.
2381         * generated/any_l2.c: Regenerated.
2382         * generated/product_r4.c: Regenerated.
2383         * generated/maxloc1_8_i4.c: Regenerated.
2384         * generated/maxloc0_4_r4.c: Regenerated.
2385         * generated/all_l1.c: Regenerated.
2386         * generated/matmul_r8.c: Regenerated.
2387         * generated/product_i2.c: Regenerated.
2388         * generated/minloc0_4_r16.c: Regenerated.
2389         * generated/minloc0_4_i1.c: Regenerated.
2390         * generated/maxloc0_4_r16.c: Regenerated.
2391         * generated/maxloc0_4_i2.c: Regenerated.
2392         * generated/minloc1_8_r16.c: Regenerated.
2393         * generated/maxloc1_8_r16.c: Regenerated.
2394         * generated/maxloc0_8_i8.c: Regenerated.
2395         * generated/sum_r16.c: Regenerated.
2396         * generated/sum_i1.c: Regenerated.
2397         * generated/minloc1_4_r8.c: Regenerated.
2398         * generated/maxloc1_16_r16.c: Regenerated.
2399         * generated/minloc1_16_i4.c: Regenerated.
2400         * generated/maxloc1_16_i4.c: Regenerated.
2401         * generated/minloc0_16_i8.c: Regenerated.
2402         * generated/spread_i1.c: Regenerated.
2403         * generated/maxloc0_16_i8.c: Regenerated.
2404         * generated/maxval_r16.c: Regenerated.
2405         * generated/product_c10.c: Regenerated.
2406         * generated/minloc1_8_i4.c: Regenerated.
2407         * generated/minloc0_16_i16.c: Regenerated.
2408         * generated/matmul_r16.c: Regenerated.
2409         * generated/minloc0_4_r4.c: Regenerated.
2410         * generated/all_l2.c: Regenerated.
2411         * generated/product_c4.c: Regenerated.
2412         * generated/sum_r4.c: Regenerated.
2413         * generated/minloc0_4_i2.c: Regenerated.
2414         * generated/spread_c10.c: Regenerated.
2415         * generated/maxloc0_8_i1.c: Regenerated.
2416         * generated/spread_r4.c: Regenerated.
2417         * generated/minloc0_8_i8.c: Regenerated.
2418         * generated/matmul_c8.c: Regenerated.
2419         * generated/all_l16.c: Regenerated.
2420         * generated/minloc1_16_r10.c: Regenerated.
2421         * generated/sum_i2.c: Regenerated.
2422         * generated/minloc0_16_i1.c: Regenerated.
2423         * generated/maxloc0_16_i1.c: Regenerated.
2424         * generated/maxloc1_8_r8.c: Regenerated.
2425         * generated/minval_i16.c: Regenerated.
2426         * generated/spread_i2.c: Regenerated.
2427         * generated/maxval_i4.c: Regenerated.
2428         * generated/minval_i8.c: Regenerated.
2429         * generated/any_l4.c: Regenerated.
2430         * generated/maxloc1_4_i8.c: Regenerated.
2431         * generated/maxloc0_16_i16.c: Regenerated.
2432         * generated/maxloc0_8_r4.c: Regenerated.
2433         * generated/minloc1_4_i16.c: Regenerated.
2434         * generated/maxloc1_4_i16.c: Regenerated.
2435         * generated/minloc0_4_r10.c: Regenerated.
2436         * generated/minloc0_8_i16.c: Regenerated.
2437         * generated/maxloc0_4_r10.c: Regenerated.
2438         * generated/maxloc0_8_i16.c: Regenerated.
2439         * generated/minloc1_8_r10.c: Regenerated.
2440         * generated/product_i4.c: Regenerated.
2441         * generated/minloc0_16_r4.c: Regenerated.
2442         * generated/sum_c16.c: Regenerated.
2443         * generated/maxloc1_8_r10.c: Regenerated.
2444         * generated/maxloc0_16_r4.c: Regenerated.
2445         * generated/minloc1_16_r8.c: Regenerated.
2446         * generated/minloc0_8_i1.c: Regenerated.
2447         * generated/maxloc0_4_i4.c: Regenerated.
2448         * generated/maxloc1_16_r8.c: Regenerated.
2449         * generated/maxloc0_8_i2.c: Regenerated.
2450         * generated/sum_r10.c: Regenerated.
2451         * generated/count_4_l.c: Regenerated.
2452         * generated/sum_c4.c: Regenerated.
2453         * generated/count_8_l.c: Regenerated.
2454         * generated/maxloc1_16_r10.c: Regenerated.
2455         * generated/matmul_i8.c: Regenerated.
2456         * generated/minloc0_16_i2.c: Regenerated.
2457         * generated/minloc1_8_r8.c: Regenerated.
2458         * generated/maxloc0_16_i2.c: Regenerated.
2459         * generated/spread_c4.c: Regenerated.
2460         * generated/matmul_c16.c: Regenerated.
2461         * generated/maxval_r10.c: Regenerated.
2462         * generated/minval_i1.c: Regenerated.
2463         * generated/maxloc1_4_i1.c: Regenerated.
2464         * generated/matmul_r10.c: Regenerated.
2465         * generated/minloc1_4_i8.c: Regenerated.
2466         * generated/minloc0_8_r4.c: Regenerated.
2467         * generated/matmul_l4.c: Regenerated.
2468         * generated/product_i16.c: Regenerated.
2469         * generated/minloc0_16_r16.c: Regenerated.
2470         * generated/all_l4.c: Regenerated.
2471         * generated/minloc0_4_i4.c: Regenerated.
2472         * generated/minloc0_8_i2.c: Regenerated.
2473         * generated/matmul_i1.c: Regenerated.
2474         * generated/minval_r4.c: Regenerated.
2475         * generated/maxloc1_4_r4.c: Regenerated.
2476         * generated/spread_i16.c: Regenerated.
2477         * generated/sum_i4.c: Regenerated.
2478         * generated/maxval_r8.c: Regenerated.
2479         * generated/spread_i4.c: Regenerated.
2480         * generated/minloc1_4_i1.c: Regenerated.
2481         * generated/minval_r16.c: Regenerated.
2482         * generated/minval_i2.c: Regenerated.
2483         * generated/maxloc1_4_i2.c: Regenerated.
2484         * generated/product_r8.c: Regenerated.
2485         * generated/maxloc1_8_i8.c: Regenerated.
2486         * generated/maxloc0_4_r8.c: Regenerated.
2487         * generated/maxloc0_16_r16.c: Regenerated.
2488         * generated/matmul_r4.c: Regenerated.
2489         * generated/sum_c10.c: Regenerated.
2490         * generated/minloc1_4_r16.c: Regenerated.
2491         * generated/maxloc1_4_r16.c: Regenerated.
2492         * generated/minloc0_8_r16.c: Regenerated.
2493         * generated/maxloc0_8_r16.c: Regenerated.
2494         * generated/count_1_l.c: Regenerated.
2495         * generated/maxloc0_8_i4.c: Regenerated.
2496         * generated/matmul_i2.c: Regenerated.
2497         * generated/minloc1_4_r4.c: Regenerated.
2498         * generated/matmul_c10.c: Regenerated.
2499         * generated/minloc0_16_i4.c: Regenerated.
2500         * generated/maxloc0_16_i4.c: Regenerated.
2501         * generated/minloc1_16_i8.c: Regenerated.
2502         * generated/maxloc1_16_i8.c: Regenerated.
2503         * generated/minloc1_4_i2.c: Regenerated.
2504         * generated/matmul_l16.c: Regenerated.
2505         * generated/maxloc1_8_i1.c: Regenerated.
2506         * generated/minloc0_16_r10.c: Regenerated.
2507         * generated/minloc1_8_i8.c: Regenerated.
2508         * generated/minloc0_4_r8.c: Regenerated.
2509         * generated/product_r16.c: Regenerated.
2510         * generated/product_c8.c: Regenerated.
2511         * generated/sum_r8.c: Regenerated.
2512         * generated/minloc0_8_i4.c: Regenerated.
2513         * generated/matmul_c4.c: Regenerated.
2514         * generated/minloc1_16_i16.c: Regenerated.
2515         * generated/spread_r8.c: Regenerated.
2516         * generated/maxloc1_8_r4.c: Regenerated.
2517         * generated/minloc1_16_i1.c: Regenerated.
2518         * generated/maxloc1_16_i1.c: Regenerated.
2519         * generated/spread_r16.c: Regenerated.
2520         * generated/minval_r10.c: Regenerated.
2521         * generated/count_16_l.c: Regenerated.
2522         * generated/minval_i4.c: Regenerated.
2523         * generated/minloc1_8_i1.c: Regenerated.
2524         * generated/maxloc1_4_i4.c: Regenerated.
2525         * generated/maxloc1_8_i2.c: Regenerated.
2526         * generated/maxval_i8.c: Regenerated.
2527         * generated/any_l8.c: Regenerated.
2528         * generated/maxloc0_16_r10.c: Regenerated.
2529         * generated/minloc0_4_i16.c: Regenerated.
2530         * generated/maxloc0_8_r8.c: Regenerated.
2531         * generated/maxloc0_4_i16.c: Regenerated.
2532         * generated/minloc1_4_r10.c: Regenerated.
2533         * generated/minloc1_8_i16.c: Regenerated.
2534         * generated/maxloc1_4_r10.c: Regenerated.
2535         * generated/maxloc1_8_i16.c: Regenerated.
2536         * generated/minloc0_8_r10.c: Regenerated.
2537         * generated/maxloc0_8_r10.c: Regenerated.
2538         * generated/minloc1_16_r4.c: Regenerated.
2539         * generated/maxloc1_16_r4.c: Regenerated.
2540         * generated/minloc0_16_r8.c: Regenerated.
2541         * generated/product_i8.c: Regenerated.
2542         * generated/maxloc0_16_r8.c: Regenerated.
2543         * generated/sum_i16.c: Regenerated.
2544         * generated/count_2_l.c: Regenerated.
2545         * generated/maxloc0_4_i8.c: Regenerated.
2546         * generated/maxloc1_16_i16.c: Regenerated.
2547         * generated/matmul_i4.c: Regenerated.
2548         * generated/minloc1_8_r4.c: Regenerated.
2549         * generated/sum_c8.c: Regenerated.
2550         * generated/minloc1_16_i2.c: Regenerated.
2551         * generated/maxloc1_16_i2.c: Regenerated.
2552         * generated/maxval_i16.c: Regenerated.
2553         * generated/spread_c8.c: Regenerated.
2554         * generated/matmul_i16.c: Regenerated.
2555         * generated/minloc1_4_i4.c: Regenerated.
2556         * generated/maxval_i1.c: Regenerated.
2557         * generated/minloc1_8_i2.c: Regenerated.
2558         * generated/any_l1.c: Regenerated.
2559         * generated/product_c16.c: Regenerated.
2560         * generated/minloc0_8_r8.c: Regenerated.
2561         * generated/matmul_l8.c: Regenerated.
2562         * generated/product_r10.c: Regenerated.
2563         * generated/product_i1.c: Regenerated.
2564         * generated/all_l8.c: Regenerated.
2565         * generated/maxloc0_4_i1.c: Regenerated.
2566         * generated/minloc0_4_i8.c: Regenerated.
2567         * generated/spread_c16.c: Regenerated.
2568         * generated/maxval_r4.c: Regenerated.
2569
2570 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2571
2572         PR libfortran/37301
2573         PR libfortran/37228
2574         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
2575         * io/transfer.c (formatted_transfer_scalar): Use new function.
2576         * io/format.c (parse_format_list): Enable g0.d.
2577         * io/write.c (write_a_char4): Delete unused var.
2578         (set_fnode_default): New function to set the default fnode w, d, and e
2579         factored from write_real. (write_real): Use new factored function.
2580         (write_real_g0): New function that sets d to that passed by g0.d format
2581         specifier and set format to ES.  Default values for w and e are used
2582         from the new function, set_fnode_default.
2583
2584 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2585
2586         * runtime/error.c: Fix cast for printf.
2587
2588 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2589
2590         PR libfortran/36895
2591         * io/write.c (namelist_write_newline): New function to correctly mark
2592         next records in both external and internal units.
2593         (nml_write_obj): Use new function.
2594         (namelist_write: Use new function.
2595
2596 2008-08-19  Tobias Burnus  <burnus@net-b.de>
2597
2598         PR libfortran/35863
2599         * io/write.c (write_a_char4): Add missing variable declaration
2600         in HAVE_CRLF block.
2601
2602 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2603
2604         PR libfortran/35863
2605         * intrinsics/selected_char_kind.c: Enable iso_10646.
2606         * io/read.c (typedef uchar): New type.
2607         (read_utf8): New function to read a single UTF-8 encoded character.
2608         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
2609         (read_default_char1): New functio to read default into KIND=1 string.
2610         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
2611         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
2612         (read_a): Modify to use the new functions.
2613         (read_a_char4): Modify to use the new functions.
2614         * io/write.c (error.h): Add include. (typedef uchar): New type.
2615         (write_default_char4): New function to default write KIND=4 string.
2616         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
2617         (write_a_char4): Modify to use new functions.
2618         (write_character): Modify to use new functions.
2619
2620 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
2621
2622         PR libfortran/37123
2623         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
2624
2625 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2626
2627         PR libfortran/36886
2628         * Makefile.am:  Added $(i_cshift0_c).
2629         Added $(i_cshift0_c) to gfor_built_specific_src.
2630         Add rule to build from cshift0.m4.
2631         * Makefile.in:  Regenerated.
2632         * libgfortran.h:  Addedd prototypes for cshift0_i1,
2633         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
2634         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
2635         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
2636         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
2637         * intrinsics/cshift0.c:  Remove helper functions for
2638         the innter shift loop.
2639         (cshift0):  Call specific functions depending on type
2640         of array argument.  Only call specific functions for
2641         correct alignment for other types.
2642         * m4/cshift0.m4:  New file.
2643         * generated/cshift0_i1.c:  New file.
2644         * generated/cshift0_i2.c:  New file.
2645         * generated/cshift0_i4.c:  New file.
2646         * generated/cshift0_i8:.c  New file.
2647         * generated/cshift0_i16.c:  New file.
2648         * generated/cshift0_r4.c:  New file.
2649         * generated/cshift0_r8.c:  New file.
2650         * generated/cshift0_r10.c:  New file.
2651         * generated/cshift0_r16.c:  New file.
2652         * generated/cshift0_c4.c:  New file.
2653         * generated/cshift0_c8.c:  New file.
2654         * generated/cshift0_c10.c:  New file.
2655         * generated/cshift0_c16.c:  New file.
2656
2657 2008-07-27  Tobias Burnus  <burnus@net-b.de>
2658
2659         PR fortran/36132
2660         PR fortran/29952
2661         PR fortran/36909
2662         * runtime/error.c: New function runtime_error_at.
2663         * gfortran.map: Ditto.
2664         * libgfortran.h: Ditto.
2665
2666 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2667
2668         PR fortran/36582
2669         * io/list_read.c: If variable rank is zero, do not adjust the found
2670         namelist object pointer.
2671
2672 2008-07-22  Daniel Kraft  <d@domob.eu>
2673
2674         PR fortran/29835
2675         * io/format.c (struct format_data):  New member error_element.
2676         (unexpected_element):  Added '%c' to message.
2677         (next_char):  Keep track of last parsed character in fmt->error_element.
2678         (format_error):  If the message is unexpected_element, output the
2679         offending character, too.
2680
2681 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2682
2683         PR libfortran/36890
2684         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
2685         signed/unsigned comparison warning in formatted_backspace.
2686
2687 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2688
2689         PR libfortran/36773
2690         * intrinsics/cshift0.c (cshift0):  Return early if size of array
2691         is zero.
2692         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
2693         return array is zero.
2694         * intrinsics/eoshift2.c (eoshift2):  Likewise.
2695         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
2696         is zero.
2697         * m4/eoshift3.m4 (eoshift3):  Likewise.
2698         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
2699         array is zero.
2700         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
2701         array is zero.
2702         * generated/cshift1_16.c: Regenerated.
2703         * generated/cshift1_4.c: Regenerated.
2704         * generated/cshift1_8.c: Regenerated.
2705         * generated/eoshift1_16.c: Regenerated.
2706         * generated/eoshift1_4.c: Regenerated.
2707         * generated/eoshift1_8.c: Regenerated.
2708         * generated/eoshift3_16.c: Regenerated.
2709         * generated/eoshift3_4.c: Regenerated.
2710         * generated/eoshift3_8.c: Regenerated.
2711
2712 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2713
2714         PR fortran/36857
2715         * io/write_float.def: Comment out locale dependent code and fix general
2716         comments.
2717         
2718 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2719
2720         PR fortran/36341
2721         PR fortran/34670
2722         * m4/matmul.m4:  Add bounds checking.
2723         * m4/matmull.m4:  Likewise.
2724         * generated/matmul_c10.c: Regenerated.
2725         * generated/matmul_c16.c: Regenerated.
2726         * generated/matmul_c4.c: Regenerated.
2727         * generated/matmul_c8.c: Regenerated.
2728         * generated/matmul_i1.c: Regenerated.
2729         * generated/matmul_i16.c: Regenerated.
2730         * generated/matmul_i2.c: Regenerated.
2731         * generated/matmul_i4.c: Regenerated.
2732         * generated/matmul_i8.c: Regenerated.
2733         * generated/matmul_l16.c: Regenerated.
2734         * generated/matmul_l4.c: Regenerated.
2735         * generated/matmul_l8.c: Regenerated.
2736         * generated/matmul_r10.c: Regenerated.
2737         * generated/matmul_r16.c: Regenerated.
2738         * generated/matmul_r4.c: Regenerated.
2739         * generated/matmul_r8.c: Regenerated.
2740
2741 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2742
2743         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
2744         variable name.
2745         * configure: Regenerate.
2746
2747 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2748
2749         PR fortran/36676
2750         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
2751         
2752 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2753
2754         PR fortran/36657
2755         * io/list_read.c (read_character): Check for '!' along with separators.
2756         (find_nml_name): Likewise and eat the comment if found.
2757
2758 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2759
2760         * configure: Regenerate.
2761
2762 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2763
2764         PR fortran/36546
2765         * io/list_read.c (eat_separator): Add tab character to condition
2766         for looping past whitespace.
2767
2768 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2769
2770         PR fortran/36515
2771         * libgfortran.h (compile_options_t): Add int range_check to structure.
2772         * runtime/compile_options.c (set_options): Add range_check option.
2773         (init_compile_options): Likewise.
2774         *io/read.c (read_decimal): Change overflow checks to include
2775         range_check.
2776         
2777 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2778
2779         PR fortran/36538
2780         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
2781         tabs.
2782
2783 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2784
2785         PR fortran/35863
2786         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
2787         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
2788         big_endian. (determine_endianness): Add endian_off and set its value
2789         according to big_endian.
2790         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
2791         * io/io.h: Add prototype declarations for new functions.
2792         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
2793         (list_formatted_read): Calculate stride based on kind for character type
2794         and use it when calling list_formatted_read_scalar.
2795         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
2796         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
2797         * io/read.c (read_a_char4): New function to handle formatted read.
2798         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
2799         (write_a_char4): New function to handle formatted write.
2800         (write_character): Modify to accept the kind parameter and adjust for
2801         endianess of the machine. (list_formatted_write): Calculate the stride
2802         resulting from the kind and adjust the list_formatted_write_scalar call
2803         accordingly. (nml_write_obj): Adjust calls to write_character.
2804         (namelist_write): Likewise.
2805         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
2806         'kind' argument to better describe what it is. Add calls to new
2807         functions for kind == 4. (formatted_transfer): Modify to handle the case
2808         of type character and kind equals 4 to pass in the kind to the transfer
2809         routines. (transfer_character_wide): Add this new function.
2810         (transfer_array): Don't set kind to the character string length. Adjust
2811         strides bases on character kind.
2812         (unformatted_read): Adjust size based on kind for character types.
2813         (unformatted_write): Likewise. (data_transfer_init): Change
2814         l8_to_l4_offset to big_endian.
2815         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
2816
2817 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2818
2819         * configure.ac (AM_CFLAGS): Remove -Werror again.
2820         * configure: Regenerate.
2821
2822 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2823
2824         PR libgfortran/36518
2825         * configure.ac (AM_CFLAGS): Add -Werror.
2826         * configure: Regenerate.
2827         * m4/ifunction_logical.m4: Cast "n" to "(int)".
2828         * generated/any_l16.c: Regenerate.
2829         * generated/any_l2.c: Regenerate.
2830         * generated/all_l1.c: Regenerate.
2831         * generated/all_l2.c: Regenerate.
2832         * generated/all_l16.c: Regenerate.
2833         * generated/any_l4.c: Regenerate.
2834         * generated/count_4_l.c: Regenerate.
2835         * generated/count_8_l.c: Regenerate.
2836         * generated/all_l4.c: Regenerate.
2837         * generated/count_1_l.c: Regenerate.
2838         * generated/count_16_l.c: Regenerate.
2839         * generated/any_l8.c: Regenerate.
2840         * generated/count_2_l.c: Regenerate.
2841         * generated/any_l1.c: Regenerate.
2842         * generated/all_l8.c: Regenerate.
2843
2844 2008-06-13  Tobias Burnus  <burnus@net-b.de>
2845
2846         PR fortran/36495
2847         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
2848         * configure: (generated) ditto.
2849         * intrinsics/dprod_r8.f90: Add "implicit none".
2850
2851 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2852
2853         PR libfortran/36420
2854         PR libfortran/36421
2855         PR libfortran/36422
2856         * io/io.h: Add prototype for write_real.
2857         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
2858         use write_real.
2859         * io/format.c: Add zero width error message. (parse_format_list): Use
2860         error message for FMT_A if followed by FMT_ZERO. Use zero width error
2861         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
2862         Fix typo in comment.
2863         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
2864         (write_l): Add wlen variable and use it if FMT_G and width is zero.
2865         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
2866         formatting. (write_real): Remove static declaration.
2867
2868 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2869
2870         PR fortran/36319
2871         * intrinsics/string_intrinsics_inc.c (string_index): Return
2872         correct value for zero-length substring.
2873         * intrinsics/cshift0.c: Add _char4 variant.
2874         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
2875         wider than a single byte. Add _char4 variant and use above
2876         functionality.
2877         * intrinsics/eoshift2.c (eoshift2): Likewise.
2878         * m4/eoshift1.m4: Likewise.
2879         * m4/eoshift3.m4: Likewise.
2880         * m4/cshift1.m4: Add _char4 variants.
2881         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
2882         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
2883         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
2884         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
2885         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
2886         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
2887         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
2888         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
2889         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
2890         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
2891         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
2892         * generated/eoshift3_4.c: Regenerate.
2893         * generated/eoshift1_8.c: Regenerate.
2894         * generated/eoshift1_16.c: Regenerate.
2895         * generated/cshift1_4.c: Regenerate.
2896         * generated/eoshift1_4.c: Regenerate.
2897         * generated/eoshift3_8.c: Regenerate.
2898         * generated/eoshift3_16.c: Regenerate.
2899         * generated/cshift1_8.c: Regenerate.
2900         * generated/cshift1_16.c: Regenerate.
2901
2902 2008-05-25  Tobias Burnus  <burnus@net-b.de>
2903
2904         PR fortran/32600
2905         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
2906         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
2907         * gfortran.map (c_f_procpointer): Remove.
2908
2909 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2910
2911         PR libgfortran/36302
2912         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
2913         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
2914         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
2915         _gfortran_cshift0_16_char.  Sort alphabetically.
2916         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
2917         * intrinsics/eoshift2.c:  Likewise.
2918         * intrinsics/cshift0.c:  Likewise.
2919
2920 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2921
2922         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
2923         pointer is restrict.
2924         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
2925         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
2926         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
2927         (spread_scalar_'rtype_code`): Likewise.
2928         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2929         * m4/eoshift1.m4 (eoshift1):  Likewise.
2930         * m4/eoshift3.m4 (eoshift3):  Likewise.
2931         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
2932         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
2933         (unpack1_'rtype_code`):  Likewise.
2934         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
2935         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
2936         * intrinsics/eoshift0.c (eoshift0):  Likewise.
2937         * intrinsics/eoshift2.c (eoshift2):  Likewise.
2938         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
2939         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
2940         * generated/eoshift1_16.c: Regenerated.
2941         * generated/eoshift1_4.c: Regenerated.
2942         * generated/eoshift1_8.c: Regenerated.
2943         * generated/eoshift3_16.c: Regenerated.
2944         * generated/eoshift3_4.c: Regenerated.
2945         * generated/eoshift3_8.c: Regenerated.
2946         * generated/in_pack_c10.c: Regenerated.
2947         * generated/in_pack_c16.c: Regenerated.
2948         * generated/in_pack_c4.c: Regenerated.
2949         * generated/in_pack_c8.c: Regenerated.
2950         * generated/in_pack_i1.c: Regenerated.
2951         * generated/in_pack_i16.c: Regenerated.
2952         * generated/in_pack_i2.c: Regenerated.
2953         * generated/in_pack_i4.c: Regenerated.
2954         * generated/in_pack_i8.c: Regenerated.
2955         * generated/in_pack_r10.c: Regenerated.
2956         * generated/in_pack_r16.c: Regenerated.
2957         * generated/in_pack_r4.c: Regenerated.
2958         * generated/in_pack_r8.c: Regenerated.
2959         * generated/in_unpack_c10.c: Regenerated.
2960         * generated/in_unpack_c16.c: Regenerated.
2961         * generated/in_unpack_c4.c: Regenerated.
2962         * generated/in_unpack_c8.c: Regenerated.
2963         * generated/in_unpack_i1.c: Regenerated.
2964         * generated/in_unpack_i16.c: Regenerated.
2965         * generated/in_unpack_i2.c: Regenerated.
2966         * generated/in_unpack_i4.c: Regenerated.
2967         * generated/in_unpack_i8.c: Regenerated.
2968         * generated/in_unpack_r10.c: Regenerated.
2969         * generated/in_unpack_r16.c: Regenerated.
2970         * generated/in_unpack_r4.c: Regenerated.
2971         * generated/in_unpack_r8.c: Regenerated.
2972         * generated/maxloc0_16_i1.c: Regenerated.
2973         * generated/maxloc0_16_i16.c: Regenerated.
2974         * generated/maxloc0_16_i2.c: Regenerated.
2975         * generated/maxloc0_16_i4.c: Regenerated.
2976         * generated/maxloc0_16_i8.c: Regenerated.
2977         * generated/maxloc0_16_r10.c: Regenerated.
2978         * generated/maxloc0_16_r16.c: Regenerated.
2979         * generated/maxloc0_16_r4.c: Regenerated.
2980         * generated/maxloc0_16_r8.c: Regenerated.
2981         * generated/maxloc0_4_i1.c: Regenerated.
2982         * generated/maxloc0_4_i16.c: Regenerated.
2983         * generated/maxloc0_4_i2.c: Regenerated.
2984         * generated/maxloc0_4_i4.c: Regenerated.
2985         * generated/maxloc0_4_i8.c: Regenerated.
2986         * generated/maxloc0_4_r10.c: Regenerated.
2987         * generated/maxloc0_4_r16.c: Regenerated.
2988         * generated/maxloc0_4_r4.c: Regenerated.
2989         * generated/maxloc0_4_r8.c: Regenerated.
2990         * generated/maxloc0_8_i1.c: Regenerated.
2991         * generated/maxloc0_8_i16.c: Regenerated.
2992         * generated/maxloc0_8_i2.c: Regenerated.
2993         * generated/maxloc0_8_i4.c: Regenerated.
2994         * generated/maxloc0_8_i8.c: Regenerated.
2995         * generated/maxloc0_8_r10.c: Regenerated.
2996         * generated/maxloc0_8_r16.c: Regenerated.
2997         * generated/maxloc0_8_r4.c: Regenerated.
2998         * generated/maxloc0_8_r8.c: Regenerated.
2999         * generated/minloc0_16_i1.c: Regenerated.
3000         * generated/minloc0_16_i16.c: Regenerated.
3001         * generated/minloc0_16_i2.c: Regenerated.
3002         * generated/minloc0_16_i4.c: Regenerated.
3003         * generated/minloc0_16_i8.c: Regenerated.
3004         * generated/minloc0_16_r10.c: Regenerated.
3005         * generated/minloc0_16_r16.c: Regenerated.
3006         * generated/minloc0_16_r4.c: Regenerated.
3007         * generated/minloc0_16_r8.c: Regenerated.
3008         * generated/minloc0_4_i1.c: Regenerated.
3009         * generated/minloc0_4_i16.c: Regenerated.
3010         * generated/minloc0_4_i2.c: Regenerated.
3011         * generated/minloc0_4_i4.c: Regenerated.
3012         * generated/minloc0_4_i8.c: Regenerated.
3013         * generated/minloc0_4_r10.c: Regenerated.
3014         * generated/minloc0_4_r16.c: Regenerated.
3015         * generated/minloc0_4_r4.c: Regenerated.
3016         * generated/minloc0_4_r8.c: Regenerated.
3017         * generated/minloc0_8_i1.c: Regenerated.
3018         * generated/minloc0_8_i16.c: Regenerated.
3019         * generated/minloc0_8_i2.c: Regenerated.
3020         * generated/minloc0_8_i4.c: Regenerated.
3021         * generated/minloc0_8_i8.c: Regenerated.
3022         * generated/minloc0_8_r10.c: Regenerated.
3023         * generated/minloc0_8_r16.c: Regenerated.
3024         * generated/minloc0_8_r4.c: Regenerated.
3025         * generated/minloc0_8_r8.c: Regenerated.
3026         * generated/pack_c10.c: Regenerated.
3027         * generated/pack_c16.c: Regenerated.
3028         * generated/pack_c4.c: Regenerated.
3029         * generated/pack_c8.c: Regenerated.
3030         * generated/pack_i1.c: Regenerated.
3031         * generated/pack_i16.c: Regenerated.
3032         * generated/pack_i2.c: Regenerated.
3033         * generated/pack_i4.c: Regenerated.
3034         * generated/pack_i8.c: Regenerated.
3035         * generated/pack_r10.c: Regenerated.
3036         * generated/pack_r16.c: Regenerated.
3037         * generated/pack_r4.c: Regenerated.
3038         * generated/pack_r8.c: Regenerated.
3039         * generated/spread_c10.c: Regenerated.
3040         * generated/spread_c16.c: Regenerated.
3041         * generated/spread_c4.c: Regenerated.
3042         * generated/spread_c8.c: Regenerated.
3043         * generated/spread_i1.c: Regenerated.
3044         * generated/spread_i16.c: Regenerated.
3045         * generated/spread_i2.c: Regenerated.
3046         * generated/spread_i4.c: Regenerated.
3047         * generated/spread_i8.c: Regenerated.
3048         * generated/spread_r10.c: Regenerated.
3049         * generated/spread_r16.c: Regenerated.
3050         * generated/spread_r4.c: Regenerated.
3051         * generated/spread_r8.c: Regenerated.
3052         * generated/transpose_c10.c: Regenerated.
3053         * generated/transpose_c16.c: Regenerated.
3054         * generated/transpose_c4.c: Regenerated.
3055         * generated/transpose_c8.c: Regenerated.
3056         * generated/transpose_i16.c: Regenerated.
3057         * generated/transpose_i4.c: Regenerated.
3058         * generated/transpose_i8.c: Regenerated.
3059         * generated/transpose_r10.c: Regenerated.
3060         * generated/transpose_r16.c: Regenerated.
3061         * generated/transpose_r4.c: Regenerated.
3062         * generated/transpose_r8.c: Regenerated.
3063         * generated/unpack_c10.c: Regenerated.
3064         * generated/unpack_c16.c: Regenerated.
3065         * generated/unpack_c4.c: Regenerated.
3066         * generated/unpack_c8.c: Regenerated.
3067         * generated/unpack_i1.c: Regenerated.
3068         * generated/unpack_i16.c: Regenerated.
3069         * generated/unpack_i2.c: Regenerated.
3070         * generated/unpack_i4.c: Regenerated.
3071         * generated/unpack_i8.c: Regenerated.
3072         * generated/unpack_r10.c: Regenerated.
3073         * generated/unpack_r16.c: Regenerated.
3074         * generated/unpack_r4.c: Regenerated.
3075         * generated/unpack_r8.c: Regenerated.
3076
3077 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3078
3079         * runtime/select.c: Moved content to select_inc.c. Include it. 
3080         Add macros for different character types.
3081         * runtime/select_inc.c: New file.
3082         * runtime/convert_char.c: New file.
3083         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
3084         functions.
3085         * intrinsics/transpose_generic.c (transpose_char4): New function.
3086         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
3087         New functions.
3088         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
3089         New functions.
3090         * intrinsics/reshape_generic.c (reshape_char): Use
3091         gfc_charlen_type as type for length variables.
3092         (reshape_char4): New function.
3093         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
3094         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
3095         _gfortran_transpose_char4, _gfortran_spread_char4,
3096         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
3097         _gfortran_pack_char4, _gfortran_pack_s_char4,
3098         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
3099         * Makefile.am: Add runtime/convert_char.c.
3100         * Makefile.in: Regenerate.
3101
3102 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
3103
3104         * io/list_read.c (list_formatted_read_scalar):  Declare
3105         type as volatile to shut up compiler warning.
3106
3107 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3108
3109         PR libfortran/25561
3110         * io/io.h (struct fbuf): Change pointer to position offset.
3111         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
3112         changes.
3113         (fbuf_reset): ptr=>pos changes.
3114         (fbuf_alloc): If the request doesn't fit, don't waste memory by
3115         keeping flushed bytes. ptr=>pos changes.
3116         (fbuf_flush): ptr=>pos changes.
3117         (fbuf_seek): Don't seek past the left tab limit, don't update active
3118         byte count.
3119         * io/open.c (new_unit): If RECL has been specified, used that as
3120         initial buffer size.
3121
3122 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3123
3124         PR libfortran/35632
3125         * io/open.c (new_unit): Set stream position to correct value.
3126
3127 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
3128
3129         PR libfortran/25561
3130         * Makefile.am: Add fbuf.c to gfor_io_src.
3131         * Makefile.in: Regenerate.
3132         * io/io.h (read_block): Remove.
3133         (struct stream): Remove alloc_r_at function pointer.
3134         (salloc_r): Remove.
3135         (salloc_r_at): Remove.
3136         (salloc_w_at): Remove.
3137         (salloc_w): Remove offset argument.
3138         (struct fbuf): New struct for format buffer.
3139         (struct gfc_unit): Add fbuf.
3140         (read_block_form): New prototype.
3141         (fbuf_init): Likewise.
3142         (fbuf_destroy): Likewise.
3143         (fbuf_reset): Likewise.
3144         (fbuf_alloc): Likewise.
3145         (fbuf_flush): Likewise.
3146         (fbuf_seek): Likewise.
3147         * io/file_pos.c (formatted_backspace): Change to use sread.
3148         (unformatted_backspace): Likewise.
3149         (st_backspace): Flush format buffer.
3150         (st_rewind): Likewise.
3151         * io/list_read.c (next_char): Likewise.
3152         (nml_query): Tidying, flush format buffer.
3153         * io/open.c (new_unit): Init format buffer.
3154         * io/read.c (read_l): Change to use read_block_form.
3155         (read_a): Likewise.
3156         (read_decimal): Likewise.
3157         (read_radix): Likewise.
3158         (read_f): Likewise.
3159         (read_x): Empty reads also for stream I/O.
3160         * io/transfer.c (read_sf): Change to use sread.
3161         (read_block): Rename to read_block_form, change prototype, use sread.
3162         (read_block_direct): Don't seek stream files.
3163         (write_block): Change to use fbuf if external file, don't seek stream
3164         files.
3165         (write_buf): Don't seek stream files.
3166         (formatted_transfer_scalar): Use fbuf for external files.
3167         (us_read): Change to use sread.
3168         (pre_position): Do nothing for stream I/O.
3169         (data_transfer_init): Flush fbuf when switching from write to read, if
3170         POS is specified, seek stream file to correct offset.
3171         (skip_record): Change to use sread.
3172         (min_off): New function.
3173         (next_record_r): Change to use sread.
3174         (next_record_w): Change to use sset/sseek, flush fbuf.
3175         (finalize_transfer): Flush fbuf.
3176         * io/unit.c (init_units): Init fbuf for stdout, stderr.
3177         (close_unit_1): Destroy fbuf.
3178         (finish_last_advance_record): Flush fbuf, no need to seek.
3179         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
3180         (fd_alloc_w_at): Likewise.
3181         (fd_read): Remove third argument to fd_alloc_r_at.
3182         (fd_write): Remove third argument to fd_alloc_w_at.
3183         (fd_sset): Likewise.
3184         (fd_open): Don't set alloc_r_at.
3185         (mem_alloc_r_at): Remove unused where argument.
3186         (mem_alloc_w_at): Likewise.
3187         (mem_read): Don't incorrectly return previous errno, remove unused
3188         third argument to alloc function.
3189         (mem_write): Likewise.
3190         (mem_set): Likewise.
3191         (open_internal): Don't set alloc_r_at pointer.
3192         * io/fbuf.c: New file.
3193
3194 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3195
3196         * libgfortran.h (gfc_char4_t): New type.
3197         (GFC_SIZE_OF_CHAR_KIND): New macro.
3198         (compare_string): Adjust prototype.
3199         (compare_string_char4): New prototype.
3200         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
3201         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
3202         _gfortran_concat_string_char4, _gfortran_string_index_char4,
3203         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
3204         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
3205         _gfortran_string_verify_char4.
3206         * intrinsics/string_intrinsics_inc.c: New file from content of
3207         string_intrinsics.c with types replaced by macros.
3208         * intrinsics/string_intrinsics.c: Move content to
3209         string_intrinsics_inc.c.
3210
3211 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3212
3213         PR libfortran/36202
3214         * io/list_read (eat_separator): Handle the CR-LF case correctly.
3215
3216 2008-05-09  Julian Brown  <julian@codesourcery.com>
3217
3218         * Makefile.am (LTLDFLAGS): New.
3219         (libgfortran_la_LDFLAGS): Use above.
3220         * Makefile.in: Regenerate.
3221
3222 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3223
3224         PR libfortran/36131
3225         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
3226         (next_record_w): Likewise.
3227
3228 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3229
3230         PR libfortran/35995
3231         * m4/ifunction_logical.m4:  If the extent of "array"
3232         is less than zero, set it to zero.  Use an explicit
3233         flag for breaking out of the main loop to avoid, because
3234         the data pointer for "array" may be NULL for an empty
3235         array.
3236         * m4/ifunction.m4:  Likewise.
3237         * generated/all_l1.c: Regenerated.
3238         * generated/all_l16.c: Regenerated.
3239         * generated/all_l2.c: Regenerated.
3240         * generated/all_l4.c: Regenerated.
3241         * generated/all_l8.c: Regenerated.
3242         * generated/any_l1.c: Regenerated.
3243         * generated/any_l16.c: Regenerated.
3244         * generated/any_l2.c: Regenerated.
3245         * generated/any_l4.c: Regenerated.
3246         * generated/any_l8.c: Regenerated.
3247         * generated/count_16_l.c: Regenerated.
3248         * generated/count_1_l.c: Regenerated.
3249         * generated/count_2_l.c: Regenerated.
3250         * generated/count_4_l.c: Regenerated.
3251         * generated/count_8_l.c: Regenerated.
3252         * generated/maxloc1_16_i1.c: Regenerated.
3253         * generated/maxloc1_16_i16.c: Regenerated.
3254         * generated/maxloc1_16_i2.c: Regenerated.
3255         * generated/maxloc1_16_i4.c: Regenerated.
3256         * generated/maxloc1_16_i8.c: Regenerated.
3257         * generated/maxloc1_16_r10.c: Regenerated.
3258         * generated/maxloc1_16_r16.c: Regenerated.
3259         * generated/maxloc1_16_r4.c: Regenerated.
3260         * generated/maxloc1_16_r8.c: Regenerated.
3261         * generated/maxloc1_4_i1.c: Regenerated.
3262         * generated/maxloc1_4_i16.c: Regenerated.
3263         * generated/maxloc1_4_i2.c: Regenerated.
3264         * generated/maxloc1_4_i4.c: Regenerated.
3265         * generated/maxloc1_4_i8.c: Regenerated.
3266         * generated/maxloc1_4_r10.c: Regenerated.
3267         * generated/maxloc1_4_r16.c: Regenerated.