* gcc.dg/pr52132.c: Fix FAIL on 16-bit int platforms.
[official-gcc.git] / libgfortran / ChangeLog-2009
blob2611ef1ae2759e8f74eb26e45238dbe7bb913fee
1 2009-12-19  Janne Blomqvist  <jb@gcc.gnu.org>
3         * intrinsics/system_clock.c: Fix library name in comment, move TCK
4         definition into functions.
5         (system_clock_4): Remove unused struct timezone.
6         (system_clock_8): Remove unused struct timezone, increase TCK.
8 2009-12-08  Tobias Burnus  <burnus@net-b.de>
10         PR fortran/41711
11         * io/read.c (set_integer): Support kind=10 for reading
12         real/complex BOZ.
14 2009-12-06  Janus Weil  <janus@gcc.gnu.org>
16         PR fortran/41478
17         PR fortran/42268
18         * intrinsics/pack_generic.c (pack): Add safety checks for the case that
19         'vector' is NULL.
21 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23         * Makefile.in: Regenerate.
24         * configure: Regenerate.
26 2009-12-04  Janne Blomqvist  <jb@gcc.gnu.org>
28         PR libfortran/40812
29         * libgfortran.h: typedef gfc_offset differently for MinGW.
30         * io/unix.h (struct stream): Change function pointers to use
31         gfc_offset instead of off_t.
32         (sseek): Change prototype to use gfc_offset instead of off_t.
33         (stell): Likewise.
34         (struncate): Likewise.
35         * io/unix.c: Redefine lseek() for mingw.
36         (raw_seek): Use gfc_offset instead of off_t.
37         (raw_tell): Likewise.
38         (buf_seek): Likewise.
39         (buf_tell): Likewise.
40         (buf_truncate): Likewise.
41         (mem_seek): Likewise.
42         (mem_tell): Likewise.
43         (mem_truncate): Likewise.
44         (fd_to_stream): Likewise.
45         (file_length): Likewise.
46         (raw_truncate): Use gfc_offset instead of off_t, add large file
47         capable implementation for MinGW.
49 2009-11-30  Janus Weil  <janus@gcc.gnu.org>
51         * gfortran.map: Add _gfortran_is_extension_of.
52         * Makefile.am: Add intrinsics/extends_type_of.c.
53         * Makefile.in: Regenerated.
54         * intrinsics/extends_type_of.c: New file. 
56 2009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
58         * io/unix.c (find_file): Add variable id conditionally for
59         mingw targets.
61 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
63         * intrinsics/pack_generic.c (pack_internal): Remove unused
64         zero_sized variable.
65         * intrinsics/unpack_generic.c (unpack0): Remove unused size
66         variable.
67         * io/write.c (namelist_write_newline): Remove unused length
68         variable.
69         * io/unix.c (find_file): Remove unused id variable.
70         * m4/ifunction.m4 (SCALAR_ARRAY_FUNCTION): Remove unused sstride
71         variable.
72         * generated/maxloc1_16_i1.c: Regenerated.
73         * generated/maxloc1_16_i16.c: Regenerated.
74         * generated/maxloc1_16_i2.c: Regenerated.
75         * generated/maxloc1_16_i4.c: Regenerated.
76         * generated/maxloc1_16_i8.c: Regenerated.
77         * generated/maxloc1_16_r10.c: Regenerated.
78         * generated/maxloc1_16_r16.c: Regenerated.
79         * generated/maxloc1_16_r4.c: Regenerated.
80         * generated/maxloc1_16_r8.c: Regenerated.
81         * generated/maxloc1_4_i1.c: Regenerated.
82         * generated/maxloc1_4_i16.c: Regenerated.
83         * generated/maxloc1_4_i2.c: Regenerated.
84         * generated/maxloc1_4_i4.c: Regenerated.
85         * generated/maxloc1_4_i8.c: Regenerated.
86         * generated/maxloc1_4_r10.c: Regenerated.
87         * generated/maxloc1_4_r16.c: Regenerated.
88         * generated/maxloc1_4_r4.c: Regenerated.
89         * generated/maxloc1_4_r8.c: Regenerated.
90         * generated/maxloc1_8_i1.c: Regenerated.
91         * generated/maxloc1_8_i16.c: Regenerated.
92         * generated/maxloc1_8_i2.c: Regenerated.
93         * generated/maxloc1_8_i4.c: Regenerated.
94         * generated/maxloc1_8_i8.c: Regenerated.
95         * generated/maxloc1_8_r10.c: Regenerated.
96         * generated/maxloc1_8_r16.c: Regenerated.
97         * generated/maxloc1_8_r4.c: Regenerated.
98         * generated/maxloc1_8_r8.c: Regenerated.
99         * generated/maxval_i1.c: Regenerated.
100         * generated/maxval_i16.c: Regenerated.
101         * generated/maxval_i2.c: Regenerated.
102         * generated/maxval_i4.c: Regenerated.
103         * generated/maxval_i8.c: Regenerated.
104         * generated/maxval_r10.c: Regenerated.
105         * generated/maxval_r16.c: Regenerated.
106         * generated/maxval_r4.c: Regenerated.
107         * generated/maxval_r8.c: Regenerated.
108         * generated/minloc1_16_i1.c: Regenerated.
109         * generated/minloc1_16_i16.c: Regenerated.
110         * generated/minloc1_16_i2.c: Regenerated.
111         * generated/minloc1_16_i4.c: Regenerated.
112         * generated/minloc1_16_i8.c: Regenerated.
113         * generated/minloc1_16_r10.c: Regenerated.
114         * generated/minloc1_16_r16.c: Regenerated.
115         * generated/minloc1_16_r4.c: Regenerated.
116         * generated/minloc1_16_r8.c: Regenerated.
117         * generated/minloc1_4_i1.c: Regenerated.
118         * generated/minloc1_4_i16.c: Regenerated.
119         * generated/minloc1_4_i2.c: Regenerated.
120         * generated/minloc1_4_i4.c: Regenerated.
121         * generated/minloc1_4_i8.c: Regenerated.
122         * generated/minloc1_4_r10.c: Regenerated.
123         * generated/minloc1_4_r16.c: Regenerated.
124         * generated/minloc1_4_r4.c: Regenerated.
125         * generated/minloc1_4_r8.c: Regenerated.
126         * generated/minloc1_8_i1.c: Regenerated.
127         * generated/minloc1_8_i16.c: Regenerated.
128         * generated/minloc1_8_i2.c: Regenerated.
129         * generated/minloc1_8_i4.c: Regenerated.
130         * generated/minloc1_8_i8.c: Regenerated.
131         * generated/minloc1_8_r10.c: Regenerated.
132         * generated/minloc1_8_r16.c: Regenerated.
133         * generated/minloc1_8_r4.c: Regenerated.
134         * generated/minloc1_8_r8.c: Regenerated.
135         * generated/minval_i1.c: Regenerated.
136         * generated/minval_i16.c: Regenerated.
137         * generated/minval_i2.c: Regenerated.
138         * generated/minval_i4.c: Regenerated.
139         * generated/minval_i8.c: Regenerated.
140         * generated/minval_r10.c: Regenerated.
141         * generated/minval_r16.c: Regenerated.
142         * generated/minval_r4.c: Regenerated.
143         * generated/minval_r8.c: Regenerated.
144         * generated/product_c10.c: Regenerated.
145         * generated/product_c16.c: Regenerated.
146         * generated/product_c4.c: Regenerated.
147         * generated/product_c8.c: Regenerated.
148         * generated/product_i1.c: Regenerated.
149         * generated/product_i16.c: Regenerated.
150         * generated/product_i2.c: Regenerated.
151         * generated/product_i4.c: Regenerated.
152         * generated/product_i8.c: Regenerated.
153         * generated/product_r10.c: Regenerated.
154         * generated/product_r16.c: Regenerated.
155         * generated/product_r4.c: Regenerated.
156         * generated/product_r8.c: Regenerated.
157         * generated/sum_c10.c: Regenerated.
158         * generated/sum_c16.c: Regenerated.
159         * generated/sum_c4.c: Regenerated.
160         * generated/sum_c8.c: Regenerated.
161         * generated/sum_i1.c: Regenerated.
162         * generated/sum_i16.c: Regenerated.
163         * generated/sum_i2.c: Regenerated.
164         * generated/sum_i4.c: Regenerated.
165         * generated/sum_i8.c: Regenerated.
166         * generated/sum_r10.c: Regenerated.
167         * generated/sum_r16.c: Regenerated.
168         * generated/sum_r4.c: Regenerated.
169         * generated/sum_r8.c: Regenerated.
171 2009-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
173         * io/fbuf.h: Move includes after include guard.
174         * io/format.h: Likewise.
175         * io/unix.h: Likewise.
177 2009-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
179         PR libgfortran/42090
180         * io/transfer.c (skip_record): Set bytes_left_subrecord to zero after
181         skipping the remaining bytes in the record.
182         (next_record_r): Call skip_record with the number of bytes_left to be
183         skipped.
185 2009-11-02  Janne Blomqvist  <jb@gcc.gnu.org>
187         * Makefile.am (gfor_io_headers): Add fbuf.h, format.h, unix.h.
188         * Makefile.in: Regenerated.
189         * io/fbuf.h: New file.
190         * io/format.h: New file.
191         * io/unix.h: New file.
192         * io/io.h (struct stream): Move to unix.h, add forward declaration.
193         (sread): Likewise.
194         (swrite): Likewise.
195         (sseek): Likewise.
196         (stell): Likewise.
197         (struncate): Likewise.
198         (sflush): Likewise.
199         (sflush): Likewise.
200         (sclose): Likewise.
201         (compared_files): Move prototype to unix.h.
202         (open_external): Likewise.
203         (open_internal): Likewise.
204         (mem_alloc_w): Likewise.
205         (mem_alloc_r): Likewise.
206         (input_stream): Likewise.
207         (output_stream): Likewise.
208         (error_stream): Likewise.
209         (compare_file_filename): Likewise.
210         (find_file): Likewise.
211         (delete_file): Likewise.
212         (file_exists): Likewise.
213         (inquire_sequential): Likewise.
214         (inquire_direct): Likewise.
215         (inquire_formatted): Likewise.
216         (inquire_unformatted): Likewise.
217         (inquire_read): Likewise.
218         (inquire_write): Likewise.
219         (inquire_readwrite): Likewise.
220         (file_length): Likewise.
221         (is_seekable): Likewise.
222         (is_special): Likewise.
223         (flush_if_preconnected): Likewise.
224         (empty_internal_buffer): Likewise.
225         (stream_isatty): Likewise.
226         (stream_ttyname): Likewise.
227         (unpack_filename): Likewise.
228         (struct fbuf): Move to fbuf.h, add forward declaration.
229         (fbuf_init): Move prototype to fbuf.h.
230         (fbuf_destroy): Likewise.
231         (fbuf_reset): Likewise.
232         (fbuf_alloc): Likewise.
233         (fbuf_flush): Likewise.
234         (fbuf_seek): Likewise.
235         (fbuf_read): Likewise.
236         (fbuf_getc_refill): Likewise.
237         (fbuf_getc): Move inline function to fbuf.h.
238         (enum format_token): Move to format.h.
239         (struct fnode): Move to format.h, add forward declaration.
240         (parse_format): Move prototype to format.h.
241         (next_format): Likewise.
242         (unget_format): Likewise.
243         (format_error): Likewise.
244         (free_format_data): Likewise.
245         (free_format_hash_table): Likewise.
246         (init_format_hash): Likewise.
247         (free_format_hash): Likewise.
248         * io/close.c: Include unix.h.
249         * io/fbuf.c: Include fbuf.h and unix.h.
250         * io/file_pos.c: Include fbuf.h and unix.h.
251         * io/format.c: Include format.h.
252         * io/inquire.c: Include unix.h.
253         * io/intrinsics.c: Include fbuf.h and unix.h.
254         * io/list_read.c: Include fbuf.h and unix.h.
255         * io/open.c: Include fbuf.h and unix.h.
256         * io/read.c: Include format.h.
257         * io/transfer.c: Include fbuf.h, format.h, and unix.h.
258         * io/unit.c: Likewise.
259         * io/unix.c: Include unix.h.
260         * io/write.c: Include format.h and unix.h.
262 2009-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
264         PR libfortran/41219
265         * intrinsics/unpack_generic.c (unpack_internal): Remove unused
266         argument from prototype.
267         (unpack1): Update unpack_internal call.
268         (unpack1_char): Likewise.
269         (unpack1_char4): Likewise.
270         (unpack0): Likewise.
271         (unpack0_char): Likewise.
272         (unpack0_char4): Likewise.
273         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Get rid of
274         uninitialized variable warning.
276 2009-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
278         PR libgfortran/41711
279         * libgfortran.h: Define larger sizes for BOZ conversion buffers.
280         * io/write.c (extract_uint): Include case where size is 10 if integer
281         is large enough. (write_int): Rename to write_boz. (write_boz): Factor
282         out extract_uint and delete the conversion function.
283         (btoa_big): New binary conversion function.
284         (otoa_big): New octal conversion function.
285         (ztoa_big): New hexidecimal conversion function.
286         (write_b): Modify to use new function.
287         (write_o): Likewise.
288         (write_z): Likewise.
290 2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
292         PR libgfortran/41683
293         * io/format.c (parse_format_list): Allow a repeat specifier immediately
294         after a P specifier.
295         
296 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
298         PR libgfortran/38439
299         * io/format.c (parse_format_list): Correct logic for FMT_F reading vs
300         writing. Code clean-up.
302 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
304         PR libgfortran/38439
305         * io/format.c (parse_format_list): Add check for tokens not allowed
306         after P specifier. Fix comments.  Remove un-needed code. Fix the
307         default exponent list. Correct pointer assignment error.
309 2009-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
311         PR libgfortran/35862
312         * write_float.def (outout_float): Fix handling of special case where no
313         digits after the decimal point and values less than 1.0. Adjust index
314         into digits string. (WRITE_FLOAT): Remove special case code from macro.
316 2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
318         PR libgfortran/35862
319         * io.h (gfc_unit): Add round_status.
320         (format_token): Add enumerators for rounding format specifiers.
321         * transfer.c (round_opt): New options table.
322         (formatted_transfer_scalar_read): Add set round_status for each rounding
323         format token. (formatted_transfer_scalar_write): Likewise.
324         * format.c (format_lex): Tokenize the rounding format specifiers.
325         (parse_format_list): Parse the rounding format specifiers.
326         * write_float.def (outout_float): Modify rounding code to use new
327         variable rchar to set the appropriate rounding. Fix some whitespace.
328         * unit.c (get_internal_unit): Initialize rounding mode for internal
329         units. (init_units): Likewise.
331 2009-09-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
333         * configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
334         * configure: Regenerate.
335         * config.h.in: Ditto.
337 2009-09-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
339         PR libgfortran/41328
340         * io/transfer.c (read_sf): Set at_eof flag on short read if any
341         characters were successfully read so that EOF condition with no EOR
342         marker succeeds.
344 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
346         PR libgfortran/41328
347         * io/transfer.c (read_sf): Adjust fbuf position and do proper
348         fbuf reads to traverse CR, CR-LF, and LF style line ends.
350 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
352         PR libgfortran/41219
353         * io/write.c (write_a_char4): Use correct type for crlf constant.
355 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
357         * Makefile.am (libgfortranbegin_la_LINK): New.
358         * Makefile.in: Regenerate.
360 2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
362         * configure: Regenerate.
364 2009-09-08  Paolo Bonzini  <bonzini@gnu.org>
366         * configure: Regenerate.
368 2009-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
370         PR libgfortran/41192
371         * io/list_read.c (eat_line): Enable eat_line to function on
372         internal units.
374         PR libgfortran/41219
375         * io/list_read.c (nml_read_obj): Replace GFC_DTYPE_UNKNOWN with
376         BT_NULL to get rid of warning.
377         
378 2009-09-04  Tobias Burnus  <burnus@net-b.de>
380         PR fortran/41219
381         * intrinsics/getlog.c: Define _POSIX for MINGW32.
383 2009-09-03  Tobias Burnus  <burnus@net-b.de>
385         PR fortran/41219
386         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Move variable
387         declaration out of the loop.
389 2009-08-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
391         * m4/pack.m4 (pack_'rtype_code`): Use count_0 for counting true
392         values in a logical array.  Mark bounds checking tests as
393         unlikely.
394         * intrinsics/pack_generic.c (pack_internal): Likewise.
395         * runtime/bounds.c (count_0):  Fix off-by-one error in detecting
396         empty arrays.
397         * generated/pack_c4.c: Regenerated.
398         * generated/pack_c8.c: Regenerated.
399         * generated/pack_c10.c: Regenerated.
400         * generated/pack_c16.c: Regenerated.
401         * generated/pack_i1.c: Regenerated.
402         * generated/pack_i16.c: Regenerated.
403         * generated/pack_i2.c: Regenerated.
404         * generated/pack_i4.c: Regenerated.
405         * generated/pack_i8.c: Regenerated.
406         * generated/pack_r4.c: Regenerated.
407         * generated/pack_r8.c: Regenerated.
408         * generated/pack_r10.c: Regenerated.
409         * generated/pack_r16.c: Regenerated.
411 2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
413         PR libfortran/34670
414         * runtime/bounds.c (count_0):  New function.
415         * intrinsics/unpack_generic (unpack_bounds):  New function.
416         (unpack_internal):  Remove zero stride checks.
417         (unpack1):  Use unpack_bounds.
418         (unpack1_char):  Likeweise.
419         (unpack1_char4):  Likewise
420         (unpack0):  Likewise.
421         (unpack0_char):  Likewise.
422         (unpack0_char4):  Likewise.
424 2009-08-24  Steven G. Kargl  <kargl@gcc.gnu.org>
426         PR fortran/41157
427         * dtime.c (dtime_sub): Fix computing time increment.
428         * time_1.h: Add <sys/types.h> header.  Use RUSAGE_SELF macro instead
429         of a hardcoded 0.
431 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
433         * configure.ac (AC_PREREQ): Bump to 2.64.
435 2009-08-23  Steven G. Kargl  <kargl@gcc.gnu.org>
437         * intrinsics/cshift0.c: Update license to GPL3+exception.
438         * runtime/fpu.c: Add a GPL3+exception statement.
440 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
442         * Makefile.am (install-html, install-pdf): Remove.
443         * Makefile.in: Regenerate.
445         * Makefile.in: Regenerate.
446         * aclocal.m4: Regenerate.
447         * config.h.in: Regenerate.
448         * configure: Regenerate.
450 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
452         * Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
453         * Makefile.in: Regenerate.
455 2009-08-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
457         PR libfortran/40962
458         * iso_c_binding.c (c_f_pointer_u0):  Multiply stride by
459         previous stride.
461 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
463         * Makefile.am (LTLDFLAGS): Add -bindir flag.
464         * Makefile.in: Regenerate.
466 2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
468         PR fortran/41075
469         * io/io.h (enum format_token): Add FMT_STAR.
470         * io/format.c (format_lex): Add case for FMT_STAR.
471         (parse_format_list): Parse FMT_STAR and check for left paren
472         after. (next_format0): Modify helper function to check for
473         unimited format and return the repeated format node.  Update
474         comments to clarify.
475         
476 2009-08-15  Kai Tietz  <kai.tietz@onevision.com>
478         * intrinsics/string_intrinsics_inc.c (string_len_trim): Use
479         __INTPTR_TYPE__ to cast from pointer to scalar integer, if
480         __INTPTR_TYPE is defined.
482 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
484         * fmain.c: Add comment saying file is deprecated.
486 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
488         PR libfortran/40863
489         * gfortran.map: Move new symbols to GFORTRAN_C99_1.1 version node.
491 2009-08-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
493         PR libfortran/40549
494         * Makefile.in (LTLDFLAGS): Add -no-undefined.
495         * Makefile.am: Regenerate.
496         * libgfortran.h: Remove unused block of code.
498 2009-08-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
500         PR libfortran/40853
501         * io/list_read.c (nml_get_obj_data): Do not set nl
502         pointer to first_nl if nl->next is NULL.
504 2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
506         * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
507         Don't set IEEE_FLAGS with @IEEE_FLAGS@.
508         * Makefile.in: Regenerate.
510 2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
512         * configure.host: Define ieee_flags and set it to -mieee for sh.
513         * configure.ac: Set IEEE_FLAGS with ieee_flags.
514         * Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
515         * configure: Regenerate.
516         * Makefile.in: Regenerate.
518 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
520         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
522 2009-07-27  Tobias Burnus  <burnus@net-b.de>
524         PR fortran/40863
525         * c99_functions.c: Define complex I, if not defined.
526         Create prototypes for C99 functions to silence warnings.
527         * gfortran.map: Add missing functions to GFORTRAN_C99_1.0
528         and new GFORTRAN_C99_1.1.
530 2009-07-25  Tobias Burnus  <burnus@net-b.de>
532         PR fortran/33197
533         * intrinsics/c99_functions.c (cacosf,cacos,cacosl,casinf,
534         casin,casind,catanf,catan,catanl,cacoshf,cacosh,cacoshl,
535         casinhf,casinh,casinhf,catanhf,catanh,catanhl): New functions.
536         * c99_protos.h: Add prototypes for those.
538 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
540         PR fortran/40643
541         PR fortran/31067
542         * libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
543         GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
544         GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
545         Define.
546         * m4/iparm.m4 (atype_inf, atype_nan): Define.
547         * m4/ifunction.m4: Formatting.
548         * m4/iforeach.m4: Likewise.
549         (START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
550         (START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
551         FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
552         until count[0] == extent[0].
553         * m4/minval.m4: Formatting.  Handle NaNs and infinities.  Optimize.
554         * m4/maxval.m4: Likewise.
555         * m4/minloc0.m4: Likewise.
556         * m4/maxloc0.m4: Likewise.
557         * m4/minloc1.m4: Likewise.
558         * m4/maxloc1.m4: Likewise.
559         * generated/maxloc0_16_i16.c: Regenerated.
560         * generated/maxloc0_16_i1.c: Likewise.
561         * generated/maxloc0_16_i2.c: Likewise.
562         * generated/maxloc0_16_i4.c: Likewise.
563         * generated/maxloc0_16_i8.c: Likewise.
564         * generated/maxloc0_16_r10.c: Likewise.
565         * generated/maxloc0_16_r16.c: Likewise.
566         * generated/maxloc0_16_r4.c: Likewise.
567         * generated/maxloc0_16_r8.c: Likewise.
568         * generated/maxloc0_4_i16.c: Likewise.
569         * generated/maxloc0_4_i1.c: Likewise.
570         * generated/maxloc0_4_i2.c: Likewise.
571         * generated/maxloc0_4_i4.c: Likewise.
572         * generated/maxloc0_4_i8.c: Likewise.
573         * generated/maxloc0_4_r10.c: Likewise.
574         * generated/maxloc0_4_r16.c: Likewise.
575         * generated/maxloc0_4_r4.c: Likewise.
576         * generated/maxloc0_4_r8.c: Likewise.
577         * generated/maxloc0_8_i16.c: Likewise.
578         * generated/maxloc0_8_i1.c: Likewise.
579         * generated/maxloc0_8_i2.c: Likewise.
580         * generated/maxloc0_8_i4.c: Likewise.
581         * generated/maxloc0_8_i8.c: Likewise.
582         * generated/maxloc0_8_r10.c: Likewise.
583         * generated/maxloc0_8_r16.c: Likewise.
584         * generated/maxloc0_8_r4.c: Likewise.
585         * generated/maxloc0_8_r8.c: Likewise.
586         * generated/maxloc1_16_i16.c: Likewise.
587         * generated/maxloc1_16_i1.c: Likewise.
588         * generated/maxloc1_16_i2.c: Likewise.
589         * generated/maxloc1_16_i4.c: Likewise.
590         * generated/maxloc1_16_i8.c: Likewise.
591         * generated/maxloc1_16_r10.c: Likewise.
592         * generated/maxloc1_16_r16.c: Likewise.
593         * generated/maxloc1_16_r4.c: Likewise.
594         * generated/maxloc1_16_r8.c: Likewise.
595         * generated/maxloc1_4_i16.c: Likewise.
596         * generated/maxloc1_4_i1.c: Likewise.
597         * generated/maxloc1_4_i2.c: Likewise.
598         * generated/maxloc1_4_i4.c: Likewise.
599         * generated/maxloc1_4_i8.c: Likewise.
600         * generated/maxloc1_4_r10.c: Likewise.
601         * generated/maxloc1_4_r16.c: Likewise.
602         * generated/maxloc1_4_r4.c: Likewise.
603         * generated/maxloc1_4_r8.c: Likewise.
604         * generated/maxloc1_8_i16.c: Likewise.
605         * generated/maxloc1_8_i1.c: Likewise.
606         * generated/maxloc1_8_i2.c: Likewise.
607         * generated/maxloc1_8_i4.c: Likewise.
608         * generated/maxloc1_8_i8.c: Likewise.
609         * generated/maxloc1_8_r10.c: Likewise.
610         * generated/maxloc1_8_r16.c: Likewise.
611         * generated/maxloc1_8_r4.c: Likewise.
612         * generated/maxloc1_8_r8.c: Likewise.
613         * generated/maxval_i16.c: Likewise.
614         * generated/maxval_i1.c: Likewise.
615         * generated/maxval_i2.c: Likewise.
616         * generated/maxval_i4.c: Likewise.
617         * generated/maxval_i8.c: Likewise.
618         * generated/maxval_r10.c: Likewise.
619         * generated/maxval_r16.c: Likewise.
620         * generated/maxval_r4.c: Likewise.
621         * generated/maxval_r8.c: Likewise.
622         * generated/minloc0_16_i16.c: Likewise.
623         * generated/minloc0_16_i1.c: Likewise.
624         * generated/minloc0_16_i2.c: Likewise.
625         * generated/minloc0_16_i4.c: Likewise.
626         * generated/minloc0_16_i8.c: Likewise.
627         * generated/minloc0_16_r10.c: Likewise.
628         * generated/minloc0_16_r16.c: Likewise.
629         * generated/minloc0_16_r4.c: Likewise.
630         * generated/minloc0_16_r8.c: Likewise.
631         * generated/minloc0_4_i16.c: Likewise.
632         * generated/minloc0_4_i1.c: Likewise.
633         * generated/minloc0_4_i2.c: Likewise.
634         * generated/minloc0_4_i4.c: Likewise.
635         * generated/minloc0_4_i8.c: Likewise.
636         * generated/minloc0_4_r10.c: Likewise.
637         * generated/minloc0_4_r16.c: Likewise.
638         * generated/minloc0_4_r4.c: Likewise.
639         * generated/minloc0_4_r8.c: Likewise.
640         * generated/minloc0_8_i16.c: Likewise.
641         * generated/minloc0_8_i1.c: Likewise.
642         * generated/minloc0_8_i2.c: Likewise.
643         * generated/minloc0_8_i4.c: Likewise.
644         * generated/minloc0_8_i8.c: Likewise.
645         * generated/minloc0_8_r10.c: Likewise.
646         * generated/minloc0_8_r16.c: Likewise.
647         * generated/minloc0_8_r4.c: Likewise.
648         * generated/minloc0_8_r8.c: Likewise.
649         * generated/minloc1_16_i16.c: Likewise.
650         * generated/minloc1_16_i1.c: Likewise.
651         * generated/minloc1_16_i2.c: Likewise.
652         * generated/minloc1_16_i4.c: Likewise.
653         * generated/minloc1_16_i8.c: Likewise.
654         * generated/minloc1_16_r10.c: Likewise.
655         * generated/minloc1_16_r16.c: Likewise.
656         * generated/minloc1_16_r4.c: Likewise.
657         * generated/minloc1_16_r8.c: Likewise.
658         * generated/minloc1_4_i16.c: Likewise.
659         * generated/minloc1_4_i1.c: Likewise.
660         * generated/minloc1_4_i2.c: Likewise.
661         * generated/minloc1_4_i4.c: Likewise.
662         * generated/minloc1_4_i8.c: Likewise.
663         * generated/minloc1_4_r10.c: Likewise.
664         * generated/minloc1_4_r16.c: Likewise.
665         * generated/minloc1_4_r4.c: Likewise.
666         * generated/minloc1_4_r8.c: Likewise.
667         * generated/minloc1_8_i16.c: Likewise.
668         * generated/minloc1_8_i1.c: Likewise.
669         * generated/minloc1_8_i2.c: Likewise.
670         * generated/minloc1_8_i4.c: Likewise.
671         * generated/minloc1_8_i8.c: Likewise.
672         * generated/minloc1_8_r10.c: Likewise.
673         * generated/minloc1_8_r16.c: Likewise.
674         * generated/minloc1_8_r4.c: Likewise.
675         * generated/minloc1_8_r8.c: Likewise.
676         * generated/minval_i16.c: Likewise.
677         * generated/minval_i1.c: Likewise.
678         * generated/minval_i2.c: Likewise.
679         * generated/minval_i4.c: Likewise.
680         * generated/minval_i8.c: Likewise.
681         * generated/minval_r10.c: Likewise.
682         * generated/minval_r16.c: Likewise.
683         * generated/minval_r4.c: Likewise.
684         * generated/minval_r8.c: Likewise.
685         * generated/product_c10.c: Likewise.
686         * generated/product_c16.c: Likewise.
687         * generated/product_c4.c: Likewise.
688         * generated/product_c8.c: Likewise.
689         * generated/product_i16.c: Likewise.
690         * generated/product_i1.c: Likewise.
691         * generated/product_i2.c: Likewise.
692         * generated/product_i4.c: Likewise.
693         * generated/product_i8.c: Likewise.
694         * generated/product_r10.c: Likewise.
695         * generated/product_r16.c: Likewise.
696         * generated/product_r4.c: Likewise.
697         * generated/product_r8.c: Likewise.
698         * generated/sum_c10.c: Likewise.
699         * generated/sum_c16.c: Likewise.
700         * generated/sum_c4.c: Likewise.
701         * generated/sum_c8.c: Likewise.
702         * generated/sum_i16.c: Likewise.
703         * generated/sum_i1.c: Likewise.
704         * generated/sum_i2.c: Likewise.
705         * generated/sum_i4.c: Likewise.
706         * generated/sum_i8.c: Likewise.
707         * generated/sum_r10.c: Likewise.
708         * generated/sum_r16.c: Likewise.
709         * generated/sum_r4.c: Likewise.
710         * generated/sum_r8.c: Likewise.
712 2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
714         PR libfortran/32784
715         * unix.c (regular_file): Check for CONIN$ CONOUT$, and CONERR$ and open
716         the respective /dev/conin or /dev/conout devices.  This is Cygwin
717         specific.
719 2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
721         PR libfortran/34670
722         PR libfortran/36874
723         * Makefile.am:  Add bounds.c
724         * libgfortran.h (bounds_equal_extents):  Add prototype.
725         (bounds_iforeach_return):  Likewise.
726         (bounds_ifunction_return):  Likewise.
727         (bounds_reduced_extents):  Likewise.
728         * runtime/bounds.c:  New file.
729         (bounds_iforeach_return):  New function; correct typo in
730         error message.
731         (bounds_ifunction_return):  New function.
732         (bounds_equal_extents):  New function.
733         (bounds_reduced_extents):  Likewise.
734         * intrinsics/cshift0.c (cshift0):  Use new functions
735         for bounds checking.
736         * intrinsics/eoshift0.c (eoshift0):  Likewise.
737         * intrinsics/eoshift2.c (eoshift2):  Likewise.
738         * m4/iforeach.m4:  Likewise.
739         * m4/eoshift1.m4:  Likewise.
740         * m4/eoshift3.m4:  Likewise.
741         * m4/cshift1.m4:  Likewise.
742         * m4/ifunction.m4:  Likewise.
743         * Makefile.in:  Regenerated.
744         * generated/cshift1_16.c: Regenerated.
745         * generated/cshift1_4.c: Regenerated.
746         * generated/cshift1_8.c: Regenerated.
747         * generated/eoshift1_16.c: Regenerated.
748         * generated/eoshift1_4.c: Regenerated.
749         * generated/eoshift1_8.c: Regenerated.
750         * generated/eoshift3_16.c: Regenerated.
751         * generated/eoshift3_4.c: Regenerated.
752         * generated/eoshift3_8.c: Regenerated.
753         * generated/maxloc0_16_i1.c: Regenerated.
754         * generated/maxloc0_16_i16.c: Regenerated.
755         * generated/maxloc0_16_i2.c: Regenerated.
756         * generated/maxloc0_16_i4.c: Regenerated.
757         * generated/maxloc0_16_i8.c: Regenerated.
758         * generated/maxloc0_16_r10.c: Regenerated.
759         * generated/maxloc0_16_r16.c: Regenerated.
760         * generated/maxloc0_16_r4.c: Regenerated.
761         * generated/maxloc0_16_r8.c: Regenerated.
762         * generated/maxloc0_4_i1.c: Regenerated.
763         * generated/maxloc0_4_i16.c: Regenerated.
764         * generated/maxloc0_4_i2.c: Regenerated.
765         * generated/maxloc0_4_i4.c: Regenerated.
766         * generated/maxloc0_4_i8.c: Regenerated.
767         * generated/maxloc0_4_r10.c: Regenerated.
768         * generated/maxloc0_4_r16.c: Regenerated.
769         * generated/maxloc0_4_r4.c: Regenerated.
770         * generated/maxloc0_4_r8.c: Regenerated.
771         * generated/maxloc0_8_i1.c: Regenerated.
772         * generated/maxloc0_8_i16.c: Regenerated.
773         * generated/maxloc0_8_i2.c: Regenerated.
774         * generated/maxloc0_8_i4.c: Regenerated.
775         * generated/maxloc0_8_i8.c: Regenerated.
776         * generated/maxloc0_8_r10.c: Regenerated.
777         * generated/maxloc0_8_r16.c: Regenerated.
778         * generated/maxloc0_8_r4.c: Regenerated.
779         * generated/maxloc0_8_r8.c: Regenerated.
780         * generated/maxloc1_16_i1.c: Regenerated.
781         * generated/maxloc1_16_i16.c: Regenerated.
782         * generated/maxloc1_16_i2.c: Regenerated.
783         * generated/maxloc1_16_i4.c: Regenerated.
784         * generated/maxloc1_16_i8.c: Regenerated.
785         * generated/maxloc1_16_r10.c: Regenerated.
786         * generated/maxloc1_16_r16.c: Regenerated.
787         * generated/maxloc1_16_r4.c: Regenerated.
788         * generated/maxloc1_16_r8.c: Regenerated.
789         * generated/maxloc1_4_i1.c: Regenerated.
790         * generated/maxloc1_4_i16.c: Regenerated.
791         * generated/maxloc1_4_i2.c: Regenerated.
792         * generated/maxloc1_4_i4.c: Regenerated.
793         * generated/maxloc1_4_i8.c: Regenerated.
794         * generated/maxloc1_4_r10.c: Regenerated.
795         * generated/maxloc1_4_r16.c: Regenerated.
796         * generated/maxloc1_4_r4.c: Regenerated.
797         * generated/maxloc1_4_r8.c: Regenerated.
798         * generated/maxloc1_8_i1.c: Regenerated.
799         * generated/maxloc1_8_i16.c: Regenerated.
800         * generated/maxloc1_8_i2.c: Regenerated.
801         * generated/maxloc1_8_i4.c: Regenerated.
802         * generated/maxloc1_8_i8.c: Regenerated.
803         * generated/maxloc1_8_r10.c: Regenerated.
804         * generated/maxloc1_8_r16.c: Regenerated.
805         * generated/maxloc1_8_r4.c: Regenerated.
806         * generated/maxloc1_8_r8.c: Regenerated.
807         * generated/maxval_i1.c: Regenerated.
808         * generated/maxval_i16.c: Regenerated.
809         * generated/maxval_i2.c: Regenerated.
810         * generated/maxval_i4.c: Regenerated.
811         * generated/maxval_i8.c: Regenerated.
812         * generated/maxval_r10.c: Regenerated.
813         * generated/maxval_r16.c: Regenerated.
814         * generated/maxval_r4.c: Regenerated.
815         * generated/maxval_r8.c: Regenerated.
816         * generated/minloc0_16_i1.c: Regenerated.
817         * generated/minloc0_16_i16.c: Regenerated.
818         * generated/minloc0_16_i2.c: Regenerated.
819         * generated/minloc0_16_i4.c: Regenerated.
820         * generated/minloc0_16_i8.c: Regenerated.
821         * generated/minloc0_16_r10.c: Regenerated.
822         * generated/minloc0_16_r16.c: Regenerated.
823         * generated/minloc0_16_r4.c: Regenerated.
824         * generated/minloc0_16_r8.c: Regenerated.
825         * generated/minloc0_4_i1.c: Regenerated.
826         * generated/minloc0_4_i16.c: Regenerated.
827         * generated/minloc0_4_i2.c: Regenerated.
828         * generated/minloc0_4_i4.c: Regenerated.
829         * generated/minloc0_4_i8.c: Regenerated.
830         * generated/minloc0_4_r10.c: Regenerated.
831         * generated/minloc0_4_r16.c: Regenerated.
832         * generated/minloc0_4_r4.c: Regenerated.
833         * generated/minloc0_4_r8.c: Regenerated.
834         * generated/minloc0_8_i1.c: Regenerated.
835         * generated/minloc0_8_i16.c: Regenerated.
836         * generated/minloc0_8_i2.c: Regenerated.
837         * generated/minloc0_8_i4.c: Regenerated.
838         * generated/minloc0_8_i8.c: Regenerated.
839         * generated/minloc0_8_r10.c: Regenerated.
840         * generated/minloc0_8_r16.c: Regenerated.
841         * generated/minloc0_8_r4.c: Regenerated.
842         * generated/minloc0_8_r8.c: Regenerated.
843         * generated/minloc1_16_i1.c: Regenerated.
844         * generated/minloc1_16_i16.c: Regenerated.
845         * generated/minloc1_16_i2.c: Regenerated.
846         * generated/minloc1_16_i4.c: Regenerated.
847         * generated/minloc1_16_i8.c: Regenerated.
848         * generated/minloc1_16_r10.c: Regenerated.
849         * generated/minloc1_16_r16.c: Regenerated.
850         * generated/minloc1_16_r4.c: Regenerated.
851         * generated/minloc1_16_r8.c: Regenerated.
852         * generated/minloc1_4_i1.c: Regenerated.
853         * generated/minloc1_4_i16.c: Regenerated.
854         * generated/minloc1_4_i2.c: Regenerated.
855         * generated/minloc1_4_i4.c: Regenerated.
856         * generated/minloc1_4_i8.c: Regenerated.
857         * generated/minloc1_4_r10.c: Regenerated.
858         * generated/minloc1_4_r16.c: Regenerated.
859         * generated/minloc1_4_r4.c: Regenerated.
860         * generated/minloc1_4_r8.c: Regenerated.
861         * generated/minloc1_8_i1.c: Regenerated.
862         * generated/minloc1_8_i16.c: Regenerated.
863         * generated/minloc1_8_i2.c: Regenerated.
864         * generated/minloc1_8_i4.c: Regenerated.
865         * generated/minloc1_8_i8.c: Regenerated.
866         * generated/minloc1_8_r10.c: Regenerated.
867         * generated/minloc1_8_r16.c: Regenerated.
868         * generated/minloc1_8_r4.c: Regenerated.
869         * generated/minloc1_8_r8.c: Regenerated.
870         * generated/minval_i1.c: Regenerated.
871         * generated/minval_i16.c: Regenerated.
872         * generated/minval_i2.c: Regenerated.
873         * generated/minval_i4.c: Regenerated.
874         * generated/minval_i8.c: Regenerated.
875         * generated/minval_r10.c: Regenerated.
876         * generated/minval_r16.c: Regenerated.
877         * generated/minval_r4.c: Regenerated.
878         * generated/minval_r8.c: Regenerated.
879         * generated/product_c10.c: Regenerated.
880         * generated/product_c16.c: Regenerated.
881         * generated/product_c4.c: Regenerated.
882         * generated/product_c8.c: Regenerated.
883         * generated/product_i1.c: Regenerated.
884         * generated/product_i16.c: Regenerated.
885         * generated/product_i2.c: Regenerated.
886         * generated/product_i4.c: Regenerated.
887         * generated/product_i8.c: Regenerated.
888         * generated/product_r10.c: Regenerated.
889         * generated/product_r16.c: Regenerated.
890         * generated/product_r4.c: Regenerated.
891         * generated/product_r8.c: Regenerated.
892         * generated/sum_c10.c: Regenerated.
893         * generated/sum_c16.c: Regenerated.
894         * generated/sum_c4.c: Regenerated.
895         * generated/sum_c8.c: Regenerated.
896         * generated/sum_i1.c: Regenerated.
897         * generated/sum_i16.c: Regenerated.
898         * generated/sum_i2.c: Regenerated.
899         * generated/sum_i4.c: Regenerated.
900         * generated/sum_i8.c: Regenerated.
901         * generated/sum_r10.c: Regenerated.
902         * generated/sum_r16.c: Regenerated.
903         * generated/sum_r4.c: Regenerated.
904         * generated/sum_r8.c: Regenerated.
906 2009-07-17  Janne Blomqvist  <jb@gcc.gnu.org>
907             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
908                 
909         PR libfortran/40714
910         * io/transfer.c (finalize_transfer): Set current_record to 0
911         before returning in case of error.
913 2009-07-12  Tobias Burnus  <burnus@net-b.de>
915         PR libfortran/22423
916         * io/io.h (namelist_type): Use the proper enum for GFC_DTYPE_*.
917         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Make sure
918         variable is initialized to silence warning.
920 2009-07-10  Steven G. Kargl  <kargl@gcc.gnu.org>
922         * c99_functions.c (ccoshf, ccosh, ccoshl, ctanhf, ctanh, ctanl):
923         Fix errant minus.
925 2009-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
927         PR libfortran/40330
928         PR libfortran/40662
929         * io/io.h (st_parameter_dt): Define format_not_saved bit used to signal
930         whether the parsed format data was previously saved. Used to determine
931         if the current format data should be freed or not.
932         * io/transfer.c (st_read_done): Use the format_not_saved bit.
933         (st_write_done): Likewise.
934         * io/format.c (parse_format_list): Add boolean pointer to arg list. This
935         pointer is used to return status to the caller regarding whether it is
936         safe to cache the parsed format data.  Currently, if a FMT_STRING token
937         is encounetered, it is not safe to cache. Also, added a local boolean
938         variable to hold this information as recursive calls to
939         parse_format_list are made.  Remove previous save_format logic.
940         (parse_format): Do not use the format caching facility if the current
941         unit is an internal unit or if it is not safe to save parsed format
942         data.
943         
944 2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
946         PR libfortran/40576
947         * io/transfer.c (sset): Adjust exit condition for loop.
949 2009-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
951         PR libfortran/40508
952         * io/format.c: Don't save parsed format data for internal units.
954 2009-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
956         PR fortran/37577
957         Port from fortran-dev
958         * runtime/in_pack_generic (internal_pack):  Remove unnecessary
959         test for stride == 0.
960         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
961         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
962         of stride in "shape" argument.  Use array access macros for
963         accessing array descriptors.
964         * libgfortran.h (struct descriptor_dimension):  Change stride
965         to _stride, lbound to _lbound and ubound to _ubound.
966         (GFC_DIMENSION_LBOUND):  Use new name(s) in struct
967         descriptor_dimension.
968         (GFC_DIMENSION_UBOUND):  Likewise.
969         (GFC_DIMENSION_STRIDE):  Likewise.
970         (GFC_DIMENSION_EXTENT):  Likewise.
971         (GFC_DIMENSION_SET):  Likewise.
972         (GFC_DESCRIPTOR_LBOUND):  Likewise.
973         (GFC_DESCRIPTOR_UBOUND):  Likewise.
974         (GFC_DESCRIPTOR_EXTENT):  Likewise.
975         (GFC_DESCRIPTOR_STRIDE):  Likewise.
976         * io/transfer.c (transfer_array):  Use array access macros.
977         Use byte-sized strides.
978         * intrinsics/eoshift0.c (eoshift0):  Use array access
979         macros everywhere.
980         * m4/in_pack.m4 (internal_pack_'rtype_ccode`):  Use
981         array access macros for accessing array descriptors.
982         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):
983         Likewise.
984         * m4/matmull.m4 (matmul_'rtype_code`):  Likewise.
985         * m4/matmul.m4 (matmul_'rtype_code`):  Likewise.
986         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
987         (unpack1_'rtype_code`):  Likewise.
988         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise.
989         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Use array access
990         macros everywhere.
991                 * intrinsics/dtime.c (dtime_sub):  Use array access macros
992         for accessing array descriptors.
993         * intrinsics/cshift0 (cshift0):  Likewise.
994         * intrinsics/etime.c:  Likewise.  Remove redundant calculation
995         of rdim.
996         * m4/cshift0.m4 (cshift0_'rtype_code`):  Use array access macros
997         for accessing array descriptors.
998         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
999         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
1000         (spread_scalar_'rtype_code`):  Likewise.
1001         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
1002         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
1003         * m4/eoshift1.m4 (eoshift1):  Likewise.  Remove size argument,
1004         calculate within function.
1005         (eoshift1_'atype_kind`):  Remove size argument from call
1006         to eoshift1.
1007         (eoshift1_'atype_kind`_char):  Likewise.
1008         (eoshift1_'atype_kind`_char4):  Likewise.
1009         * m4/eoshift3.m4 (eoshift3):  Remove size argument, calculate
1010         within function. Use array access macros for accessing array
1011         descriptors.
1012         (eoshift3_'atype_kind`):  Remove size argument from call
1013         to eoshift1.
1014         (eoshift3_'atype_kind`_char):  Likewise.
1015         (eoshift3_'atype_kind`_char4):  Likewise.
1016         * m4/shape.m4 (shape_'rtype_kind`):  Use array access macros
1017         for accessing array descriptors.
1018         * m4/cshift1.m4 (cshift1): Remove size argument, calculate
1019         within function. Use array access macros for accessing array
1020         descriptors.
1021         (cshift1_'atype_kind`):  Remove size argument from call to
1022         cshift1.
1023         (cshift1_'atype_kind`_char):  Remove size argument from call to
1024         cshift1.
1025         (cshift1_'atype_kind`_char4):  Remove size argument from call to
1026         cshift1.
1027         * m4/reshape.m4 (reshape_'rtype_ccode`):  Use array access macros
1028         for accessing array descriptors.
1029         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
1030         * intrinsics/pack_generic.c (pack_internal):  Use array access
1031         macros for accessing array descriptors.
1032         (pack_s_internal):  Likewise.
1033         * intrinsics/transpose_generic.c (transpose_internal):  Remove
1034         size argument, calculate from array descriptor. Use array
1035         access macros for accessing array descriptors.
1036         (transpose):  Remove size argument from call.
1037         (transpoe_char):  Likewise.
1038         (transpose_char4):  Likewise.
1039         * intrinsics/move_alloc.c (move_alloc):  Use array access macros
1040         for accessing array descriptors.
1041         * intrinsics/spread_generic.c (spread_internal):  Remove size
1042         argument, calculate from array descriptor.  Use array access
1043         macros for accessing array descriptors.
1044         (spread_internal_scalar):  Likewise.
1045         (spread):  Remove size argument from call to spread_internal.
1046         (spread_char):  Mark argument source_length as unused.
1047         Remove size argument from call to spread_internal.
1048         (spread_char4):  Likewise.
1049         (spread_char_scalar):  Likewise.
1050         (spread_char4_scalar):  Likewise.
1051         * intrinsics/unpack_generic.c (unpack_internal):  Use array access
1052         macros for accessing array descriptors.
1053         * intrinsics/eoshift2.c (eoshift2):  Remove size argument, calculate
1054         from array descriptor instead.  Use array access macros for
1055         accessing array descriptors.
1056         (eoshift2_##N):  Remove size argument from call to eoshift2.
1057         (eoshift2_##N_##char):  Likewise.
1058         (eoshift2_##N_##char4):  Likewise.
1059         * intrinsics/reshape_generic.c (reshape_internal):  Use array
1060         access macross for accessing array descriptors.
1061         * libgfortran.h:  Introduce new macros GFC_DIMENSION_LBOUND,
1062         GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT,
1063         GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND,
1064         GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES,
1065         GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES
1066         * runtime/in_pack_generic.c (internal_pack):  Use new macros
1067         for array descriptor access.
1068         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1069         * intrinsics/dtime.c (dtime_sub):  Likewise.
1070         * intrinsics/cshift0 (cshift0):  Remove argument size,
1071         calculate directly from the array descriptor.  Use new macros
1072         for array descriptor access.
1073         * cshift0_##N:  Remove shift argument in call to cshift0.
1074         * cshift0_##N_char:  Mark array_length as unused.  Remove
1075         array_length in call to cshift0.
1076         * cshift0_##N_char4:  Likewise.
1077         * intrisics/etime.c:  Use new macros for array descriptor access.
1078         * intrinsics/stat.c (stat_i4_sub_0):  Likewise.
1079         (stat_i8_sub_0):  Likewise.
1080         (fstat_i4_sub):  Likewise.
1081         (fstat_i8_sub):  Likewise.
1082         * intrinsics/date_and_time.c (date_and_time):  Likewise.
1083         (secnds):  Likewise.
1084         (itime_i4):  Likewise.
1085         (itime_i8):  Likewise.
1086         (idate_i4):  Likewise.
1087         (idate_i8):  Likewise.
1088         (gmtime_i4):  Likewise.
1089         (gmtime_i8):  Likewise.
1090         (ltime_i4):  Likewise.
1091         (litme_i8):  Likewise.
1092         * intrinsics/associated.c (associated):  Likewise.
1093         * intrinsics/eoshift0.c (eoshift0):  Likewise.
1094         * intriniscs/size.c (size0):  Likewise.
1095         * intrinsics/random.c (arandom_r4):  Likewise.
1096         (arandom_r8):  Likewise.
1097         (arandom_r10):  Likewise.
1098         (arandom_r16):  Likewise.
1099         (random_seed_i4):  Likewise.
1100         (random_seed_i8):  Likewise.
1101         * io/list_read.c (nml_parse_qualifier):  Likewise.
1102         (nml_touch_nodes):  Likewise.
1103         (nml_read_obj):  Likewise.
1104         (get_name):  Likewise.
1105         * io/transfer.c (transfer_array):  Likewise.
1106         (init_loop_spec):  Likewise.
1107         (st_set_nml_var_dim):  Likewise.
1108         * io/write.c (nml_write_obj):  Likewise.
1109         (obj_loop):  Likewise.
1110         * generated/all_l1.c: Regenerated.
1111         * generated/all_l16.c: Regenerated.
1112         * generated/all_l2.c: Regenerated.
1113         * generated/all_l4.c: Regenerated.
1114         * generated/all_l8.c: Regenerated.
1115         * generated/any_l1.c: Regenerated.
1116         * generated/any_l16.c: Regenerated.
1117         * generated/any_l2.c: Regenerated.
1118         * generated/any_l4.c: Regenerated.
1119         * generated/any_l8.c: Regenerated.
1120         * generated/count_16_l.c: Regenerated.
1121         * generated/count_1_l.c: Regenerated.
1122         * generated/count_2_l.c: Regenerated.
1123         * generated/count_4_l.c: Regenerated.
1124         * generated/count_8_l.c: Regenerated.
1125         * generated/cshift0_c10.c: Regenerated.
1126         * generated/cshift0_c16.c: Regenerated.
1127         * generated/cshift0_c4.c: Regenerated.
1128         * generated/cshift0_c8.c: Regenerated.
1129         * generated/cshift0_i1.c: Regenerated.
1130         * generated/cshift0_i16.c: Regenerated.
1131         * generated/cshift0_i2.c: Regenerated.
1132         * generated/cshift0_i4.c: Regenerated.
1133         * generated/cshift0_i8.c: Regenerated.
1134         * generated/cshift0_r10.c: Regenerated.
1135         * generated/cshift0_r16.c: Regenerated.
1136         * generated/cshift0_r4.c: Regenerated.
1137         * generated/cshift0_r8.c: Regenerated.
1138         * generated/cshift1_16.c: Regenerated.
1139         * generated/cshift1_4.c: Regenerated.
1140         * generated/cshift1_8.c: Regenerated.
1141         * generated/eoshift1_16.c: Regenerated.
1142         * generated/eoshift1_4.c: Regenerated.
1143         * generated/eoshift1_8.c: Regenerated.
1144         * generated/eoshift3_16.c: Regenerated.
1145         * generated/eoshift3_4.c: Regenerated.
1146         * generated/eoshift3_8.c: Regenerated.
1147         * generated/in_pack_c10.c: Regenerated.
1148         * generated/in_pack_c16.c: Regenerated.
1149         * generated/in_pack_c4.c: Regenerated.
1150         * generated/in_pack_c8.c: Regenerated.
1151         * generated/in_pack_i1.c: Regenerated.
1152         * generated/in_pack_i16.c: Regenerated.
1153         * generated/in_pack_i2.c: Regenerated.
1154         * generated/in_pack_i4.c: Regenerated.
1155         * generated/in_pack_i8.c: Regenerated.
1156         * generated/in_pack_r10.c: Regenerated.
1157         * generated/in_pack_r16.c: Regenerated.
1158         * generated/in_pack_r4.c: Regenerated.
1159         * generated/in_pack_r8.c: Regenerated.
1160         * generated/in_unpack_c10.c: Regenerated.
1161         * generated/in_unpack_c16.c: Regenerated.
1162         * generated/in_unpack_c4.c: Regenerated.
1163         * generated/in_unpack_c8.c: Regenerated.
1164         * generated/in_unpack_i1.c: Regenerated.
1165         * generated/in_unpack_i16.c: Regenerated.
1166         * generated/in_unpack_i2.c: Regenerated.
1167         * generated/in_unpack_i4.c: Regenerated.
1168         * generated/in_unpack_i8.c: Regenerated.
1169         * generated/in_unpack_r10.c: Regenerated.
1170         * generated/in_unpack_r16.c: Regenerated.
1171         * generated/in_unpack_r4.c: Regenerated.
1172         * generated/in_unpack_r8.c: Regenerated.
1173         * generated/matmul_c10.c: Regenerated.
1174         * generated/matmul_c16.c: Regenerated.
1175         * generated/matmul_c4.c: Regenerated.
1176         * generated/matmul_c8.c: Regenerated.
1177         * generated/matmul_i1.c: Regenerated.
1178         * generated/matmul_i16.c: Regenerated.
1179         * generated/matmul_i2.c: Regenerated.
1180         * generated/matmul_i4.c: Regenerated.
1181         * generated/matmul_i8.c: Regenerated.
1182         * generated/matmul_l16.c: Regenerated.
1183         * generated/matmul_l4.c: Regenerated.
1184         * generated/matmul_l8.c: Regenerated.
1185         * generated/matmul_r10.c: Regenerated.
1186         * generated/matmul_r16.c: Regenerated.
1187         * generated/matmul_r4.c: Regenerated.
1188         * generated/matmul_r8.c: Regenerated.
1189         * generated/maxloc0_16_i1.c: Regenerated.
1190         * generated/maxloc0_16_i16.c: Regenerated.
1191         * generated/maxloc0_16_i2.c: Regenerated.
1192         * generated/maxloc0_16_i4.c: Regenerated.
1193         * generated/maxloc0_16_i8.c: Regenerated.
1194         * generated/maxloc0_16_r10.c: Regenerated.
1195         * generated/maxloc0_16_r16.c: Regenerated.
1196         * generated/maxloc0_16_r4.c: Regenerated.
1197         * generated/maxloc0_16_r8.c: Regenerated.
1198         * generated/maxloc0_4_i1.c: Regenerated.
1199         * generated/maxloc0_4_i16.c: Regenerated.
1200         * generated/maxloc0_4_i2.c: Regenerated.
1201         * generated/maxloc0_4_i4.c: Regenerated.
1202         * generated/maxloc0_4_i8.c: Regenerated.
1203         * generated/maxloc0_4_r10.c: Regenerated.
1204         * generated/maxloc0_4_r16.c: Regenerated.
1205         * generated/maxloc0_4_r4.c: Regenerated.
1206         * generated/maxloc0_4_r8.c: Regenerated.
1207         * generated/maxloc0_8_i1.c: Regenerated.
1208         * generated/maxloc0_8_i16.c: Regenerated.
1209         * generated/maxloc0_8_i2.c: Regenerated.
1210         * generated/maxloc0_8_i4.c: Regenerated.
1211         * generated/maxloc0_8_i8.c: Regenerated.
1212         * generated/maxloc0_8_r10.c: Regenerated.
1213         * generated/maxloc0_8_r16.c: Regenerated.
1214         * generated/maxloc0_8_r4.c: Regenerated.
1215         * generated/maxloc0_8_r8.c: Regenerated.
1216         * generated/maxloc1_16_i1.c: Regenerated.
1217         * generated/maxloc1_16_i16.c: Regenerated.
1218         * generated/maxloc1_16_i2.c: Regenerated.
1219         * generated/maxloc1_16_i4.c: Regenerated.
1220         * generated/maxloc1_16_i8.c: Regenerated.
1221         * generated/maxloc1_16_r10.c: Regenerated.
1222         * generated/maxloc1_16_r16.c: Regenerated.
1223         * generated/maxloc1_16_r4.c: Regenerated.
1224         * generated/maxloc1_16_r8.c: Regenerated.
1225         * generated/maxloc1_4_i1.c: Regenerated.
1226         * generated/maxloc1_4_i16.c: Regenerated.
1227         * generated/maxloc1_4_i2.c: Regenerated.
1228         * generated/maxloc1_4_i4.c: Regenerated.
1229         * generated/maxloc1_4_i8.c: Regenerated.
1230         * generated/maxloc1_4_r10.c: Regenerated.
1231         * generated/maxloc1_4_r16.c: Regenerated.
1232         * generated/maxloc1_4_r4.c: Regenerated.
1233         * generated/maxloc1_4_r8.c: Regenerated.
1234         * generated/maxloc1_8_i1.c: Regenerated.
1235         * generated/maxloc1_8_i16.c: Regenerated.
1236         * generated/maxloc1_8_i2.c: Regenerated.
1237         * generated/maxloc1_8_i4.c: Regenerated.
1238         * generated/maxloc1_8_i8.c: Regenerated.
1239         * generated/maxloc1_8_r10.c: Regenerated.
1240         * generated/maxloc1_8_r16.c: Regenerated.
1241         * generated/maxloc1_8_r4.c: Regenerated.
1242         * generated/maxloc1_8_r8.c: Regenerated.
1243         * generated/maxval_i1.c: Regenerated.
1244         * generated/maxval_i16.c: Regenerated.
1245         * generated/maxval_i2.c: Regenerated.
1246         * generated/maxval_i4.c: Regenerated.
1247         * generated/maxval_i8.c: Regenerated.
1248         * generated/maxval_r10.c: Regenerated.
1249         * generated/maxval_r16.c: Regenerated.
1250         * generated/maxval_r4.c: Regenerated.
1251         * generated/maxval_r8.c: Regenerated.
1252         * generated/minloc0_16_i1.c: Regenerated.
1253         * generated/minloc0_16_i16.c: Regenerated.
1254         * generated/minloc0_16_i2.c: Regenerated.
1255         * generated/minloc0_16_i4.c: Regenerated.
1256         * generated/minloc0_16_i8.c: Regenerated.
1257         * generated/minloc0_16_r10.c: Regenerated.
1258         * generated/minloc0_16_r16.c: Regenerated.
1259         * generated/minloc0_16_r4.c: Regenerated.
1260         * generated/minloc0_16_r8.c: Regenerated.
1261         * generated/minloc0_4_i1.c: Regenerated.
1262         * generated/minloc0_4_i16.c: Regenerated.
1263         * generated/minloc0_4_i2.c: Regenerated.
1264         * generated/minloc0_4_i4.c: Regenerated.
1265         * generated/minloc0_4_i8.c: Regenerated.
1266         * generated/minloc0_4_r10.c: Regenerated.
1267         * generated/minloc0_4_r16.c: Regenerated.
1268         * generated/minloc0_4_r4.c: Regenerated.
1269         * generated/minloc0_4_r8.c: Regenerated.
1270         * generated/minloc0_8_i1.c: Regenerated.
1271         * generated/minloc0_8_i16.c: Regenerated.
1272         * generated/minloc0_8_i2.c: Regenerated.
1273         * generated/minloc0_8_i4.c: Regenerated.
1274         * generated/minloc0_8_i8.c: Regenerated.
1275         * generated/minloc0_8_r10.c: Regenerated.
1276         * generated/minloc0_8_r16.c: Regenerated.
1277         * generated/minloc0_8_r4.c: Regenerated.
1278         * generated/minloc0_8_r8.c: Regenerated.
1279         * generated/minloc1_16_i1.c: Regenerated.
1280         * generated/minloc1_16_i16.c: Regenerated.
1281         * generated/minloc1_16_i2.c: Regenerated.
1282         * generated/minloc1_16_i4.c: Regenerated.
1283         * generated/minloc1_16_i8.c: Regenerated.
1284         * generated/minloc1_16_r10.c: Regenerated.
1285         * generated/minloc1_16_r16.c: Regenerated.
1286         * generated/minloc1_16_r4.c: Regenerated.
1287         * generated/minloc1_16_r8.c: Regenerated.
1288         * generated/minloc1_4_i1.c: Regenerated.
1289         * generated/minloc1_4_i16.c: Regenerated.
1290         * generated/minloc1_4_i2.c: Regenerated.
1291         * generated/minloc1_4_i4.c: Regenerated.
1292         * generated/minloc1_4_i8.c: Regenerated.
1293         * generated/minloc1_4_r10.c: Regenerated.
1294         * generated/minloc1_4_r16.c: Regenerated.
1295         * generated/minloc1_4_r4.c: Regenerated.
1296         * generated/minloc1_4_r8.c: Regenerated.
1297         * generated/minloc1_8_i1.c: Regenerated.
1298         * generated/minloc1_8_i16.c: Regenerated.
1299         * generated/minloc1_8_i2.c: Regenerated.
1300         * generated/minloc1_8_i4.c: Regenerated.
1301         * generated/minloc1_8_i8.c: Regenerated.
1302         * generated/minloc1_8_r10.c: Regenerated.
1303         * generated/minloc1_8_r16.c: Regenerated.
1304         * generated/minloc1_8_r4.c: Regenerated.
1305         * generated/minloc1_8_r8.c: Regenerated.
1306         * generated/minval_i1.c: Regenerated.
1307         * generated/minval_i16.c: Regenerated.
1308         * generated/minval_i2.c: Regenerated.
1309         * generated/minval_i4.c: Regenerated.
1310         * generated/minval_i8.c: Regenerated.
1311         * generated/minval_r10.c: Regenerated.
1312         * generated/minval_r16.c: Regenerated.
1313         * generated/minval_r4.c: Regenerated.
1314         * generated/minval_r8.c: Regenerated.
1315         * generated/pack_c10.c: Regenerated.
1316         * generated/pack_c16.c: Regenerated.
1317         * generated/pack_c4.c: Regenerated.
1318         * generated/pack_c8.c: Regenerated.
1319         * generated/pack_i1.c: Regenerated.
1320         * generated/pack_i16.c: Regenerated.
1321         * generated/pack_i2.c: Regenerated.
1322         * generated/pack_i4.c: Regenerated.
1323         * generated/pack_i8.c: Regenerated.
1324         * generated/pack_r10.c: Regenerated.
1325         * generated/pack_r16.c: Regenerated.
1326         * generated/pack_r4.c: Regenerated.
1327         * generated/pack_r8.c: Regenerated.
1328         * generated/product_c10.c: Regenerated.
1329         * generated/product_c16.c: Regenerated.
1330         * generated/product_c4.c: Regenerated.
1331         * generated/product_c8.c: Regenerated.
1332         * generated/product_i1.c: Regenerated.
1333         * generated/product_i16.c: Regenerated.
1334         * generated/product_i2.c: Regenerated.
1335         * generated/product_i4.c: Regenerated.
1336         * generated/product_i8.c: Regenerated.
1337         * generated/product_r10.c: Regenerated.
1338         * generated/product_r16.c: Regenerated.
1339         * generated/product_r4.c: Regenerated.
1340         * generated/product_r8.c: Regenerated.
1341         * generated/reshape_c10.c: Regenerated.
1342         * generated/reshape_c16.c: Regenerated.
1343         * generated/reshape_c4.c: Regenerated.
1344         * generated/reshape_c8.c: Regenerated.
1345         * generated/reshape_i16.c: Regenerated.
1346         * generated/reshape_i4.c: Regenerated.
1347         * generated/reshape_i8.c: Regenerated.
1348         * generated/reshape_r10.c: Regenerated.
1349         * generated/reshape_r16.c: Regenerated.
1350         * generated/reshape_r4.c: Regenerated.
1351         * generated/reshape_r8.c: Regenerated.
1352         * generated/shape_i16.c: Regenerated.
1353         * generated/shape_i4.c: Regenerated.
1354         * generated/shape_i8.c: Regenerated.
1355         * generated/spread_c10.c: Regenerated.
1356         * generated/spread_c16.c: Regenerated.
1357         * generated/spread_c4.c: Regenerated.
1358         * generated/spread_c8.c: Regenerated.
1359         * generated/spread_i1.c: Regenerated.
1360         * generated/spread_i16.c: Regenerated.
1361         * generated/spread_i2.c: Regenerated.
1362         * generated/spread_i4.c: Regenerated.
1363         * generated/spread_i8.c: Regenerated.
1364         * generated/spread_r10.c: Regenerated.
1365         * generated/spread_r16.c: Regenerated.
1366         * generated/spread_r4.c: Regenerated.
1367         * generated/spread_r8.c: Regenerated.
1368         * generated/sum_c10.c: Regenerated.
1369         * generated/sum_c16.c: Regenerated.
1370         * generated/sum_c4.c: Regenerated.
1371         * generated/sum_c8.c: Regenerated.
1372         * generated/sum_i1.c: Regenerated.
1373         * generated/sum_i16.c: Regenerated.
1374         * generated/sum_i2.c: Regenerated.
1375         * generated/sum_i4.c: Regenerated.
1376         * generated/sum_i8.c: Regenerated.
1377         * generated/sum_r10.c: Regenerated.
1378         * generated/sum_r16.c: Regenerated.
1379         * generated/sum_r4.c: Regenerated.
1380         * generated/sum_r8.c: Regenerated.
1381         * generated/transpose_c10.c: Regenerated.
1382         * generated/transpose_c16.c: Regenerated.
1383         * generated/transpose_c4.c: Regenerated.
1384         * generated/transpose_c8.c: Regenerated.
1385         * generated/transpose_i16.c: Regenerated.
1386         * generated/transpose_i4.c: Regenerated.
1387         * generated/transpose_i8.c: Regenerated.
1388         * generated/transpose_r10.c: Regenerated.
1389         * generated/transpose_r16.c: Regenerated.
1390         * generated/transpose_r4.c: Regenerated.
1391         * generated/transpose_r8.c: Regenerated.
1392         * generated/unpack_c10.c: Regenerated.
1393         * generated/unpack_c16.c: Regenerated.
1394         * generated/unpack_c4.c: Regenerated.
1395         * generated/unpack_c8.c: Regenerated.
1396         * generated/unpack_i1.c: Regenerated.
1397         * generated/unpack_i16.c: Regenerated.
1398         * generated/unpack_i2.c: Regenerated.
1399         * generated/unpack_i4.c: Regenerated.
1400         * generated/unpack_i8.c: Regenerated.
1401         * generated/unpack_r10.c: Regenerated.
1402         * generated/unpack_r16.c: Regenerated.
1403         * generated/unpack_r4.c: Regenerated.
1404         * generated/unpack_r8.c: Regenerated.
1406 2009-06-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1408         * fmain.c (main): Don't PREFIX set_args.
1409         * libgfortran.h (set_args): Use iexport_proto.
1410         * runtime/main.c (set_args): Use iexport.
1412 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1414         PR libfortran/40008
1415         * libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT.
1416         * io/open.c (st_open): Don't error on negative unit number if NEWUNIT
1417         was specified. If NEWUNIT is specified, call new function to get the
1418         unique unit number and assign it.
1419         * io/io.h (st_parameter_open): Add pointer to newunit.  Add prototype for
1420         next_available_newunit. Add prototype for new function,
1421         get_unique_unit_number.
1422         * io/unit.c: Declare next_available_newunit. Define the first newunit
1423         number. (init_units): Initialize next_available_unit.
1424         (get_unique_unit_number): New function. Fix whitespace and comments.
1425         * io/transfer.c (data_transfer_init): Update error message to not be
1426         specific to OPEN statements.
1428 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1430         PR libfortran/40334
1431         * io/list_read.c (list_formatted_read_scalar): Set the end file
1432         conditions after a return from EOF error.
1434 2009-06-04  Janne Blomqvist  <jb@gcc.gnu.org>
1436         PR libfortran/40330
1437         * io/format.c (free_format_hash_table): Also free and nullify hash key.
1438         (save_parsed_format): Copy string rather than pointer copy.
1439         
1440 2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1442         PR fortran/40019
1443         * intrinsics/bit_intrinsics.c: New file.
1444         * gfortran.map (GFORTRAN_1.2): New list.
1445         * Makefile.am: Add intrinsics/bit_intrinsics.c.
1446         * Makefile.in: Regenerate.
1448 2009-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
1450         PR libfortran/40190
1451         * configure.ac: Check for localtime_r and gmtime_r.
1452         * intrinsics/date_and_time.c: Add fallback implementations for
1453         localtime_r and gmtime_r.
1454         (date_and_time): Change to use localtime_r and gmtime_r instead of
1455         localtime and gmtime, respectively.
1456         (itime0): Use localtime_r instead of localtime.
1457         (ltime_0): Likewise.
1458         (gmtime_0): Use gmtime_r instead of gmtime.
1459         * config.h.in: Regenerated
1460         * configure: Regenerated.
1462 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1464         PR fortran/39178
1465         * runtime/main.c (store_exe_path): Remove static attribute.
1466         * libgfortran.h: Add back store_exe_path prototype.
1468 2009-05-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1470         PR libfortran/40187
1471         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
1472         of stride in "shape" argument.
1474 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1476         PR fortran/39178
1477         * runtime/main.c (store_exe_path): Make static
1478         and multiple-times callable.
1479         (set_args): Call store_exe_path.
1480         * libgfortran.h: Remove store_exe_path prototype.
1481         * fmain.c (main): Remove store_exe_path call.
1483 2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1485         PR libfortran/37754
1486         * io/write_float.def: Simplify format calculation.
1487         
1488 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1490         PR fortran/22423
1491         * io/transfer.c (read_block_direct): Avoid warning.
1492         * runtime/string.c (compare0): Avoid warning.
1494 2009-04-30  Janne Blomqvist  <jb@gcc.gnu.org>
1496         PR libfortran/39667
1497         * io/file_pos.c (st_rewind): Don't truncate or flush.
1498         * io/intrinsics.c (fgetc): Flush if switching mode.
1499         (fputc): Likewise.
1501 2009-04-18  Janne Blomqvist  <jb@gcc.gnu.org>
1503         PR libfortran/39782
1504         * io/transfer.c (data_transfer_init): Don't flush before seek.
1505         (finalize_transfer): Remove extra flush.
1507 2009-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1509         * io/io.h (is_preconnected): Remove prototype.
1510         * io/unix.c (is_preconnected): Remove function.
1512 2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1514         * configure.ac: Test for -ffunction-sections -fdata-sections and
1515         set SECTION_FLAGS accordingly.
1516         * configure: Regenerate.
1518         * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS.
1519         * Makefile.in: Regenerate.
1521 2009-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1523         PR libfortran/38668
1524         * io/transfer.c (finalize_transfer): Don't flush for advance='no'.
1526 2009-04-15 Danny Smith  <dannysmith@clear.net.nz>
1528         * io/write.c (itoa) : Rename back to gfc_itoa.
1529         (write_i): Adjust call to write_decimal.
1530         (write_integer):  Use gfc_itoa.
1532 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1534         * io/io.h (move_pos_offset): Remove prototype.
1535         * io/transfer.c (formatted_transfer_scalar_read): Use sseek
1536         instead of move_pos_offset.
1537         * io/unix.c (move_pos_offset): Remove.
1539 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1541         PR libfortran/39665 libfortran/39702 libfortran/39709
1542         * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
1543         * io/list_read.c (read_complex): Read directly into user pointer.
1544         (read_real): Likewise.
1545         (list_formatted_read_scalar): Update read_complex and read_real calls.
1546         (nml_read_obj): Read directly into user pointer.
1548 2009-04-09  Janne Blomqvist  <jb@gcc.gnu.org>
1550         PR libfortran/39665
1551         * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
1552         * io/read.c (convert_real): Add note about alignment requirements.
1554 2009-04-09  Nick Clifton  <nickc@redhat.com>
1556         * m4/cshift0.m4: Change copyright header to refer to version 3
1557         of the GNU General Public License with version 3.1 of the GCC
1558         Runtime Library Exception and to point readers at the COPYING3
1559         and COPYING3.RUNTIME files and the FSF's license web page.
1560         * c99_protos.h: Likewise.
1561         * config/fpu-387.h: Likewise.
1562         * config/fpu-aix.h: Likewise.
1563         * config/fpu-generic.h: Likewise.
1564         * config/fpu-glibc.h: Likewise.
1565         * config/fpu-sysv.h: Likewise.
1566         * intrinsics/abort.c: Likewise.
1567         * intrinsics/access.c: Likewise.
1568         * intrinsics/args.c: Likewise.
1569         * intrinsics/associated.c: Likewise.
1570         * intrinsics/c99_functions.c: Likewise.
1571         * intrinsics/chdir.c: Likewise.
1572         * intrinsics/chmod.c: Likewise.
1573         * intrinsics/clock.c: Likewise.
1574         * intrinsics/cpu_time.c: Likewise.
1575         * intrinsics/cshift0.c: Likewise.
1576         * intrinsics/ctime.c: Likewise.
1577         * intrinsics/date_and_time.c: Likewise.
1578         * intrinsics/dprod_r8.f90: Likewise.
1579         * intrinsics/dtime.c: Likewise.
1580         * intrinsics/env.c: Likewise.
1581         * intrinsics/eoshift0.c: Likewise.
1582         * intrinsics/eoshift2.c: Likewise.
1583         * intrinsics/erfc_scaled.c: Likewise.
1584         * intrinsics/erfc_scaled_inc.c: Likewise.
1585         * intrinsics/etime.c: Likewise.
1586         * intrinsics/exit.c: Likewise.
1587         * intrinsics/f2c_specifics.F90: Likewise.
1588         * intrinsics/fnum.c: Likewise.
1589         * intrinsics/gerror.c: Likewise.
1590         * intrinsics/getXid.c: Likewise.
1591         * intrinsics/getcwd.c: Likewise.
1592         * intrinsics/getlog.c: Likewise.
1593         * intrinsics/hostnm.c: Likewise.
1594         * intrinsics/ierrno.c: Likewise.
1595         * intrinsics/ishftc.c: Likewise.
1596         * intrinsics/iso_c_binding.c: Likewise.
1597         * intrinsics/iso_c_binding.h: Likewise.
1598         * intrinsics/iso_c_generated_procs.c: Likewise.
1599         * intrinsics/kill.c: Likewise.
1600         * intrinsics/link.c: Likewise.
1601         * intrinsics/malloc.c: Likewise.
1602         * intrinsics/move_alloc.c: Likewise.
1603         * intrinsics/mvbits.c: Likewise.
1604         * intrinsics/pack_generic.c: Likewise.
1605         * intrinsics/perror.c: Likewise.
1606         * intrinsics/rand.c: Likewise.
1607         * intrinsics/random.c: Likewise.
1608         * intrinsics/rename.c: Likewise.
1609         * intrinsics/reshape_generic.c: Likewise.
1610         * intrinsics/reshape_packed.c: Likewise.
1611         * intrinsics/selected_char_kind.c: Likewise.
1612         * intrinsics/selected_int_kind.f90: Likewise.
1613         * intrinsics/selected_real_kind.f90: Likewise.
1614         * intrinsics/signal.c: Likewise.
1615         * intrinsics/size.c: Likewise.
1616         * intrinsics/sleep.c: Likewise.
1617         * intrinsics/spread_generic.c: Likewise.
1618         * intrinsics/stat.c: Likewise.
1619         * intrinsics/string_intrinsics.c: Likewise.
1620         * intrinsics/string_intrinsics_inc.c: Likewise.
1621         * intrinsics/symlnk.c: Likewise.
1622         * intrinsics/system.c: Likewise.
1623         * intrinsics/system_clock.c: Likewise.
1624         * intrinsics/time.c: Likewise.
1625         * intrinsics/time_1.h: Likewise.
1626         * intrinsics/transpose_generic.c: Likewise.
1627         * intrinsics/umask.c: Likewise.
1628         * intrinsics/unlink.c: Likewise.
1629         * intrinsics/unpack_generic.c: Likewise.
1630         * io/close.c: Likewise.
1631         * io/fbuf.c: Likewise.
1632         * io/file_pos.c: Likewise.
1633         * io/format.c: Likewise.
1634         * io/inquire.c: Likewise.
1635         * io/intrinsics.c: Likewise.
1636         * io/io.h: Likewise.
1637         * io/list_read.c: Likewise.
1638         * io/lock.c: Likewise.
1639         * io/open.c: Likewise.
1640         * io/read.c: Likewise.
1641         * io/size_from_kind.c: Likewise.
1642         * io/transfer.c: Likewise.
1643         * io/unit.c: Likewise.
1644         * io/unix.c: Likewise.
1645         * io/write.c: Likewise.
1646         * io/write_float.def: Likewise.
1647         * libgfortran.h: Likewise.
1648         * m4/all.m4: Likewise.
1649         * m4/any.m4: Likewise.
1650         * m4/count.m4: Likewise.
1651         * m4/cshift1.m4: Likewise.
1652         * m4/eoshift1.m4: Likewise.
1653         * m4/eoshift3.m4: Likewise.
1654         * m4/exponent.m4: Likewise.
1655         * m4/fraction.m4: Likewise.
1656         * m4/head.m4: Likewise.
1657         * m4/in_pack.m4: Likewise.
1658         * m4/in_unpack.m4: Likewise.
1659         * m4/matmul.m4: Likewise.
1660         * m4/matmull.m4: Likewise.
1661         * m4/maxloc0.m4: Likewise.
1662         * m4/maxloc1.m4: Likewise.
1663         * m4/maxval.m4: Likewise.
1664         * m4/minloc0.m4: Likewise.
1665         * m4/minloc1.m4: Likewise.
1666         * m4/minval.m4: Likewise.
1667         * m4/nearest.m4: Likewise.
1668         * m4/pack.m4: Likewise.
1669         * m4/pow.m4: Likewise.
1670         * m4/product.m4: Likewise.
1671         * m4/reshape.m4: Likewise.
1672         * m4/rrspacing.m4: Likewise.
1673         * m4/set_exponent.m4: Likewise.
1674         * m4/shape.m4: Likewise.
1675         * m4/spacing.m4: Likewise.
1676         * m4/spread.m4: Likewise.
1677         * m4/sum.m4: Likewise.
1678         * m4/transpose.m4: Likewise.
1679         * m4/unpack.m4: Likewise.
1680         * runtime/backtrace.c: Likewise.
1681         * runtime/compile_options.c: Likewise.
1682         * runtime/convert_char.c: Likewise.
1683         * runtime/environ.c: Likewise.
1684         * runtime/error.c: Likewise.
1685         * runtime/in_pack_generic.c: Likewise.
1686         * runtime/in_unpack_generic.c: Likewise.
1687         * runtime/main.c: Likewise.
1688         * runtime/memory.c: Likewise.
1689         * runtime/pause.c: Likewise.
1690         * runtime/select.c: Likewise.
1691         * runtime/select_inc.c: Likewise.
1692         * runtime/stop.c: Likewise.
1693         * runtime/string.c: Likewise.
1694         * generated/_abs_c10.F90: Regenerate.
1695         * generated/_abs_c16.F90: Regenerate.
1696         * generated/_abs_c4.F90: Regenerate.
1697         * generated/_abs_c8.F90: Regenerate.
1698         * generated/_abs_i16.F90: Regenerate.
1699         * generated/_abs_i4.F90: Regenerate.
1700         * generated/_abs_i8.F90: Regenerate.
1701         * generated/_abs_r10.F90: Regenerate.
1702         * generated/_abs_r16.F90: Regenerate.
1703         * generated/_abs_r4.F90: Regenerate.
1704         * generated/_abs_r8.F90: Regenerate.
1705         * generated/_acos_r10.F90: Regenerate.
1706         * generated/_acos_r16.F90: Regenerate.
1707         * generated/_acos_r4.F90: Regenerate.
1708         * generated/_acos_r8.F90: Regenerate.
1709         * generated/_acosh_r10.F90: Regenerate.
1710         * generated/_acosh_r16.F90: Regenerate.
1711         * generated/_acosh_r4.F90: Regenerate.
1712         * generated/_acosh_r8.F90: Regenerate.
1713         * generated/_aimag_c10.F90: Regenerate.
1714         * generated/_aimag_c16.F90: Regenerate.
1715         * generated/_aimag_c4.F90: Regenerate.
1716         * generated/_aimag_c8.F90: Regenerate.
1717         * generated/_aint_r10.F90: Regenerate.
1718         * generated/_aint_r16.F90: Regenerate.
1719         * generated/_aint_r4.F90: Regenerate.
1720         * generated/_aint_r8.F90: Regenerate.
1721         * generated/_anint_r10.F90: Regenerate.
1722         * generated/_anint_r16.F90: Regenerate.
1723         * generated/_anint_r4.F90: Regenerate.
1724         * generated/_anint_r8.F90: Regenerate.
1725         * generated/_asin_r10.F90: Regenerate.
1726         * generated/_asin_r16.F90: Regenerate.
1727         * generated/_asin_r4.F90: Regenerate.
1728         * generated/_asin_r8.F90: Regenerate.
1729         * generated/_asinh_r10.F90: Regenerate.
1730         * generated/_asinh_r16.F90: Regenerate.
1731         * generated/_asinh_r4.F90: Regenerate.
1732         * generated/_asinh_r8.F90: Regenerate.
1733         * generated/_atan2_r10.F90: Regenerate.
1734         * generated/_atan2_r16.F90: Regenerate.
1735         * generated/_atan2_r4.F90: Regenerate.
1736         * generated/_atan2_r8.F90: Regenerate.
1737         * generated/_atan_r10.F90: Regenerate.
1738         * generated/_atan_r16.F90: Regenerate.
1739         * generated/_atan_r4.F90: Regenerate.
1740         * generated/_atan_r8.F90: Regenerate.
1741         * generated/_atanh_r10.F90: Regenerate.
1742         * generated/_atanh_r16.F90: Regenerate.
1743         * generated/_atanh_r4.F90: Regenerate.
1744         * generated/_atanh_r8.F90: Regenerate.
1745         * generated/_conjg_c10.F90: Regenerate.
1746         * generated/_conjg_c16.F90: Regenerate.
1747         * generated/_conjg_c4.F90: Regenerate.
1748         * generated/_conjg_c8.F90: Regenerate.
1749         * generated/_cos_c10.F90: Regenerate.
1750         * generated/_cos_c16.F90: Regenerate.
1751         * generated/_cos_c4.F90: Regenerate.
1752         * generated/_cos_c8.F90: Regenerate.
1753         * generated/_cos_r10.F90: Regenerate.
1754         * generated/_cos_r16.F90: Regenerate.
1755         * generated/_cos_r4.F90: Regenerate.
1756         * generated/_cos_r8.F90: Regenerate.
1757         * generated/_cosh_r10.F90: Regenerate.
1758         * generated/_cosh_r16.F90: Regenerate.
1759         * generated/_cosh_r4.F90: Regenerate.
1760         * generated/_cosh_r8.F90: Regenerate.
1761         * generated/_dim_i16.F90: Regenerate.
1762         * generated/_dim_i4.F90: Regenerate.
1763         * generated/_dim_i8.F90: Regenerate.
1764         * generated/_dim_r10.F90: Regenerate.
1765         * generated/_dim_r16.F90: Regenerate.
1766         * generated/_dim_r4.F90: Regenerate.
1767         * generated/_dim_r8.F90: Regenerate.
1768         * generated/_exp_c10.F90: Regenerate.
1769         * generated/_exp_c16.F90: Regenerate.
1770         * generated/_exp_c4.F90: Regenerate.
1771         * generated/_exp_c8.F90: Regenerate.
1772         * generated/_exp_r10.F90: Regenerate.
1773         * generated/_exp_r16.F90: Regenerate.
1774         * generated/_exp_r4.F90: Regenerate.
1775         * generated/_exp_r8.F90: Regenerate.
1776         * generated/_log10_r10.F90: Regenerate.
1777         * generated/_log10_r16.F90: Regenerate.
1778         * generated/_log10_r4.F90: Regenerate.
1779         * generated/_log10_r8.F90: Regenerate.
1780         * generated/_log_c10.F90: Regenerate.
1781         * generated/_log_c16.F90: Regenerate.
1782         * generated/_log_c4.F90: Regenerate.
1783         * generated/_log_c8.F90: Regenerate.
1784         * generated/_log_r10.F90: Regenerate.
1785         * generated/_log_r16.F90: Regenerate.
1786         * generated/_log_r4.F90: Regenerate.
1787         * generated/_log_r8.F90: Regenerate.
1788         * generated/_mod_i16.F90: Regenerate.
1789         * generated/_mod_i4.F90: Regenerate.
1790         * generated/_mod_i8.F90: Regenerate.
1791         * generated/_mod_r10.F90: Regenerate.
1792         * generated/_mod_r16.F90: Regenerate.
1793         * generated/_mod_r4.F90: Regenerate.
1794         * generated/_mod_r8.F90: Regenerate.
1795         * generated/_sign_i16.F90: Regenerate.
1796         * generated/_sign_i4.F90: Regenerate.
1797         * generated/_sign_i8.F90: Regenerate.
1798         * generated/_sign_r10.F90: Regenerate.
1799         * generated/_sign_r16.F90: Regenerate.
1800         * generated/_sign_r4.F90: Regenerate.
1801         * generated/_sign_r8.F90: Regenerate.
1802         * generated/_sin_c10.F90: Regenerate.
1803         * generated/_sin_c16.F90: Regenerate.
1804         * generated/_sin_c4.F90: Regenerate.
1805         * generated/_sin_c8.F90: Regenerate.
1806         * generated/_sin_r10.F90: Regenerate.
1807         * generated/_sin_r16.F90: Regenerate.
1808         * generated/_sin_r4.F90: Regenerate.
1809         * generated/_sin_r8.F90: Regenerate.
1810         * generated/_sinh_r10.F90: Regenerate.
1811         * generated/_sinh_r16.F90: Regenerate.
1812         * generated/_sinh_r4.F90: Regenerate.
1813         * generated/_sinh_r8.F90: Regenerate.
1814         * generated/_sqrt_c10.F90: Regenerate.
1815         * generated/_sqrt_c16.F90: Regenerate.
1816         * generated/_sqrt_c4.F90: Regenerate.
1817         * generated/_sqrt_c8.F90: Regenerate.
1818         * generated/_sqrt_r10.F90: Regenerate.
1819         * generated/_sqrt_r16.F90: Regenerate.
1820         * generated/_sqrt_r4.F90: Regenerate.
1821         * generated/_sqrt_r8.F90: Regenerate.
1822         * generated/_tan_r10.F90: Regenerate.
1823         * generated/_tan_r16.F90: Regenerate.
1824         * generated/_tan_r4.F90: Regenerate.
1825         * generated/_tan_r8.F90: Regenerate.
1826         * generated/_tanh_r10.F90: Regenerate.
1827         * generated/_tanh_r16.F90: Regenerate.
1828         * generated/_tanh_r4.F90: Regenerate.
1829         * generated/_tanh_r8.F90: Regenerate.
1830         * generated/all_l1.c: Regenerate.
1831         * generated/all_l16.c: Regenerate.
1832         * generated/all_l2.c: Regenerate.
1833         * generated/all_l4.c: Regenerate.
1834         * generated/all_l8.c: Regenerate.
1835         * generated/any_l1.c: Regenerate.
1836         * generated/any_l16.c: Regenerate.
1837         * generated/any_l2.c: Regenerate.
1838         * generated/any_l4.c: Regenerate.
1839         * generated/any_l8.c: Regenerate.
1840         * generated/count_16_l.c: Regenerate.
1841         * generated/count_1_l.c: Regenerate.
1842         * generated/count_2_l.c: Regenerate.
1843         * generated/count_4_l.c: Regenerate.
1844         * generated/count_8_l.c: Regenerate.
1845         * generated/cshift0_c10.c: Regenerate.
1846         * generated/cshift0_c16.c: Regenerate.
1847         * generated/cshift0_c4.c: Regenerate.
1848         * generated/cshift0_c8.c: Regenerate.
1849         * generated/cshift0_i1.c: Regenerate.
1850         * generated/cshift0_i16.c: Regenerate.
1851         * generated/cshift0_i2.c: Regenerate.
1852         * generated/cshift0_i4.c: Regenerate.
1853         * generated/cshift0_i8.c: Regenerate.
1854         * generated/cshift0_r10.c: Regenerate.
1855         * generated/cshift0_r16.c: Regenerate.
1856         * generated/cshift0_r4.c: Regenerate.
1857         * generated/cshift0_r8.c: Regenerate.
1858         * generated/cshift1_16.c: Regenerate.
1859         * generated/cshift1_4.c: Regenerate.
1860         * generated/cshift1_8.c: Regenerate.
1861         * generated/eoshift1_16.c: Regenerate.
1862         * generated/eoshift1_4.c: Regenerate.
1863         * generated/eoshift1_8.c: Regenerate.
1864         * generated/eoshift3_16.c: Regenerate.
1865         * generated/eoshift3_4.c: Regenerate.
1866         * generated/eoshift3_8.c: Regenerate.
1867         * generated/exponent_r10.c: Regenerate.
1868         * generated/exponent_r16.c: Regenerate.
1869         * generated/exponent_r4.c: Regenerate.
1870         * generated/exponent_r8.c: Regenerate.
1871         * generated/fraction_r10.c: Regenerate.
1872         * generated/fraction_r16.c: Regenerate.
1873         * generated/fraction_r4.c: Regenerate.
1874         * generated/fraction_r8.c: Regenerate.
1875         * generated/in_pack_c10.c: Regenerate.
1876         * generated/in_pack_c16.c: Regenerate.
1877         * generated/in_pack_c4.c: Regenerate.
1878         * generated/in_pack_c8.c: Regenerate.
1879         * generated/in_pack_i1.c: Regenerate.
1880         * generated/in_pack_i16.c: Regenerate.
1881         * generated/in_pack_i2.c: Regenerate.
1882         * generated/in_pack_i4.c: Regenerate.
1883         * generated/in_pack_i8.c: Regenerate.
1884         * generated/in_pack_r10.c: Regenerate.
1885         * generated/in_pack_r16.c: Regenerate.
1886         * generated/in_pack_r4.c: Regenerate.
1887         * generated/in_pack_r8.c: Regenerate.
1888         * generated/in_unpack_c10.c: Regenerate.
1889         * generated/in_unpack_c16.c: Regenerate.
1890         * generated/in_unpack_c4.c: Regenerate.
1891         * generated/in_unpack_c8.c: Regenerate.
1892         * generated/in_unpack_i1.c: Regenerate.
1893         * generated/in_unpack_i16.c: Regenerate.
1894         * generated/in_unpack_i2.c: Regenerate.
1895         * generated/in_unpack_i4.c: Regenerate.
1896         * generated/in_unpack_i8.c: Regenerate.
1897         * generated/in_unpack_r10.c: Regenerate.
1898         * generated/in_unpack_r16.c: Regenerate.
1899         * generated/in_unpack_r4.c: Regenerate.
1900         * generated/in_unpack_r8.c: Regenerate.
1901         * generated/matmul_c10.c: Regenerate.
1902         * generated/matmul_c16.c: Regenerate.
1903         * generated/matmul_c4.c: Regenerate.
1904         * generated/matmul_c8.c: Regenerate.
1905         * generated/matmul_i1.c: Regenerate.
1906         * generated/matmul_i16.c: Regenerate.
1907         * generated/matmul_i2.c: Regenerate.
1908         * generated/matmul_i4.c: Regenerate.
1909         * generated/matmul_i8.c: Regenerate.
1910         * generated/matmul_l16.c: Regenerate.
1911         * generated/matmul_l4.c: Regenerate.
1912         * generated/matmul_l8.c: Regenerate.
1913         * generated/matmul_r10.c: Regenerate.
1914         * generated/matmul_r16.c: Regenerate.
1915         * generated/matmul_r4.c: Regenerate.
1916         * generated/matmul_r8.c: Regenerate.
1917         * generated/maxloc0_16_i1.c: Regenerate.
1918         * generated/maxloc0_16_i16.c: Regenerate.
1919         * generated/maxloc0_16_i2.c: Regenerate.
1920         * generated/maxloc0_16_i4.c: Regenerate.
1921         * generated/maxloc0_16_i8.c: Regenerate.
1922         * generated/maxloc0_16_r10.c: Regenerate.
1923         * generated/maxloc0_16_r16.c: Regenerate.
1924         * generated/maxloc0_16_r4.c: Regenerate.
1925         * generated/maxloc0_16_r8.c: Regenerate.
1926         * generated/maxloc0_4_i1.c: Regenerate.
1927         * generated/maxloc0_4_i16.c: Regenerate.
1928         * generated/maxloc0_4_i2.c: Regenerate.
1929         * generated/maxloc0_4_i4.c: Regenerate.
1930         * generated/maxloc0_4_i8.c: Regenerate.
1931         * generated/maxloc0_4_r10.c: Regenerate.
1932         * generated/maxloc0_4_r16.c: Regenerate.
1933         * generated/maxloc0_4_r4.c: Regenerate.
1934         * generated/maxloc0_4_r8.c: Regenerate.
1935         * generated/maxloc0_8_i1.c: Regenerate.
1936         * generated/maxloc0_8_i16.c: Regenerate.
1937         * generated/maxloc0_8_i2.c: Regenerate.
1938         * generated/maxloc0_8_i4.c: Regenerate.
1939         * generated/maxloc0_8_i8.c: Regenerate.
1940         * generated/maxloc0_8_r10.c: Regenerate.
1941         * generated/maxloc0_8_r16.c: Regenerate.
1942         * generated/maxloc0_8_r4.c: Regenerate.
1943         * generated/maxloc0_8_r8.c: Regenerate.
1944         * generated/maxloc1_16_i1.c: Regenerate.
1945         * generated/maxloc1_16_i16.c: Regenerate.
1946         * generated/maxloc1_16_i2.c: Regenerate.
1947         * generated/maxloc1_16_i4.c: Regenerate.
1948         * generated/maxloc1_16_i8.c: Regenerate.
1949         * generated/maxloc1_16_r10.c: Regenerate.
1950         * generated/maxloc1_16_r16.c: Regenerate.
1951         * generated/maxloc1_16_r4.c: Regenerate.
1952         * generated/maxloc1_16_r8.c: Regenerate.
1953         * generated/maxloc1_4_i1.c: Regenerate.
1954         * generated/maxloc1_4_i16.c: Regenerate.
1955         * generated/maxloc1_4_i2.c: Regenerate.
1956         * generated/maxloc1_4_i4.c: Regenerate.
1957         * generated/maxloc1_4_i8.c: Regenerate.
1958         * generated/maxloc1_4_r10.c: Regenerate.
1959         * generated/maxloc1_4_r16.c: Regenerate.
1960         * generated/maxloc1_4_r4.c: Regenerate.
1961         * generated/maxloc1_4_r8.c: Regenerate.
1962         * generated/maxloc1_8_i1.c: Regenerate.
1963         * generated/maxloc1_8_i16.c: Regenerate.
1964         * generated/maxloc1_8_i2.c: Regenerate.
1965         * generated/maxloc1_8_i4.c: Regenerate.
1966         * generated/maxloc1_8_i8.c: Regenerate.
1967         * generated/maxloc1_8_r10.c: Regenerate.
1968         * generated/maxloc1_8_r16.c: Regenerate.
1969         * generated/maxloc1_8_r4.c: Regenerate.
1970         * generated/maxloc1_8_r8.c: Regenerate.
1971         * generated/maxval_i1.c: Regenerate.
1972         * generated/maxval_i16.c: Regenerate.
1973         * generated/maxval_i2.c: Regenerate.
1974         * generated/maxval_i4.c: Regenerate.
1975         * generated/maxval_i8.c: Regenerate.
1976         * generated/maxval_r10.c: Regenerate.
1977         * generated/maxval_r16.c: Regenerate.
1978         * generated/maxval_r4.c: Regenerate.
1979         * generated/maxval_r8.c: Regenerate.
1980         * generated/minloc0_16_i1.c: Regenerate.
1981         * generated/minloc0_16_i16.c: Regenerate.
1982         * generated/minloc0_16_i2.c: Regenerate.
1983         * generated/minloc0_16_i4.c: Regenerate.
1984         * generated/minloc0_16_i8.c: Regenerate.
1985         * generated/minloc0_16_r10.c: Regenerate.
1986         * generated/minloc0_16_r16.c: Regenerate.
1987         * generated/minloc0_16_r4.c: Regenerate.
1988         * generated/minloc0_16_r8.c: Regenerate.
1989         * generated/minloc0_4_i1.c: Regenerate.
1990         * generated/minloc0_4_i16.c: Regenerate.
1991         * generated/minloc0_4_i2.c: Regenerate.
1992         * generated/minloc0_4_i4.c: Regenerate.
1993         * generated/minloc0_4_i8.c: Regenerate.
1994         * generated/minloc0_4_r10.c: Regenerate.
1995         * generated/minloc0_4_r16.c: Regenerate.
1996         * generated/minloc0_4_r4.c: Regenerate.
1997         * generated/minloc0_4_r8.c: Regenerate.
1998         * generated/minloc0_8_i1.c: Regenerate.
1999         * generated/minloc0_8_i16.c: Regenerate.
2000         * generated/minloc0_8_i2.c: Regenerate.
2001         * generated/minloc0_8_i4.c: Regenerate.
2002         * generated/minloc0_8_i8.c: Regenerate.
2003         * generated/minloc0_8_r10.c: Regenerate.
2004         * generated/minloc0_8_r16.c: Regenerate.
2005         * generated/minloc0_8_r4.c: Regenerate.
2006         * generated/minloc0_8_r8.c: Regenerate.
2007         * generated/minloc1_16_i1.c: Regenerate.
2008         * generated/minloc1_16_i16.c: Regenerate.
2009         * generated/minloc1_16_i2.c: Regenerate.
2010         * generated/minloc1_16_i4.c: Regenerate.
2011         * generated/minloc1_16_i8.c: Regenerate.
2012         * generated/minloc1_16_r10.c: Regenerate.
2013         * generated/minloc1_16_r16.c: Regenerate.
2014         * generated/minloc1_16_r4.c: Regenerate.
2015         * generated/minloc1_16_r8.c: Regenerate.
2016         * generated/minloc1_4_i1.c: Regenerate.
2017         * generated/minloc1_4_i16.c: Regenerate.
2018         * generated/minloc1_4_i2.c: Regenerate.
2019         * generated/minloc1_4_i4.c: Regenerate.
2020         * generated/minloc1_4_i8.c: Regenerate.
2021         * generated/minloc1_4_r10.c: Regenerate.
2022         * generated/minloc1_4_r16.c: Regenerate.
2023         * generated/minloc1_4_r4.c: Regenerate.
2024         * generated/minloc1_4_r8.c: Regenerate.
2025         * generated/minloc1_8_i1.c: Regenerate.
2026         * generated/minloc1_8_i16.c: Regenerate.
2027         * generated/minloc1_8_i2.c: Regenerate.
2028         * generated/minloc1_8_i4.c: Regenerate.
2029         * generated/minloc1_8_i8.c: Regenerate.
2030         * generated/minloc1_8_r10.c: Regenerate.
2031         * generated/minloc1_8_r16.c: Regenerate.
2032         * generated/minloc1_8_r4.c: Regenerate.
2033         * generated/minloc1_8_r8.c: Regenerate.
2034         * generated/minval_i1.c: Regenerate.
2035         * generated/minval_i16.c: Regenerate.
2036         * generated/minval_i2.c: Regenerate.
2037         * generated/minval_i4.c: Regenerate.
2038         * generated/minval_i8.c: Regenerate.
2039         * generated/minval_r10.c: Regenerate.
2040         * generated/minval_r16.c: Regenerate.
2041         * generated/minval_r4.c: Regenerate.
2042         * generated/minval_r8.c: Regenerate.
2043         * generated/misc_specifics.F90: Regenerate.
2044         * generated/nearest_r10.c: Regenerate.
2045         * generated/nearest_r16.c: Regenerate.
2046         * generated/nearest_r4.c: Regenerate.
2047         * generated/nearest_r8.c: Regenerate.
2048         * generated/pack_c10.c: Regenerate.
2049         * generated/pack_c16.c: Regenerate.
2050         * generated/pack_c4.c: Regenerate.
2051         * generated/pack_c8.c: Regenerate.
2052         * generated/pack_i1.c: Regenerate.
2053         * generated/pack_i16.c: Regenerate.
2054         * generated/pack_i2.c: Regenerate.
2055         * generated/pack_i4.c: Regenerate.
2056         * generated/pack_i8.c: Regenerate.
2057         * generated/pack_r10.c: Regenerate.
2058         * generated/pack_r16.c: Regenerate.
2059         * generated/pack_r4.c: Regenerate.
2060         * generated/pack_r8.c: Regenerate.
2061         * generated/pow_c10_i16.c: Regenerate.
2062         * generated/pow_c10_i4.c: Regenerate.
2063         * generated/pow_c10_i8.c: Regenerate.
2064         * generated/pow_c16_i16.c: Regenerate.
2065         * generated/pow_c16_i4.c: Regenerate.
2066         * generated/pow_c16_i8.c: Regenerate.
2067         * generated/pow_c4_i16.c: Regenerate.
2068         * generated/pow_c4_i4.c: Regenerate.
2069         * generated/pow_c4_i8.c: Regenerate.
2070         * generated/pow_c8_i16.c: Regenerate.
2071         * generated/pow_c8_i4.c: Regenerate.
2072         * generated/pow_c8_i8.c: Regenerate.
2073         * generated/pow_i16_i16.c: Regenerate.
2074         * generated/pow_i16_i4.c: Regenerate.
2075         * generated/pow_i16_i8.c: Regenerate.
2076         * generated/pow_i4_i16.c: Regenerate.
2077         * generated/pow_i4_i4.c: Regenerate.
2078         * generated/pow_i4_i8.c: Regenerate.
2079         * generated/pow_i8_i16.c: Regenerate.
2080         * generated/pow_i8_i4.c: Regenerate.
2081         * generated/pow_i8_i8.c: Regenerate.
2082         * generated/pow_r10_i16.c: Regenerate.
2083         * generated/pow_r10_i8.c: Regenerate.
2084         * generated/pow_r16_i16.c: Regenerate.
2085         * generated/pow_r16_i8.c: Regenerate.
2086         * generated/pow_r4_i16.c: Regenerate.
2087         * generated/pow_r4_i8.c: Regenerate.
2088         * generated/pow_r8_i16.c: Regenerate.
2089         * generated/pow_r8_i8.c: Regenerate.
2090         * generated/product_c10.c: Regenerate.
2091         * generated/product_c16.c: Regenerate.
2092         * generated/product_c4.c: Regenerate.
2093         * generated/product_c8.c: Regenerate.
2094         * generated/product_i1.c: Regenerate.
2095         * generated/product_i16.c: Regenerate.
2096         * generated/product_i2.c: Regenerate.
2097         * generated/product_i4.c: Regenerate.
2098         * generated/product_i8.c: Regenerate.
2099         * generated/product_r10.c: Regenerate.
2100         * generated/product_r16.c: Regenerate.
2101         * generated/product_r4.c: Regenerate.
2102         * generated/product_r8.c: Regenerate.
2103         * generated/reshape_c10.c: Regenerate.
2104         * generated/reshape_c16.c: Regenerate.
2105         * generated/reshape_c4.c: Regenerate.
2106         * generated/reshape_c8.c: Regenerate.
2107         * generated/reshape_i16.c: Regenerate.
2108         * generated/reshape_i4.c: Regenerate.
2109         * generated/reshape_i8.c: Regenerate.
2110         * generated/reshape_r10.c: Regenerate.
2111         * generated/reshape_r16.c: Regenerate.
2112         * generated/reshape_r4.c: Regenerate.
2113         * generated/reshape_r8.c: Regenerate.
2114         * generated/rrspacing_r10.c: Regenerate.
2115         * generated/rrspacing_r16.c: Regenerate.
2116         * generated/rrspacing_r4.c: Regenerate.
2117         * generated/rrspacing_r8.c: Regenerate.
2118         * generated/set_exponent_r10.c: Regenerate.
2119         * generated/set_exponent_r16.c: Regenerate.
2120         * generated/set_exponent_r4.c: Regenerate.
2121         * generated/set_exponent_r8.c: Regenerate.
2122         * generated/shape_i16.c: Regenerate.
2123         * generated/shape_i4.c: Regenerate.
2124         * generated/shape_i8.c: Regenerate.
2125         * generated/spacing_r10.c: Regenerate.
2126         * generated/spacing_r16.c: Regenerate.
2127         * generated/spacing_r4.c: Regenerate.
2128         * generated/spacing_r8.c: Regenerate.
2129         * generated/spread_c10.c: Regenerate.
2130         * generated/spread_c16.c: Regenerate.
2131         * generated/spread_c4.c: Regenerate.
2132         * generated/spread_c8.c: Regenerate.
2133         * generated/spread_i1.c: Regenerate.
2134         * generated/spread_i16.c: Regenerate.
2135         * generated/spread_i2.c: Regenerate.
2136         * generated/spread_i4.c: Regenerate.
2137         * generated/spread_i8.c: Regenerate.
2138         * generated/spread_r10.c: Regenerate.
2139         * generated/spread_r16.c: Regenerate.
2140         * generated/spread_r4.c: Regenerate.
2141         * generated/spread_r8.c: Regenerate.
2142         * generated/sum_c10.c: Regenerate.
2143         * generated/sum_c16.c: Regenerate.
2144         * generated/sum_c4.c: Regenerate.
2145         * generated/sum_c8.c: Regenerate.
2146         * generated/sum_i1.c: Regenerate.
2147         * generated/sum_i16.c: Regenerate.
2148         * generated/sum_i2.c: Regenerate.
2149         * generated/sum_i4.c: Regenerate.
2150         * generated/sum_i8.c: Regenerate.
2151         * generated/sum_r10.c: Regenerate.
2152         * generated/sum_r16.c: Regenerate.
2153         * generated/sum_r4.c: Regenerate.
2154         * generated/sum_r8.c: Regenerate.
2155         * generated/transpose_c10.c: Regenerate.
2156         * generated/transpose_c16.c: Regenerate.
2157         * generated/transpose_c4.c: Regenerate.
2158         * generated/transpose_c8.c: Regenerate.
2159         * generated/transpose_i16.c: Regenerate.
2160         * generated/transpose_i4.c: Regenerate.
2161         * generated/transpose_i8.c: Regenerate.
2162         * generated/transpose_r10.c: Regenerate.
2163         * generated/transpose_r16.c: Regenerate.
2164         * generated/transpose_r4.c: Regenerate.
2165         * generated/transpose_r8.c: Regenerate.
2166         * generated/unpack_c10.c: Regenerate.
2167         * generated/unpack_c16.c: Regenerate.
2168         * generated/unpack_c4.c: Regenerate.
2169         * generated/unpack_c8.c: Regenerate.
2170         * generated/unpack_i1.c: Regenerate.
2171         * generated/unpack_i16.c: Regenerate.
2172         * generated/unpack_i2.c: Regenerate.
2173         * generated/unpack_i4.c: Regenerate.
2174         * generated/unpack_i8.c: Regenerate.
2175         * generated/unpack_r10.c: Regenerate.
2176         * generated/unpack_r16.c: Regenerate.
2177         * generated/unpack_r4.c: Regenerate.
2178         * generated/unpack_r8.c: Regenerate.
2180 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2182         * io/open.c (already_open): Test for POSIX close return value.
2183         * io/unit.c (close_unit_1): Likewise.
2184         * io/unix.c (raw_close): Return 0 for success for preconnected units.
2186 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2188         * runtime/string.c (compare0): Use gfc_charlen_type.
2189         * runtime/error.c (gfc_itoa): Move to io/write.c
2190         (xtoa): Rename to gfc_xtoa.
2191         * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
2192         * intrinsics/cshift0.c (cshift0): Use index_type for shift arg.
2193         * intrinsics/date_and_time.c (date_and_time): Use index_type.
2194         (itime_i4): Likewise.
2195         (itime_i8): Likewise.
2196         (idate_i4): Likewise.
2197         (idate_i8): Likewise.
2198         (gmtime_i4): Likewise.
2199         (gmtime_i8): Likewise.
2200         (ltime_i4): Likewise.
2201         (ltime_i8): Likewise.
2202         * libgfortran.h (gfc_itoa): Remove prototype.
2203         (xtoa): Rename prototype to gfc_xtoa.
2204         * io/list_read.c (nml_read_obj): Use size_t for string length.
2205         * io/transfer.c (read_block_direct): Change nbytes arg from
2206         pointer to value.
2207         (unformatted_read): Minor cleanup, call read_block_directly properly.
2208         (skip_record): Use ssize_t.
2209         (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
2210         (iolength_transfer): Make sure to multiply before cast.
2211         * io/intrinsics.c (fgetc): Remove unnecessary variable.
2212         * io/format.c (format_hash): Use gfc_charlen_type.
2213         * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
2214         make static.
2215         (write_i): Call with pointer to itoa.
2216         (write_z): Call with pointer to gfc_xtoa.
2217         (write_integer): Pointer to itoa.
2218         (nml_write_obj): Type cleanup, don't call strlen in loop.
2219         
2220 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2222         PR libgfortran/39664
2223         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
2224         STDERR_FILENO nor STDIN_FILENO.
2226 2009-04-06  David Edelsohn  <edelsohn@gnu.org>
2227         
2228         * io/io.h (struct stream): Rename truncate to trunc.
2229         (struncate): Same.
2230         * io/unix.c (raw_init): Rename truncate to trunc.
2231         (buf_init): Same.
2232         (open_internal): Same.
2233         
2234 2009-04-05  Daniel Kraft  <d@domob.eu>
2236         PR fortran/38654
2237         * io/read.c (read_f): Reworked to speed up floating point parsing.
2238         (convert_real): Use pointer-casting instead of memcpy and temporaries.
2240 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2242         PR libfortran/37754
2243         * io/io.h (format_hash_entry): New structure for hash table.
2244         (format_hash_table): The hash table itself.
2245         (free_format_data): Revise function prototype.
2246         (free_format_hash_table, init_format_hash,
2247         free_format_hash): New function prototypes.
2248         * io/unit.c (close_unit_1): Use free_format_hash_table.
2249         * io/transfer.c (st_read_done, st_write_done): Free format data if
2250         internal unit.
2251         * io/format.c (free_format_hash_table): New function that frees any
2252         memory allocated previously for cached format data.
2253         (reset_node): New static helper function to reset the format counters
2254         for a format node.
2255         (reset_fnode_counters): New static function recursively calls reset_node
2256         to traverse the fnode tree.
2257         (format_hash): New simple hash function based on XOR, probabalistic,
2258         tosses collisions.
2259         (save_parsed_format): New static function to save the parsed format
2260         data to use again.
2261         (find_parsed_format): New static function searches the hash table
2262         looking for a match.
2263         (free_format_data): Revised to accept pointer to format data rather than
2264         the dtp pointer so that the function can be used in more places.
2265         (format_lex): Editorial.
2266         (parse_format_list): Set flag used to determine of format data hashing
2267         is to be used.  Internal units are not persistent enough for this.
2268         (revert): Move to ne location in file.
2269         (parse_format): Use new functions to look for previously parsed
2270         format strings and use them rather than re-parse.  If not found, saves
2271         the parsed format data for later use.
2272         
2273 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2275         PR libfortran/37754
2276         * io/transfer.c (formatted_transfer_scalar): Remove this function by
2277         factoring it into two new functions, one for read and one for write,
2278         eliminating all the conditionals for read or write mode.
2279         (formatted transfer_scalar_read): New function.
2280         (formatted transfer_scalar_write): New function.
2281         (formatted_transfer): Use new functions.
2283 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
2285         PR libfortran/25561 libfortran/37754
2286         * io/io.h (struct stream): Define new stream interface function
2287         pointers, and inline functions for accessing it.
2288         (struct fbuf): Use int instead of size_t, remove flushed element.
2289         (mem_alloc_w): New prototype.
2290         (mem_alloc_r): New prototype.
2291         (stream_at_bof): Remove prototype.
2292         (stream_at_eof): Remove prototype.
2293         (file_position): Remove prototype.
2294         (flush): Remove prototype.
2295         (stream_offset): Remove prototype.
2296         (unit_truncate): New prototype.
2297         (read_block_form): Change to return pointer, int* argument.
2298         (hit_eof): New prototype.
2299         (fbuf_init): Change prototype.
2300         (fbuf_reset): Change prototype.
2301         (fbuf_alloc): Change prototype.
2302         (fbuf_flush): Change prototype.
2303         (fbuf_seek): Change prototype.
2304         (fbuf_read): New prototype.
2305         (fbuf_getc_refill): New prototype.
2306         (fbuf_getc): New inline function.
2307         * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
2308         (fbuf_debug): New function.
2309         (fbuf_reset): Flush, and return position offset.
2310         (fbuf_alloc): Simplify, don't flush, just realloc.
2311         (fbuf_flush): Make usable for read mode, salvage remaining bytes.
2312         (fbuf_seek): New whence argument.
2313         (fbuf_read): New function.
2314         (fbuf_getc_refill): New function.
2315         * io/file_pos.c (formatted_backspace): Use new stream interface.
2316         (unformatted_backspace): Likewise.
2317         (st_backspace): Make sure format buffer is reset, use new stream
2318         interface, use unit_truncate.
2319         (st_endfile): Likewise.
2320         (st_rewind): Likewise.
2321         * io/intrinsics.c: Use new stream interface.
2322         * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
2323         to resize.
2324         (free_saved): Don't check u.p.scratch.
2325         (next_char): Use new stream interface, use fbuf_getc() for external files.
2326         (finish_list_read): flush format buffer.
2327         (nml_query): Update to use modified interface:s
2328         * io/open.c (test_endfile): Use new stream interface.
2329         (edit_modes): Likewise.
2330         (new_unit): Likewise, set bytes_left to 1 for stream files.
2331         * io/read.c (read_l): Use new read_block_form interface.
2332         (read_utf8): Likewise.
2333         (read_utf8_char1): Likewise.
2334         (read_default_char1): Likewise.
2335         (read_utf8_char4): Likewise.
2336         (read_default_char4): Likewise.
2337         (read_a): Likewise.
2338         (read_a_char4): Likewise.
2339         (read_decimal): Likewise.
2340         (read_radix): Likewise.
2341         (read_f): Likewise.
2342         * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
2343         usage of u.p.line_buffer.
2344         (read_block_form): Update interface to return pointer, use
2345         fbuf_read for direct access.
2346         (read_block_direct): Update to new stream interface.
2347         (write_block): Use mem_alloc_w for internal I/O.
2348         (write_buf): Update to new stream interface.
2349         (formatted_transfer_scalar): Don't use u.p.line_buffer, use
2350         fbuf_seek for external files.
2351         (us_read): Update to new stream interface.
2352         (us_write): Likewise.
2353         (data_transfer_init): Always check if we switch modes and flush.
2354         (skip_record): Use new stream interface, fix comparison.
2355         (next_record_r): Check for and reset u.p.at_eof, use new stream
2356         interface, use fbuf_getc for spacing.
2357         (write_us_marker): Update to new stream interface, don't inline.
2358         (next_record_w_unf): Likewise.
2359         (sset): New function.
2360         (next_record_w): Use new stream interface, use fbuf for printing
2361         newline.
2362         (next_record): Use new stream interface.
2363         (finalize_transfer): Remove sfree call, use new stream interface.
2364         (st_iolength_done): Don't use u.p.scratch.
2365         (st_read): Don't check for end of file.
2366         (st_read_done): Don't use u.p.scratch, use unit_truncate.
2367         (hit_eof): New function.
2368         * io/unit.c (init_units): Always init fbuf for formatted units.
2369         (update_position): Use new stream interface.
2370         (unit_truncate): New function.
2371         (finish_last_advance_record): Use fbuf to print newline.
2372         * io/unix.c: Remove unused SSIZE_MAX macro.
2373         (BUFFER_SIZE): Make static const variable rather than macro.
2374         (struct unix_stream): Remove dirty_offset, len, method,
2375         small_buffer. Order elements by decreasing size.
2376         (struct int_stream): Remove.
2377         (move_pos_offset): Remove usage of dirty_offset.
2378         (reset_stream): Remove.
2379         (do_read): Rename to raw_read, update to match new stream
2380         interface.
2381         (do_write): Rename to raw_write, update to new stream interface.
2382         (raw_seek): New function.
2383         (raw_tell): New function.
2384         (raw_truncate): New function.
2385         (raw_close): New function.
2386         (raw_flush): New function.
2387         (raw_init): New function.
2388         (fd_alloc): Remove.
2389         (fd_alloc_r_at): Remove.
2390         (fd_alloc_w_at): Remove.
2391         (fd_sfree): Remove.
2392         (fd_seek): Remove.
2393         (fd_truncate): Remove.
2394         (fd_sset): Remove.
2395         (fd_read): Remove.
2396         (fd_write): Remove.
2397         (fd_close): Remove.
2398         (fd_open): Remove.
2399         (fd_flush): Rename to buf_flush, update to new stream interface
2400         and unix_stream.
2401         (buf_read): New function.
2402         (buf_write): New function.
2403         (buf_seek): New function.
2404         (buf_tell): New function.
2405         (buf_truncate): New function.
2406         (buf_close): New function.
2407         (buf_init): New function.
2408         (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
2409         (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
2410         (mem_read): Change to match new stream interface.
2411         (mem_write): Likewise.
2412         (mem_seek): Likewise.
2413         (mem_tell): Likewise.
2414         (mem_truncate): Likewise.
2415         (mem_close): Likewise.
2416         (mem_flush): New function.
2417         (mem_sfree): Remove.
2418         (empty_internal_buffer): Cast to correct type.
2419         (open_internal): Use correct type, init function pointers.
2420         (fd_to_stream): Test whether to open file as buffered or raw.
2421         (output_stream): Remove mode set.
2422         (error_stream): Likewise.
2423         (flush_all_units_1): Use new stream interface.
2424         (flush_all_units): Likewise.
2425         (stream_at_bof): Remove.
2426         (stream_at_eof): Remove.
2427         (file_position): Remove.
2428         (file_length): Update logic to use stream interface.
2429         (flush): Remove.
2430         (stream_offset): Remove.
2431         * io/write.c (write_utf8_char4): Use int instead of size_t.
2432         (write_x): Extra safety check.
2433         (namelist_write_newline): Use new stream interface.
2435 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2437         PR fortran/33595
2438         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
2439         Revise checks to round up.
2440         (roundf): Likewise.
2442 2009-03-28  Daniel Kraft  <d@domob.eu>
2444         * intrinsics/string_intrinsics.c: #include <assert.h>
2445         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
2446         instead of calculating the length directly.
2447         (string_len_trim): For KIND=1, speed search up.
2449 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2451         PR libfortran/39528
2452         * io/list_read.c (list_formatted_read_scalar): Move check for read
2453         completion to just after the check for a repeated value.
2455 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2457         PR libfortran/39402
2458         * io/write_float.def (output_float): Handle F0.d formatting correctly
2459         for any d when value is 0.0.
2461 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2463         * configure: Regenerate.
2465 2009-01-21  Daniel Kraft  <d@domob.eu>
2467         PR fortran/38887
2468         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
2469         abort when called with empty array.
2470         * m4/in_unpack.m4:  Ditto.
2471         * generated/in_unpack_i1.c:  Regenerated.
2472         * generated/in_unpack_i2.c:  Regenerated.
2473         * generated/in_unpack_i4.c:  Regenerated.
2474         * generated/in_unpack_i8.c:  Regenerated.
2475         * generated/in_unpack_i16.c: Regenerated.
2476         * generated/in_unpack_r4.c:  Regenerated.
2477         * generated/in_unpack_r8.c:  Regenerated.
2478         * generated/in_unpack_r10.c: Regenerated.
2479         * generated/in_unpack_r16.c: Regenerated.
2480         * generated/in_unpack_c4.c:  Regenerated.
2481         * generated/in_unpack_c8.c:  Regenerated.
2482         * generated/in_unpack_c10.c: Regenerated.
2483         * generated/in_unpack_c16.c: Regenerated.
2485 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2487         PR libfortran/38772
2488         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
2489         allowing proper digit testing. White space fix.
2491 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2493         PR libfortran/38735
2494         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
2495         internal units.
2498 Copyright (C) 2009 Free Software Foundation, Inc.
2500 Copying and distribution of this file, with or without modification,
2501 are permitted in any medium without royalty provided the copyright
2502 notice and this notice are preserved.