OSDN Git Service

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