OSDN Git Service

PR 43839
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog-2009
1 2009-12-19  Janne Blomqvist  <jb@gcc.gnu.org>
2
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.
7
8 2009-12-08  Tobias Burnus  <burnus@net-b.de>
9
10         PR fortran/41711
11         * io/read.c (set_integer): Support kind=10 for reading
12         real/complex BOZ.
13
14 2009-12-06  Janus Weil  <janus@gcc.gnu.org>
15
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.
20
21 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22
23         * Makefile.in: Regenerate.
24         * configure: Regenerate.
25
26 2009-12-04  Janne Blomqvist  <jb@gcc.gnu.org>
27
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.
48
49 2009-11-30  Janus Weil  <janus@gcc.gnu.org>
50
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. 
55
56 2009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
57
58         * io/unix.c (find_file): Add variable id conditionally for
59         mingw targets.
60
61 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
62
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.
170
171 2009-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
172
173         * io/fbuf.h: Move includes after include guard.
174         * io/format.h: Likewise.
175         * io/unix.h: Likewise.
176
177 2009-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
178
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.
184
185 2009-11-02  Janne Blomqvist  <jb@gcc.gnu.org>
186
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.
261
262 2009-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
263
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.
275
276 2009-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
277
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.
289
290 2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
291
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>
297
298         PR libgfortran/38439
299         * io/format.c (parse_format_list): Correct logic for FMT_F reading vs
300         writing. Code clean-up.
301
302 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
303
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.
308
309 2009-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
310
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.
315
316 2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
317
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.
330
331 2009-09-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
332
333         * configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
334         * configure: Regenerate.
335         * config.h.in: Ditto.
336
337 2009-09-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
338
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.
343
344 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
345
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.
349
350 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
351
352         PR libgfortran/41219
353         * io/write.c (write_a_char4): Use correct type for crlf constant.
354
355 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
356
357         * Makefile.am (libgfortranbegin_la_LINK): New.
358         * Makefile.in: Regenerate.
359
360 2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
361
362         * configure: Regenerate.
363
364 2009-09-08  Paolo Bonzini  <bonzini@gnu.org>
365
366         * configure: Regenerate.
367
368 2009-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
369
370         PR libgfortran/41192
371         * io/list_read.c (eat_line): Enable eat_line to function on
372         internal units.
373
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>
379
380         PR fortran/41219
381         * intrinsics/getlog.c: Define _POSIX for MINGW32.
382
383 2009-09-03  Tobias Burnus  <burnus@net-b.de>
384
385         PR fortran/41219
386         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Move variable
387         declaration out of the loop.
388
389 2009-08-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
390
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.
410
411 2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
412
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.
423
424 2009-08-24  Steven G. Kargl  <kargl@gcc.gnu.org>
425
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.
430
431 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
432
433         * configure.ac (AC_PREREQ): Bump to 2.64.
434
435 2009-08-23  Steven G. Kargl  <kargl@gcc.gnu.org>
436
437         * intrinsics/cshift0.c: Update license to GPL3+exception.
438         * runtime/fpu.c: Add a GPL3+exception statement.
439
440 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
441
442         * Makefile.am (install-html, install-pdf): Remove.
443         * Makefile.in: Regenerate.
444
445         * Makefile.in: Regenerate.
446         * aclocal.m4: Regenerate.
447         * config.h.in: Regenerate.
448         * configure: Regenerate.
449
450 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
451
452         * Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
453         * Makefile.in: Regenerate.
454
455 2009-08-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
456
457         PR libfortran/40962
458         * iso_c_binding.c (c_f_pointer_u0):  Multiply stride by
459         previous stride.
460
461 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
462
463         * Makefile.am (LTLDFLAGS): Add -bindir flag.
464         * Makefile.in: Regenerate.
465
466 2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
467
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>
477
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.
481
482 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
483
484         * fmain.c: Add comment saying file is deprecated.
485
486 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
487
488         PR libfortran/40863
489         * gfortran.map: Move new symbols to GFORTRAN_C99_1.1 version node.
490
491 2009-08-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
492
493         PR libfortran/40549
494         * Makefile.in (LTLDFLAGS): Add -no-undefined.
495         * Makefile.am: Regenerate.
496         * libgfortran.h: Remove unused block of code.
497
498 2009-08-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
499
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.
503
504 2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
505
506         * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
507         Don't set IEEE_FLAGS with @IEEE_FLAGS@.
508         * Makefile.in: Regenerate.
509
510 2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
511
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.
517
518 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
519
520         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
521
522 2009-07-27  Tobias Burnus  <burnus@net-b.de>
523
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.
529
530 2009-07-25  Tobias Burnus  <burnus@net-b.de>
531
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.
537
538 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
539
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.
711
712 2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
713
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.
718
719 2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
720
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.
905
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.
912
913 2009-07-12  Tobias Burnus  <burnus@net-b.de>
914
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.
919
920 2009-07-10  Steven G. Kargl  <kargl@gcc.gnu.org>
921
922         * c99_functions.c (ccoshf, ccosh, ccoshl, ctanhf, ctanh, ctanl):
923         Fix errant minus.
924
925 2009-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
926
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>
945
946         PR libfortran/40576
947         * io/transfer.c (sset): Adjust exit condition for loop.
948
949 2009-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
950
951         PR libfortran/40508
952         * io/format.c: Don't save parsed format data for internal units.
953
954 2009-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
955
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.
1405
1406 2009-06-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1407
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.
1411
1412 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1413
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.
1427
1428 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1429
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.
1433
1434 2009-06-04  Janne Blomqvist  <jb@gcc.gnu.org>
1435
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>
1441
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.
1447
1448 2009-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
1449
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.
1461
1462 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1463
1464         PR fortran/39178
1465         * runtime/main.c (store_exe_path): Remove static attribute.
1466         * libgfortran.h: Add back store_exe_path prototype.
1467
1468 2009-05-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1469
1470         PR libfortran/40187
1471         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
1472         of stride in "shape" argument.
1473
1474 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1475
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.
1482
1483 2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1484
1485         PR libfortran/37754
1486         * io/write_float.def: Simplify format calculation.
1487         
1488 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1489
1490         PR fortran/22423
1491         * io/transfer.c (read_block_direct): Avoid warning.
1492         * runtime/string.c (compare0): Avoid warning.
1493
1494 2009-04-30  Janne Blomqvist  <jb@gcc.gnu.org>
1495
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.
1500
1501 2009-04-18  Janne Blomqvist  <jb@gcc.gnu.org>
1502
1503         PR libfortran/39782
1504         * io/transfer.c (data_transfer_init): Don't flush before seek.
1505         (finalize_transfer): Remove extra flush.
1506
1507 2009-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1508
1509         * io/io.h (is_preconnected): Remove prototype.
1510         * io/unix.c (is_preconnected): Remove function.
1511
1512 2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1513
1514         * configure.ac: Test for -ffunction-sections -fdata-sections and
1515         set SECTION_FLAGS accordingly.
1516         * configure: Regenerate.
1517
1518         * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS.
1519         * Makefile.in: Regenerate.
1520
1521 2009-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1522
1523         PR libfortran/38668
1524         * io/transfer.c (finalize_transfer): Don't flush for advance='no'.
1525
1526 2009-04-15 Danny Smith  <dannysmith@clear.net.nz>
1527
1528         * io/write.c (itoa) : Rename back to gfc_itoa.
1529         (write_i): Adjust call to write_decimal.
1530         (write_integer):  Use gfc_itoa.
1531
1532 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1533
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.
1538
1539 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1540
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.
1547
1548 2009-04-09  Janne Blomqvist  <jb@gcc.gnu.org>
1549
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.
1553
1554 2009-04-09  Nick Clifton  <nickc@redhat.com>
1555
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.
2179
2180 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2181
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.
2185
2186 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2187
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>
2221
2222         PR libgfortran/39664
2223         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
2224         STDERR_FILENO nor STDIN_FILENO.
2225
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>
2235
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.
2239
2240 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2241
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>
2274
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.
2282
2283 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
2284
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.
2434
2435 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2436
2437         PR fortran/33595
2438         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
2439         Revise checks to round up.
2440         (roundf): Likewise.
2441
2442 2009-03-28  Daniel Kraft  <d@domob.eu>
2443
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.
2448
2449 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2450
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.
2454
2455 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2456
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.
2460
2461 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2462
2463         * configure: Regenerate.
2464
2465 2009-01-21  Daniel Kraft  <d@domob.eu>
2466
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.
2484
2485 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2486
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.
2490
2491 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2492
2493         PR libfortran/38735
2494         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
2495         internal units.
2496
2497 \f
2498 Copyright (C) 2009 Free Software Foundation, Inc.
2499
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.