OSDN Git Service

2008-04-18 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2
3         PR bootstrap/35457
4         * aclocal.m4: Regenerate.
5         * configure: Regenerate.
6
7 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
8
9         PR libfortran/32972
10         * intrinsics/spread_generic.c (spread):  Use spread_i2()
11         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
12
13 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
14         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15
16         PR libfortran/32972
17         PR libfortran/32512
18         configure.ac:  Add test for uintptr_t.
19         configure:  Regenerated.
20         config.h.in:  Regenerated.
21         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
22         GFC_DTYPE_DERIVED_2:  New macro.
23         GFC_DTYPE_DERIVED_4:  New macro.
24         GFC_DTYPE_DERIVED_8:  New macro.
25         GFC_DTYPE_DERIVED_16:  New macro.
26         GFC_UNALIGNED_2:  New macro.
27         GFC_UNALIGNED_4:  New macro.
28         GFC_UNALIGNED_8:  New macro.
29         GFC_UNALIGNED_16:  New macro.
30         intptr_t:  Define if we don't have it.
31         uintptr_t:  Likewise.
32         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
33         * intrinsics/signal.c (signal_sub):  Likewise.
34         (signal_sub_int):  Likewise.
35         (alarm_sub_int_i4):  Likewise.
36         * intrinsics/spread_generic.c (spread):  Use the integer
37         routines for handling derived types of sizes 1, 2, 4, 8 and 16
38         if the alignment of all pointers is correct.
39         (spread_scalar):  Likewise.
40         * intrinsics/pack_generic.c (pack):  Likewise.
41         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
42         * intrinsics/unpack_generic.c (unpack1):  Likewise.
43         (unpack0):  Likewise.
44         * runtime/in_pack_generic.c (internal_pack):  Likewise.
45         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
46
47 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
48
49         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
50         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
51         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
52         is used.
53         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
54         nml_read_obj call.  Use snprintf instead of sprintf when %s
55         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
56         of parse_err_msg array.  Append " for namelist variable " and
57         nl->var_name to it.
58         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
59         sizeof nml_err_msg as extra argument to nml_get_obj_data.
60
61 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
62
63         PR fortran/25829 28655
64         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
65         and flags.status. (st_open): Initialize flags.async.
66         * io/list_read.c (read_charactor): Use delim_status instead of
67         flags.delim.
68         * io/read.c (read_x): Use pad_status instead of flags.pad.
69         * io/inquire.c (inquire_via_unit): Add new checks.
70         (inquire_via_filename): Likewise.
71         * io/io.h (st_parameter_inquire): Add new flags.
72         (st_parameter_dt): Likewise.
73         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
74         flags.async.
75         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
76         pad_status instead of flags.pad. (read_block): Likewise.
77         (data_transfer_init): Set flags.async and add checks.
78         * io/write.c (write_character): Use delim_status.
79         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
80         (namelist_write): Likewise.
81
82 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
83
84         PR fortran/25829 28655
85         * gfortran.map: Add new symbol, _gfortran_st_wait.
86         * libgfortran.h (st_paramter_common): Add new I/O parameters.
87         * open.c (st_option decimal_opt[], st_option encoding_opt[],
88         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
89         parameter option arrays. (edit_modes): Add checks for new parameters.
90         (new_unit): Likewise. (st_open): Likewise.
91         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
92         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
93         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
94         * read.c (read_a): Use decimal status flag to allow comma in place of a
95         decimal point. (read_f): Allow comma as acceptable character in float.
96         According to decimal flag, substitute a period for a comma.
97         (read_x): If decimal status flag is comma, disable the read_comma flag,
98         not allowing comma as a delimiter, an extension otherwise.
99         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
100         unit_async): New enumerators. Add all new I/O parameters.
101         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
102         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
103         (fd_sfree): Use new enumerator. (fd_read): Likewise.
104         (fd_write): Likewise. (fd_close): Fix whitespace.
105         (fd_open): Use new enumertors. (tempfile, regular_file,
106         open_external): Fix whitespace. (output_stream, error_stream): Set
107         method. (stream_offset): Fix whitespace.
108         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
109         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
110         based on new decimal_status flag. (data_transfer_init): Initialize new
111         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
112         * format.c: (format_lex): Add format specifiers DP, DC, and D.
113         (parse_format_list): Parse the new specifiers.
114         * write.c (write_decimal): Use new sign enumerators to set the sign.
115         (write_complex): Handle decimal comma and semi-colon separator.
116         (nml_write_obj): Likewise.
117         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
118         sign enumerators. (output_float): Likewise. Use new decimal_status flag
119         to set the decimal character to a point or a comma.
120         
121 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
122
123         PR libfortran/32972
124         PR libfortran/32512
125         * Makefile.am:  Add new variable, i_spread_c, containing
126         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
127         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
128         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
129         * Makefile.in:  Regenerated.
130         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
131         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
132         spread_c4, spread_c8, spread_c10, spread_c16,
133         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
134         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
135         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
136         spread_scalar_c10 and spread_scalar_c16.
137         Add macros to isolate both type and size information
138         from array descriptors with a single mask operation.
139         * intrinsics/spread_generic.c:  Add calls to specific
140         spread functions.
141         * m4/spread.m4:  New file.
142         * generated/spread_i1.c:  New file.
143         * generated/spread_i2.c:  New file.
144         * generated/spread_i4.c:  New file.
145         * generated/spread_i8.c:  New file.
146         * generated/spread_i16.c:  New file.
147         * generated/spread_r4.c:  New file.
148         * generated/spread_r8.c:  New file.
149         * generated/spread_r10.c:  New file.
150         * generated/spread_r16.c:  New file.
151         * generated/spread_c4.c:  New file.
152         * generated/spread_c8.c:  New file.
153         * generated/spread_c10.c:  New file.
154         * generated/spread_c16.c:  New file.
155
156 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
157
158         PR libfortran/35699
159         * io/transfer.c (write_buf):  Don't pad the record, just return if the
160         data is NULL.  (next_record_w): If there are bytes left in the record
161         for unformatted direct I/O, pad out the record with zero bytes.
162
163 2008-03-28  Tobias Burnus  <burnus@net-b.de>
164
165         PR fortran/35721
166         * intrinsics/associated.c (associated): Ignore different
167         stride of pointer vs. target if only one element is referred.
168
169 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
170
171         * io/unix.c (fd_close):  Do not close STDIN.
172
173 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
174
175         PR libfortran/32972
176         * Makefile.am:  Add new variable, i_unpack_c, containing
177         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
178         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
179         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
180         and unpack_c16.c
181         Add i_unpack_c to gfor_built_src.
182         Add rule to generate i_unpack_c from m4/unpack.m4.
183         * Makefile.in:  Regenerated.
184         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
185         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
186         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
187         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
188         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
189         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
190         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
191         unpack1 functions.
192         (unpack0):  Add calls to specific unpack0 functions.
193         * m4/unpack.m4:  New file.
194         * generated/unpack_i1.c:  New file.
195         * generated/unpack_i2.c:  New file.
196         * generated/unpack_i4.c:  New file.
197         * generated/unpack_i8.c:  New file.
198         * generated/unpack_i16.c:  New file.
199         * generated/unpack_r4.c:  New file.
200         * generated/unpack_r8.c:  New file.
201         * generated/unpack_r10.c:  New file.
202         * generated/unpack_r16.c:  New file.
203         * generated/unpack_c4.c:  New file.
204         * generated/unpack_c8.c:  New file.
205         * generated/unpack_c10.c:  New file.
206         * generated/unpack_c16.c:  New file.
207
208 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
209
210         PR libfortran/35632
211         * io/transfer.c (data_transfer_init):  Fix whitespace.
212         (next_record_w): Truncate the file only if the stream
213         position is short of the file end.
214
215 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
216
217         * intrinsics/pack_generic.c:  Fix typo.
218
219 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
220
221         * gfortran.map: Move erfc_scaled symbols to new symbol node
222         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
223
224 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
225
226         PR libfortran/32972
227         * runtime/in_pack_generic.c (internal_pack):  Call correct
228         function, pack_i16, for GFC_INTEGER_16.
229
230 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
231
232         PR libfortran/32972
233         * Makefile.am:  Add new variable, i_pack_c, containing
234         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
235         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
236         pack_c8.c, pack_c10.c, pack_c16.c.
237         Add m4/pack.m4 to m4_files.
238         Add i_pack_c to gfor_built_src.
239         Add rule to generate i_pack_c from m4/pack.m4.
240         * Makefile.in:  Regenerated.
241         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
242         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
243         pack_c10, pack_c16.
244         * intrinsics/pack_generic.c:  Add calls to specific
245         pack functions.
246         * m4/pack.m4:  New file.
247         * generated/pack_i1.c:  New file.
248         * generated/pack_i2.c:  New file.
249         * generated/pack_i4.c:  New file.
250         * generated/pack_i8.c:  New file.
251         * generated/pack_i16.c:  New file.
252         * generated/pack_r4.c:  New file.
253         * generated/pack_r8.c:  New file.
254         * generated/pack_r10.c:  New file.
255         * generated/pack_r16.c:  New file.
256         * generated/pack_c4.c:  New file.
257         * generated/pack_c8.c:  New file.
258         * generated/pack_c10.c:  New file.
259         * generated/pack_c16.c:  New file.
260
261 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
262
263         PR libfortran/35627
264         * io/list_read.c (free_line): Clear the line buffer enable flag and
265         reset the index into line_buffer, aka item_count.
266         (next_char): Cleanup whitespace.
267         (read_logical): Use unget_char to assure that the first character of the
268         bad logical is saved in case it is part of an object name. Remove the
269         clearing of index and flag that is now in free_line.
270         (read_real): Likewise.
271
272 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
273
274         PR libfortran/32972
275         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
276         last commit.
277
278 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
279
280         PR libfortran/32972
281         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
282         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
283         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
284         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
285         in_unpack_r16.c.
286         * Makefile.in: Regenerate.
287         * libgfortran.h:  Add prototypes for internal_pack_1,
288         internal_pack_2, internal_pack_16, internal_pack_r4,
289         internal_pack_r8, internal_pack_r10, internal_pack_r16,
290         internal_pack_c10 and internal_pack_c16.  Add prototypes for
291         internal_unpack_1, internal_unpack_2, internal_unpack_16,
292         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
293         internal_unpack_r16, internal_unpack_c10 and
294         internal_unpack_c16.
295         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
296         of hardwired sizes.
297         Add calls to internal_pack_1, internal_pack_2,
298         internal_pack_16, internal_pack_r4, internal_pack_r8,
299         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
300         internal_pack_c16.
301         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
302         instead of hardwired sizes.
303         Add calls to internal_unpack_1, internal_unpack_2,
304         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
305         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
306         and internal_unpack_c16.
307         * generated/in_pack_r4.c:  New file.
308         * generated/in_pack_i2.c:  New file.
309         * generated/in_unpack_i1.c:  New file.
310         * generated/in_pack_r10.c:  New file.
311         * generated/in_unpack_r4.c:  New file.
312         * generated/in_unpack_i2.c:  New file.
313         * generated/in_unpack_r16.c:  New file.
314         * generated/in_pack_r8.c:  New file.
315         * generated/in_unpack_r10.c:  New file.
316         * generated/in_unpack_r8.c:  New file.
317         * generated/in_pack_r16.c:  New file.
318         * generated/in_pack_i1.c:  New file.
319
320 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
321
322         PR libfortran/35617
323         * io/list_read.c (eat_separator): If next character after eatline is '!'
324         then eatline again. 
325
326 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
327
328         * aclocal.m4: Regenerate.
329         * configure: Likewise.
330         * Makefile.in: Likewise.
331
332 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
333
334         PR libfortran/35524
335         * intrinsics/erfc_scaled_inc.c: Only define the long double
336         variant of erfc_scaled if expl is available.
337
338 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
339
340         PR libfortran/32812
341         * intrinsics/random.c (scramble_seed, unscramble_seed): New
342         functions.
343         (random_seed_i4): Scramble the seed the user gives us before
344         storing it, and unscramble it when we return it back later.
345
346 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
347
348         PR libfortran/35293
349         * io/unix.c (fd_truncate): Fold s->special_file case into
350         success case of ftruncate/chsize call instead of the failure case.
351         Make failure case actually return failure.  Properly update stream
352         pointers on failure.  Call runtime_error for targets without
353         neither ftruncate nor chsize where such a call would be needed.
354
355 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
356
357         PR fortran/33197
358         * intrinsics/erfc_scaled_inc.c: New file.
359         * intrinsics/erfc_scaled.c: New file.
360         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
361         * Makefile.am: Add intrinsics/erfc_scaled.c.
362         * config.h.in: Regenerate.
363         * configure: Regenerate.
364         * Makefile.in: Regenerate.
365
366 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
367
368         PR libfortran/35355
369         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
370         for mingw.
371
372 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
373
374         PR libfortran/35063
375         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
376         instead of macro kludge.
377         
378 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
379
380         PR fortran/29549
381         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
382         libgfortran.
383         * Makefile.in: Regenerated.
384
385 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
386
387         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
388         * generated/all_l1.c: Regenerate.
389         * generated/all_l2.c: Regenerate.
390         * generated/all_l4.c: Regenerate.
391         * generated/all_l8.c: Regenerate.
392         * generated/all_l16.c: Regenerate.
393         * generated/any_l1.c: Regenerate.
394         * generated/any_l2.c: Regenerate.
395         * generated/any_l4.c: Regenerate.
396         * generated/any_l8.c: Regenerate.
397         * generated/any_l16.c: Regenerate.
398         * generated/count_1_l.c: Regenerate.
399         * generated/count_2_l.c: Regenerate.
400         * generated/count_4_l.c: Regenerate.
401         * generated/count_8_l.c: Regenerate.
402         * generated/count_16_l.c: Regenerate.
403
404 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
405
406         PR libfortran/32841
407         * acinclude.m4: Don't use HAVE_MATH_H.
408         * configure: Regenerate.
409
410 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
411
412         PR libfortran/35132
413         * io/transfer.c (next_record_w): Truncate after the last record for
414         STREAM I/O.
415
416         PR libfortran/34954
417         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
418
419         PR libfortran/34974
420         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
421         is less than zero. (next_record_w): Use sseek to position the file to
422         the max position reached.
423
424 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
425
426         PR libfortran/35036
427         * write_float.def (output_float):  Add error checks for zero digits
428         after decimal point in E and D format specifiers.
429         
430 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
431
432         PR libfortran/35063
433         * io/unit.c (destroy_unit_mutex): New function that uses
434         __gthread_mutex_destroy_function or pthread_mutex_destroy after
435         unlocking and before free_mem for final closure of I/O unit.
436         (delete_root): Use new function.
437         (free_internal_unit): Likewise.
438         (close_unit_1): Likewise.
439
440 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
441
442         PR libfortran/35001
443         * m4/shape.m4:  Return 0 for extents <= 0.
444         * generated/shape_i4.c:  Regenerated.
445         * generated/shape_i8.c:  Regenerated.
446         * generated/shape_i16.c:  Regenerated.
447
448 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
449
450         PR libfortran/34980
451         * m4/shape.m4:  If return array is empty, return early.
452         * generated/shape_i4.c:  Regenerated.
453         * generated/shape_i8.c:  Regenerated.
454         * generated/shape_i16.c:  Regenerated.
455
456 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
457
458         PR libfofortran/34887
459         * io/transfer.c (next_record_w): Always move to the farthest
460         position when completing the record (also when we are
461         processing a slash edit descriptor).
462
463 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
464
465         PR libfortran/34876
466         * io/transfer.c (write_buf): Handle case of zero sized array.
467         (transfer_array): Set data pointer to NULL and size to zero.  Then
468         make a data transfer and return.
469         
470 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
471
472         * configure: Regenerate.
473
474 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
475
476         PR libfortran/34795
477         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
478         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
479         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
480         FORAMATTED, and UNFORMATTED inquiries.
481         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
482         for files that are not opened. (inquire_direct): Same.
483         (inquire_formatted): Same.
484         
485 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
486
487         PR libfortran/34782
488         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
489         of the current max_pos or the newly calculated position.
490
491 2008-01-18  Tobias Burnus  <burnus@net-b.de>
492
493         * io/write.c (write_real): Increase default precision
494         for REAL(16) by one.
495
496 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
497
498         PR libfortran/34669
499         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
500         to avoid piping the -fdump-parse-tree output to the assembler
501         when configuring with -pipe.
502         * mk-sik-inc.sh: Likewise.
503         * mk-srk-inc.sh: Likewise.
504
505 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
506
507         PR libfortran/34671
508         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
509         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
510         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
511         _gfortran_count_8_l Removed _gfortran_count_16_l16,
512         _gfortran_count_16_l4, _gfortran_count_16_l8,
513         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
514         _gfortran_count_8_l16, _gfortran_count_8_l4 and
515         _gfortran_count_8_l8.
516         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
517         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
518         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
519         generated/count_16_l4.c, generated/count_4_l8.c,
520         generated/count_8_l8.c, generated/count_16_l8.c,
521         generated/count_4_l16.c, generated/count_8_l16.c, and
522         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
523         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
524         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
525         any of the files generated from all.m4, any.m4 and count.m4.
526         * Makefile.in:  Regenerated.
527         * m4/ifunction_logical.m4:  New file.  Use
528         GFC_LOGICAL_1 pointer for access to source arrays.
529         * m4/any.m4:  Include ifunction_logical.m4 instead of
530         ifunction.m4.  Don't check atype_name.
531         * m4/all.m4:  Likewise.
532         * m4/count.m4:  Likewise.
533         * generated/any_l1.c:  New file.
534         * generated/any_l2.c:  New file.
535         * generated/all_l1.c:  New file.
536         * generated/count_1_l.c:  New file.
537         * generated/count_2_l.c:  New file.
538         * generated/count_4_l.c:  New file.
539         * generated/count_8_l.c:  New file.
540         * generated/count_16_l.c:  New file.
541         * generated/any_l4.c:  Regenerated.
542         * generated/any_l8.c:  Regenerated.
543         * generated/any_l16.c:  Regenerated.
544         * generated/all_l4.c: Regenerated.
545         * generated/all_l8.c: Regenerated.
546         * generated/all_l16.c: Regenerated.
547         * generated/count_4_l4.c:  Removed.
548         * generated/count_4_l8.c:  Removed.
549         * generated/count_4_l16.c:  Removed.
550         * generated/count_8_l4.c:  Removed.
551         * generated/count_8_l8.c:  Removed.
552         * generated/count_8_l16.c:  Removed.
553         * generated/count_16_l4.c:  Removed.
554         * generated/count_16_l8.c:  Removed.
555         * generated/count_16_l16.c:  Removed.
556
557 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
558
559         PR libfortran/34746
560         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
561         in printf format for all bounds checking; cast all
562         integer-like arguments to runtime_error() to long int.
563         (`m'name`'rtype_qual`_'atype_code):  Likewise.
564         (`s'name`'rtype_qual`_'atype_code):  Likewise.
565         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
566         (`m'name`'rtype_qual`_'atype_code):  Likewise.
567         (`s'name`'rtype_qual`_'atype_code):  Likewise.
568         * generated/all_l16.c: Regenerated.
569         * generated/all_l4.c: Regenerated.
570         * generated/all_l8.c: Regenerated.
571         * generated/any_l16.c: Regenerated.
572         * generated/any_l4.c: Regenerated.
573         * generated/any_l8.c: Regenerated.
574         * generated/count_16_l16.c: Regenerated.
575         * generated/count_16_l4.c: Regenerated.
576         * generated/count_16_l8.c: Regenerated.
577         * generated/count_4_l16.c: Regenerated.
578         * generated/count_4_l4.c: Regenerated.
579         * generated/count_4_l8.c: Regenerated.
580         * generated/count_8_l16.c: Regenerated.
581         * generated/count_8_l4.c: Regenerated.
582         * generated/count_8_l8.c: Regenerated.
583         * generated/maxloc0_16_i1.c: Regenerated.
584         * generated/maxloc0_16_i16.c: Regenerated.
585         * generated/maxloc0_16_i2.c: Regenerated.
586         * generated/maxloc0_16_i4.c: Regenerated.
587         * generated/maxloc0_16_i8.c: Regenerated.
588         * generated/maxloc0_16_r10.c: Regenerated.
589         * generated/maxloc0_16_r16.c: Regenerated.
590         * generated/maxloc0_16_r4.c: Regenerated.
591         * generated/maxloc0_16_r8.c: Regenerated.
592         * generated/maxloc0_4_i1.c: Regenerated.
593         * generated/maxloc0_4_i16.c: Regenerated.
594         * generated/maxloc0_4_i2.c: Regenerated.
595         * generated/maxloc0_4_i4.c: Regenerated.
596         * generated/maxloc0_4_i8.c: Regenerated.
597         * generated/maxloc0_4_r10.c: Regenerated.
598         * generated/maxloc0_4_r16.c: Regenerated.
599         * generated/maxloc0_4_r4.c: Regenerated.
600         * generated/maxloc0_4_r8.c: Regenerated.
601         * generated/maxloc0_8_i1.c: Regenerated.
602         * generated/maxloc0_8_i16.c: Regenerated.
603         * generated/maxloc0_8_i2.c: Regenerated.
604         * generated/maxloc0_8_i4.c: Regenerated.
605         * generated/maxloc0_8_i8.c: Regenerated.
606         * generated/maxloc0_8_r10.c: Regenerated.
607         * generated/maxloc0_8_r16.c: Regenerated.
608         * generated/maxloc0_8_r4.c: Regenerated.
609         * generated/maxloc0_8_r8.c: Regenerated.
610         * generated/maxloc1_16_i1.c: Regenerated.
611         * generated/maxloc1_16_i16.c: Regenerated.
612         * generated/maxloc1_16_i2.c: Regenerated.
613         * generated/maxloc1_16_i4.c: Regenerated.
614         * generated/maxloc1_16_i8.c: Regenerated.
615         * generated/maxloc1_16_r10.c: Regenerated.
616         * generated/maxloc1_16_r16.c: Regenerated.
617         * generated/maxloc1_16_r4.c: Regenerated.
618         * generated/maxloc1_16_r8.c: Regenerated.
619         * generated/maxloc1_4_i1.c: Regenerated.
620         * generated/maxloc1_4_i16.c: Regenerated.
621         * generated/maxloc1_4_i2.c: Regenerated.
622         * generated/maxloc1_4_i4.c: Regenerated.
623         * generated/maxloc1_4_i8.c: Regenerated.
624         * generated/maxloc1_4_r10.c: Regenerated.
625         * generated/maxloc1_4_r16.c: Regenerated.
626         * generated/maxloc1_4_r4.c: Regenerated.
627         * generated/maxloc1_4_r8.c: Regenerated.
628         * generated/maxloc1_8_i1.c: Regenerated.
629         * generated/maxloc1_8_i16.c: Regenerated.
630         * generated/maxloc1_8_i2.c: Regenerated.
631         * generated/maxloc1_8_i4.c: Regenerated.
632         * generated/maxloc1_8_i8.c: Regenerated.
633         * generated/maxloc1_8_r10.c: Regenerated.
634         * generated/maxloc1_8_r16.c: Regenerated.
635         * generated/maxloc1_8_r4.c: Regenerated.
636         * generated/maxloc1_8_r8.c: Regenerated.
637         * generated/maxval_i1.c: Regenerated.
638         * generated/maxval_i16.c: Regenerated.
639         * generated/maxval_i2.c: Regenerated.
640         * generated/maxval_i4.c: Regenerated.
641         * generated/maxval_i8.c: Regenerated.
642         * generated/maxval_r10.c: Regenerated.
643         * generated/maxval_r16.c: Regenerated.
644         * generated/maxval_r4.c: Regenerated.
645         * generated/maxval_r8.c: Regenerated.
646         * generated/minloc0_16_i1.c: Regenerated.
647         * generated/minloc0_16_i16.c: Regenerated.
648         * generated/minloc0_16_i2.c: Regenerated.
649         * generated/minloc0_16_i4.c: Regenerated.
650         * generated/minloc0_16_i8.c: Regenerated.
651         * generated/minloc0_16_r10.c: Regenerated.
652         * generated/minloc0_16_r16.c: Regenerated.
653         * generated/minloc0_16_r4.c: Regenerated.
654         * generated/minloc0_16_r8.c: Regenerated.
655         * generated/minloc0_4_i1.c: Regenerated.
656         * generated/minloc0_4_i16.c: Regenerated.
657         * generated/minloc0_4_i2.c: Regenerated.
658         * generated/minloc0_4_i4.c: Regenerated.
659         * generated/minloc0_4_i8.c: Regenerated.
660         * generated/minloc0_4_r10.c: Regenerated.
661         * generated/minloc0_4_r16.c: Regenerated.
662         * generated/minloc0_4_r4.c: Regenerated.
663         * generated/minloc0_4_r8.c: Regenerated.
664         * generated/minloc0_8_i1.c: Regenerated.
665         * generated/minloc0_8_i16.c: Regenerated.
666         * generated/minloc0_8_i2.c: Regenerated.
667         * generated/minloc0_8_i4.c: Regenerated.
668         * generated/minloc0_8_i8.c: Regenerated.
669         * generated/minloc0_8_r10.c: Regenerated.
670         * generated/minloc0_8_r16.c: Regenerated.
671         * generated/minloc0_8_r4.c: Regenerated.
672         * generated/minloc0_8_r8.c: Regenerated.
673         * generated/minloc1_16_i1.c: Regenerated.
674         * generated/minloc1_16_i16.c: Regenerated.
675         * generated/minloc1_16_i2.c: Regenerated.
676         * generated/minloc1_16_i4.c: Regenerated.
677         * generated/minloc1_16_i8.c: Regenerated.
678         * generated/minloc1_16_r10.c: Regenerated.
679         * generated/minloc1_16_r16.c: Regenerated.
680         * generated/minloc1_16_r4.c: Regenerated.
681         * generated/minloc1_16_r8.c: Regenerated.
682         * generated/minloc1_4_i1.c: Regenerated.
683         * generated/minloc1_4_i16.c: Regenerated.
684         * generated/minloc1_4_i2.c: Regenerated.
685         * generated/minloc1_4_i4.c: Regenerated.
686         * generated/minloc1_4_i8.c: Regenerated.
687         * generated/minloc1_4_r10.c: Regenerated.
688         * generated/minloc1_4_r16.c: Regenerated.
689         * generated/minloc1_4_r4.c: Regenerated.
690         * generated/minloc1_4_r8.c: Regenerated.
691         * generated/minloc1_8_i1.c: Regenerated.
692         * generated/minloc1_8_i16.c: Regenerated.
693         * generated/minloc1_8_i2.c: Regenerated.
694         * generated/minloc1_8_i4.c: Regenerated.
695         * generated/minloc1_8_i8.c: Regenerated.
696         * generated/minloc1_8_r10.c: Regenerated.
697         * generated/minloc1_8_r16.c: Regenerated.
698         * generated/minloc1_8_r4.c: Regenerated.
699         * generated/minloc1_8_r8.c: Regenerated.
700         * generated/minval_i1.c: Regenerated.
701         * generated/minval_i16.c: Regenerated.
702         * generated/minval_i2.c: Regenerated.
703         * generated/minval_i4.c: Regenerated.
704         * generated/minval_i8.c: Regenerated.
705         * generated/minval_r10.c: Regenerated.
706         * generated/minval_r16.c: Regenerated.
707         * generated/minval_r4.c: Regenerated.
708         * generated/minval_r8.c: Regenerated.
709         * generated/product_c10.c: Regenerated.
710         * generated/product_c16.c: Regenerated.
711         * generated/product_c4.c: Regenerated.
712         * generated/product_c8.c: Regenerated.
713         * generated/product_i1.c: Regenerated.
714         * generated/product_i16.c: Regenerated.
715         * generated/product_i2.c: Regenerated.
716         * generated/product_i4.c: Regenerated.
717         * generated/product_i8.c: Regenerated.
718         * generated/product_r10.c: Regenerated.
719         * generated/product_r16.c: Regenerated.
720         * generated/product_r4.c: Regenerated.
721         * generated/product_r8.c: Regenerated.
722         * generated/sum_c10.c: Regenerated.
723         * generated/sum_c16.c: Regenerated.
724         * generated/sum_c4.c: Regenerated.
725         * generated/sum_c8.c: Regenerated.
726         * generated/sum_i1.c: Regenerated.
727         * generated/sum_i16.c: Regenerated.
728         * generated/sum_i2.c: Regenerated.
729         * generated/sum_i4.c: Regenerated.
730         * generated/sum_i8.c: Regenerated.
731         * generated/sum_r10.c: Regenerated.
732         * generated/sum_r16.c: Regenerated.
733         * generated/sum_r4.c: Regenerated.
734         * generated/sum_r8.c: Regenerated.
735
736 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
737
738         PR libfortran/34670
739         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
740         (u_name):  New macro for the upper case name of the intrinsic.
741         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
742         bounds checking and rank check, depending on
743         compile_options.bounds_check.
744         (`m'name`'rtype_qual`_'atype_code):  Likewise.
745         (`s'name`'rtype_qual`_'atype_code):  Likewise.
746         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
747         bounds checking and rank check, depending on
748         compile_options.bounds_check.
749         (`m'name`'rtype_qual`_'atype_code):  Likewise.
750         (`s'name`'rtype_qual`_'atype_code):  Likewise.
751         * generated/all_l16.c: Regenerated.
752         * generated/all_l4.c: Regenerated.
753         * generated/all_l8.c: Regenerated.
754         * generated/any_l16.c: Regenerated.
755         * generated/any_l4.c: Regenerated.
756         * generated/any_l8.c: Regenerated.
757         * generated/count_16_l16.c: Regenerated.
758         * generated/count_16_l4.c: Regenerated.
759         * generated/count_16_l8.c: Regenerated.
760         * generated/count_4_l16.c: Regenerated.
761         * generated/count_4_l4.c: Regenerated.
762         * generated/count_4_l8.c: Regenerated.
763         * generated/count_8_l16.c: Regenerated.
764         * generated/count_8_l4.c: Regenerated.
765         * generated/count_8_l8.c: Regenerated.
766         * generated/maxloc0_16_i1.c: Regenerated.
767         * generated/maxloc0_16_i16.c: Regenerated.
768         * generated/maxloc0_16_i2.c: Regenerated.
769         * generated/maxloc0_16_i4.c: Regenerated.
770         * generated/maxloc0_16_i8.c: Regenerated.
771         * generated/maxloc0_16_r10.c: Regenerated.
772         * generated/maxloc0_16_r16.c: Regenerated.
773         * generated/maxloc0_16_r4.c: Regenerated.
774         * generated/maxloc0_16_r8.c: Regenerated.
775         * generated/maxloc0_4_i1.c: Regenerated.
776         * generated/maxloc0_4_i16.c: Regenerated.
777         * generated/maxloc0_4_i2.c: Regenerated.
778         * generated/maxloc0_4_i4.c: Regenerated.
779         * generated/maxloc0_4_i8.c: Regenerated.
780         * generated/maxloc0_4_r10.c: Regenerated.
781         * generated/maxloc0_4_r16.c: Regenerated.
782         * generated/maxloc0_4_r4.c: Regenerated.
783         * generated/maxloc0_4_r8.c: Regenerated.
784         * generated/maxloc0_8_i1.c: Regenerated.
785         * generated/maxloc0_8_i16.c: Regenerated.
786         * generated/maxloc0_8_i2.c: Regenerated.
787         * generated/maxloc0_8_i4.c: Regenerated.
788         * generated/maxloc0_8_i8.c: Regenerated.
789         * generated/maxloc0_8_r10.c: Regenerated.
790         * generated/maxloc0_8_r16.c: Regenerated.
791         * generated/maxloc0_8_r4.c: Regenerated.
792         * generated/maxloc0_8_r8.c: Regenerated.
793         * generated/maxloc1_16_i1.c: Regenerated.
794         * generated/maxloc1_16_i16.c: Regenerated.
795         * generated/maxloc1_16_i2.c: Regenerated.
796         * generated/maxloc1_16_i4.c: Regenerated.
797         * generated/maxloc1_16_i8.c: Regenerated.
798         * generated/maxloc1_16_r10.c: Regenerated.
799         * generated/maxloc1_16_r16.c: Regenerated.
800         * generated/maxloc1_16_r4.c: Regenerated.
801         * generated/maxloc1_16_r8.c: Regenerated.
802         * generated/maxloc1_4_i1.c: Regenerated.
803         * generated/maxloc1_4_i16.c: Regenerated.
804         * generated/maxloc1_4_i2.c: Regenerated.
805         * generated/maxloc1_4_i4.c: Regenerated.
806         * generated/maxloc1_4_i8.c: Regenerated.
807         * generated/maxloc1_4_r10.c: Regenerated.
808         * generated/maxloc1_4_r16.c: Regenerated.
809         * generated/maxloc1_4_r4.c: Regenerated.
810         * generated/maxloc1_4_r8.c: Regenerated.
811         * generated/maxloc1_8_i1.c: Regenerated.
812         * generated/maxloc1_8_i16.c: Regenerated.
813         * generated/maxloc1_8_i2.c: Regenerated.
814         * generated/maxloc1_8_i4.c: Regenerated.
815         * generated/maxloc1_8_i8.c: Regenerated.
816         * generated/maxloc1_8_r10.c: Regenerated.
817         * generated/maxloc1_8_r16.c: Regenerated.
818         * generated/maxloc1_8_r4.c: Regenerated.
819         * generated/maxloc1_8_r8.c: Regenerated.
820         * generated/maxval_i1.c: Regenerated.
821         * generated/maxval_i16.c: Regenerated.
822         * generated/maxval_i2.c: Regenerated.
823         * generated/maxval_i4.c: Regenerated.
824         * generated/maxval_i8.c: Regenerated.
825         * generated/maxval_r10.c: Regenerated.
826         * generated/maxval_r16.c: Regenerated.
827         * generated/maxval_r4.c: Regenerated.
828         * generated/maxval_r8.c: Regenerated.
829         * generated/minloc0_16_i1.c: Regenerated.
830         * generated/minloc0_16_i16.c: Regenerated.
831         * generated/minloc0_16_i2.c: Regenerated.
832         * generated/minloc0_16_i4.c: Regenerated.
833         * generated/minloc0_16_i8.c: Regenerated.
834         * generated/minloc0_16_r10.c: Regenerated.
835         * generated/minloc0_16_r16.c: Regenerated.
836         * generated/minloc0_16_r4.c: Regenerated.
837         * generated/minloc0_16_r8.c: Regenerated.
838         * generated/minloc0_4_i1.c: Regenerated.
839         * generated/minloc0_4_i16.c: Regenerated.
840         * generated/minloc0_4_i2.c: Regenerated.
841         * generated/minloc0_4_i4.c: Regenerated.
842         * generated/minloc0_4_i8.c: Regenerated.
843         * generated/minloc0_4_r10.c: Regenerated.
844         * generated/minloc0_4_r16.c: Regenerated.
845         * generated/minloc0_4_r4.c: Regenerated.
846         * generated/minloc0_4_r8.c: Regenerated.
847         * generated/minloc0_8_i1.c: Regenerated.
848         * generated/minloc0_8_i16.c: Regenerated.
849         * generated/minloc0_8_i2.c: Regenerated.
850         * generated/minloc0_8_i4.c: Regenerated.
851         * generated/minloc0_8_i8.c: Regenerated.
852         * generated/minloc0_8_r10.c: Regenerated.
853         * generated/minloc0_8_r16.c: Regenerated.
854         * generated/minloc0_8_r4.c: Regenerated.
855         * generated/minloc0_8_r8.c: Regenerated.
856         * generated/minloc1_16_i1.c: Regenerated.
857         * generated/minloc1_16_i16.c: Regenerated.
858         * generated/minloc1_16_i2.c: Regenerated.
859         * generated/minloc1_16_i4.c: Regenerated.
860         * generated/minloc1_16_i8.c: Regenerated.
861         * generated/minloc1_16_r10.c: Regenerated.
862         * generated/minloc1_16_r16.c: Regenerated.
863         * generated/minloc1_16_r4.c: Regenerated.
864         * generated/minloc1_16_r8.c: Regenerated.
865         * generated/minloc1_4_i1.c: Regenerated.
866         * generated/minloc1_4_i16.c: Regenerated.
867         * generated/minloc1_4_i2.c: Regenerated.
868         * generated/minloc1_4_i4.c: Regenerated.
869         * generated/minloc1_4_i8.c: Regenerated.
870         * generated/minloc1_4_r10.c: Regenerated.
871         * generated/minloc1_4_r16.c: Regenerated.
872         * generated/minloc1_4_r4.c: Regenerated.
873         * generated/minloc1_4_r8.c: Regenerated.
874         * generated/minloc1_8_i1.c: Regenerated.
875         * generated/minloc1_8_i16.c: Regenerated.
876         * generated/minloc1_8_i2.c: Regenerated.
877         * generated/minloc1_8_i4.c: Regenerated.
878         * generated/minloc1_8_i8.c: Regenerated.
879         * generated/minloc1_8_r10.c: Regenerated.
880         * generated/minloc1_8_r16.c: Regenerated.
881         * generated/minloc1_8_r4.c: Regenerated.
882         * generated/minloc1_8_r8.c: Regenerated.
883         * generated/minval_i1.c: Regenerated.
884         * generated/minval_i16.c: Regenerated.
885         * generated/minval_i2.c: Regenerated.
886         * generated/minval_i4.c: Regenerated.
887         * generated/minval_i8.c: Regenerated.
888         * generated/minval_r10.c: Regenerated.
889         * generated/minval_r16.c: Regenerated.
890         * generated/minval_r4.c: Regenerated.
891         * generated/minval_r8.c: Regenerated.
892         * generated/product_c10.c: Regenerated.
893         * generated/product_c16.c: Regenerated.
894         * generated/product_c4.c: Regenerated.
895         * generated/product_c8.c: Regenerated.
896         * generated/product_i1.c: Regenerated.
897         * generated/product_i16.c: Regenerated.
898         * generated/product_i2.c: Regenerated.
899         * generated/product_i4.c: Regenerated.
900         * generated/product_i8.c: Regenerated.
901         * generated/product_r10.c: Regenerated.
902         * generated/product_r16.c: Regenerated.
903         * generated/product_r4.c: Regenerated.
904         * generated/product_r8.c: Regenerated.
905         * generated/sum_c10.c: Regenerated.
906         * generated/sum_c16.c: Regenerated.
907         * generated/sum_c4.c: Regenerated.
908         * generated/sum_c8.c: Regenerated.
909         * generated/sum_i1.c: Regenerated.
910         * generated/sum_i16.c: Regenerated.
911         * generated/sum_i2.c: Regenerated.
912         * generated/sum_i4.c: Regenerated.
913         * generated/sum_i8.c: Regenerated.
914         * generated/sum_r10.c: Regenerated.
915         * generated/sum_r16.c: Regenerated.
916         * generated/sum_r4.c: Regenerated.
917         * generated/sum_r8.c: Regenerated.
918
919 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
920
921         PR libfortran/34676
922         * io/list_read.c (next_char): Only save the EOF condition for later if
923         advance="no".
924
925 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
926
927         PR libfortran/34565
928         * io/io.h:  Adjust protoypes for open_internal(),
929         next_array_record() and init_loop_spec().
930         * io/list_read.c (next_char):  Use argument "finished"
931         of next_array_record to check for end on internal file.
932         * io/unit.c:  Calculate the offset for an array
933         internal file and supply this informatin to open_internal().
934         * io/unix.c (open_internal):  Set the offset for the internal
935         file on open.
936         * io/transfer.c (init_loop_spec):  Calculate the starting
937         record in case of negative strides.  Return size of 0 for
938         an empty array.
939         (next_array_record):  Use an extra flag to signal that the
940         array is finished.
941         (next_record_r):  Use the new flag to next_array_record().
942         (next_record_w):  Likewise.