OSDN Git Service

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