]> git.ipfire.org Git - thirdparty/gcc.git/blob - libgfortran/ChangeLog-2009
rs6000: New iterator CCEITHER
[thirdparty/gcc.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.