12009-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
82009-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
142009-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
212009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22
23	* Makefile.in: Regenerate.
24	* configure: Regenerate.
25
262009-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
492009-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
562009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
57
58	* io/unix.c (find_file): Add variable id conditionally for
59	mingw targets.
60
612009-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
1712009-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
1772009-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
1852009-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
2622009-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
2762009-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
2902009-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
2962009-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
3022009-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
3092009-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
3162009-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
3312009-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
3372009-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
3442009-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
3502009-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
3552009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
356
357	* Makefile.am (libgfortranbegin_la_LINK): New.
358	* Makefile.in: Regenerate.
359
3602009-09-09  Paolo Bonzini  <bonzini@gnu.org>
361
362	* configure: Regenerate.
363
3642009-09-08  Paolo Bonzini  <bonzini@gnu.org>
365
366	* configure: Regenerate.
367
3682009-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
3782009-09-04  Tobias Burnus  <burnus@net-b.de>
379
380	PR fortran/41219
381	* intrinsics/getlog.c: Define _POSIX for MINGW32.
382
3832009-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
3892009-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
4112009-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
4242009-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
4312009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
432
433	* configure.ac (AC_PREREQ): Bump to 2.64.
434
4352009-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
4402009-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
4502009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
451
452	* Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
453	* Makefile.in: Regenerate.
454
4552009-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
4612009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
462
463	* Makefile.am (LTLDFLAGS): Add -bindir flag.
464	* Makefile.in: Regenerate.
465
4662009-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
4762009-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
4822009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
483
484	* fmain.c: Add comment saying file is deprecated.
485
4862009-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
4912009-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
4982009-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
5042009-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
5102009-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
5182009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
519
520	* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
521
5222009-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
5302009-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
5382009-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
7122009-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
7192009-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
9062009-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
9132009-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
9202009-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
9252009-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
9442009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
945
946	PR libfortran/40576
947	* io/transfer.c (sset): Adjust exit condition for loop.
948
9492009-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
9542009-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
14062009-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
14122009-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
14282009-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
14342009-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
14402009-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
14482009-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
14622009-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
14682009-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
14742009-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
14832009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1484
1485	PR libfortran/37754
1486	* io/write_float.def: Simplify format calculation.
1487
14882009-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
14942009-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
15012009-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
15072009-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
15122009-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
15212009-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
15262009-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
15322009-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
15392009-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
15482009-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
15542009-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
21802009-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
21862009-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
22202009-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
22262009-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
22342009-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
22402009-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
22732009-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
22832009-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
24352009-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
24422009-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
24492009-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
24552009-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
24612009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2462
2463	* configure: Regenerate.
2464
24652009-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
24852009-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
24912009-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
2498Copyright (C) 2009 Free Software Foundation, Inc.
2499
2500Copying and distribution of this file, with or without modification,
2501are permitted in any medium without royalty provided the copyright
2502notice and this notice are preserved.
2503