OSDN Git Service

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