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