OSDN Git Service

PR libfortran/37839
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
2
3         PR libfortran/37839
4         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
5         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
6         (st_parameter_inquire): Reorder and fix types of round, sign and
7         pending fields.
8         (st_parameter_43, st_parameter_44): Removed.
9         (st_parameter_dt): Put back struct definition directly to u.p
10         declaration.  Change type of u.p.size_used from gfc_offset to
11         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
12         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
13         pad, round and sign fields after the union.
14         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
15         flags2 if it is defined.
16         * io/transfer.c (read_sf, read_block_form, write_block): Cast
17         additions to size_used to GFC_IO_INT instead of gfc_offset.
18         (data_transfer_init): Clear whole u.p struct.  Adjust
19         for moving id, pos, asynchronous, blank, decimal, delim, pad,
20         round and sign fields from u.p directly into st_parameter_dt.
21         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
22         * io/file_pos.c (st_endfile): Clear whole u.p struct.
23
24 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
25
26         PR libfortran/37472
27         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
28         G format specification to F format.
29
30 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
31
32         PR libfortran/38135
33         * m4/reshape.m4:  Correct bounds checking when PAD is present.
34         Treat PAD as if it were SOURCE when SOURCE is empty.
35         * intrinsics/reshape_generic.c:  Likewise.
36         * generated/reshape_c10.c Regenerated.
37         * generated/reshape_c16.c Regenerated.
38         * generated/reshape_c4.c Regenerated.
39         * generated/reshape_c8.c Regenerated.
40         * generated/reshape_i16.c Regenerated.
41         * generated/reshape_i4.c Regenerated.
42         * generated/reshape_i8.c Regenerated.
43         * generated/reshape_r10.c Regenerated.
44         * generated/reshape_r16.c Regenerated.
45         * generated/reshape_r4.c Regenerated.
46         * generated/reshape_r8.c Regenerated.
47
48 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
49
50         PR libfortran/38097
51         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
52         conditions for BZ/BN.
53         * io/unit.c (get_internal_unit): Initialize flags.blank.
54         * io/transfer.c (data_transfer_init): Fix whitespace.
55
56 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
57
58         PR libfortran/37294
59         * io/write.c (namelist_write_newline): Use array loop specification to
60         advance to next internal array unit record. (namelist_write): Adjust to
61         accomodate the internal array unit behavior.
62
63 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
64
65         PR fortran/37159
66         * intrinsics/random.c: Added comment to adapt check.c, should
67         kiss_size change.
68         Few cosmetic changes to existing comments.
69
70 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
71
72         PR libfortran/37707
73         * io/list_read.c (read_character): Remove code to look ahead in namelist
74         reads to descriminate non-delimited strings from namelist objects.
75         * io/write.c (namelist_write): Delimit character strings with quote or
76         apostrophe, defaulting to quote.
77
78 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
79
80         PR libfortran/34670
81         * intrinsics/transpose_generic.c:  Implement bounds checking.
82         * m4/transpose.m4:  Likewise.
83         * generated/transpose_c8.c: Regenerated.
84         * generated/transpose_c16.c: Regenerated.
85         * generated/transpose_r10.c: Regenerated.
86         * generated/transpose_i8.c: Regenerated.
87         * generated/transpose_c10.c: Regenerated.
88         * generated/transpose_r4.c: Regenerated.
89         * generated/transpose_c4.c: Regenerated.
90         * generated/transpose_i16.c: Regenerated.
91         * generated/transpose_i4.c: Regenerated.
92         * generated/transpose_r8.c: Regenerated.
93         * generated/transpose_r16.c: Regenerated.
94
95 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
96
97         PR libfortran/37834
98         * io/write_float.def (output_float): Emit '0.' for special case of
99         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
100
101 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
102
103         PR libfortran/37863
104         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
105         * io/io.h (st_parameter_44): Fix id type declaration.
106
107 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
108
109         * io/file_pos.c (unformatted_backspace): Normal case is
110         GFC_CONVERT_NATIVE.
111         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
112         as unlikely.
113         (readl_block_form):  Likewise.
114         (read_block_direct):  Likewise.
115         (write_block):  Likewise.
116         (write_buf):  Likewise.
117         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
118         (next_record_w_unf):  Mark paths leading to generate_error()
119         as unlikely.
120
121 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
122
123         PR libfortran/34670
124         * generated/spread_r4.c: Regenerated.
125
126 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
127
128         PR libfortran/34670
129         * intrinsics/reshape_generic.c:  Add bounds checking.
130         * m4/reshape.m4:  Likewise.
131         * generated/reshape_c10.c: Regenerated.
132         * generated/reshape_c16.c: Regenerated.
133         * generated/reshape_c4.c: Regenerated.
134         * generated/reshape_c8.c: Regenerated.
135         * generated/reshape_i16.c: Regenerated.
136         * generated/reshape_i4.c: Regenerated.
137         * generated/reshape_i8.c: Regenerated.
138         * generated/reshape_r10.c: Regenerated.
139         * generated/reshape_r16.c: Regenerated.
140         * generated/reshape_r4.c: Regenerated.
141         * generated/reshape_r8.c: Regenerated.
142         * generated/spread_r4.c: Regenerated.
143
144 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
145
146         PR libfortran/37083
147         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
148         (finish_list_read): Add EOF check.
149
150 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
151
152         PR libfortran/37753
153         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
154         is the usual case.  Check for kind==1 for non-byte-reversing
155         operation.
156         (unformatted_write):  Likewise.
157
158 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
159
160         PR libfortran/37707
161         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
162         is greater than zero, call nml_object_read with the first object rather
163         than the sub-object.
164
165 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
166             Steve Ellcey  <sje@cup.hp.com>
167
168         * configure: Regenerate for new libtool.
169         * Makefile.in: Ditto.
170
171 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
172
173         PR libfortran/37498
174         * list_read.c (eat_separator): Revert previous patch and move
175         delim_status, decimal_status, and pad_status to gfc_unit.
176         (parse_real): Ditto. (read_real): Ditto.
177         * read.c (read_a): Likewise. (read_a_char4): Likewise.
178         (read_f): Likewise.
179         * inquire.c (inquire_via_unit): Add missing check for
180         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
181         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
182         to gfc_unit.
183         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
184         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
185         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
186         (write_character): Ditto. (write_real_g0): Ditto.
187         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
188         (namelist_write): Ditto.
189         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
190
191 2008-09-24  Tobias Burnus  <burnus@net-b.de>
192
193         * runtime/compile_options.c (init_compile_options):
194         Sync flags with front end.
195
196 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
197
198         PR libfortran/37498
199         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
200         area.
201         * list_read.c (eat_separator): Only access F2003 I/O parameters if
202         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
203         (read_real): Ditto.
204         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
205         strictly necessary. (read_f): Likewise.
206         * io.h (unit_sign_s): New enumerator to allow duplication of
207         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
208         (st_parameter_43): New structure copied from 4.3 version of 
209         st_paramater_dt private section. (st_parameter_44): New structure with
210         F2003 items added. (st_parameter_dt): Modified to create union of new
211         and old structures to allow correct memory setting for 4.3 ABI
212         compatibility. Bumped the pad size.
213         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
214         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
215         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
216         add comment, fix formatting.
217         * write.c (write_default_char4): Likewise though not strictly necessary.
218         (write_utf8_char4): Ditto. (write_character): Ditto.
219         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
220         (nml_write_obj): Ditto. (namelist_write): Ditto.
221         * write_float.def (calculate_sign): Eliminate warning by including all
222         cases in switch. (output_float): Output only decimal point of F2003 flag
223         is not set.
224
225 2008-09-10  Tobias Burnus  <burnus@net-b.de>
226             H. J. Lu  <hongjiu.lu@intel.com>
227
228         * mk-sik-inc.sh: Make -Wunused-variable proof.
229         * mk-srk-inc.sh: Make -Wunused-variable proof.
230
231 2008-09-10  Tobias Burnus  <burnus@net-b.de>
232
233         * mk-kinds-h.sh: Make -Wunused-variable proof.
234
235 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
236
237         PR fortran/37203
238         * intrinsics/reshape_generic.c:  Add checking on
239         out-of-bounds and duplicate values of order argument.
240         * m4/reshape.m4:  Likewise.
241         * generated/reshape_c10.c: Regenerated.
242         * generated/reshape_c16.c: Regenerated.
243         * generated/reshape_c4.c: Regenerated.
244         * generated/reshape_c8.c: Regenerated.
245         * generated/reshape_i16.c: Regenerated.
246         * generated/reshape_i4.c: Regenerated.
247         * generated/reshape_i8.c: Regenerated.
248         * generated/reshape_r10.c: Regenerated.
249         * generated/reshape_r16.c: Regenerated.
250         * generated/reshape_r4.c: Regenerated.
251         * generated/reshape_r8.c: Regenerated.
252
253 2008-09-06  Tobias Burnus  <burnus@net-b.de>
254
255         * libgfortran.h (likely,unlikely): New makros.
256         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
257         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
258         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
259         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
260         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
261         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
262         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
263
264         * generated/minval_r8.c: Regenerated.
265         * generated/spread_r10.c: Regenerated.
266         * generated/minloc1_16_r16.c: Regenerated.
267         * generated/maxloc1_4_r8.c: Regenerated.
268         * generated/sum_i8.c: Regenerated.
269         * generated/any_l16.c: Regenerated.
270         * generated/spread_i8.c: Regenerated.
271         * generated/maxval_i2.c: Regenerated.
272         * generated/any_l2.c: Regenerated.
273         * generated/product_r4.c: Regenerated.
274         * generated/maxloc1_8_i4.c: Regenerated.
275         * generated/maxloc0_4_r4.c: Regenerated.
276         * generated/all_l1.c: Regenerated.
277         * generated/matmul_r8.c: Regenerated.
278         * generated/product_i2.c: Regenerated.
279         * generated/minloc0_4_r16.c: Regenerated.
280         * generated/minloc0_4_i1.c: Regenerated.
281         * generated/maxloc0_4_r16.c: Regenerated.
282         * generated/maxloc0_4_i2.c: Regenerated.
283         * generated/minloc1_8_r16.c: Regenerated.
284         * generated/maxloc1_8_r16.c: Regenerated.
285         * generated/maxloc0_8_i8.c: Regenerated.
286         * generated/sum_r16.c: Regenerated.
287         * generated/sum_i1.c: Regenerated.
288         * generated/minloc1_4_r8.c: Regenerated.
289         * generated/maxloc1_16_r16.c: Regenerated.
290         * generated/minloc1_16_i4.c: Regenerated.
291         * generated/maxloc1_16_i4.c: Regenerated.
292         * generated/minloc0_16_i8.c: Regenerated.
293         * generated/spread_i1.c: Regenerated.
294         * generated/maxloc0_16_i8.c: Regenerated.
295         * generated/maxval_r16.c: Regenerated.
296         * generated/product_c10.c: Regenerated.
297         * generated/minloc1_8_i4.c: Regenerated.
298         * generated/minloc0_16_i16.c: Regenerated.
299         * generated/matmul_r16.c: Regenerated.
300         * generated/minloc0_4_r4.c: Regenerated.
301         * generated/all_l2.c: Regenerated.
302         * generated/product_c4.c: Regenerated.
303         * generated/sum_r4.c: Regenerated.
304         * generated/minloc0_4_i2.c: Regenerated.
305         * generated/spread_c10.c: Regenerated.
306         * generated/maxloc0_8_i1.c: Regenerated.
307         * generated/spread_r4.c: Regenerated.
308         * generated/minloc0_8_i8.c: Regenerated.
309         * generated/matmul_c8.c: Regenerated.
310         * generated/all_l16.c: Regenerated.
311         * generated/minloc1_16_r10.c: Regenerated.
312         * generated/sum_i2.c: Regenerated.
313         * generated/minloc0_16_i1.c: Regenerated.
314         * generated/maxloc0_16_i1.c: Regenerated.
315         * generated/maxloc1_8_r8.c: Regenerated.
316         * generated/minval_i16.c: Regenerated.
317         * generated/spread_i2.c: Regenerated.
318         * generated/maxval_i4.c: Regenerated.
319         * generated/minval_i8.c: Regenerated.
320         * generated/any_l4.c: Regenerated.
321         * generated/maxloc1_4_i8.c: Regenerated.
322         * generated/maxloc0_16_i16.c: Regenerated.
323         * generated/maxloc0_8_r4.c: Regenerated.
324         * generated/minloc1_4_i16.c: Regenerated.
325         * generated/maxloc1_4_i16.c: Regenerated.
326         * generated/minloc0_4_r10.c: Regenerated.
327         * generated/minloc0_8_i16.c: Regenerated.
328         * generated/maxloc0_4_r10.c: Regenerated.
329         * generated/maxloc0_8_i16.c: Regenerated.
330         * generated/minloc1_8_r10.c: Regenerated.
331         * generated/product_i4.c: Regenerated.
332         * generated/minloc0_16_r4.c: Regenerated.
333         * generated/sum_c16.c: Regenerated.
334         * generated/maxloc1_8_r10.c: Regenerated.
335         * generated/maxloc0_16_r4.c: Regenerated.
336         * generated/minloc1_16_r8.c: Regenerated.
337         * generated/minloc0_8_i1.c: Regenerated.
338         * generated/maxloc0_4_i4.c: Regenerated.
339         * generated/maxloc1_16_r8.c: Regenerated.
340         * generated/maxloc0_8_i2.c: Regenerated.
341         * generated/sum_r10.c: Regenerated.
342         * generated/count_4_l.c: Regenerated.
343         * generated/sum_c4.c: Regenerated.
344         * generated/count_8_l.c: Regenerated.
345         * generated/maxloc1_16_r10.c: Regenerated.
346         * generated/matmul_i8.c: Regenerated.
347         * generated/minloc0_16_i2.c: Regenerated.
348         * generated/minloc1_8_r8.c: Regenerated.
349         * generated/maxloc0_16_i2.c: Regenerated.
350         * generated/spread_c4.c: Regenerated.
351         * generated/matmul_c16.c: Regenerated.
352         * generated/maxval_r10.c: Regenerated.
353         * generated/minval_i1.c: Regenerated.
354         * generated/maxloc1_4_i1.c: Regenerated.
355         * generated/matmul_r10.c: Regenerated.
356         * generated/minloc1_4_i8.c: Regenerated.
357         * generated/minloc0_8_r4.c: Regenerated.
358         * generated/matmul_l4.c: Regenerated.
359         * generated/product_i16.c: Regenerated.
360         * generated/minloc0_16_r16.c: Regenerated.
361         * generated/all_l4.c: Regenerated.
362         * generated/minloc0_4_i4.c: Regenerated.
363         * generated/minloc0_8_i2.c: Regenerated.
364         * generated/matmul_i1.c: Regenerated.
365         * generated/minval_r4.c: Regenerated.
366         * generated/maxloc1_4_r4.c: Regenerated.
367         * generated/spread_i16.c: Regenerated.
368         * generated/sum_i4.c: Regenerated.
369         * generated/maxval_r8.c: Regenerated.
370         * generated/spread_i4.c: Regenerated.
371         * generated/minloc1_4_i1.c: Regenerated.
372         * generated/minval_r16.c: Regenerated.
373         * generated/minval_i2.c: Regenerated.
374         * generated/maxloc1_4_i2.c: Regenerated.
375         * generated/product_r8.c: Regenerated.
376         * generated/maxloc1_8_i8.c: Regenerated.
377         * generated/maxloc0_4_r8.c: Regenerated.
378         * generated/maxloc0_16_r16.c: Regenerated.
379         * generated/matmul_r4.c: Regenerated.
380         * generated/sum_c10.c: Regenerated.
381         * generated/minloc1_4_r16.c: Regenerated.
382         * generated/maxloc1_4_r16.c: Regenerated.
383         * generated/minloc0_8_r16.c: Regenerated.
384         * generated/maxloc0_8_r16.c: Regenerated.
385         * generated/count_1_l.c: Regenerated.
386         * generated/maxloc0_8_i4.c: Regenerated.
387         * generated/matmul_i2.c: Regenerated.
388         * generated/minloc1_4_r4.c: Regenerated.
389         * generated/matmul_c10.c: Regenerated.
390         * generated/minloc0_16_i4.c: Regenerated.
391         * generated/maxloc0_16_i4.c: Regenerated.
392         * generated/minloc1_16_i8.c: Regenerated.
393         * generated/maxloc1_16_i8.c: Regenerated.
394         * generated/minloc1_4_i2.c: Regenerated.
395         * generated/matmul_l16.c: Regenerated.
396         * generated/maxloc1_8_i1.c: Regenerated.
397         * generated/minloc0_16_r10.c: Regenerated.
398         * generated/minloc1_8_i8.c: Regenerated.
399         * generated/minloc0_4_r8.c: Regenerated.
400         * generated/product_r16.c: Regenerated.
401         * generated/product_c8.c: Regenerated.
402         * generated/sum_r8.c: Regenerated.
403         * generated/minloc0_8_i4.c: Regenerated.
404         * generated/matmul_c4.c: Regenerated.
405         * generated/minloc1_16_i16.c: Regenerated.
406         * generated/spread_r8.c: Regenerated.
407         * generated/maxloc1_8_r4.c: Regenerated.
408         * generated/minloc1_16_i1.c: Regenerated.
409         * generated/maxloc1_16_i1.c: Regenerated.
410         * generated/spread_r16.c: Regenerated.
411         * generated/minval_r10.c: Regenerated.
412         * generated/count_16_l.c: Regenerated.
413         * generated/minval_i4.c: Regenerated.
414         * generated/minloc1_8_i1.c: Regenerated.
415         * generated/maxloc1_4_i4.c: Regenerated.
416         * generated/maxloc1_8_i2.c: Regenerated.
417         * generated/maxval_i8.c: Regenerated.
418         * generated/any_l8.c: Regenerated.
419         * generated/maxloc0_16_r10.c: Regenerated.
420         * generated/minloc0_4_i16.c: Regenerated.
421         * generated/maxloc0_8_r8.c: Regenerated.
422         * generated/maxloc0_4_i16.c: Regenerated.
423         * generated/minloc1_4_r10.c: Regenerated.
424         * generated/minloc1_8_i16.c: Regenerated.
425         * generated/maxloc1_4_r10.c: Regenerated.
426         * generated/maxloc1_8_i16.c: Regenerated.
427         * generated/minloc0_8_r10.c: Regenerated.
428         * generated/maxloc0_8_r10.c: Regenerated.
429         * generated/minloc1_16_r4.c: Regenerated.
430         * generated/maxloc1_16_r4.c: Regenerated.
431         * generated/minloc0_16_r8.c: Regenerated.
432         * generated/product_i8.c: Regenerated.
433         * generated/maxloc0_16_r8.c: Regenerated.
434         * generated/sum_i16.c: Regenerated.
435         * generated/count_2_l.c: Regenerated.
436         * generated/maxloc0_4_i8.c: Regenerated.
437         * generated/maxloc1_16_i16.c: Regenerated.
438         * generated/matmul_i4.c: Regenerated.
439         * generated/minloc1_8_r4.c: Regenerated.
440         * generated/sum_c8.c: Regenerated.
441         * generated/minloc1_16_i2.c: Regenerated.
442         * generated/maxloc1_16_i2.c: Regenerated.
443         * generated/maxval_i16.c: Regenerated.
444         * generated/spread_c8.c: Regenerated.
445         * generated/matmul_i16.c: Regenerated.
446         * generated/minloc1_4_i4.c: Regenerated.
447         * generated/maxval_i1.c: Regenerated.
448         * generated/minloc1_8_i2.c: Regenerated.
449         * generated/any_l1.c: Regenerated.
450         * generated/product_c16.c: Regenerated.
451         * generated/minloc0_8_r8.c: Regenerated.
452         * generated/matmul_l8.c: Regenerated.
453         * generated/product_r10.c: Regenerated.
454         * generated/product_i1.c: Regenerated.
455         * generated/all_l8.c: Regenerated.
456         * generated/maxloc0_4_i1.c: Regenerated.
457         * generated/minloc0_4_i8.c: Regenerated.
458         * generated/spread_c16.c: Regenerated.
459         * generated/maxval_r4.c: Regenerated.
460
461 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
462
463         PR libfortran/37301
464         PR libfortran/37228
465         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
466         * io/transfer.c (formatted_transfer_scalar): Use new function.
467         * io/format.c (parse_format_list): Enable g0.d.
468         * io/write.c (write_a_char4): Delete unused var.
469         (set_fnode_default): New function to set the default fnode w, d, and e
470         factored from write_real. (write_real): Use new factored function.
471         (write_real_g0): New function that sets d to that passed by g0.d format
472         specifier and set format to ES.  Default values for w and e are used
473         from the new function, set_fnode_default.
474
475 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
476
477         * runtime/error.c: Fix cast for printf.
478
479 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
480
481         PR libfortran/36895
482         * io/write.c (namelist_write_newline): New function to correctly mark
483         next records in both external and internal units.
484         (nml_write_obj): Use new function.
485         (namelist_write: Use new function.
486
487 2008-08-19  Tobias Burnus  <burnus@net-b.de>
488
489         PR libfortran/35863
490         * io/write.c (write_a_char4): Add missing variable declaration
491         in HAVE_CRLF block.
492
493 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
494
495         PR libfortran/35863
496         * intrinsics/selected_char_kind.c: Enable iso_10646.
497         * io/read.c (typedef uchar): New type.
498         (read_utf8): New function to read a single UTF-8 encoded character.
499         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
500         (read_default_char1): New functio to read default into KIND=1 string.
501         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
502         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
503         (read_a): Modify to use the new functions.
504         (read_a_char4): Modify to use the new functions.
505         * io/write.c (error.h): Add include. (typedef uchar): New type.
506         (write_default_char4): New function to default write KIND=4 string.
507         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
508         (write_a_char4): Modify to use new functions.
509         (write_character): Modify to use new functions.
510
511 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
512
513         PR libfortran/37123
514         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
515
516 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
517
518         PR libfortran/36886
519         * Makefile.am:  Added $(i_cshift0_c).
520         Added $(i_cshift0_c) to gfor_built_specific_src.
521         Add rule to build from cshift0.m4.
522         * Makefile.in:  Regenerated.
523         * libgfortran.h:  Addedd prototypes for cshift0_i1,
524         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
525         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
526         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
527         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
528         * intrinsics/cshift0.c:  Remove helper functions for
529         the innter shift loop.
530         (cshift0):  Call specific functions depending on type
531         of array argument.  Only call specific functions for
532         correct alignment for other types.
533         * m4/cshift0.m4:  New file.
534         * generated/cshift0_i1.c:  New file.
535         * generated/cshift0_i2.c:  New file.
536         * generated/cshift0_i4.c:  New file.
537         * generated/cshift0_i8:.c  New file.
538         * generated/cshift0_i16.c:  New file.
539         * generated/cshift0_r4.c:  New file.
540         * generated/cshift0_r8.c:  New file.
541         * generated/cshift0_r10.c:  New file.
542         * generated/cshift0_r16.c:  New file.
543         * generated/cshift0_c4.c:  New file.
544         * generated/cshift0_c8.c:  New file.
545         * generated/cshift0_c10.c:  New file.
546         * generated/cshift0_c16.c:  New file.
547
548 2008-07-27  Tobias Burnus  <burnus@net-b.de>
549
550         PR fortran/36132
551         PR fortran/29952
552         PR fortran/36909
553         * runtime/error.c: New function runtime_error_at.
554         * gfortran.map: Ditto.
555         * libgfortran.h: Ditto.
556
557 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
558
559         PR fortran/36582
560         * io/list_read.c: If variable rank is zero, do not adjust the found
561         namelist object pointer.
562
563 2008-07-22  Daniel Kraft  <d@domob.eu>
564
565         PR fortran/29835
566         * io/format.c (struct format_data):  New member error_element.
567         (unexpected_element):  Added '%c' to message.
568         (next_char):  Keep track of last parsed character in fmt->error_element.
569         (format_error):  If the message is unexpected_element, output the
570         offending character, too.
571
572 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
573
574         PR libfortran/36890
575         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
576         signed/unsigned comparison warning in formatted_backspace.
577
578 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
579
580         PR libfortran/36773
581         * intrinsics/cshift0.c (cshift0):  Return early if size of array
582         is zero.
583         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
584         return array is zero.
585         * intrinsics/eoshift2.c (eoshift2):  Likewise.
586         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
587         is zero.
588         * m4/eoshift3.m4 (eoshift3):  Likewise.
589         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
590         array is zero.
591         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
592         array is zero.
593         * generated/cshift1_16.c: Regenerated.
594         * generated/cshift1_4.c: Regenerated.
595         * generated/cshift1_8.c: Regenerated.
596         * generated/eoshift1_16.c: Regenerated.
597         * generated/eoshift1_4.c: Regenerated.
598         * generated/eoshift1_8.c: Regenerated.
599         * generated/eoshift3_16.c: Regenerated.
600         * generated/eoshift3_4.c: Regenerated.
601         * generated/eoshift3_8.c: Regenerated.
602
603 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
604
605         PR fortran/36857
606         * io/write_float.def: Comment out locale dependent code and fix general
607         comments.
608         
609 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
610
611         PR fortran/36341
612         PR fortran/34670
613         * m4/matmul.m4:  Add bounds checking.
614         * m4/matmull.m4:  Likewise.
615         * generated/matmul_c10.c: Regenerated.
616         * generated/matmul_c16.c: Regenerated.
617         * generated/matmul_c4.c: Regenerated.
618         * generated/matmul_c8.c: Regenerated.
619         * generated/matmul_i1.c: Regenerated.
620         * generated/matmul_i16.c: Regenerated.
621         * generated/matmul_i2.c: Regenerated.
622         * generated/matmul_i4.c: Regenerated.
623         * generated/matmul_i8.c: Regenerated.
624         * generated/matmul_l16.c: Regenerated.
625         * generated/matmul_l4.c: Regenerated.
626         * generated/matmul_l8.c: Regenerated.
627         * generated/matmul_r10.c: Regenerated.
628         * generated/matmul_r16.c: Regenerated.
629         * generated/matmul_r4.c: Regenerated.
630         * generated/matmul_r8.c: Regenerated.
631
632 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
633
634         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
635         variable name.
636         * configure: Regenerate.
637
638 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
639
640         PR fortran/36676
641         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
642         
643 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
644
645         PR fortran/36657
646         * io/list_read.c (read_character): Check for '!' along with separators.
647         (find_nml_name): Likewise and eat the comment if found.
648
649 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
650
651         * configure: Regenerate.
652
653 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
654
655         PR fortran/36546
656         * io/list_read.c (eat_separator): Add tab character to condition
657         for looping past whitespace.
658
659 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
660
661         PR fortran/36515
662         * libgfortran.h (compile_options_t): Add int range_check to structure.
663         * runtime/compile_options.c (set_options): Add range_check option.
664         (init_compile_options): Likewise.
665         *io/read.c (read_decimal): Change overflow checks to include
666         range_check.
667         
668 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
669
670         PR fortran/36538
671         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
672         tabs.
673
674 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
675
676         PR fortran/35863
677         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
678         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
679         big_endian. (determine_endianness): Add endian_off and set its value
680         according to big_endian.
681         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
682         * io/io.h: Add prototype declarations for new functions.
683         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
684         (list_formatted_read): Calculate stride based on kind for character type
685         and use it when calling list_formatted_read_scalar.
686         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
687         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
688         * io/read.c (read_a_char4): New function to handle formatted read.
689         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
690         (write_a_char4): New function to handle formatted write.
691         (write_character): Modify to accept the kind parameter and adjust for
692         endianess of the machine. (list_formatted_write): Calculate the stride
693         resulting from the kind and adjust the list_formatted_write_scalar call
694         accordingly. (nml_write_obj): Adjust calls to write_character.
695         (namelist_write): Likewise.
696         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
697         'kind' argument to better describe what it is. Add calls to new
698         functions for kind == 4. (formatted_transfer): Modify to handle the case
699         of type character and kind equals 4 to pass in the kind to the transfer
700         routines. (transfer_character_wide): Add this new function.
701         (transfer_array): Don't set kind to the character string length. Adjust
702         strides bases on character kind.
703         (unformatted_read): Adjust size based on kind for character types.
704         (unformatted_write): Likewise. (data_transfer_init): Change
705         l8_to_l4_offset to big_endian.
706         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
707
708 2008-06-13  Tobias Burnus  <burnus@net-b.de>
709
710         * configure.ac (AM_CFLAGS): Remove -Werror again.
711         * configure: Regenerate.
712
713 2008-06-13  Tobias Burnus  <burnus@net-b.de>
714
715         PR libgfortran/36518
716         * configure.ac (AM_CFLAGS): Add -Werror.
717         * configure: Regenerate.
718         * m4/ifunction_logical.m4: Cast "n" to "(int)".
719         * generated/any_l16.c: Regenerate.
720         * generated/any_l2.c: Regenerate.
721         * generated/all_l1.c: Regenerate.
722         * generated/all_l2.c: Regenerate.
723         * generated/all_l16.c: Regenerate.
724         * generated/any_l4.c: Regenerate.
725         * generated/count_4_l.c: Regenerate.
726         * generated/count_8_l.c: Regenerate.
727         * generated/all_l4.c: Regenerate.
728         * generated/count_1_l.c: Regenerate.
729         * generated/count_16_l.c: Regenerate.
730         * generated/any_l8.c: Regenerate.
731         * generated/count_2_l.c: Regenerate.
732         * generated/any_l1.c: Regenerate.
733         * generated/all_l8.c: Regenerate.
734
735 2008-06-13  Tobias Burnus  <burnus@net-b.de>
736
737         PR fortran/36495
738         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
739         * configure: (generated) ditto.
740         * intrinsics/dprod_r8.f90: Add "implicit none".
741
742 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
743
744         PR libfortran/36420
745         PR libfortran/36421
746         PR libfortran/36422
747         * io/io.h: Add prototype for write_real.
748         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
749         use write_real.
750         * io/format.c: Add zero width error message. (parse_format_list): Use
751         error message for FMT_A if followed by FMT_ZERO. Use zero width error
752         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
753         Fix typo in comment.
754         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
755         (write_l): Add wlen variable and use it if FMT_G and width is zero.
756         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
757         formatting. (write_real): Remove static declaration.
758
759 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
760
761         PR fortran/36319
762         * intrinsics/string_intrinsics_inc.c (string_index): Return
763         correct value for zero-length substring.
764         * intrinsics/cshift0.c: Add _char4 variant.
765         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
766         wider than a single byte. Add _char4 variant and use above
767         functionality.
768         * intrinsics/eoshift2.c (eoshift2): Likewise.
769         * m4/eoshift1.m4: Likewise.
770         * m4/eoshift3.m4: Likewise.
771         * m4/cshift1.m4: Add _char4 variants.
772         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
773         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
774         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
775         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
776         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
777         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
778         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
779         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
780         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
781         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
782         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
783         * generated/eoshift3_4.c: Regenerate.
784         * generated/eoshift1_8.c: Regenerate.
785         * generated/eoshift1_16.c: Regenerate.
786         * generated/cshift1_4.c: Regenerate.
787         * generated/eoshift1_4.c: Regenerate.
788         * generated/eoshift3_8.c: Regenerate.
789         * generated/eoshift3_16.c: Regenerate.
790         * generated/cshift1_8.c: Regenerate.
791         * generated/cshift1_16.c: Regenerate.
792
793 2008-05-25  Tobias Burnus  <burnus@net-b.de>
794
795         PR fortran/32600
796         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
797         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
798         * gfortran.map (c_f_procpointer): Remove.
799
800 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
801
802         PR libgfortran/36302
803         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
804         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
805         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
806         _gfortran_cshift0_16_char.  Sort alphabetically.
807         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
808         * intrinsics/eoshift2.c:  Likewise.
809         * intrinsics/cshift0.c:  Likewise.
810
811 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
812
813         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
814         pointer is restrict.
815         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
816         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
817         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
818         (spread_scalar_'rtype_code`): Likewise.
819         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
820         * m4/eoshift1.m4 (eoshift1):  Likewise.
821         * m4/eoshift3.m4 (eoshift3):  Likewise.
822         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
823         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
824         (unpack1_'rtype_code`):  Likewise.
825         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
826         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
827         * intrinsics/eoshift0.c (eoshift0):  Likewise.
828         * intrinsics/eoshift2.c (eoshift2):  Likewise.
829         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
830         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
831         * generated/eoshift1_16.c: Regenerated.
832         * generated/eoshift1_4.c: Regenerated.
833         * generated/eoshift1_8.c: Regenerated.
834         * generated/eoshift3_16.c: Regenerated.
835         * generated/eoshift3_4.c: Regenerated.
836         * generated/eoshift3_8.c: Regenerated.
837         * generated/in_pack_c10.c: Regenerated.
838         * generated/in_pack_c16.c: Regenerated.
839         * generated/in_pack_c4.c: Regenerated.
840         * generated/in_pack_c8.c: Regenerated.
841         * generated/in_pack_i1.c: Regenerated.
842         * generated/in_pack_i16.c: Regenerated.
843         * generated/in_pack_i2.c: Regenerated.
844         * generated/in_pack_i4.c: Regenerated.
845         * generated/in_pack_i8.c: Regenerated.
846         * generated/in_pack_r10.c: Regenerated.
847         * generated/in_pack_r16.c: Regenerated.
848         * generated/in_pack_r4.c: Regenerated.
849         * generated/in_pack_r8.c: Regenerated.
850         * generated/in_unpack_c10.c: Regenerated.
851         * generated/in_unpack_c16.c: Regenerated.
852         * generated/in_unpack_c4.c: Regenerated.
853         * generated/in_unpack_c8.c: Regenerated.
854         * generated/in_unpack_i1.c: Regenerated.
855         * generated/in_unpack_i16.c: Regenerated.
856         * generated/in_unpack_i2.c: Regenerated.
857         * generated/in_unpack_i4.c: Regenerated.
858         * generated/in_unpack_i8.c: Regenerated.
859         * generated/in_unpack_r10.c: Regenerated.
860         * generated/in_unpack_r16.c: Regenerated.
861         * generated/in_unpack_r4.c: Regenerated.
862         * generated/in_unpack_r8.c: Regenerated.
863         * generated/maxloc0_16_i1.c: Regenerated.
864         * generated/maxloc0_16_i16.c: Regenerated.
865         * generated/maxloc0_16_i2.c: Regenerated.
866         * generated/maxloc0_16_i4.c: Regenerated.
867         * generated/maxloc0_16_i8.c: Regenerated.
868         * generated/maxloc0_16_r10.c: Regenerated.
869         * generated/maxloc0_16_r16.c: Regenerated.
870         * generated/maxloc0_16_r4.c: Regenerated.
871         * generated/maxloc0_16_r8.c: Regenerated.
872         * generated/maxloc0_4_i1.c: Regenerated.
873         * generated/maxloc0_4_i16.c: Regenerated.
874         * generated/maxloc0_4_i2.c: Regenerated.
875         * generated/maxloc0_4_i4.c: Regenerated.
876         * generated/maxloc0_4_i8.c: Regenerated.
877         * generated/maxloc0_4_r10.c: Regenerated.
878         * generated/maxloc0_4_r16.c: Regenerated.
879         * generated/maxloc0_4_r4.c: Regenerated.
880         * generated/maxloc0_4_r8.c: Regenerated.
881         * generated/maxloc0_8_i1.c: Regenerated.
882         * generated/maxloc0_8_i16.c: Regenerated.
883         * generated/maxloc0_8_i2.c: Regenerated.
884         * generated/maxloc0_8_i4.c: Regenerated.
885         * generated/maxloc0_8_i8.c: Regenerated.
886         * generated/maxloc0_8_r10.c: Regenerated.
887         * generated/maxloc0_8_r16.c: Regenerated.
888         * generated/maxloc0_8_r4.c: Regenerated.
889         * generated/maxloc0_8_r8.c: Regenerated.
890         * generated/minloc0_16_i1.c: Regenerated.
891         * generated/minloc0_16_i16.c: Regenerated.
892         * generated/minloc0_16_i2.c: Regenerated.
893         * generated/minloc0_16_i4.c: Regenerated.
894         * generated/minloc0_16_i8.c: Regenerated.
895         * generated/minloc0_16_r10.c: Regenerated.
896         * generated/minloc0_16_r16.c: Regenerated.
897         * generated/minloc0_16_r4.c: Regenerated.
898         * generated/minloc0_16_r8.c: Regenerated.
899         * generated/minloc0_4_i1.c: Regenerated.
900         * generated/minloc0_4_i16.c: Regenerated.
901         * generated/minloc0_4_i2.c: Regenerated.
902         * generated/minloc0_4_i4.c: Regenerated.
903         * generated/minloc0_4_i8.c: Regenerated.
904         * generated/minloc0_4_r10.c: Regenerated.
905         * generated/minloc0_4_r16.c: Regenerated.
906         * generated/minloc0_4_r4.c: Regenerated.
907         * generated/minloc0_4_r8.c: Regenerated.
908         * generated/minloc0_8_i1.c: Regenerated.
909         * generated/minloc0_8_i16.c: Regenerated.
910         * generated/minloc0_8_i2.c: Regenerated.
911         * generated/minloc0_8_i4.c: Regenerated.
912         * generated/minloc0_8_i8.c: Regenerated.
913         * generated/minloc0_8_r10.c: Regenerated.
914         * generated/minloc0_8_r16.c: Regenerated.
915         * generated/minloc0_8_r4.c: Regenerated.
916         * generated/minloc0_8_r8.c: Regenerated.
917         * generated/pack_c10.c: Regenerated.
918         * generated/pack_c16.c: Regenerated.
919         * generated/pack_c4.c: Regenerated.
920         * generated/pack_c8.c: Regenerated.
921         * generated/pack_i1.c: Regenerated.
922         * generated/pack_i16.c: Regenerated.
923         * generated/pack_i2.c: Regenerated.
924         * generated/pack_i4.c: Regenerated.
925         * generated/pack_i8.c: Regenerated.
926         * generated/pack_r10.c: Regenerated.
927         * generated/pack_r16.c: Regenerated.
928         * generated/pack_r4.c: Regenerated.
929         * generated/pack_r8.c: Regenerated.
930         * generated/spread_c10.c: Regenerated.
931         * generated/spread_c16.c: Regenerated.
932         * generated/spread_c4.c: Regenerated.
933         * generated/spread_c8.c: Regenerated.
934         * generated/spread_i1.c: Regenerated.
935         * generated/spread_i16.c: Regenerated.
936         * generated/spread_i2.c: Regenerated.
937         * generated/spread_i4.c: Regenerated.
938         * generated/spread_i8.c: Regenerated.
939         * generated/spread_r10.c: Regenerated.
940         * generated/spread_r16.c: Regenerated.
941         * generated/spread_r4.c: Regenerated.
942         * generated/spread_r8.c: Regenerated.
943         * generated/transpose_c10.c: Regenerated.
944         * generated/transpose_c16.c: Regenerated.
945         * generated/transpose_c4.c: Regenerated.
946         * generated/transpose_c8.c: Regenerated.
947         * generated/transpose_i16.c: Regenerated.
948         * generated/transpose_i4.c: Regenerated.
949         * generated/transpose_i8.c: Regenerated.
950         * generated/transpose_r10.c: Regenerated.
951         * generated/transpose_r16.c: Regenerated.
952         * generated/transpose_r4.c: Regenerated.
953         * generated/transpose_r8.c: Regenerated.
954         * generated/unpack_c10.c: Regenerated.
955         * generated/unpack_c16.c: Regenerated.
956         * generated/unpack_c4.c: Regenerated.
957         * generated/unpack_c8.c: Regenerated.
958         * generated/unpack_i1.c: Regenerated.
959         * generated/unpack_i16.c: Regenerated.
960         * generated/unpack_i2.c: Regenerated.
961         * generated/unpack_i4.c: Regenerated.
962         * generated/unpack_i8.c: Regenerated.
963         * generated/unpack_r10.c: Regenerated.
964         * generated/unpack_r16.c: Regenerated.
965         * generated/unpack_r4.c: Regenerated.
966         * generated/unpack_r8.c: Regenerated.
967
968 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
969
970         * runtime/select.c: Moved content to select_inc.c. Include it. 
971         Add macros for different character types.
972         * runtime/select_inc.c: New file.
973         * runtime/convert_char.c: New file.
974         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
975         functions.
976         * intrinsics/transpose_generic.c (transpose_char4): New function.
977         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
978         New functions.
979         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
980         New functions.
981         * intrinsics/reshape_generic.c (reshape_char): Use
982         gfc_charlen_type as type for length variables.
983         (reshape_char4): New function.
984         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
985         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
986         _gfortran_transpose_char4, _gfortran_spread_char4,
987         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
988         _gfortran_pack_char4, _gfortran_pack_s_char4,
989         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
990         * Makefile.am: Add runtime/convert_char.c.
991         * Makefile.in: Regenerate.
992
993 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
994
995         * io/list_read.c (list_formatted_read_scalar):  Declare
996         type as volatile to shut up compiler warning.
997
998 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
999
1000         PR libfortran/25561
1001         * io/io.h (struct fbuf): Change pointer to position offset.
1002         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
1003         changes.
1004         (fbuf_reset): ptr=>pos changes.
1005         (fbuf_alloc): If the request doesn't fit, don't waste memory by
1006         keeping flushed bytes. ptr=>pos changes.
1007         (fbuf_flush): ptr=>pos changes.
1008         (fbuf_seek): Don't seek past the left tab limit, don't update active
1009         byte count.
1010         * io/open.c (new_unit): If RECL has been specified, used that as
1011         initial buffer size.
1012
1013 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1014
1015         PR libfortran/35632
1016         * io/open.c (new_unit): Set stream position to correct value.
1017
1018 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
1019
1020         PR libfortran/25561
1021         * Makefile.am: Add fbuf.c to gfor_io_src.
1022         * Makefile.in: Regenerate.
1023         * io/io.h (read_block): Remove.
1024         (struct stream): Remove alloc_r_at function pointer.
1025         (salloc_r): Remove.
1026         (salloc_r_at): Remove.
1027         (salloc_w_at): Remove.
1028         (salloc_w): Remove offset argument.
1029         (struct fbuf): New struct for format buffer.
1030         (struct gfc_unit): Add fbuf.
1031         (read_block_form): New prototype.
1032         (fbuf_init): Likewise.
1033         (fbuf_destroy): Likewise.
1034         (fbuf_reset): Likewise.
1035         (fbuf_alloc): Likewise.
1036         (fbuf_flush): Likewise.
1037         (fbuf_seek): Likewise.
1038         * io/file_pos.c (formatted_backspace): Change to use sread.
1039         (unformatted_backspace): Likewise.
1040         (st_backspace): Flush format buffer.
1041         (st_rewind): Likewise.
1042         * io/list_read.c (next_char): Likewise.
1043         (nml_query): Tidying, flush format buffer.
1044         * io/open.c (new_unit): Init format buffer.
1045         * io/read.c (read_l): Change to use read_block_form.
1046         (read_a): Likewise.
1047         (read_decimal): Likewise.
1048         (read_radix): Likewise.
1049         (read_f): Likewise.
1050         (read_x): Empty reads also for stream I/O.
1051         * io/transfer.c (read_sf): Change to use sread.
1052         (read_block): Rename to read_block_form, change prototype, use sread.
1053         (read_block_direct): Don't seek stream files.
1054         (write_block): Change to use fbuf if external file, don't seek stream
1055         files.
1056         (write_buf): Don't seek stream files.
1057         (formatted_transfer_scalar): Use fbuf for external files.
1058         (us_read): Change to use sread.
1059         (pre_position): Do nothing for stream I/O.
1060         (data_transfer_init): Flush fbuf when switching from write to read, if
1061         POS is specified, seek stream file to correct offset.
1062         (skip_record): Change to use sread.
1063         (min_off): New function.
1064         (next_record_r): Change to use sread.
1065         (next_record_w): Change to use sset/sseek, flush fbuf.
1066         (finalize_transfer): Flush fbuf.
1067         * io/unit.c (init_units): Init fbuf for stdout, stderr.
1068         (close_unit_1): Destroy fbuf.
1069         (finish_last_advance_record): Flush fbuf, no need to seek.
1070         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
1071         (fd_alloc_w_at): Likewise.
1072         (fd_read): Remove third argument to fd_alloc_r_at.
1073         (fd_write): Remove third argument to fd_alloc_w_at.
1074         (fd_sset): Likewise.
1075         (fd_open): Don't set alloc_r_at.
1076         (mem_alloc_r_at): Remove unused where argument.
1077         (mem_alloc_w_at): Likewise.
1078         (mem_read): Don't incorrectly return previous errno, remove unused
1079         third argument to alloc function.
1080         (mem_write): Likewise.
1081         (mem_set): Likewise.
1082         (open_internal): Don't set alloc_r_at pointer.
1083         * io/fbuf.c: New file.
1084
1085 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1086
1087         * libgfortran.h (gfc_char4_t): New type.
1088         (GFC_SIZE_OF_CHAR_KIND): New macro.
1089         (compare_string): Adjust prototype.
1090         (compare_string_char4): New prototype.
1091         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
1092         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
1093         _gfortran_concat_string_char4, _gfortran_string_index_char4,
1094         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
1095         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
1096         _gfortran_string_verify_char4.
1097         * intrinsics/string_intrinsics_inc.c: New file from content of
1098         string_intrinsics.c with types replaced by macros.
1099         * intrinsics/string_intrinsics.c: Move content to
1100         string_intrinsics_inc.c.
1101
1102 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1103
1104         PR libfortran/36202
1105         * io/list_read (eat_separator): Handle the CR-LF case correctly.
1106
1107 2008-05-09  Julian Brown  <julian@codesourcery.com>
1108
1109         * Makefile.am (LTLDFLAGS): New.
1110         (libgfortran_la_LDFLAGS): Use above.
1111         * Makefile.in: Regenerate.
1112
1113 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1114
1115         PR libfortran/36131
1116         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
1117         (next_record_w): Likewise.
1118
1119 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1120
1121         PR libfortran/35995
1122         * m4/ifunction_logical.m4:  If the extent of "array"
1123         is less than zero, set it to zero.  Use an explicit
1124         flag for breaking out of the main loop to avoid, because
1125         the data pointer for "array" may be NULL for an empty
1126         array.
1127         * m4/ifunction.m4:  Likewise.
1128         * generated/all_l1.c: Regenerated.
1129         * generated/all_l16.c: Regenerated.
1130         * generated/all_l2.c: Regenerated.
1131         * generated/all_l4.c: Regenerated.
1132         * generated/all_l8.c: Regenerated.
1133         * generated/any_l1.c: Regenerated.
1134         * generated/any_l16.c: Regenerated.
1135         * generated/any_l2.c: Regenerated.
1136         * generated/any_l4.c: Regenerated.
1137         * generated/any_l8.c: Regenerated.
1138         * generated/count_16_l.c: Regenerated.
1139         * generated/count_1_l.c: Regenerated.
1140         * generated/count_2_l.c: Regenerated.
1141         * generated/count_4_l.c: Regenerated.
1142         * generated/count_8_l.c: Regenerated.
1143         * generated/maxloc1_16_i1.c: Regenerated.
1144         * generated/maxloc1_16_i16.c: Regenerated.
1145         * generated/maxloc1_16_i2.c: Regenerated.
1146         * generated/maxloc1_16_i4.c: Regenerated.
1147         * generated/maxloc1_16_i8.c: Regenerated.
1148         * generated/maxloc1_16_r10.c: Regenerated.
1149         * generated/maxloc1_16_r16.c: Regenerated.
1150         * generated/maxloc1_16_r4.c: Regenerated.
1151         * generated/maxloc1_16_r8.c: Regenerated.
1152         * generated/maxloc1_4_i1.c: Regenerated.
1153         * generated/maxloc1_4_i16.c: Regenerated.
1154         * generated/maxloc1_4_i2.c: Regenerated.
1155         * generated/maxloc1_4_i4.c: Regenerated.
1156         * generated/maxloc1_4_i8.c: Regenerated.
1157         * generated/maxloc1_4_r10.c: Regenerated.
1158         * generated/maxloc1_4_r16.c: Regenerated.
1159         * generated/maxloc1_4_r4.c: Regenerated.
1160         * generated/maxloc1_4_r8.c: Regenerated.
1161         * generated/maxloc1_8_i1.c: Regenerated.
1162         * generated/maxloc1_8_i16.c: Regenerated.
1163         * generated/maxloc1_8_i2.c: Regenerated.
1164         * generated/maxloc1_8_i4.c: Regenerated.
1165         * generated/maxloc1_8_i8.c: Regenerated.
1166         * generated/maxloc1_8_r10.c: Regenerated.
1167         * generated/maxloc1_8_r16.c: Regenerated.
1168         * generated/maxloc1_8_r4.c: Regenerated.
1169         * generated/maxloc1_8_r8.c: Regenerated.
1170         * generated/maxval_i1.c: Regenerated.
1171         * generated/maxval_i16.c: Regenerated.
1172         * generated/maxval_i2.c: Regenerated.
1173         * generated/maxval_i4.c: Regenerated.
1174         * generated/maxval_i8.c: Regenerated.
1175         * generated/maxval_r10.c: Regenerated.
1176         * generated/maxval_r16.c: Regenerated.
1177         * generated/maxval_r4.c: Regenerated.
1178         * generated/maxval_r8.c: Regenerated.
1179         * generated/minloc1_16_i1.c: Regenerated.
1180         * generated/minloc1_16_i16.c: Regenerated.
1181         * generated/minloc1_16_i2.c: Regenerated.
1182         * generated/minloc1_16_i4.c: Regenerated.
1183         * generated/minloc1_16_i8.c: Regenerated.
1184         * generated/minloc1_16_r10.c: Regenerated.
1185         * generated/minloc1_16_r16.c: Regenerated.
1186         * generated/minloc1_16_r4.c: Regenerated.
1187         * generated/minloc1_16_r8.c: Regenerated.
1188         * generated/minloc1_4_i1.c: Regenerated.
1189         * generated/minloc1_4_i16.c: Regenerated.
1190         * generated/minloc1_4_i2.c: Regenerated.
1191         * generated/minloc1_4_i4.c: Regenerated.
1192         * generated/minloc1_4_i8.c: Regenerated.
1193         * generated/minloc1_4_r10.c: Regenerated.
1194         * generated/minloc1_4_r16.c: Regenerated.
1195         * generated/minloc1_4_r4.c: Regenerated.
1196         * generated/minloc1_4_r8.c: Regenerated.
1197         * generated/minloc1_8_i1.c: Regenerated.
1198         * generated/minloc1_8_i16.c: Regenerated.
1199         * generated/minloc1_8_i2.c: Regenerated.
1200         * generated/minloc1_8_i4.c: Regenerated.
1201         * generated/minloc1_8_i8.c: Regenerated.
1202         * generated/minloc1_8_r10.c: Regenerated.
1203         * generated/minloc1_8_r16.c: Regenerated.
1204         * generated/minloc1_8_r4.c: Regenerated.
1205         * generated/minloc1_8_r8.c: Regenerated.
1206         * generated/minval_i1.c: Regenerated.
1207         * generated/minval_i16.c: Regenerated.
1208         * generated/minval_i2.c: Regenerated.
1209         * generated/minval_i4.c: Regenerated.
1210         * generated/minval_i8.c: Regenerated.
1211         * generated/minval_r10.c: Regenerated.
1212         * generated/minval_r16.c: Regenerated.
1213         * generated/minval_r4.c: Regenerated.
1214         * generated/minval_r8.c: Regenerated.
1215         * generated/product_c10.c: Regenerated.
1216         * generated/product_c16.c: Regenerated.
1217         * generated/product_c4.c: Regenerated.
1218         * generated/product_c8.c: Regenerated.
1219         * generated/product_i1.c: Regenerated.
1220         * generated/product_i16.c: Regenerated.
1221         * generated/product_i2.c: Regenerated.
1222         * generated/product_i4.c: Regenerated.
1223         * generated/product_i8.c: Regenerated.
1224         * generated/product_r10.c: Regenerated.
1225         * generated/product_r16.c: Regenerated.
1226         * generated/product_r4.c: Regenerated.
1227         * generated/product_r8.c: Regenerated.
1228         * generated/sum_c10.c: Regenerated.
1229         * generated/sum_c16.c: Regenerated.
1230         * generated/sum_c4.c: Regenerated.
1231         * generated/sum_c8.c: Regenerated.
1232         * generated/sum_i1.c: Regenerated.
1233         * generated/sum_i16.c: Regenerated.
1234         * generated/sum_i2.c: Regenerated.
1235         * generated/sum_i4.c: Regenerated.
1236         * generated/sum_i8.c: Regenerated.
1237         * generated/sum_r10.c: Regenerated.
1238         * generated/sum_r16.c: Regenerated.
1239         * generated/sum_r4.c: Regenerated.
1240         * generated/sum_r8.c: Regenerated.
1241
1242 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1243
1244         PR libfortran/35990
1245         * intrinsics/pack_generic.c:  Really commit.
1246
1247 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1248
1249         PR libfortran/35990
1250         * intrinsics/pack_generic.c:  If an extent of the source
1251         array is less then zero, set it to zero.  Set the source
1252         pointer to NULL if the source size is zero.  Set the total
1253         number of elements to zero if the vector has an extent
1254         less or equal to zero.
1255         * m4/pack.m4:  Set the source pointer to NULL if the
1256         source array is zero-sized.  Set the total number of
1257         elemements to zero if the vector has an extent less or
1258         equal to zero.
1259         * generated/pack_i1.c:  Regenerated.
1260         * generated/pack_i2.c:  Regenerated.
1261         * generated/pack_i4.c:  Regenerated.
1262         * generated/pack_i8.c:  Regenerated.
1263         * generated/pack_i16.c:  Regenerated.
1264         * generated/pack_r4.c:  Regenerated.
1265         * generated/pack_r8.c:  Regenerated.
1266         * generated/pack_r10.c:  Regenerated.
1267         * generated/pack_r16.c:  Regenerated.
1268         * generated/pack_c4.c:  Regenerated.
1269         * generated/pack_c8.c:  Regenerated.
1270         * generated/pack_c10.c:  Regenerated.
1271         * generated/pack_c16.c:  Regenerated.
1272
1273 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1274
1275         PR libfortran/36094
1276         * runtime/error.c (show_locus): Provide modified error message when
1277         filename has not yet been associated with a unit number.
1278         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
1279
1280 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1281
1282         * intrinsics/selected_char_kind.c: New file.
1283         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
1284         * Makefile.am: Add intrinsics/selected_char_kind.c.
1285         * Makefile.in: Regenerate.
1286
1287 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1288
1289         PR libfortran/35993
1290         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
1291         implementation for multi-dimensional return arrays when
1292         the mask is .false.
1293         * generated/maxloc1_16_i1.c: Regenerated.
1294         * generated/maxloc1_16_i16.c: Regenerated.
1295         * generated/maxloc1_16_i2.c: Regenerated.
1296         * generated/maxloc1_16_i4.c: Regenerated.
1297         * generated/maxloc1_16_i8.c: Regenerated.
1298         * generated/maxloc1_16_r10.c: Regenerated.
1299         * generated/maxloc1_16_r16.c: Regenerated.
1300         * generated/maxloc1_16_r4.c: Regenerated.
1301         * generated/maxloc1_16_r8.c: Regenerated.
1302         * generated/maxloc1_4_i1.c: Regenerated.
1303         * generated/maxloc1_4_i16.c: Regenerated.
1304         * generated/maxloc1_4_i2.c: Regenerated.
1305         * generated/maxloc1_4_i4.c: Regenerated.
1306         * generated/maxloc1_4_i8.c: Regenerated.
1307         * generated/maxloc1_4_r10.c: Regenerated.
1308         * generated/maxloc1_4_r16.c: Regenerated.
1309         * generated/maxloc1_4_r4.c: Regenerated.
1310         * generated/maxloc1_4_r8.c: Regenerated.
1311         * generated/maxloc1_8_i1.c: Regenerated.
1312         * generated/maxloc1_8_i16.c: Regenerated.
1313         * generated/maxloc1_8_i2.c: Regenerated.
1314         * generated/maxloc1_8_i4.c: Regenerated.
1315         * generated/maxloc1_8_i8.c: Regenerated.
1316         * generated/maxloc1_8_r10.c: Regenerated.
1317         * generated/maxloc1_8_r16.c: Regenerated.
1318         * generated/maxloc1_8_r4.c: Regenerated.
1319         * generated/maxloc1_8_r8.c: Regenerated.
1320         * generated/maxval_i1.c: Regenerated.
1321         * generated/maxval_i16.c: Regenerated.
1322         * generated/maxval_i2.c: Regenerated.
1323         * generated/maxval_i4.c: Regenerated.
1324         * generated/maxval_i8.c: Regenerated.
1325         * generated/maxval_r10.c: Regenerated.
1326         * generated/maxval_r16.c: Regenerated.
1327         * generated/maxval_r4.c: Regenerated.
1328         * generated/maxval_r8.c: Regenerated.
1329         * generated/minloc1_16_i1.c: Regenerated.
1330         * generated/minloc1_16_i16.c: Regenerated.
1331         * generated/minloc1_16_i2.c: Regenerated.
1332         * generated/minloc1_16_i4.c: Regenerated.
1333         * generated/minloc1_16_i8.c: Regenerated.
1334         * generated/minloc1_16_r10.c: Regenerated.
1335         * generated/minloc1_16_r16.c: Regenerated.
1336         * generated/minloc1_16_r4.c: Regenerated.
1337         * generated/minloc1_16_r8.c: Regenerated.
1338         * generated/minloc1_4_i1.c: Regenerated.
1339         * generated/minloc1_4_i16.c: Regenerated.
1340         * generated/minloc1_4_i2.c: Regenerated.
1341         * generated/minloc1_4_i4.c: Regenerated.
1342         * generated/minloc1_4_i8.c: Regenerated.
1343         * generated/minloc1_4_r10.c: Regenerated.
1344         * generated/minloc1_4_r16.c: Regenerated.
1345         * generated/minloc1_4_r4.c: Regenerated.
1346         * generated/minloc1_4_r8.c: Regenerated.
1347         * generated/minloc1_8_i1.c: Regenerated.
1348         * generated/minloc1_8_i16.c: Regenerated.
1349         * generated/minloc1_8_i2.c: Regenerated.
1350         * generated/minloc1_8_i4.c: Regenerated.
1351         * generated/minloc1_8_i8.c: Regenerated.
1352         * generated/minloc1_8_r10.c: Regenerated.
1353         * generated/minloc1_8_r16.c: Regenerated.
1354         * generated/minloc1_8_r4.c: Regenerated.
1355         * generated/minloc1_8_r8.c: Regenerated.
1356         * generated/minval_i1.c: Regenerated.
1357         * generated/minval_i16.c: Regenerated.
1358         * generated/minval_i2.c: Regenerated.
1359         * generated/minval_i4.c: Regenerated.
1360         * generated/minval_i8.c: Regenerated.
1361         * generated/minval_r10.c: Regenerated.
1362         * generated/minval_r16.c: Regenerated.
1363         * generated/minval_r4.c: Regenerated.
1364         * generated/minval_r8.c: Regenerated.
1365         * generated/product_c10.c: Regenerated.
1366         * generated/product_c16.c: Regenerated.
1367         * generated/product_c4.c: Regenerated.
1368         * generated/product_c8.c: Regenerated.
1369         * generated/product_i1.c: Regenerated.
1370         * generated/product_i16.c: Regenerated.
1371         * generated/product_i2.c: Regenerated.
1372         * generated/product_i4.c: Regenerated.
1373         * generated/product_i8.c: Regenerated.
1374         * generated/product_r10.c: Regenerated.
1375         * generated/product_r16.c: Regenerated.
1376         * generated/product_r4.c: Regenerated.
1377         * generated/product_r8.c: Regenerated.
1378         * generated/sum_c10.c: Regenerated.
1379         * generated/sum_c16.c: Regenerated.
1380         * generated/sum_c4.c: Regenerated.
1381         * generated/sum_c8.c: Regenerated.
1382         * generated/sum_i1.c: Regenerated.
1383         * generated/sum_i16.c: Regenerated.
1384         * generated/sum_i2.c: Regenerated.
1385         * generated/sum_i4.c: Regenerated.
1386         * generated/sum_i8.c: Regenerated.
1387         * generated/sum_r10.c: Regenerated.
1388         * generated/sum_r16.c: Regenerated.
1389         * generated/sum_r4.c: Regenerated.
1390         * generated/sum_r8.c: Regenerated.
1391
1392 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1393
1394         PR libfortran/35960
1395         * m4/reshape.m4:  Fix typo in last commit.
1396         * generated/reshape_i4.c:  Regererated.
1397         * generated/reshape_i8.c:  Regenerated.
1398         * generated/reshape_i16.c:  Regenerated.
1399         * generated/reshape_r4.c:  Regenerated.
1400         * generated/reshape_r8.c:  Regenerated.
1401         * generated/reshape_r10.c:  Regenerated.
1402         * generated/reshape_r16.c:  Regenerated.
1403         * generated/reshape_c4.c:  Regenerated.
1404         * generated/reshape_c8.c:  Regenerated.
1405         * generated/reshape_c10.c:  Regenerated.
1406         * generated/reshape_c16.c:  Regenerated.
1407
1408 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1409
1410         * intrinsics/time_1.h (__time_1): Remove unused variable.
1411
1412 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1413
1414         PR libfortran/35988
1415         * m4/matmul.m4:  Only issue a runtime error if extents are
1416         non-zero.
1417         * generated/matmul_i1.c:  Regenerated.
1418         * generated/matmul_i2.c:  Regenerated.
1419         * generated/matmul_i4.c:  Regenerated.
1420         * generated/matmul_i8.c:  Regenerated.
1421         * generated/matmul_i16.c:  Regenerated.
1422         * generated/matmul_r4.c:  Regenerated.
1423         * generated/matmul_r8.c:  Regenerated.
1424         * generated/matmul_r10.c:  Regenerated.
1425         * generated/matmul_r16.c:  Regenerated.
1426         * generated/matmul_c4.c:  Regenerated.
1427         * generated/matmul_c8.c:  Regenerated.
1428         * generated/matmul_c10.c:  Regenerated.
1429         * generated/matmul_c16.c:  Regenerated.
1430
1431 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1432
1433         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
1434         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
1435         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
1436         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
1437         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
1438         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
1439         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
1440         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
1441         Fix cache variable names.
1442         * configure, Makefile.in: Regenerate.
1443
1444 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1445
1446         PR fortran/35991
1447         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
1448
1449 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1450
1451         PR libfortran/35960
1452         * intrinsics/reshape_generic.c (reshape_internal): If the size
1453         of the resized array is zero, as determined by the SHAPE
1454         argument, return early.
1455         * m4/reshape.m4:  Likewise.
1456         * generated/reshape_i4.c:  Regererated.
1457         * generated/reshape_i8.c:  Regenerated.
1458         * generated/reshape_i16.c:  Regenerated.
1459         * generated/reshape_r4.c:  Regenerated.
1460         * generated/reshape_r8.c:  Regenerated.
1461         * generated/reshape_r10.c:  Regenerated.
1462         * generated/reshape_r16.c:  Regenerated.
1463         * generated/reshape_c4.c:  Regenerated.
1464         * generated/reshape_c8.c:  Regenerated.
1465         * generated/reshape_c10.c:  Regenerated.
1466         * generated/reshape_c16.c:  Regenerated.
1467
1468 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1469
1470         PR bootstrap/35457
1471         * aclocal.m4: Regenerate.
1472         * configure: Regenerate.
1473
1474 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1475
1476         PR libfortran/32972
1477         * intrinsics/spread_generic.c (spread):  Use spread_i2()
1478         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
1479
1480 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1481         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1482
1483         PR libfortran/32972
1484         PR libfortran/32512
1485         configure.ac:  Add test for uintptr_t.
1486         configure:  Regenerated.
1487         config.h.in:  Regenerated.
1488         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
1489         GFC_DTYPE_DERIVED_2:  New macro.
1490         GFC_DTYPE_DERIVED_4:  New macro.
1491         GFC_DTYPE_DERIVED_8:  New macro.
1492         GFC_DTYPE_DERIVED_16:  New macro.
1493         GFC_UNALIGNED_2:  New macro.
1494         GFC_UNALIGNED_4:  New macro.
1495         GFC_UNALIGNED_8:  New macro.
1496         GFC_UNALIGNED_16:  New macro.
1497         intptr_t:  Define if we don't have it.
1498         uintptr_t:  Likewise.
1499         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
1500         * intrinsics/signal.c (signal_sub):  Likewise.
1501         (signal_sub_int):  Likewise.
1502         (alarm_sub_int_i4):  Likewise.
1503         * intrinsics/spread_generic.c (spread):  Use the integer
1504         routines for handling derived types of sizes 1, 2, 4, 8 and 16
1505         if the alignment of all pointers is correct.
1506         (spread_scalar):  Likewise.
1507         * intrinsics/pack_generic.c (pack):  Likewise.
1508         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
1509         * intrinsics/unpack_generic.c (unpack1):  Likewise.
1510         (unpack0):  Likewise.
1511         * runtime/in_pack_generic.c (internal_pack):  Likewise.
1512         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1513
1514 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
1515
1516         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
1517         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
1518         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
1519         is used.
1520         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
1521         nml_read_obj call.  Use snprintf instead of sprintf when %s
1522         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
1523         of parse_err_msg array.  Append " for namelist variable " and
1524         nl->var_name to it.
1525         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
1526         sizeof nml_err_msg as extra argument to nml_get_obj_data.
1527
1528 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1529
1530         PR fortran/25829 28655
1531         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
1532         and flags.status. (st_open): Initialize flags.async.
1533         * io/list_read.c (read_charactor): Use delim_status instead of
1534         flags.delim.
1535         * io/read.c (read_x): Use pad_status instead of flags.pad.
1536         * io/inquire.c (inquire_via_unit): Add new checks.
1537         (inquire_via_filename): Likewise.
1538         * io/io.h (st_parameter_inquire): Add new flags.
1539         (st_parameter_dt): Likewise.
1540         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
1541         flags.async.
1542         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
1543         pad_status instead of flags.pad. (read_block): Likewise.
1544         (data_transfer_init): Set flags.async and add checks.
1545         * io/write.c (write_character): Use delim_status.
1546         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
1547         (namelist_write): Likewise.
1548
1549 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1550
1551         PR fortran/25829 28655
1552         * gfortran.map: Add new symbol, _gfortran_st_wait.
1553         * libgfortran.h (st_paramter_common): Add new I/O parameters.
1554         * open.c (st_option decimal_opt[], st_option encoding_opt[],
1555         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
1556         parameter option arrays. (edit_modes): Add checks for new parameters.
1557         (new_unit): Likewise. (st_open): Likewise.
1558         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
1559         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
1560         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
1561         * read.c (read_a): Use decimal status flag to allow comma in place of a
1562         decimal point. (read_f): Allow comma as acceptable character in float.
1563         According to decimal flag, substitute a period for a comma.
1564         (read_x): If decimal status flag is comma, disable the read_comma flag,
1565         not allowing comma as a delimiter, an extension otherwise.
1566         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
1567         unit_async): New enumerators. Add all new I/O parameters.
1568         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
1569         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
1570         (fd_sfree): Use new enumerator. (fd_read): Likewise.
1571         (fd_write): Likewise. (fd_close): Fix whitespace.
1572         (fd_open): Use new enumertors. (tempfile, regular_file,
1573         open_external): Fix whitespace. (output_stream, error_stream): Set
1574         method. (stream_offset): Fix whitespace.
1575         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
1576         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
1577         based on new decimal_status flag. (data_transfer_init): Initialize new
1578         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
1579         * format.c: (format_lex): Add format specifiers DP, DC, and D.
1580         (parse_format_list): Parse the new specifiers.
1581         * write.c (write_decimal): Use new sign enumerators to set the sign.
1582         (write_complex): Handle decimal comma and semi-colon separator.
1583         (nml_write_obj): Likewise.
1584         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
1585         sign enumerators. (output_float): Likewise. Use new decimal_status flag
1586         to set the decimal character to a point or a comma.
1587         
1588 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1589
1590         PR libfortran/32972
1591         PR libfortran/32512
1592         * Makefile.am:  Add new variable, i_spread_c, containing
1593         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
1594         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
1595         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
1596         * Makefile.in:  Regenerated.
1597         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
1598         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
1599         spread_c4, spread_c8, spread_c10, spread_c16,
1600         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
1601         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
1602         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
1603         spread_scalar_c10 and spread_scalar_c16.
1604         Add macros to isolate both type and size information
1605         from array descriptors with a single mask operation.
1606         * intrinsics/spread_generic.c:  Add calls to specific
1607         spread functions.
1608         * m4/spread.m4:  New file.
1609         * generated/spread_i1.c:  New file.
1610         * generated/spread_i2.c:  New file.
1611         * generated/spread_i4.c:  New file.
1612         * generated/spread_i8.c:  New file.
1613         * generated/spread_i16.c:  New file.
1614         * generated/spread_r4.c:  New file.
1615         * generated/spread_r8.c:  New file.
1616         * generated/spread_r10.c:  New file.
1617         * generated/spread_r16.c:  New file.
1618         * generated/spread_c4.c:  New file.
1619         * generated/spread_c8.c:  New file.
1620         * generated/spread_c10.c:  New file.
1621         * generated/spread_c16.c:  New file.
1622
1623 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1624
1625         PR libfortran/35699
1626         * io/transfer.c (write_buf):  Don't pad the record, just return if the
1627         data is NULL.  (next_record_w): If there are bytes left in the record
1628         for unformatted direct I/O, pad out the record with zero bytes.
1629
1630 2008-03-28  Tobias Burnus  <burnus@net-b.de>
1631
1632         PR fortran/35721
1633         * intrinsics/associated.c (associated): Ignore different
1634         stride of pointer vs. target if only one element is referred.
1635
1636 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1637
1638         * io/unix.c (fd_close):  Do not close STDIN.
1639
1640 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
1641
1642         PR libfortran/32972
1643         * Makefile.am:  Add new variable, i_unpack_c, containing
1644         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
1645         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
1646         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
1647         and unpack_c16.c
1648         Add i_unpack_c to gfor_built_src.
1649         Add rule to generate i_unpack_c from m4/unpack.m4.
1650         * Makefile.in:  Regenerated.
1651         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
1652         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
1653         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
1654         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
1655         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
1656         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
1657         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
1658         unpack1 functions.
1659         (unpack0):  Add calls to specific unpack0 functions.
1660         * m4/unpack.m4:  New file.
1661         * generated/unpack_i1.c:  New file.
1662         * generated/unpack_i2.c:  New file.
1663         * generated/unpack_i4.c:  New file.
1664         * generated/unpack_i8.c:  New file.
1665         * generated/unpack_i16.c:  New file.
1666         * generated/unpack_r4.c:  New file.
1667         * generated/unpack_r8.c:  New file.
1668         * generated/unpack_r10.c:  New file.
1669         * generated/unpack_r16.c:  New file.
1670         * generated/unpack_c4.c:  New file.
1671         * generated/unpack_c8.c:  New file.
1672         * generated/unpack_c10.c:  New file.
1673         * generated/unpack_c16.c:  New file.
1674
1675 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1676
1677         PR libfortran/35632
1678         * io/transfer.c (data_transfer_init):  Fix whitespace.
1679         (next_record_w): Truncate the file only if the stream
1680         position is short of the file end.
1681
1682 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1683
1684         * intrinsics/pack_generic.c:  Fix typo.
1685
1686 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
1687
1688         * gfortran.map: Move erfc_scaled symbols to new symbol node
1689         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
1690
1691 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1692
1693         PR libfortran/32972
1694         * runtime/in_pack_generic.c (internal_pack):  Call correct
1695         function, pack_i16, for GFC_INTEGER_16.
1696
1697 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1698
1699         PR libfortran/32972
1700         * Makefile.am:  Add new variable, i_pack_c, containing
1701         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
1702         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
1703         pack_c8.c, pack_c10.c, pack_c16.c.
1704         Add m4/pack.m4 to m4_files.
1705         Add i_pack_c to gfor_built_src.
1706         Add rule to generate i_pack_c from m4/pack.m4.
1707         * Makefile.in:  Regenerated.
1708         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
1709         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
1710         pack_c10, pack_c16.
1711         * intrinsics/pack_generic.c:  Add calls to specific
1712         pack functions.
1713         * m4/pack.m4:  New file.
1714         * generated/pack_i1.c:  New file.
1715         * generated/pack_i2.c:  New file.
1716         * generated/pack_i4.c:  New file.
1717         * generated/pack_i8.c:  New file.
1718         * generated/pack_i16.c:  New file.
1719         * generated/pack_r4.c:  New file.
1720         * generated/pack_r8.c:  New file.
1721         * generated/pack_r10.c:  New file.
1722         * generated/pack_r16.c:  New file.
1723         * generated/pack_c4.c:  New file.
1724         * generated/pack_c8.c:  New file.
1725         * generated/pack_c10.c:  New file.
1726         * generated/pack_c16.c:  New file.
1727
1728 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1729
1730         PR libfortran/35627
1731         * io/list_read.c (free_line): Clear the line buffer enable flag and
1732         reset the index into line_buffer, aka item_count.
1733         (next_char): Cleanup whitespace.
1734         (read_logical): Use unget_char to assure that the first character of the
1735         bad logical is saved in case it is part of an object name. Remove the
1736         clearing of index and flag that is now in free_line.
1737         (read_real): Likewise.
1738
1739 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1740
1741         PR libfortran/32972
1742         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
1743         last commit.
1744
1745 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1746
1747         PR libfortran/32972
1748         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
1749         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
1750         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
1751         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
1752         in_unpack_r16.c.
1753         * Makefile.in: Regenerate.
1754         * libgfortran.h:  Add prototypes for internal_pack_1,
1755         internal_pack_2, internal_pack_16, internal_pack_r4,
1756         internal_pack_r8, internal_pack_r10, internal_pack_r16,
1757         internal_pack_c10 and internal_pack_c16.  Add prototypes for
1758         internal_unpack_1, internal_unpack_2, internal_unpack_16,
1759         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
1760         internal_unpack_r16, internal_unpack_c10 and
1761         internal_unpack_c16.
1762         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
1763         of hardwired sizes.
1764         Add calls to internal_pack_1, internal_pack_2,
1765         internal_pack_16, internal_pack_r4, internal_pack_r8,
1766         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
1767         internal_pack_c16.
1768         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
1769         instead of hardwired sizes.
1770         Add calls to internal_unpack_1, internal_unpack_2,
1771         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
1772         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
1773         and internal_unpack_c16.
1774         * generated/in_pack_r4.c:  New file.
1775         * generated/in_pack_i2.c:  New file.
1776         * generated/in_unpack_i1.c:  New file.
1777         * generated/in_pack_r10.c:  New file.
1778         * generated/in_unpack_r4.c:  New file.
1779         * generated/in_unpack_i2.c:  New file.
1780         * generated/in_unpack_r16.c:  New file.
1781         * generated/in_pack_r8.c:  New file.
1782         * generated/in_unpack_r10.c:  New file.
1783         * generated/in_unpack_r8.c:  New file.
1784         * generated/in_pack_r16.c:  New file.
1785         * generated/in_pack_i1.c:  New file.
1786
1787 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1788
1789         PR libfortran/35617
1790         * io/list_read.c (eat_separator): If next character after eatline is '!'
1791         then eatline again. 
1792
1793 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1794
1795         * aclocal.m4: Regenerate.
1796         * configure: Likewise.
1797         * Makefile.in: Likewise.
1798
1799 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1800
1801         PR libfortran/35524
1802         * intrinsics/erfc_scaled_inc.c: Only define the long double
1803         variant of erfc_scaled if expl is available.
1804
1805 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1806
1807         PR libfortran/32812
1808         * intrinsics/random.c (scramble_seed, unscramble_seed): New
1809         functions.
1810         (random_seed_i4): Scramble the seed the user gives us before
1811         storing it, and unscramble it when we return it back later.
1812
1813 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
1814
1815         PR libfortran/35293
1816         * io/unix.c (fd_truncate): Fold s->special_file case into
1817         success case of ftruncate/chsize call instead of the failure case.
1818         Make failure case actually return failure.  Properly update stream
1819         pointers on failure.  Call runtime_error for targets without
1820         neither ftruncate nor chsize where such a call would be needed.
1821
1822 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1823
1824         PR fortran/33197
1825         * intrinsics/erfc_scaled_inc.c: New file.
1826         * intrinsics/erfc_scaled.c: New file.
1827         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
1828         * Makefile.am: Add intrinsics/erfc_scaled.c.
1829         * config.h.in: Regenerate.
1830         * configure: Regenerate.
1831         * Makefile.in: Regenerate.
1832
1833 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1834
1835         PR libfortran/35355
1836         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
1837         for mingw.
1838
1839 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1840
1841         PR libfortran/35063
1842         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
1843         instead of macro kludge.
1844         
1845 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
1846
1847         PR fortran/29549
1848         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
1849         libgfortran.
1850         * Makefile.in: Regenerated.
1851
1852 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1853
1854         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
1855         * generated/all_l1.c: Regenerate.
1856         * generated/all_l2.c: Regenerate.
1857         * generated/all_l4.c: Regenerate.
1858         * generated/all_l8.c: Regenerate.
1859         * generated/all_l16.c: Regenerate.
1860         * generated/any_l1.c: Regenerate.
1861         * generated/any_l2.c: Regenerate.
1862         * generated/any_l4.c: Regenerate.
1863         * generated/any_l8.c: Regenerate.
1864         * generated/any_l16.c: Regenerate.
1865         * generated/count_1_l.c: Regenerate.
1866         * generated/count_2_l.c: Regenerate.
1867         * generated/count_4_l.c: Regenerate.
1868         * generated/count_8_l.c: Regenerate.
1869         * generated/count_16_l.c: Regenerate.
1870
1871 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1872
1873         PR libfortran/32841
1874         * acinclude.m4: Don't use HAVE_MATH_H.
1875         * configure: Regenerate.
1876
1877 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1878
1879         PR libfortran/35132
1880         * io/transfer.c (next_record_w): Truncate after the last record for
1881         STREAM I/O.
1882
1883         PR libfortran/34954
1884         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
1885
1886         PR libfortran/34974
1887         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
1888         is less than zero. (next_record_w): Use sseek to position the file to
1889         the max position reached.
1890
1891 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1892
1893         PR libfortran/35036
1894         * write_float.def (output_float):  Add error checks for zero digits
1895         after decimal point in E and D format specifiers.
1896         
1897 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1898
1899         PR libfortran/35063
1900         * io/unit.c (destroy_unit_mutex): New function that uses
1901         __gthread_mutex_destroy_function or pthread_mutex_destroy after
1902         unlocking and before free_mem for final closure of I/O unit.
1903         (delete_root): Use new function.
1904         (free_internal_unit): Likewise.
1905         (close_unit_1): Likewise.
1906
1907 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1908
1909         PR libfortran/35001
1910         * m4/shape.m4:  Return 0 for extents <= 0.
1911         * generated/shape_i4.c:  Regenerated.
1912         * generated/shape_i8.c:  Regenerated.
1913         * generated/shape_i16.c:  Regenerated.
1914
1915 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1916
1917         PR libfortran/34980
1918         * m4/shape.m4:  If return array is empty, return early.
1919         * generated/shape_i4.c:  Regenerated.
1920         * generated/shape_i8.c:  Regenerated.
1921         * generated/shape_i16.c:  Regenerated.
1922
1923 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1924
1925         PR libfofortran/34887
1926         * io/transfer.c (next_record_w): Always move to the farthest
1927         position when completing the record (also when we are
1928         processing a slash edit descriptor).
1929
1930 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1931
1932         PR libfortran/34876
1933         * io/transfer.c (write_buf): Handle case of zero sized array.
1934         (transfer_array): Set data pointer to NULL and size to zero.  Then
1935         make a data transfer and return.
1936         
1937 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
1938
1939         * configure: Regenerate.
1940
1941 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1942
1943         PR libfortran/34795
1944         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
1945         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
1946         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
1947         FORAMATTED, and UNFORMATTED inquiries.
1948         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
1949         for files that are not opened. (inquire_direct): Same.
1950         (inquire_formatted): Same.
1951         
1952 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1953
1954         PR libfortran/34782
1955         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
1956         of the current max_pos or the newly calculated position.
1957
1958 2008-01-18  Tobias Burnus  <burnus@net-b.de>
1959
1960         * io/write.c (write_real): Increase default precision
1961         for REAL(16) by one.
1962
1963 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
1964
1965         PR libfortran/34669
1966         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
1967         to avoid piping the -fdump-parse-tree output to the assembler
1968         when configuring with -pipe.
1969         * mk-sik-inc.sh: Likewise.
1970         * mk-srk-inc.sh: Likewise.
1971
1972 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1973
1974         PR libfortran/34671
1975         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
1976         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
1977         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
1978         _gfortran_count_8_l Removed _gfortran_count_16_l16,
1979         _gfortran_count_16_l4, _gfortran_count_16_l8,
1980         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
1981         _gfortran_count_8_l16, _gfortran_count_8_l4 and
1982         _gfortran_count_8_l8.
1983         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
1984         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
1985         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
1986         generated/count_16_l4.c, generated/count_4_l8.c,
1987         generated/count_8_l8.c, generated/count_16_l8.c,
1988         generated/count_4_l16.c, generated/count_8_l16.c, and
1989         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
1990         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
1991         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
1992         any of the files generated from all.m4, any.m4 and count.m4.
1993         * Makefile.in:  Regenerated.
1994         * m4/ifunction_logical.m4:  New file.  Use
1995         GFC_LOGICAL_1 pointer for access to source arrays.
1996         * m4/any.m4:  Include ifunction_logical.m4 instead of
1997         ifunction.m4.  Don't check atype_name.
1998         * m4/all.m4:  Likewise.
1999         * m4/count.m4:  Likewise.
2000         * generated/any_l1.c:  New file.
2001         * generated/any_l2.c:  New file.
2002         * generated/all_l1.c:  New file.
2003         * generated/count_1_l.c:  New file.
2004         * generated/count_2_l.c:  New file.
2005         * generated/count_4_l.c:  New file.
2006         * generated/count_8_l.c:  New file.
2007         * generated/count_16_l.c:  New file.
2008         * generated/any_l4.c:  Regenerated.
2009         * generated/any_l8.c:  Regenerated.
2010         * generated/any_l16.c:  Regenerated.
2011         * generated/all_l4.c: Regenerated.
2012         * generated/all_l8.c: Regenerated.
2013         * generated/all_l16.c: Regenerated.
2014         * generated/count_4_l4.c:  Removed.
2015         * generated/count_4_l8.c:  Removed.
2016         * generated/count_4_l16.c:  Removed.
2017         * generated/count_8_l4.c:  Removed.
2018         * generated/count_8_l8.c:  Removed.
2019         * generated/count_8_l16.c:  Removed.
2020         * generated/count_16_l4.c:  Removed.
2021         * generated/count_16_l8.c:  Removed.
2022         * generated/count_16_l16.c:  Removed.
2023
2024 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2025
2026         PR libfortran/34746
2027         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
2028         in printf format for all bounds checking; cast all
2029         integer-like arguments to runtime_error() to long int.
2030         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2031         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2032         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2033         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2034         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2035         * generated/all_l16.c: Regenerated.
2036         * generated/all_l4.c: Regenerated.
2037         * generated/all_l8.c: Regenerated.
2038         * generated/any_l16.c: Regenerated.
2039         * generated/any_l4.c: Regenerated.
2040         * generated/any_l8.c: Regenerated.
2041         * generated/count_16_l16.c: Regenerated.
2042         * generated/count_16_l4.c: Regenerated.
2043         * generated/count_16_l8.c: Regenerated.
2044         * generated/count_4_l16.c: Regenerated.
2045         * generated/count_4_l4.c: Regenerated.
2046         * generated/count_4_l8.c: Regenerated.
2047         * generated/count_8_l16.c: Regenerated.
2048         * generated/count_8_l4.c: Regenerated.
2049         * generated/count_8_l8.c: Regenerated.
2050         * generated/maxloc0_16_i1.c: Regenerated.
2051         * generated/maxloc0_16_i16.c: Regenerated.
2052         * generated/maxloc0_16_i2.c: Regenerated.
2053         * generated/maxloc0_16_i4.c: Regenerated.
2054         * generated/maxloc0_16_i8.c: Regenerated.
2055         * generated/maxloc0_16_r10.c: Regenerated.
2056         * generated/maxloc0_16_r16.c: Regenerated.
2057         * generated/maxloc0_16_r4.c: Regenerated.
2058         * generated/maxloc0_16_r8.c: Regenerated.
2059         * generated/maxloc0_4_i1.c: Regenerated.
2060         * generated/maxloc0_4_i16.c: Regenerated.
2061         * generated/maxloc0_4_i2.c: Regenerated.
2062         * generated/maxloc0_4_i4.c: Regenerated.
2063         * generated/maxloc0_4_i8.c: Regenerated.
2064         * generated/maxloc0_4_r10.c: Regenerated.
2065         * generated/maxloc0_4_r16.c: Regenerated.
2066         * generated/maxloc0_4_r4.c: Regenerated.
2067         * generated/maxloc0_4_r8.c: Regenerated.
2068         * generated/maxloc0_8_i1.c: Regenerated.
2069         * generated/maxloc0_8_i16.c: Regenerated.
2070         * generated/maxloc0_8_i2.c: Regenerated.
2071         * generated/maxloc0_8_i4.c: Regenerated.
2072         * generated/maxloc0_8_i8.c: Regenerated.
2073         * generated/maxloc0_8_r10.c: Regenerated.
2074         * generated/maxloc0_8_r16.c: Regenerated.
2075         * generated/maxloc0_8_r4.c: Regenerated.
2076         * generated/maxloc0_8_r8.c: Regenerated.
2077         * generated/maxloc1_16_i1.c: Regenerated.
2078         * generated/maxloc1_16_i16.c: Regenerated.
2079         * generated/maxloc1_16_i2.c: Regenerated.
2080         * generated/maxloc1_16_i4.c: Regenerated.
2081         * generated/maxloc1_16_i8.c: Regenerated.
2082         * generated/maxloc1_16_r10.c: Regenerated.
2083         * generated/maxloc1_16_r16.c: Regenerated.
2084         * generated/maxloc1_16_r4.c: Regenerated.
2085         * generated/maxloc1_16_r8.c: Regenerated.
2086         * generated/maxloc1_4_i1.c: Regenerated.
2087         * generated/maxloc1_4_i16.c: Regenerated.
2088         * generated/maxloc1_4_i2.c: Regenerated.
2089         * generated/maxloc1_4_i4.c: Regenerated.
2090         * generated/maxloc1_4_i8.c: Regenerated.
2091         * generated/maxloc1_4_r10.c: Regenerated.
2092         * generated/maxloc1_4_r16.c: Regenerated.
2093         * generated/maxloc1_4_r4.c: Regenerated.
2094         * generated/maxloc1_4_r8.c: Regenerated.
2095         * generated/maxloc1_8_i1.c: Regenerated.
2096         * generated/maxloc1_8_i16.c: Regenerated.
2097         * generated/maxloc1_8_i2.c: Regenerated.
2098         * generated/maxloc1_8_i4.c: Regenerated.
2099         * generated/maxloc1_8_i8.c: Regenerated.
2100         * generated/maxloc1_8_r10.c: Regenerated.
2101         * generated/maxloc1_8_r16.c: Regenerated.
2102         * generated/maxloc1_8_r4.c: Regenerated.
2103         * generated/maxloc1_8_r8.c: Regenerated.
2104         * generated/maxval_i1.c: Regenerated.
2105         * generated/maxval_i16.c: Regenerated.
2106         * generated/maxval_i2.c: Regenerated.
2107         * generated/maxval_i4.c: Regenerated.
2108         * generated/maxval_i8.c: Regenerated.
2109         * generated/maxval_r10.c: Regenerated.
2110         * generated/maxval_r16.c: Regenerated.
2111         * generated/maxval_r4.c: Regenerated.
2112         * generated/maxval_r8.c: Regenerated.
2113         * generated/minloc0_16_i1.c: Regenerated.
2114         * generated/minloc0_16_i16.c: Regenerated.
2115         * generated/minloc0_16_i2.c: Regenerated.
2116         * generated/minloc0_16_i4.c: Regenerated.
2117         * generated/minloc0_16_i8.c: Regenerated.
2118         * generated/minloc0_16_r10.c: Regenerated.
2119         * generated/minloc0_16_r16.c: Regenerated.
2120         * generated/minloc0_16_r4.c: Regenerated.
2121         * generated/minloc0_16_r8.c: Regenerated.
2122         * generated/minloc0_4_i1.c: Regenerated.
2123         * generated/minloc0_4_i16.c: Regenerated.
2124         * generated/minloc0_4_i2.c: Regenerated.
2125         * generated/minloc0_4_i4.c: Regenerated.
2126         * generated/minloc0_4_i8.c: Regenerated.
2127         * generated/minloc0_4_r10.c: Regenerated.
2128         * generated/minloc0_4_r16.c: Regenerated.
2129         * generated/minloc0_4_r4.c: Regenerated.
2130         * generated/minloc0_4_r8.c: Regenerated.
2131         * generated/minloc0_8_i1.c: Regenerated.
2132         * generated/minloc0_8_i16.c: Regenerated.
2133         * generated/minloc0_8_i2.c: Regenerated.
2134         * generated/minloc0_8_i4.c: Regenerated.
2135         * generated/minloc0_8_i8.c: Regenerated.
2136         * generated/minloc0_8_r10.c: Regenerated.
2137         * generated/minloc0_8_r16.c: Regenerated.
2138         * generated/minloc0_8_r4.c: Regenerated.
2139         * generated/minloc0_8_r8.c: Regenerated.
2140         * generated/minloc1_16_i1.c: Regenerated.
2141         * generated/minloc1_16_i16.c: Regenerated.
2142         * generated/minloc1_16_i2.c: Regenerated.
2143         * generated/minloc1_16_i4.c: Regenerated.
2144         * generated/minloc1_16_i8.c: Regenerated.
2145         * generated/minloc1_16_r10.c: Regenerated.
2146         * generated/minloc1_16_r16.c: Regenerated.
2147         * generated/minloc1_16_r4.c: Regenerated.
2148         * generated/minloc1_16_r8.c: Regenerated.
2149         * generated/minloc1_4_i1.c: Regenerated.
2150         * generated/minloc1_4_i16.c: Regenerated.
2151         * generated/minloc1_4_i2.c: Regenerated.
2152         * generated/minloc1_4_i4.c: Regenerated.
2153         * generated/minloc1_4_i8.c: Regenerated.
2154         * generated/minloc1_4_r10.c: Regenerated.
2155         * generated/minloc1_4_r16.c: Regenerated.
2156         * generated/minloc1_4_r4.c: Regenerated.
2157         * generated/minloc1_4_r8.c: Regenerated.
2158         * generated/minloc1_8_i1.c: Regenerated.
2159         * generated/minloc1_8_i16.c: Regenerated.
2160         * generated/minloc1_8_i2.c: Regenerated.
2161         * generated/minloc1_8_i4.c: Regenerated.
2162         * generated/minloc1_8_i8.c: Regenerated.
2163         * generated/minloc1_8_r10.c: Regenerated.
2164         * generated/minloc1_8_r16.c: Regenerated.
2165         * generated/minloc1_8_r4.c: Regenerated.
2166         * generated/minloc1_8_r8.c: Regenerated.
2167         * generated/minval_i1.c: Regenerated.
2168         * generated/minval_i16.c: Regenerated.
2169         * generated/minval_i2.c: Regenerated.
2170         * generated/minval_i4.c: Regenerated.
2171         * generated/minval_i8.c: Regenerated.
2172         * generated/minval_r10.c: Regenerated.
2173         * generated/minval_r16.c: Regenerated.
2174         * generated/minval_r4.c: Regenerated.
2175         * generated/minval_r8.c: Regenerated.
2176         * generated/product_c10.c: Regenerated.
2177         * generated/product_c16.c: Regenerated.
2178         * generated/product_c4.c: Regenerated.
2179         * generated/product_c8.c: Regenerated.
2180         * generated/product_i1.c: Regenerated.
2181         * generated/product_i16.c: Regenerated.
2182         * generated/product_i2.c: Regenerated.
2183         * generated/product_i4.c: Regenerated.
2184         * generated/product_i8.c: Regenerated.
2185         * generated/product_r10.c: Regenerated.
2186         * generated/product_r16.c: Regenerated.
2187         * generated/product_r4.c: Regenerated.
2188         * generated/product_r8.c: Regenerated.
2189         * generated/sum_c10.c: Regenerated.
2190         * generated/sum_c16.c: Regenerated.
2191         * generated/sum_c4.c: Regenerated.
2192         * generated/sum_c8.c: Regenerated.
2193         * generated/sum_i1.c: Regenerated.
2194         * generated/sum_i16.c: Regenerated.
2195         * generated/sum_i2.c: Regenerated.
2196         * generated/sum_i4.c: Regenerated.
2197         * generated/sum_i8.c: Regenerated.
2198         * generated/sum_r10.c: Regenerated.
2199         * generated/sum_r16.c: Regenerated.
2200         * generated/sum_r4.c: Regenerated.
2201         * generated/sum_r8.c: Regenerated.
2202
2203 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2204
2205         PR libfortran/34670
2206         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
2207         (u_name):  New macro for the upper case name of the intrinsic.
2208         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
2209         bounds checking and rank check, depending on
2210         compile_options.bounds_check.
2211         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2212         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2213         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
2214         bounds checking and rank check, depending on
2215         compile_options.bounds_check.
2216         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2217         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2218         * generated/all_l16.c: Regenerated.
2219         * generated/all_l4.c: Regenerated.
2220         * generated/all_l8.c: Regenerated.
2221         * generated/any_l16.c: Regenerated.
2222         * generated/any_l4.c: Regenerated.
2223         * generated/any_l8.c: Regenerated.
2224         * generated/count_16_l16.c: Regenerated.
2225         * generated/count_16_l4.c: Regenerated.
2226         * generated/count_16_l8.c: Regenerated.
2227         * generated/count_4_l16.c: Regenerated.
2228         * generated/count_4_l4.c: Regenerated.
2229         * generated/count_4_l8.c: Regenerated.
2230         * generated/count_8_l16.c: Regenerated.
2231         * generated/count_8_l4.c: Regenerated.
2232         * generated/count_8_l8.c: Regenerated.
2233         * generated/maxloc0_16_i1.c: Regenerated.
2234         * generated/maxloc0_16_i16.c: Regenerated.
2235         * generated/maxloc0_16_i2.c: Regenerated.
2236         * generated/maxloc0_16_i4.c: Regenerated.
2237         * generated/maxloc0_16_i8.c: Regenerated.
2238         * generated/maxloc0_16_r10.c: Regenerated.
2239         * generated/maxloc0_16_r16.c: Regenerated.
2240         * generated/maxloc0_16_r4.c: Regenerated.
2241         * generated/maxloc0_16_r8.c: Regenerated.
2242         * generated/maxloc0_4_i1.c: Regenerated.
2243         * generated/maxloc0_4_i16.c: Regenerated.
2244         * generated/maxloc0_4_i2.c: Regenerated.
2245         * generated/maxloc0_4_i4.c: Regenerated.
2246         * generated/maxloc0_4_i8.c: Regenerated.
2247         * generated/maxloc0_4_r10.c: Regenerated.
2248         * generated/maxloc0_4_r16.c: Regenerated.
2249         * generated/maxloc0_4_r4.c: Regenerated.
2250         * generated/maxloc0_4_r8.c: Regenerated.
2251         * generated/maxloc0_8_i1.c: Regenerated.
2252         * generated/maxloc0_8_i16.c: Regenerated.
2253         * generated/maxloc0_8_i2.c: Regenerated.
2254         * generated/maxloc0_8_i4.c: Regenerated.
2255         * generated/maxloc0_8_i8.c: Regenerated.
2256         * generated/maxloc0_8_r10.c: Regenerated.
2257         * generated/maxloc0_8_r16.c: Regenerated.
2258         * generated/maxloc0_8_r4.c: Regenerated.
2259         * generated/maxloc0_8_r8.c: Regenerated.
2260         * generated/maxloc1_16_i1.c: Regenerated.
2261         * generated/maxloc1_16_i16.c: Regenerated.
2262         * generated/maxloc1_16_i2.c: Regenerated.
2263         * generated/maxloc1_16_i4.c: Regenerated.
2264         * generated/maxloc1_16_i8.c: Regenerated.
2265         * generated/maxloc1_16_r10.c: Regenerated.
2266         * generated/maxloc1_16_r16.c: Regenerated.
2267         * generated/maxloc1_16_r4.c: Regenerated.
2268         * generated/maxloc1_16_r8.c: Regenerated.
2269         * generated/maxloc1_4_i1.c: Regenerated.
2270         * generated/maxloc1_4_i16.c: Regenerated.
2271         * generated/maxloc1_4_i2.c: Regenerated.
2272         * generated/maxloc1_4_i4.c: Regenerated.
2273         * generated/maxloc1_4_i8.c: Regenerated.
2274         * generated/maxloc1_4_r10.c: Regenerated.
2275         * generated/maxloc1_4_r16.c: Regenerated.
2276         * generated/maxloc1_4_r4.c: Regenerated.
2277         * generated/maxloc1_4_r8.c: Regenerated.
2278         * generated/maxloc1_8_i1.c: Regenerated.
2279         * generated/maxloc1_8_i16.c: Regenerated.
2280         * generated/maxloc1_8_i2.c: Regenerated.
2281         * generated/maxloc1_8_i4.c: Regenerated.
2282         * generated/maxloc1_8_i8.c: Regenerated.
2283         * generated/maxloc1_8_r10.c: Regenerated.
2284         * generated/maxloc1_8_r16.c: Regenerated.
2285         * generated/maxloc1_8_r4.c: Regenerated.
2286         * generated/maxloc1_8_r8.c: Regenerated.
2287         * generated/maxval_i1.c: Regenerated.
2288         * generated/maxval_i16.c: Regenerated.
2289         * generated/maxval_i2.c: Regenerated.
2290         * generated/maxval_i4.c: Regenerated.
2291         * generated/maxval_i8.c: Regenerated.
2292         * generated/maxval_r10.c: Regenerated.
2293         * generated/maxval_r16.c: Regenerated.
2294         * generated/maxval_r4.c: Regenerated.
2295         * generated/maxval_r8.c: Regenerated.
2296         * generated/minloc0_16_i1.c: Regenerated.
2297         * generated/minloc0_16_i16.c: Regenerated.
2298         * generated/minloc0_16_i2.c: Regenerated.
2299         * generated/minloc0_16_i4.c: Regenerated.
2300         * generated/minloc0_16_i8.c: Regenerated.
2301         * generated/minloc0_16_r10.c: Regenerated.
2302         * generated/minloc0_16_r16.c: Regenerated.
2303         * generated/minloc0_16_r4.c: Regenerated.
2304         * generated/minloc0_16_r8.c: Regenerated.
2305         * generated/minloc0_4_i1.c: Regenerated.
2306         * generated/minloc0_4_i16.c: Regenerated.
2307         * generated/minloc0_4_i2.c: Regenerated.
2308         * generated/minloc0_4_i4.c: Regenerated.
2309         * generated/minloc0_4_i8.c: Regenerated.
2310         * generated/minloc0_4_r10.c: Regenerated.
2311         * generated/minloc0_4_r16.c: Regenerated.
2312         * generated/minloc0_4_r4.c: Regenerated.
2313         * generated/minloc0_4_r8.c: Regenerated.
2314         * generated/minloc0_8_i1.c: Regenerated.
2315         * generated/minloc0_8_i16.c: Regenerated.
2316         * generated/minloc0_8_i2.c: Regenerated.
2317         * generated/minloc0_8_i4.c: Regenerated.
2318         * generated/minloc0_8_i8.c: Regenerated.
2319         * generated/minloc0_8_r10.c: Regenerated.
2320         * generated/minloc0_8_r16.c: Regenerated.
2321         * generated/minloc0_8_r4.c: Regenerated.
2322         * generated/minloc0_8_r8.c: Regenerated.
2323         * generated/minloc1_16_i1.c: Regenerated.
2324         * generated/minloc1_16_i16.c: Regenerated.
2325         * generated/minloc1_16_i2.c: Regenerated.
2326         * generated/minloc1_16_i4.c: Regenerated.
2327         * generated/minloc1_16_i8.c: Regenerated.
2328         * generated/minloc1_16_r10.c: Regenerated.
2329         * generated/minloc1_16_r16.c: Regenerated.
2330         * generated/minloc1_16_r4.c: Regenerated.
2331         * generated/minloc1_16_r8.c: Regenerated.
2332         * generated/minloc1_4_i1.c: Regenerated.
2333         * generated/minloc1_4_i16.c: Regenerated.
2334         * generated/minloc1_4_i2.c: Regenerated.
2335         * generated/minloc1_4_i4.c: Regenerated.
2336         * generated/minloc1_4_i8.c: Regenerated.
2337         * generated/minloc1_4_r10.c: Regenerated.
2338         * generated/minloc1_4_r16.c: Regenerated.
2339         * generated/minloc1_4_r4.c: Regenerated.
2340         * generated/minloc1_4_r8.c: Regenerated.
2341         * generated/minloc1_8_i1.c: Regenerated.
2342         * generated/minloc1_8_i16.c: Regenerated.
2343         * generated/minloc1_8_i2.c: Regenerated.
2344         * generated/minloc1_8_i4.c: Regenerated.
2345         * generated/minloc1_8_i8.c: Regenerated.
2346         * generated/minloc1_8_r10.c: Regenerated.
2347         * generated/minloc1_8_r16.c: Regenerated.
2348         * generated/minloc1_8_r4.c: Regenerated.
2349         * generated/minloc1_8_r8.c: Regenerated.
2350         * generated/minval_i1.c: Regenerated.
2351         * generated/minval_i16.c: Regenerated.
2352         * generated/minval_i2.c: Regenerated.
2353         * generated/minval_i4.c: Regenerated.
2354         * generated/minval_i8.c: Regenerated.
2355         * generated/minval_r10.c: Regenerated.
2356         * generated/minval_r16.c: Regenerated.
2357         * generated/minval_r4.c: Regenerated.
2358         * generated/minval_r8.c: Regenerated.
2359         * generated/product_c10.c: Regenerated.
2360         * generated/product_c16.c: Regenerated.
2361         * generated/product_c4.c: Regenerated.
2362         * generated/product_c8.c: Regenerated.
2363         * generated/product_i1.c: Regenerated.
2364         * generated/product_i16.c: Regenerated.
2365         * generated/product_i2.c: Regenerated.
2366         * generated/product_i4.c: Regenerated.
2367         * generated/product_i8.c: Regenerated.
2368         * generated/product_r10.c: Regenerated.
2369         * generated/product_r16.c: Regenerated.
2370         * generated/product_r4.c: Regenerated.
2371         * generated/product_r8.c: Regenerated.
2372         * generated/sum_c10.c: Regenerated.
2373         * generated/sum_c16.c: Regenerated.
2374         * generated/sum_c4.c: Regenerated.
2375         * generated/sum_c8.c: Regenerated.
2376         * generated/sum_i1.c: Regenerated.
2377         * generated/sum_i16.c: Regenerated.
2378         * generated/sum_i2.c: Regenerated.
2379         * generated/sum_i4.c: Regenerated.
2380         * generated/sum_i8.c: Regenerated.
2381         * generated/sum_r10.c: Regenerated.
2382         * generated/sum_r16.c: Regenerated.
2383         * generated/sum_r4.c: Regenerated.
2384         * generated/sum_r8.c: Regenerated.
2385
2386 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2387
2388         PR libfortran/34676
2389         * io/list_read.c (next_char): Only save the EOF condition for later if
2390         advance="no".
2391
2392 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2393
2394         PR libfortran/34565
2395         * io/io.h:  Adjust protoypes for open_internal(),
2396         next_array_record() and init_loop_spec().
2397         * io/list_read.c (next_char):  Use argument "finished"
2398         of next_array_record to check for end on internal file.
2399         * io/unit.c:  Calculate the offset for an array
2400         internal file and supply this informatin to open_internal().
2401         * io/unix.c (open_internal):  Set the offset for the internal
2402         file on open.
2403         * io/transfer.c (init_loop_spec):  Calculate the starting
2404         record in case of negative strides.  Return size of 0 for
2405         an empty array.
2406         (next_array_record):  Use an extra flag to signal that the
2407         array is finished.
2408         (next_record_r):  Use the new flag to next_array_record().
2409         (next_record_w):  Likewise.