OSDN Git Service

280ac230a7dd5e4dcebe5a9533bc79bde980cf3c
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2009-12-04  Janne Blomqvist  <jb@gcc.gnu.org>
2
3         PR libfortran/40812
4         * libgfortran.h: typedef gfc_offset differently for MinGW.
5         * io/unix.h (struct stream): Change function pointers to use
6         gfc_offset instead of off_t.
7         (sseek): Change prototype to use gfc_offset instead of off_t.
8         (stell): Likewise.
9         (struncate): Likewise.
10         * io/unix.c: Redefine lseek() for mingw.
11         (raw_seek): Use gfc_offset instead of off_t.
12         (raw_tell): Likewise.
13         (buf_seek): Likewise.
14         (buf_tell): Likewise.
15         (buf_truncate): Likewise.
16         (mem_seek): Likewise.
17         (mem_tell): Likewise.
18         (mem_truncate): Likewise.
19         (fd_to_stream): Likewise.
20         (file_length): Likewise.
21         (raw_truncate): Use gfc_offset instead of off_t, add large file
22         capable implementation for MinGW.
23
24 2009-11-30  Janus Weil  <janus@gcc.gnu.org>
25
26         * gfortran.map: Add _gfortran_is_extension_of.
27         * Makefile.am: Add intrinsics/extends_type_of.c.
28         * Makefile.in: Regenerated.
29         * intrinsics/extends_type_of.c: New file. 
30
31 2009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
32
33         * io/unix.c (find_file): Add variable id conditionally for
34         mingw targets.
35
36 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
37
38         * intrinsics/pack_generic.c (pack_internal): Remove unused
39         zero_sized variable.
40         * intrinsics/unpack_generic.c (unpack0): Remove unused size
41         variable.
42         * io/write.c (namelist_write_newline): Remove unused length
43         variable.
44         * io/unix.c (find_file): Remove unused id variable.
45         * m4/ifunction.m4 (SCALAR_ARRAY_FUNCTION): Remove unused sstride
46         variable.
47         * generated/maxloc1_16_i1.c: Regenerated.
48         * generated/maxloc1_16_i16.c: Regenerated.
49         * generated/maxloc1_16_i2.c: Regenerated.
50         * generated/maxloc1_16_i4.c: Regenerated.
51         * generated/maxloc1_16_i8.c: Regenerated.
52         * generated/maxloc1_16_r10.c: Regenerated.
53         * generated/maxloc1_16_r16.c: Regenerated.
54         * generated/maxloc1_16_r4.c: Regenerated.
55         * generated/maxloc1_16_r8.c: Regenerated.
56         * generated/maxloc1_4_i1.c: Regenerated.
57         * generated/maxloc1_4_i16.c: Regenerated.
58         * generated/maxloc1_4_i2.c: Regenerated.
59         * generated/maxloc1_4_i4.c: Regenerated.
60         * generated/maxloc1_4_i8.c: Regenerated.
61         * generated/maxloc1_4_r10.c: Regenerated.
62         * generated/maxloc1_4_r16.c: Regenerated.
63         * generated/maxloc1_4_r4.c: Regenerated.
64         * generated/maxloc1_4_r8.c: Regenerated.
65         * generated/maxloc1_8_i1.c: Regenerated.
66         * generated/maxloc1_8_i16.c: Regenerated.
67         * generated/maxloc1_8_i2.c: Regenerated.
68         * generated/maxloc1_8_i4.c: Regenerated.
69         * generated/maxloc1_8_i8.c: Regenerated.
70         * generated/maxloc1_8_r10.c: Regenerated.
71         * generated/maxloc1_8_r16.c: Regenerated.
72         * generated/maxloc1_8_r4.c: Regenerated.
73         * generated/maxloc1_8_r8.c: Regenerated.
74         * generated/maxval_i1.c: Regenerated.
75         * generated/maxval_i16.c: Regenerated.
76         * generated/maxval_i2.c: Regenerated.
77         * generated/maxval_i4.c: Regenerated.
78         * generated/maxval_i8.c: Regenerated.
79         * generated/maxval_r10.c: Regenerated.
80         * generated/maxval_r16.c: Regenerated.
81         * generated/maxval_r4.c: Regenerated.
82         * generated/maxval_r8.c: Regenerated.
83         * generated/minloc1_16_i1.c: Regenerated.
84         * generated/minloc1_16_i16.c: Regenerated.
85         * generated/minloc1_16_i2.c: Regenerated.
86         * generated/minloc1_16_i4.c: Regenerated.
87         * generated/minloc1_16_i8.c: Regenerated.
88         * generated/minloc1_16_r10.c: Regenerated.
89         * generated/minloc1_16_r16.c: Regenerated.
90         * generated/minloc1_16_r4.c: Regenerated.
91         * generated/minloc1_16_r8.c: Regenerated.
92         * generated/minloc1_4_i1.c: Regenerated.
93         * generated/minloc1_4_i16.c: Regenerated.
94         * generated/minloc1_4_i2.c: Regenerated.
95         * generated/minloc1_4_i4.c: Regenerated.
96         * generated/minloc1_4_i8.c: Regenerated.
97         * generated/minloc1_4_r10.c: Regenerated.
98         * generated/minloc1_4_r16.c: Regenerated.
99         * generated/minloc1_4_r4.c: Regenerated.
100         * generated/minloc1_4_r8.c: Regenerated.
101         * generated/minloc1_8_i1.c: Regenerated.
102         * generated/minloc1_8_i16.c: Regenerated.
103         * generated/minloc1_8_i2.c: Regenerated.
104         * generated/minloc1_8_i4.c: Regenerated.
105         * generated/minloc1_8_i8.c: Regenerated.
106         * generated/minloc1_8_r10.c: Regenerated.
107         * generated/minloc1_8_r16.c: Regenerated.
108         * generated/minloc1_8_r4.c: Regenerated.
109         * generated/minloc1_8_r8.c: Regenerated.
110         * generated/minval_i1.c: Regenerated.
111         * generated/minval_i16.c: Regenerated.
112         * generated/minval_i2.c: Regenerated.
113         * generated/minval_i4.c: Regenerated.
114         * generated/minval_i8.c: Regenerated.
115         * generated/minval_r10.c: Regenerated.
116         * generated/minval_r16.c: Regenerated.
117         * generated/minval_r4.c: Regenerated.
118         * generated/minval_r8.c: Regenerated.
119         * generated/product_c10.c: Regenerated.
120         * generated/product_c16.c: Regenerated.
121         * generated/product_c4.c: Regenerated.
122         * generated/product_c8.c: Regenerated.
123         * generated/product_i1.c: Regenerated.
124         * generated/product_i16.c: Regenerated.
125         * generated/product_i2.c: Regenerated.
126         * generated/product_i4.c: Regenerated.
127         * generated/product_i8.c: Regenerated.
128         * generated/product_r10.c: Regenerated.
129         * generated/product_r16.c: Regenerated.
130         * generated/product_r4.c: Regenerated.
131         * generated/product_r8.c: Regenerated.
132         * generated/sum_c10.c: Regenerated.
133         * generated/sum_c16.c: Regenerated.
134         * generated/sum_c4.c: Regenerated.
135         * generated/sum_c8.c: Regenerated.
136         * generated/sum_i1.c: Regenerated.
137         * generated/sum_i16.c: Regenerated.
138         * generated/sum_i2.c: Regenerated.
139         * generated/sum_i4.c: Regenerated.
140         * generated/sum_i8.c: Regenerated.
141         * generated/sum_r10.c: Regenerated.
142         * generated/sum_r16.c: Regenerated.
143         * generated/sum_r4.c: Regenerated.
144         * generated/sum_r8.c: Regenerated.
145
146 2009-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
147
148         * io/fbuf.h: Move includes after include guard.
149         * io/format.h: Likewise.
150         * io/unix.h: Likewise.
151
152 2009-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
153
154         PR libgfortran/42090
155         * io/transfer.c (skip_record): Set bytes_left_subrecord to zero after
156         skipping the remaining bytes in the record.
157         (next_record_r): Call skip_record with the number of bytes_left to be
158         skipped.
159
160 2009-11-02  Janne Blomqvist  <jb@gcc.gnu.org>
161
162         * Makefile.am (gfor_io_headers): Add fbuf.h, format.h, unix.h.
163         * Makefile.in: Regenerated.
164         * io/fbuf.h: New file.
165         * io/format.h: New file.
166         * io/unix.h: New file.
167         * io/io.h (struct stream): Move to unix.h, add forward declaration.
168         (sread): Likewise.
169         (swrite): Likewise.
170         (sseek): Likewise.
171         (stell): Likewise.
172         (struncate): Likewise.
173         (sflush): Likewise.
174         (sflush): Likewise.
175         (sclose): Likewise.
176         (compared_files): Move prototype to unix.h.
177         (open_external): Likewise.
178         (open_internal): Likewise.
179         (mem_alloc_w): Likewise.
180         (mem_alloc_r): Likewise.
181         (input_stream): Likewise.
182         (output_stream): Likewise.
183         (error_stream): Likewise.
184         (compare_file_filename): Likewise.
185         (find_file): Likewise.
186         (delete_file): Likewise.
187         (file_exists): Likewise.
188         (inquire_sequential): Likewise.
189         (inquire_direct): Likewise.
190         (inquire_formatted): Likewise.
191         (inquire_unformatted): Likewise.
192         (inquire_read): Likewise.
193         (inquire_write): Likewise.
194         (inquire_readwrite): Likewise.
195         (file_length): Likewise.
196         (is_seekable): Likewise.
197         (is_special): Likewise.
198         (flush_if_preconnected): Likewise.
199         (empty_internal_buffer): Likewise.
200         (stream_isatty): Likewise.
201         (stream_ttyname): Likewise.
202         (unpack_filename): Likewise.
203         (struct fbuf): Move to fbuf.h, add forward declaration.
204         (fbuf_init): Move prototype to fbuf.h.
205         (fbuf_destroy): Likewise.
206         (fbuf_reset): Likewise.
207         (fbuf_alloc): Likewise.
208         (fbuf_flush): Likewise.
209         (fbuf_seek): Likewise.
210         (fbuf_read): Likewise.
211         (fbuf_getc_refill): Likewise.
212         (fbuf_getc): Move inline function to fbuf.h.
213         (enum format_token): Move to format.h.
214         (struct fnode): Move to format.h, add forward declaration.
215         (parse_format): Move prototype to format.h.
216         (next_format): Likewise.
217         (unget_format): Likewise.
218         (format_error): Likewise.
219         (free_format_data): Likewise.
220         (free_format_hash_table): Likewise.
221         (init_format_hash): Likewise.
222         (free_format_hash): Likewise.
223         * io/close.c: Include unix.h.
224         * io/fbuf.c: Include fbuf.h and unix.h.
225         * io/file_pos.c: Include fbuf.h and unix.h.
226         * io/format.c: Include format.h.
227         * io/inquire.c: Include unix.h.
228         * io/intrinsics.c: Include fbuf.h and unix.h.
229         * io/list_read.c: Include fbuf.h and unix.h.
230         * io/open.c: Include fbuf.h and unix.h.
231         * io/read.c: Include format.h.
232         * io/transfer.c: Include fbuf.h, format.h, and unix.h.
233         * io/unit.c: Likewise.
234         * io/unix.c: Include unix.h.
235         * io/write.c: Include format.h and unix.h.
236
237 2009-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
238
239         PR libfortran/41219
240         * intrinsics/unpack_generic.c (unpack_internal): Remove unused
241         argument from prototype.
242         (unpack1): Update unpack_internal call.
243         (unpack1_char): Likewise.
244         (unpack1_char4): Likewise.
245         (unpack0): Likewise.
246         (unpack0_char): Likewise.
247         (unpack0_char4): Likewise.
248         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Get rid of
249         uninitialized variable warning.
250
251 2009-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
252
253         PR libgfortran/41711
254         * libgfortran.h: Define larger sizes for BOZ conversion buffers.
255         * io/write.c (extract_uint): Include case where size is 10 if integer
256         is large enough. (write_int): Rename to write_boz. (write_boz): Factor
257         out extract_uint and delete the conversion function.
258         (btoa_big): New binary conversion function.
259         (otoa_big): New octal conversion function.
260         (ztoa_big): New hexidecimal conversion function.
261         (write_b): Modify to use new function.
262         (write_o): Likewise.
263         (write_z): Likewise.
264
265 2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
266
267         PR libgfortran/41683
268         * io/format.c (parse_format_list): Allow a repeat specifier immediately
269         after a P specifier.
270         
271 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
272
273         PR libgfortran/38439
274         * io/format.c (parse_format_list): Correct logic for FMT_F reading vs
275         writing. Code clean-up.
276
277 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
278
279         PR libgfortran/38439
280         * io/format.c (parse_format_list): Add check for tokens not allowed
281         after P specifier. Fix comments.  Remove un-needed code. Fix the
282         default exponent list. Correct pointer assignment error.
283
284 2009-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
285
286         PR libgfortran/35862
287         * write_float.def (outout_float): Fix handling of special case where no
288         digits after the decimal point and values less than 1.0. Adjust index
289         into digits string. (WRITE_FLOAT): Remove special case code from macro.
290
291 2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
292
293         PR libgfortran/35862
294         * io.h (gfc_unit): Add round_status.
295         (format_token): Add enumerators for rounding format specifiers.
296         * transfer.c (round_opt): New options table.
297         (formatted_transfer_scalar_read): Add set round_status for each rounding
298         format token. (formatted_transfer_scalar_write): Likewise.
299         * format.c (format_lex): Tokenize the rounding format specifiers.
300         (parse_format_list): Parse the rounding format specifiers.
301         * write_float.def (outout_float): Modify rounding code to use new
302         variable rchar to set the appropriate rounding. Fix some whitespace.
303         * unit.c (get_internal_unit): Initialize rounding mode for internal
304         units. (init_units): Likewise.
305
306 2009-09-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
307
308         * configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
309         * configure: Regenerate.
310         * config.h.in: Ditto.
311
312 2009-09-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
313
314         PR libgfortran/41328
315         * io/transfer.c (read_sf): Set at_eof flag on short read if any
316         characters were successfully read so that EOF condition with no EOR
317         marker succeeds.
318
319 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
320
321         PR libgfortran/41328
322         * io/transfer.c (read_sf): Adjust fbuf position and do proper
323         fbuf reads to traverse CR, CR-LF, and LF style line ends.
324
325 2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
326
327         PR libgfortran/41219
328         * io/write.c (write_a_char4): Use correct type for crlf constant.
329
330 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
331
332         * Makefile.am (libgfortranbegin_la_LINK): New.
333         * Makefile.in: Regenerate.
334
335 2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
336
337         * configure: Regenerate.
338
339 2009-09-08  Paolo Bonzini  <bonzini@gnu.org>
340
341         * configure: Regenerate.
342
343 2009-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
344
345         PR libgfortran/41192
346         * io/list_read.c (eat_line): Enable eat_line to function on
347         internal units.
348
349         PR libgfortran/41219
350         * io/list_read.c (nml_read_obj): Replace GFC_DTYPE_UNKNOWN with
351         BT_NULL to get rid of warning.
352         
353 2009-09-04  Tobias Burnus  <burnus@net-b.de>
354
355         PR fortran/41219
356         * intrinsics/getlog.c: Define _POSIX for MINGW32.
357
358 2009-09-03  Tobias Burnus  <burnus@net-b.de>
359
360         PR fortran/41219
361         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Move variable
362         declaration out of the loop.
363
364 2009-08-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
365
366         * m4/pack.m4 (pack_'rtype_code`): Use count_0 for counting true
367         values in a logical array.  Mark bounds checking tests as
368         unlikely.
369         * intrinsics/pack_generic.c (pack_internal): Likewise.
370         * runtime/bounds.c (count_0):  Fix off-by-one error in detecting
371         empty arrays.
372         * generated/pack_c4.c: Regenerated.
373         * generated/pack_c8.c: Regenerated.
374         * generated/pack_c10.c: Regenerated.
375         * generated/pack_c16.c: Regenerated.
376         * generated/pack_i1.c: Regenerated.
377         * generated/pack_i16.c: Regenerated.
378         * generated/pack_i2.c: Regenerated.
379         * generated/pack_i4.c: Regenerated.
380         * generated/pack_i8.c: Regenerated.
381         * generated/pack_r4.c: Regenerated.
382         * generated/pack_r8.c: Regenerated.
383         * generated/pack_r10.c: Regenerated.
384         * generated/pack_r16.c: Regenerated.
385
386 2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
387
388         PR libfortran/34670
389         * runtime/bounds.c (count_0):  New function.
390         * intrinsics/unpack_generic (unpack_bounds):  New function.
391         (unpack_internal):  Remove zero stride checks.
392         (unpack1):  Use unpack_bounds.
393         (unpack1_char):  Likeweise.
394         (unpack1_char4):  Likewise
395         (unpack0):  Likewise.
396         (unpack0_char):  Likewise.
397         (unpack0_char4):  Likewise.
398
399 2009-08-24  Steven G. Kargl  <kargl@gcc.gnu.org>
400
401         PR fortran/41157
402         * dtime.c (dtime_sub): Fix computing time increment.
403         * time_1.h: Add <sys/types.h> header.  Use RUSAGE_SELF macro instead
404         of a hardcoded 0.
405
406 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
407
408         * configure.ac (AC_PREREQ): Bump to 2.64.
409
410 2009-08-23  Steven G. Kargl  <kargl@gcc.gnu.org>
411
412         * intrinsics/cshift0.c: Update license to GPL3+exception.
413         * runtime/fpu.c: Add a GPL3+exception statement.
414
415 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
416
417         * Makefile.am (install-html, install-pdf): Remove.
418         * Makefile.in: Regenerate.
419
420         * Makefile.in: Regenerate.
421         * aclocal.m4: Regenerate.
422         * config.h.in: Regenerate.
423         * configure: Regenerate.
424
425 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
426
427         * Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
428         * Makefile.in: Regenerate.
429
430 2009-08-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
431
432         PR libfortran/40962
433         * iso_c_binding.c (c_f_pointer_u0):  Multiply stride by
434         previous stride.
435
436 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
437
438         * Makefile.am (LTLDFLAGS): Add -bindir flag.
439         * Makefile.in: Regenerate.
440
441 2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
442
443         PR fortran/41075
444         * io/io.h (enum format_token): Add FMT_STAR.
445         * io/format.c (format_lex): Add case for FMT_STAR.
446         (parse_format_list): Parse FMT_STAR and check for left paren
447         after. (next_format0): Modify helper function to check for
448         unimited format and return the repeated format node.  Update
449         comments to clarify.
450         
451 2009-08-15  Kai Tietz  <kai.tietz@onevision.com>
452
453         * intrinsics/string_intrinsics_inc.c (string_len_trim): Use
454         __INTPTR_TYPE__ to cast from pointer to scalar integer, if
455         __INTPTR_TYPE is defined.
456
457 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
458
459         * fmain.c: Add comment saying file is deprecated.
460
461 2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
462
463         PR libfortran/40863
464         * gfortran.map: Move new symbols to GFORTRAN_C99_1.1 version node.
465
466 2009-08-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
467
468         PR libfortran/40549
469         * Makefile.in (LTLDFLAGS): Add -no-undefined.
470         * Makefile.am: Regenerate.
471         * libgfortran.h: Remove unused block of code.
472
473 2009-08-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
474
475         PR libfortran/40853
476         * io/list_read.c (nml_get_obj_data): Do not set nl
477         pointer to first_nl if nl->next is NULL.
478
479 2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
480
481         * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
482         Don't set IEEE_FLAGS with @IEEE_FLAGS@.
483         * Makefile.in: Regenerate.
484
485 2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
486
487         * configure.host: Define ieee_flags and set it to -mieee for sh.
488         * configure.ac: Set IEEE_FLAGS with ieee_flags.
489         * Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
490         * configure: Regenerate.
491         * Makefile.in: Regenerate.
492
493 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
494
495         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
496
497 2009-07-27  Tobias Burnus  <burnus@net-b.de>
498
499         PR fortran/40863
500         * c99_functions.c: Define complex I, if not defined.
501         Create prototypes for C99 functions to silence warnings.
502         * gfortran.map: Add missing functions to GFORTRAN_C99_1.0
503         and new GFORTRAN_C99_1.1.
504
505 2009-07-25  Tobias Burnus  <burnus@net-b.de>
506
507         PR fortran/33197
508         * intrinsics/c99_functions.c (cacosf,cacos,cacosl,casinf,
509         casin,casind,catanf,catan,catanl,cacoshf,cacosh,cacoshl,
510         casinhf,casinh,casinhf,catanhf,catanh,catanhl): New functions.
511         * c99_protos.h: Add prototypes for those.
512
513 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
514
515         PR fortran/40643
516         PR fortran/31067
517         * libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
518         GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
519         GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
520         Define.
521         * m4/iparm.m4 (atype_inf, atype_nan): Define.
522         * m4/ifunction.m4: Formatting.
523         * m4/iforeach.m4: Likewise.
524         (START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
525         (START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
526         FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
527         until count[0] == extent[0].
528         * m4/minval.m4: Formatting.  Handle NaNs and infinities.  Optimize.
529         * m4/maxval.m4: Likewise.
530         * m4/minloc0.m4: Likewise.
531         * m4/maxloc0.m4: Likewise.
532         * m4/minloc1.m4: Likewise.
533         * m4/maxloc1.m4: Likewise.
534         * generated/maxloc0_16_i16.c: Regenerated.
535         * generated/maxloc0_16_i1.c: Likewise.
536         * generated/maxloc0_16_i2.c: Likewise.
537         * generated/maxloc0_16_i4.c: Likewise.
538         * generated/maxloc0_16_i8.c: Likewise.
539         * generated/maxloc0_16_r10.c: Likewise.
540         * generated/maxloc0_16_r16.c: Likewise.
541         * generated/maxloc0_16_r4.c: Likewise.
542         * generated/maxloc0_16_r8.c: Likewise.
543         * generated/maxloc0_4_i16.c: Likewise.
544         * generated/maxloc0_4_i1.c: Likewise.
545         * generated/maxloc0_4_i2.c: Likewise.
546         * generated/maxloc0_4_i4.c: Likewise.
547         * generated/maxloc0_4_i8.c: Likewise.
548         * generated/maxloc0_4_r10.c: Likewise.
549         * generated/maxloc0_4_r16.c: Likewise.
550         * generated/maxloc0_4_r4.c: Likewise.
551         * generated/maxloc0_4_r8.c: Likewise.
552         * generated/maxloc0_8_i16.c: Likewise.
553         * generated/maxloc0_8_i1.c: Likewise.
554         * generated/maxloc0_8_i2.c: Likewise.
555         * generated/maxloc0_8_i4.c: Likewise.
556         * generated/maxloc0_8_i8.c: Likewise.
557         * generated/maxloc0_8_r10.c: Likewise.
558         * generated/maxloc0_8_r16.c: Likewise.
559         * generated/maxloc0_8_r4.c: Likewise.
560         * generated/maxloc0_8_r8.c: Likewise.
561         * generated/maxloc1_16_i16.c: Likewise.
562         * generated/maxloc1_16_i1.c: Likewise.
563         * generated/maxloc1_16_i2.c: Likewise.
564         * generated/maxloc1_16_i4.c: Likewise.
565         * generated/maxloc1_16_i8.c: Likewise.
566         * generated/maxloc1_16_r10.c: Likewise.
567         * generated/maxloc1_16_r16.c: Likewise.
568         * generated/maxloc1_16_r4.c: Likewise.
569         * generated/maxloc1_16_r8.c: Likewise.
570         * generated/maxloc1_4_i16.c: Likewise.
571         * generated/maxloc1_4_i1.c: Likewise.
572         * generated/maxloc1_4_i2.c: Likewise.
573         * generated/maxloc1_4_i4.c: Likewise.
574         * generated/maxloc1_4_i8.c: Likewise.
575         * generated/maxloc1_4_r10.c: Likewise.
576         * generated/maxloc1_4_r16.c: Likewise.
577         * generated/maxloc1_4_r4.c: Likewise.
578         * generated/maxloc1_4_r8.c: Likewise.
579         * generated/maxloc1_8_i16.c: Likewise.
580         * generated/maxloc1_8_i1.c: Likewise.
581         * generated/maxloc1_8_i2.c: Likewise.
582         * generated/maxloc1_8_i4.c: Likewise.
583         * generated/maxloc1_8_i8.c: Likewise.
584         * generated/maxloc1_8_r10.c: Likewise.
585         * generated/maxloc1_8_r16.c: Likewise.
586         * generated/maxloc1_8_r4.c: Likewise.
587         * generated/maxloc1_8_r8.c: Likewise.
588         * generated/maxval_i16.c: Likewise.
589         * generated/maxval_i1.c: Likewise.
590         * generated/maxval_i2.c: Likewise.
591         * generated/maxval_i4.c: Likewise.
592         * generated/maxval_i8.c: Likewise.
593         * generated/maxval_r10.c: Likewise.
594         * generated/maxval_r16.c: Likewise.
595         * generated/maxval_r4.c: Likewise.
596         * generated/maxval_r8.c: Likewise.
597         * generated/minloc0_16_i16.c: Likewise.
598         * generated/minloc0_16_i1.c: Likewise.
599         * generated/minloc0_16_i2.c: Likewise.
600         * generated/minloc0_16_i4.c: Likewise.
601         * generated/minloc0_16_i8.c: Likewise.
602         * generated/minloc0_16_r10.c: Likewise.
603         * generated/minloc0_16_r16.c: Likewise.
604         * generated/minloc0_16_r4.c: Likewise.
605         * generated/minloc0_16_r8.c: Likewise.
606         * generated/minloc0_4_i16.c: Likewise.
607         * generated/minloc0_4_i1.c: Likewise.
608         * generated/minloc0_4_i2.c: Likewise.
609         * generated/minloc0_4_i4.c: Likewise.
610         * generated/minloc0_4_i8.c: Likewise.
611         * generated/minloc0_4_r10.c: Likewise.
612         * generated/minloc0_4_r16.c: Likewise.
613         * generated/minloc0_4_r4.c: Likewise.
614         * generated/minloc0_4_r8.c: Likewise.
615         * generated/minloc0_8_i16.c: Likewise.
616         * generated/minloc0_8_i1.c: Likewise.
617         * generated/minloc0_8_i2.c: Likewise.
618         * generated/minloc0_8_i4.c: Likewise.
619         * generated/minloc0_8_i8.c: Likewise.
620         * generated/minloc0_8_r10.c: Likewise.
621         * generated/minloc0_8_r16.c: Likewise.
622         * generated/minloc0_8_r4.c: Likewise.
623         * generated/minloc0_8_r8.c: Likewise.
624         * generated/minloc1_16_i16.c: Likewise.
625         * generated/minloc1_16_i1.c: Likewise.
626         * generated/minloc1_16_i2.c: Likewise.
627         * generated/minloc1_16_i4.c: Likewise.
628         * generated/minloc1_16_i8.c: Likewise.
629         * generated/minloc1_16_r10.c: Likewise.
630         * generated/minloc1_16_r16.c: Likewise.
631         * generated/minloc1_16_r4.c: Likewise.
632         * generated/minloc1_16_r8.c: Likewise.
633         * generated/minloc1_4_i16.c: Likewise.
634         * generated/minloc1_4_i1.c: Likewise.
635         * generated/minloc1_4_i2.c: Likewise.
636         * generated/minloc1_4_i4.c: Likewise.
637         * generated/minloc1_4_i8.c: Likewise.
638         * generated/minloc1_4_r10.c: Likewise.
639         * generated/minloc1_4_r16.c: Likewise.
640         * generated/minloc1_4_r4.c: Likewise.
641         * generated/minloc1_4_r8.c: Likewise.
642         * generated/minloc1_8_i16.c: Likewise.
643         * generated/minloc1_8_i1.c: Likewise.
644         * generated/minloc1_8_i2.c: Likewise.
645         * generated/minloc1_8_i4.c: Likewise.
646         * generated/minloc1_8_i8.c: Likewise.
647         * generated/minloc1_8_r10.c: Likewise.
648         * generated/minloc1_8_r16.c: Likewise.
649         * generated/minloc1_8_r4.c: Likewise.
650         * generated/minloc1_8_r8.c: Likewise.
651         * generated/minval_i16.c: Likewise.
652         * generated/minval_i1.c: Likewise.
653         * generated/minval_i2.c: Likewise.
654         * generated/minval_i4.c: Likewise.
655         * generated/minval_i8.c: Likewise.
656         * generated/minval_r10.c: Likewise.
657         * generated/minval_r16.c: Likewise.
658         * generated/minval_r4.c: Likewise.
659         * generated/minval_r8.c: Likewise.
660         * generated/product_c10.c: Likewise.
661         * generated/product_c16.c: Likewise.
662         * generated/product_c4.c: Likewise.
663         * generated/product_c8.c: Likewise.
664         * generated/product_i16.c: Likewise.
665         * generated/product_i1.c: Likewise.
666         * generated/product_i2.c: Likewise.
667         * generated/product_i4.c: Likewise.
668         * generated/product_i8.c: Likewise.
669         * generated/product_r10.c: Likewise.
670         * generated/product_r16.c: Likewise.
671         * generated/product_r4.c: Likewise.
672         * generated/product_r8.c: Likewise.
673         * generated/sum_c10.c: Likewise.
674         * generated/sum_c16.c: Likewise.
675         * generated/sum_c4.c: Likewise.
676         * generated/sum_c8.c: Likewise.
677         * generated/sum_i16.c: Likewise.
678         * generated/sum_i1.c: Likewise.
679         * generated/sum_i2.c: Likewise.
680         * generated/sum_i4.c: Likewise.
681         * generated/sum_i8.c: Likewise.
682         * generated/sum_r10.c: Likewise.
683         * generated/sum_r16.c: Likewise.
684         * generated/sum_r4.c: Likewise.
685         * generated/sum_r8.c: Likewise.
686
687 2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
688
689         PR libfortran/32784
690         * unix.c (regular_file): Check for CONIN$ CONOUT$, and CONERR$ and open
691         the respective /dev/conin or /dev/conout devices.  This is Cygwin
692         specific.
693
694 2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
695
696         PR libfortran/34670
697         PR libfortran/36874
698         * Makefile.am:  Add bounds.c
699         * libgfortran.h (bounds_equal_extents):  Add prototype.
700         (bounds_iforeach_return):  Likewise.
701         (bounds_ifunction_return):  Likewise.
702         (bounds_reduced_extents):  Likewise.
703         * runtime/bounds.c:  New file.
704         (bounds_iforeach_return):  New function; correct typo in
705         error message.
706         (bounds_ifunction_return):  New function.
707         (bounds_equal_extents):  New function.
708         (bounds_reduced_extents):  Likewise.
709         * intrinsics/cshift0.c (cshift0):  Use new functions
710         for bounds checking.
711         * intrinsics/eoshift0.c (eoshift0):  Likewise.
712         * intrinsics/eoshift2.c (eoshift2):  Likewise.
713         * m4/iforeach.m4:  Likewise.
714         * m4/eoshift1.m4:  Likewise.
715         * m4/eoshift3.m4:  Likewise.
716         * m4/cshift1.m4:  Likewise.
717         * m4/ifunction.m4:  Likewise.
718         * Makefile.in:  Regenerated.
719         * generated/cshift1_16.c: Regenerated.
720         * generated/cshift1_4.c: Regenerated.
721         * generated/cshift1_8.c: Regenerated.
722         * generated/eoshift1_16.c: Regenerated.
723         * generated/eoshift1_4.c: Regenerated.
724         * generated/eoshift1_8.c: Regenerated.
725         * generated/eoshift3_16.c: Regenerated.
726         * generated/eoshift3_4.c: Regenerated.
727         * generated/eoshift3_8.c: Regenerated.
728         * generated/maxloc0_16_i1.c: Regenerated.
729         * generated/maxloc0_16_i16.c: Regenerated.
730         * generated/maxloc0_16_i2.c: Regenerated.
731         * generated/maxloc0_16_i4.c: Regenerated.
732         * generated/maxloc0_16_i8.c: Regenerated.
733         * generated/maxloc0_16_r10.c: Regenerated.
734         * generated/maxloc0_16_r16.c: Regenerated.
735         * generated/maxloc0_16_r4.c: Regenerated.
736         * generated/maxloc0_16_r8.c: Regenerated.
737         * generated/maxloc0_4_i1.c: Regenerated.
738         * generated/maxloc0_4_i16.c: Regenerated.
739         * generated/maxloc0_4_i2.c: Regenerated.
740         * generated/maxloc0_4_i4.c: Regenerated.
741         * generated/maxloc0_4_i8.c: Regenerated.
742         * generated/maxloc0_4_r10.c: Regenerated.
743         * generated/maxloc0_4_r16.c: Regenerated.
744         * generated/maxloc0_4_r4.c: Regenerated.
745         * generated/maxloc0_4_r8.c: Regenerated.
746         * generated/maxloc0_8_i1.c: Regenerated.
747         * generated/maxloc0_8_i16.c: Regenerated.
748         * generated/maxloc0_8_i2.c: Regenerated.
749         * generated/maxloc0_8_i4.c: Regenerated.
750         * generated/maxloc0_8_i8.c: Regenerated.
751         * generated/maxloc0_8_r10.c: Regenerated.
752         * generated/maxloc0_8_r16.c: Regenerated.
753         * generated/maxloc0_8_r4.c: Regenerated.
754         * generated/maxloc0_8_r8.c: Regenerated.
755         * generated/maxloc1_16_i1.c: Regenerated.
756         * generated/maxloc1_16_i16.c: Regenerated.
757         * generated/maxloc1_16_i2.c: Regenerated.
758         * generated/maxloc1_16_i4.c: Regenerated.
759         * generated/maxloc1_16_i8.c: Regenerated.
760         * generated/maxloc1_16_r10.c: Regenerated.
761         * generated/maxloc1_16_r16.c: Regenerated.
762         * generated/maxloc1_16_r4.c: Regenerated.
763         * generated/maxloc1_16_r8.c: Regenerated.
764         * generated/maxloc1_4_i1.c: Regenerated.
765         * generated/maxloc1_4_i16.c: Regenerated.
766         * generated/maxloc1_4_i2.c: Regenerated.
767         * generated/maxloc1_4_i4.c: Regenerated.
768         * generated/maxloc1_4_i8.c: Regenerated.
769         * generated/maxloc1_4_r10.c: Regenerated.
770         * generated/maxloc1_4_r16.c: Regenerated.
771         * generated/maxloc1_4_r4.c: Regenerated.
772         * generated/maxloc1_4_r8.c: Regenerated.
773         * generated/maxloc1_8_i1.c: Regenerated.
774         * generated/maxloc1_8_i16.c: Regenerated.
775         * generated/maxloc1_8_i2.c: Regenerated.
776         * generated/maxloc1_8_i4.c: Regenerated.
777         * generated/maxloc1_8_i8.c: Regenerated.
778         * generated/maxloc1_8_r10.c: Regenerated.
779         * generated/maxloc1_8_r16.c: Regenerated.
780         * generated/maxloc1_8_r4.c: Regenerated.
781         * generated/maxloc1_8_r8.c: Regenerated.
782         * generated/maxval_i1.c: Regenerated.
783         * generated/maxval_i16.c: Regenerated.
784         * generated/maxval_i2.c: Regenerated.
785         * generated/maxval_i4.c: Regenerated.
786         * generated/maxval_i8.c: Regenerated.
787         * generated/maxval_r10.c: Regenerated.
788         * generated/maxval_r16.c: Regenerated.
789         * generated/maxval_r4.c: Regenerated.
790         * generated/maxval_r8.c: Regenerated.
791         * generated/minloc0_16_i1.c: Regenerated.
792         * generated/minloc0_16_i16.c: Regenerated.
793         * generated/minloc0_16_i2.c: Regenerated.
794         * generated/minloc0_16_i4.c: Regenerated.
795         * generated/minloc0_16_i8.c: Regenerated.
796         * generated/minloc0_16_r10.c: Regenerated.
797         * generated/minloc0_16_r16.c: Regenerated.
798         * generated/minloc0_16_r4.c: Regenerated.
799         * generated/minloc0_16_r8.c: Regenerated.
800         * generated/minloc0_4_i1.c: Regenerated.
801         * generated/minloc0_4_i16.c: Regenerated.
802         * generated/minloc0_4_i2.c: Regenerated.
803         * generated/minloc0_4_i4.c: Regenerated.
804         * generated/minloc0_4_i8.c: Regenerated.
805         * generated/minloc0_4_r10.c: Regenerated.
806         * generated/minloc0_4_r16.c: Regenerated.
807         * generated/minloc0_4_r4.c: Regenerated.
808         * generated/minloc0_4_r8.c: Regenerated.
809         * generated/minloc0_8_i1.c: Regenerated.
810         * generated/minloc0_8_i16.c: Regenerated.
811         * generated/minloc0_8_i2.c: Regenerated.
812         * generated/minloc0_8_i4.c: Regenerated.
813         * generated/minloc0_8_i8.c: Regenerated.
814         * generated/minloc0_8_r10.c: Regenerated.
815         * generated/minloc0_8_r16.c: Regenerated.
816         * generated/minloc0_8_r4.c: Regenerated.
817         * generated/minloc0_8_r8.c: Regenerated.
818         * generated/minloc1_16_i1.c: Regenerated.
819         * generated/minloc1_16_i16.c: Regenerated.
820         * generated/minloc1_16_i2.c: Regenerated.
821         * generated/minloc1_16_i4.c: Regenerated.
822         * generated/minloc1_16_i8.c: Regenerated.
823         * generated/minloc1_16_r10.c: Regenerated.
824         * generated/minloc1_16_r16.c: Regenerated.
825         * generated/minloc1_16_r4.c: Regenerated.
826         * generated/minloc1_16_r8.c: Regenerated.
827         * generated/minloc1_4_i1.c: Regenerated.
828         * generated/minloc1_4_i16.c: Regenerated.
829         * generated/minloc1_4_i2.c: Regenerated.
830         * generated/minloc1_4_i4.c: Regenerated.
831         * generated/minloc1_4_i8.c: Regenerated.
832         * generated/minloc1_4_r10.c: Regenerated.
833         * generated/minloc1_4_r16.c: Regenerated.
834         * generated/minloc1_4_r4.c: Regenerated.
835         * generated/minloc1_4_r8.c: Regenerated.
836         * generated/minloc1_8_i1.c: Regenerated.
837         * generated/minloc1_8_i16.c: Regenerated.
838         * generated/minloc1_8_i2.c: Regenerated.
839         * generated/minloc1_8_i4.c: Regenerated.
840         * generated/minloc1_8_i8.c: Regenerated.
841         * generated/minloc1_8_r10.c: Regenerated.
842         * generated/minloc1_8_r16.c: Regenerated.
843         * generated/minloc1_8_r4.c: Regenerated.
844         * generated/minloc1_8_r8.c: Regenerated.
845         * generated/minval_i1.c: Regenerated.
846         * generated/minval_i16.c: Regenerated.
847         * generated/minval_i2.c: Regenerated.
848         * generated/minval_i4.c: Regenerated.
849         * generated/minval_i8.c: Regenerated.
850         * generated/minval_r10.c: Regenerated.
851         * generated/minval_r16.c: Regenerated.
852         * generated/minval_r4.c: Regenerated.
853         * generated/minval_r8.c: Regenerated.
854         * generated/product_c10.c: Regenerated.
855         * generated/product_c16.c: Regenerated.
856         * generated/product_c4.c: Regenerated.
857         * generated/product_c8.c: Regenerated.
858         * generated/product_i1.c: Regenerated.
859         * generated/product_i16.c: Regenerated.
860         * generated/product_i2.c: Regenerated.
861         * generated/product_i4.c: Regenerated.
862         * generated/product_i8.c: Regenerated.
863         * generated/product_r10.c: Regenerated.
864         * generated/product_r16.c: Regenerated.
865         * generated/product_r4.c: Regenerated.
866         * generated/product_r8.c: Regenerated.
867         * generated/sum_c10.c: Regenerated.
868         * generated/sum_c16.c: Regenerated.
869         * generated/sum_c4.c: Regenerated.
870         * generated/sum_c8.c: Regenerated.
871         * generated/sum_i1.c: Regenerated.
872         * generated/sum_i16.c: Regenerated.
873         * generated/sum_i2.c: Regenerated.
874         * generated/sum_i4.c: Regenerated.
875         * generated/sum_i8.c: Regenerated.
876         * generated/sum_r10.c: Regenerated.
877         * generated/sum_r16.c: Regenerated.
878         * generated/sum_r4.c: Regenerated.
879         * generated/sum_r8.c: Regenerated.
880
881 2009-07-17  Janne Blomqvist  <jb@gcc.gnu.org>
882             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
883                 
884         PR libfortran/40714
885         * io/transfer.c (finalize_transfer): Set current_record to 0
886         before returning in case of error.
887
888 2009-07-12  Tobias Burnus  <burnus@net-b.de>
889
890         PR libfortran/22423
891         * io/io.h (namelist_type): Use the proper enum for GFC_DTYPE_*.
892         * intrinsics/iso_c_binding.c (c_f_pointer_u0): Make sure
893         variable is initialized to silence warning.
894
895 2009-07-10  Steven G. Kargl  <kargl@gcc.gnu.org>
896
897         * c99_functions.c (ccoshf, ccosh, ccoshl, ctanhf, ctanh, ctanl):
898         Fix errant minus.
899
900 2009-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
901
902         PR libfortran/40330
903         PR libfortran/40662
904         * io/io.h (st_parameter_dt): Define format_not_saved bit used to signal
905         whether the parsed format data was previously saved. Used to determine
906         if the current format data should be freed or not.
907         * io/transfer.c (st_read_done): Use the format_not_saved bit.
908         (st_write_done): Likewise.
909         * io/format.c (parse_format_list): Add boolean pointer to arg list. This
910         pointer is used to return status to the caller regarding whether it is
911         safe to cache the parsed format data.  Currently, if a FMT_STRING token
912         is encounetered, it is not safe to cache. Also, added a local boolean
913         variable to hold this information as recursive calls to
914         parse_format_list are made.  Remove previous save_format logic.
915         (parse_format): Do not use the format caching facility if the current
916         unit is an internal unit or if it is not safe to save parsed format
917         data.
918         
919 2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
920
921         PR libfortran/40576
922         * io/transfer.c (sset): Adjust exit condition for loop.
923
924 2009-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
925
926         PR libfortran/40508
927         * io/format.c: Don't save parsed format data for internal units.
928
929 2009-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
930
931         PR fortran/37577
932         Port from fortran-dev
933         * runtime/in_pack_generic (internal_pack):  Remove unnecessary
934         test for stride == 0.
935         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
936         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
937         of stride in "shape" argument.  Use array access macros for
938         accessing array descriptors.
939         * libgfortran.h (struct descriptor_dimension):  Change stride
940         to _stride, lbound to _lbound and ubound to _ubound.
941         (GFC_DIMENSION_LBOUND):  Use new name(s) in struct
942         descriptor_dimension.
943         (GFC_DIMENSION_UBOUND):  Likewise.
944         (GFC_DIMENSION_STRIDE):  Likewise.
945         (GFC_DIMENSION_EXTENT):  Likewise.
946         (GFC_DIMENSION_SET):  Likewise.
947         (GFC_DESCRIPTOR_LBOUND):  Likewise.
948         (GFC_DESCRIPTOR_UBOUND):  Likewise.
949         (GFC_DESCRIPTOR_EXTENT):  Likewise.
950         (GFC_DESCRIPTOR_STRIDE):  Likewise.
951         * io/transfer.c (transfer_array):  Use array access macros.
952         Use byte-sized strides.
953         * intrinsics/eoshift0.c (eoshift0):  Use array access
954         macros everywhere.
955         * m4/in_pack.m4 (internal_pack_'rtype_ccode`):  Use
956         array access macros for accessing array descriptors.
957         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):
958         Likewise.
959         * m4/matmull.m4 (matmul_'rtype_code`):  Likewise.
960         * m4/matmul.m4 (matmul_'rtype_code`):  Likewise.
961         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
962         (unpack1_'rtype_code`):  Likewise.
963         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise.
964         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Use array access
965         macros everywhere.
966                 * intrinsics/dtime.c (dtime_sub):  Use array access macros
967         for accessing array descriptors.
968         * intrinsics/cshift0 (cshift0):  Likewise.
969         * intrinsics/etime.c:  Likewise.  Remove redundant calculation
970         of rdim.
971         * m4/cshift0.m4 (cshift0_'rtype_code`):  Use array access macros
972         for accessing array descriptors.
973         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
974         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
975         (spread_scalar_'rtype_code`):  Likewise.
976         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
977         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
978         * m4/eoshift1.m4 (eoshift1):  Likewise.  Remove size argument,
979         calculate within function.
980         (eoshift1_'atype_kind`):  Remove size argument from call
981         to eoshift1.
982         (eoshift1_'atype_kind`_char):  Likewise.
983         (eoshift1_'atype_kind`_char4):  Likewise.
984         * m4/eoshift3.m4 (eoshift3):  Remove size argument, calculate
985         within function. Use array access macros for accessing array
986         descriptors.
987         (eoshift3_'atype_kind`):  Remove size argument from call
988         to eoshift1.
989         (eoshift3_'atype_kind`_char):  Likewise.
990         (eoshift3_'atype_kind`_char4):  Likewise.
991         * m4/shape.m4 (shape_'rtype_kind`):  Use array access macros
992         for accessing array descriptors.
993         * m4/cshift1.m4 (cshift1): Remove size argument, calculate
994         within function. Use array access macros for accessing array
995         descriptors.
996         (cshift1_'atype_kind`):  Remove size argument from call to
997         cshift1.
998         (cshift1_'atype_kind`_char):  Remove size argument from call to
999         cshift1.
1000         (cshift1_'atype_kind`_char4):  Remove size argument from call to
1001         cshift1.
1002         * m4/reshape.m4 (reshape_'rtype_ccode`):  Use array access macros
1003         for accessing array descriptors.
1004         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
1005         * intrinsics/pack_generic.c (pack_internal):  Use array access
1006         macros for accessing array descriptors.
1007         (pack_s_internal):  Likewise.
1008         * intrinsics/transpose_generic.c (transpose_internal):  Remove
1009         size argument, calculate from array descriptor. Use array
1010         access macros for accessing array descriptors.
1011         (transpose):  Remove size argument from call.
1012         (transpoe_char):  Likewise.
1013         (transpose_char4):  Likewise.
1014         * intrinsics/move_alloc.c (move_alloc):  Use array access macros
1015         for accessing array descriptors.
1016         * intrinsics/spread_generic.c (spread_internal):  Remove size
1017         argument, calculate from array descriptor.  Use array access
1018         macros for accessing array descriptors.
1019         (spread_internal_scalar):  Likewise.
1020         (spread):  Remove size argument from call to spread_internal.
1021         (spread_char):  Mark argument source_length as unused.
1022         Remove size argument from call to spread_internal.
1023         (spread_char4):  Likewise.
1024         (spread_char_scalar):  Likewise.
1025         (spread_char4_scalar):  Likewise.
1026         * intrinsics/unpack_generic.c (unpack_internal):  Use array access
1027         macros for accessing array descriptors.
1028         * intrinsics/eoshift2.c (eoshift2):  Remove size argument, calculate
1029         from array descriptor instead.  Use array access macros for
1030         accessing array descriptors.
1031         (eoshift2_##N):  Remove size argument from call to eoshift2.
1032         (eoshift2_##N_##char):  Likewise.
1033         (eoshift2_##N_##char4):  Likewise.
1034         * intrinsics/reshape_generic.c (reshape_internal):  Use array
1035         access macross for accessing array descriptors.
1036         * libgfortran.h:  Introduce new macros GFC_DIMENSION_LBOUND,
1037         GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT,
1038         GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND,
1039         GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES,
1040         GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES
1041         * runtime/in_pack_generic.c (internal_pack):  Use new macros
1042         for array descriptor access.
1043         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1044         * intrinsics/dtime.c (dtime_sub):  Likewise.
1045         * intrinsics/cshift0 (cshift0):  Remove argument size,
1046         calculate directly from the array descriptor.  Use new macros
1047         for array descriptor access.
1048         * cshift0_##N:  Remove shift argument in call to cshift0.
1049         * cshift0_##N_char:  Mark array_length as unused.  Remove
1050         array_length in call to cshift0.
1051         * cshift0_##N_char4:  Likewise.
1052         * intrisics/etime.c:  Use new macros for array descriptor access.
1053         * intrinsics/stat.c (stat_i4_sub_0):  Likewise.
1054         (stat_i8_sub_0):  Likewise.
1055         (fstat_i4_sub):  Likewise.
1056         (fstat_i8_sub):  Likewise.
1057         * intrinsics/date_and_time.c (date_and_time):  Likewise.
1058         (secnds):  Likewise.
1059         (itime_i4):  Likewise.
1060         (itime_i8):  Likewise.
1061         (idate_i4):  Likewise.
1062         (idate_i8):  Likewise.
1063         (gmtime_i4):  Likewise.
1064         (gmtime_i8):  Likewise.
1065         (ltime_i4):  Likewise.
1066         (litme_i8):  Likewise.
1067         * intrinsics/associated.c (associated):  Likewise.
1068         * intrinsics/eoshift0.c (eoshift0):  Likewise.
1069         * intriniscs/size.c (size0):  Likewise.
1070         * intrinsics/random.c (arandom_r4):  Likewise.
1071         (arandom_r8):  Likewise.
1072         (arandom_r10):  Likewise.
1073         (arandom_r16):  Likewise.
1074         (random_seed_i4):  Likewise.
1075         (random_seed_i8):  Likewise.
1076         * io/list_read.c (nml_parse_qualifier):  Likewise.
1077         (nml_touch_nodes):  Likewise.
1078         (nml_read_obj):  Likewise.
1079         (get_name):  Likewise.
1080         * io/transfer.c (transfer_array):  Likewise.
1081         (init_loop_spec):  Likewise.
1082         (st_set_nml_var_dim):  Likewise.
1083         * io/write.c (nml_write_obj):  Likewise.
1084         (obj_loop):  Likewise.
1085         * generated/all_l1.c: Regenerated.
1086         * generated/all_l16.c: Regenerated.
1087         * generated/all_l2.c: Regenerated.
1088         * generated/all_l4.c: Regenerated.
1089         * generated/all_l8.c: Regenerated.
1090         * generated/any_l1.c: Regenerated.
1091         * generated/any_l16.c: Regenerated.
1092         * generated/any_l2.c: Regenerated.
1093         * generated/any_l4.c: Regenerated.
1094         * generated/any_l8.c: Regenerated.
1095         * generated/count_16_l.c: Regenerated.
1096         * generated/count_1_l.c: Regenerated.
1097         * generated/count_2_l.c: Regenerated.
1098         * generated/count_4_l.c: Regenerated.
1099         * generated/count_8_l.c: Regenerated.
1100         * generated/cshift0_c10.c: Regenerated.
1101         * generated/cshift0_c16.c: Regenerated.
1102         * generated/cshift0_c4.c: Regenerated.
1103         * generated/cshift0_c8.c: Regenerated.
1104         * generated/cshift0_i1.c: Regenerated.
1105         * generated/cshift0_i16.c: Regenerated.
1106         * generated/cshift0_i2.c: Regenerated.
1107         * generated/cshift0_i4.c: Regenerated.
1108         * generated/cshift0_i8.c: Regenerated.
1109         * generated/cshift0_r10.c: Regenerated.
1110         * generated/cshift0_r16.c: Regenerated.
1111         * generated/cshift0_r4.c: Regenerated.
1112         * generated/cshift0_r8.c: Regenerated.
1113         * generated/cshift1_16.c: Regenerated.
1114         * generated/cshift1_4.c: Regenerated.
1115         * generated/cshift1_8.c: Regenerated.
1116         * generated/eoshift1_16.c: Regenerated.
1117         * generated/eoshift1_4.c: Regenerated.
1118         * generated/eoshift1_8.c: Regenerated.
1119         * generated/eoshift3_16.c: Regenerated.
1120         * generated/eoshift3_4.c: Regenerated.
1121         * generated/eoshift3_8.c: Regenerated.
1122         * generated/in_pack_c10.c: Regenerated.
1123         * generated/in_pack_c16.c: Regenerated.
1124         * generated/in_pack_c4.c: Regenerated.
1125         * generated/in_pack_c8.c: Regenerated.
1126         * generated/in_pack_i1.c: Regenerated.
1127         * generated/in_pack_i16.c: Regenerated.
1128         * generated/in_pack_i2.c: Regenerated.
1129         * generated/in_pack_i4.c: Regenerated.
1130         * generated/in_pack_i8.c: Regenerated.
1131         * generated/in_pack_r10.c: Regenerated.
1132         * generated/in_pack_r16.c: Regenerated.
1133         * generated/in_pack_r4.c: Regenerated.
1134         * generated/in_pack_r8.c: Regenerated.
1135         * generated/in_unpack_c10.c: Regenerated.
1136         * generated/in_unpack_c16.c: Regenerated.
1137         * generated/in_unpack_c4.c: Regenerated.
1138         * generated/in_unpack_c8.c: Regenerated.
1139         * generated/in_unpack_i1.c: Regenerated.
1140         * generated/in_unpack_i16.c: Regenerated.
1141         * generated/in_unpack_i2.c: Regenerated.
1142         * generated/in_unpack_i4.c: Regenerated.
1143         * generated/in_unpack_i8.c: Regenerated.
1144         * generated/in_unpack_r10.c: Regenerated.
1145         * generated/in_unpack_r16.c: Regenerated.
1146         * generated/in_unpack_r4.c: Regenerated.
1147         * generated/in_unpack_r8.c: Regenerated.
1148         * generated/matmul_c10.c: Regenerated.
1149         * generated/matmul_c16.c: Regenerated.
1150         * generated/matmul_c4.c: Regenerated.
1151         * generated/matmul_c8.c: Regenerated.
1152         * generated/matmul_i1.c: Regenerated.
1153         * generated/matmul_i16.c: Regenerated.
1154         * generated/matmul_i2.c: Regenerated.
1155         * generated/matmul_i4.c: Regenerated.
1156         * generated/matmul_i8.c: Regenerated.
1157         * generated/matmul_l16.c: Regenerated.
1158         * generated/matmul_l4.c: Regenerated.
1159         * generated/matmul_l8.c: Regenerated.
1160         * generated/matmul_r10.c: Regenerated.
1161         * generated/matmul_r16.c: Regenerated.
1162         * generated/matmul_r4.c: Regenerated.
1163         * generated/matmul_r8.c: Regenerated.
1164         * generated/maxloc0_16_i1.c: Regenerated.
1165         * generated/maxloc0_16_i16.c: Regenerated.
1166         * generated/maxloc0_16_i2.c: Regenerated.
1167         * generated/maxloc0_16_i4.c: Regenerated.
1168         * generated/maxloc0_16_i8.c: Regenerated.
1169         * generated/maxloc0_16_r10.c: Regenerated.
1170         * generated/maxloc0_16_r16.c: Regenerated.
1171         * generated/maxloc0_16_r4.c: Regenerated.
1172         * generated/maxloc0_16_r8.c: Regenerated.
1173         * generated/maxloc0_4_i1.c: Regenerated.
1174         * generated/maxloc0_4_i16.c: Regenerated.
1175         * generated/maxloc0_4_i2.c: Regenerated.
1176         * generated/maxloc0_4_i4.c: Regenerated.
1177         * generated/maxloc0_4_i8.c: Regenerated.
1178         * generated/maxloc0_4_r10.c: Regenerated.
1179         * generated/maxloc0_4_r16.c: Regenerated.
1180         * generated/maxloc0_4_r4.c: Regenerated.
1181         * generated/maxloc0_4_r8.c: Regenerated.
1182         * generated/maxloc0_8_i1.c: Regenerated.
1183         * generated/maxloc0_8_i16.c: Regenerated.
1184         * generated/maxloc0_8_i2.c: Regenerated.
1185         * generated/maxloc0_8_i4.c: Regenerated.
1186         * generated/maxloc0_8_i8.c: Regenerated.
1187         * generated/maxloc0_8_r10.c: Regenerated.
1188         * generated/maxloc0_8_r16.c: Regenerated.
1189         * generated/maxloc0_8_r4.c: Regenerated.
1190         * generated/maxloc0_8_r8.c: Regenerated.
1191         * generated/maxloc1_16_i1.c: Regenerated.
1192         * generated/maxloc1_16_i16.c: Regenerated.
1193         * generated/maxloc1_16_i2.c: Regenerated.
1194         * generated/maxloc1_16_i4.c: Regenerated.
1195         * generated/maxloc1_16_i8.c: Regenerated.
1196         * generated/maxloc1_16_r10.c: Regenerated.
1197         * generated/maxloc1_16_r16.c: Regenerated.
1198         * generated/maxloc1_16_r4.c: Regenerated.
1199         * generated/maxloc1_16_r8.c: Regenerated.
1200         * generated/maxloc1_4_i1.c: Regenerated.
1201         * generated/maxloc1_4_i16.c: Regenerated.
1202         * generated/maxloc1_4_i2.c: Regenerated.
1203         * generated/maxloc1_4_i4.c: Regenerated.
1204         * generated/maxloc1_4_i8.c: Regenerated.
1205         * generated/maxloc1_4_r10.c: Regenerated.
1206         * generated/maxloc1_4_r16.c: Regenerated.
1207         * generated/maxloc1_4_r4.c: Regenerated.
1208         * generated/maxloc1_4_r8.c: Regenerated.
1209         * generated/maxloc1_8_i1.c: Regenerated.
1210         * generated/maxloc1_8_i16.c: Regenerated.
1211         * generated/maxloc1_8_i2.c: Regenerated.
1212         * generated/maxloc1_8_i4.c: Regenerated.
1213         * generated/maxloc1_8_i8.c: Regenerated.
1214         * generated/maxloc1_8_r10.c: Regenerated.
1215         * generated/maxloc1_8_r16.c: Regenerated.
1216         * generated/maxloc1_8_r4.c: Regenerated.
1217         * generated/maxloc1_8_r8.c: Regenerated.
1218         * generated/maxval_i1.c: Regenerated.
1219         * generated/maxval_i16.c: Regenerated.
1220         * generated/maxval_i2.c: Regenerated.
1221         * generated/maxval_i4.c: Regenerated.
1222         * generated/maxval_i8.c: Regenerated.
1223         * generated/maxval_r10.c: Regenerated.
1224         * generated/maxval_r16.c: Regenerated.
1225         * generated/maxval_r4.c: Regenerated.
1226         * generated/maxval_r8.c: Regenerated.
1227         * generated/minloc0_16_i1.c: Regenerated.
1228         * generated/minloc0_16_i16.c: Regenerated.
1229         * generated/minloc0_16_i2.c: Regenerated.
1230         * generated/minloc0_16_i4.c: Regenerated.
1231         * generated/minloc0_16_i8.c: Regenerated.
1232         * generated/minloc0_16_r10.c: Regenerated.
1233         * generated/minloc0_16_r16.c: Regenerated.
1234         * generated/minloc0_16_r4.c: Regenerated.
1235         * generated/minloc0_16_r8.c: Regenerated.
1236         * generated/minloc0_4_i1.c: Regenerated.
1237         * generated/minloc0_4_i16.c: Regenerated.
1238         * generated/minloc0_4_i2.c: Regenerated.
1239         * generated/minloc0_4_i4.c: Regenerated.
1240         * generated/minloc0_4_i8.c: Regenerated.
1241         * generated/minloc0_4_r10.c: Regenerated.
1242         * generated/minloc0_4_r16.c: Regenerated.
1243         * generated/minloc0_4_r4.c: Regenerated.
1244         * generated/minloc0_4_r8.c: Regenerated.
1245         * generated/minloc0_8_i1.c: Regenerated.
1246         * generated/minloc0_8_i16.c: Regenerated.
1247         * generated/minloc0_8_i2.c: Regenerated.
1248         * generated/minloc0_8_i4.c: Regenerated.
1249         * generated/minloc0_8_i8.c: Regenerated.
1250         * generated/minloc0_8_r10.c: Regenerated.
1251         * generated/minloc0_8_r16.c: Regenerated.
1252         * generated/minloc0_8_r4.c: Regenerated.
1253         * generated/minloc0_8_r8.c: Regenerated.
1254         * generated/minloc1_16_i1.c: Regenerated.
1255         * generated/minloc1_16_i16.c: Regenerated.
1256         * generated/minloc1_16_i2.c: Regenerated.
1257         * generated/minloc1_16_i4.c: Regenerated.
1258         * generated/minloc1_16_i8.c: Regenerated.
1259         * generated/minloc1_16_r10.c: Regenerated.
1260         * generated/minloc1_16_r16.c: Regenerated.
1261         * generated/minloc1_16_r4.c: Regenerated.
1262         * generated/minloc1_16_r8.c: Regenerated.
1263         * generated/minloc1_4_i1.c: Regenerated.
1264         * generated/minloc1_4_i16.c: Regenerated.
1265         * generated/minloc1_4_i2.c: Regenerated.
1266         * generated/minloc1_4_i4.c: Regenerated.
1267         * generated/minloc1_4_i8.c: Regenerated.
1268         * generated/minloc1_4_r10.c: Regenerated.
1269         * generated/minloc1_4_r16.c: Regenerated.
1270         * generated/minloc1_4_r4.c: Regenerated.
1271         * generated/minloc1_4_r8.c: Regenerated.
1272         * generated/minloc1_8_i1.c: Regenerated.
1273         * generated/minloc1_8_i16.c: Regenerated.
1274         * generated/minloc1_8_i2.c: Regenerated.
1275         * generated/minloc1_8_i4.c: Regenerated.
1276         * generated/minloc1_8_i8.c: Regenerated.
1277         * generated/minloc1_8_r10.c: Regenerated.
1278         * generated/minloc1_8_r16.c: Regenerated.
1279         * generated/minloc1_8_r4.c: Regenerated.
1280         * generated/minloc1_8_r8.c: Regenerated.
1281         * generated/minval_i1.c: Regenerated.
1282         * generated/minval_i16.c: Regenerated.
1283         * generated/minval_i2.c: Regenerated.
1284         * generated/minval_i4.c: Regenerated.
1285         * generated/minval_i8.c: Regenerated.
1286         * generated/minval_r10.c: Regenerated.
1287         * generated/minval_r16.c: Regenerated.
1288         * generated/minval_r4.c: Regenerated.
1289         * generated/minval_r8.c: Regenerated.
1290         * generated/pack_c10.c: Regenerated.
1291         * generated/pack_c16.c: Regenerated.
1292         * generated/pack_c4.c: Regenerated.
1293         * generated/pack_c8.c: Regenerated.
1294         * generated/pack_i1.c: Regenerated.
1295         * generated/pack_i16.c: Regenerated.
1296         * generated/pack_i2.c: Regenerated.
1297         * generated/pack_i4.c: Regenerated.
1298         * generated/pack_i8.c: Regenerated.
1299         * generated/pack_r10.c: Regenerated.
1300         * generated/pack_r16.c: Regenerated.
1301         * generated/pack_r4.c: Regenerated.
1302         * generated/pack_r8.c: Regenerated.
1303         * generated/product_c10.c: Regenerated.
1304         * generated/product_c16.c: Regenerated.
1305         * generated/product_c4.c: Regenerated.
1306         * generated/product_c8.c: Regenerated.
1307         * generated/product_i1.c: Regenerated.
1308         * generated/product_i16.c: Regenerated.
1309         * generated/product_i2.c: Regenerated.
1310         * generated/product_i4.c: Regenerated.
1311         * generated/product_i8.c: Regenerated.
1312         * generated/product_r10.c: Regenerated.
1313         * generated/product_r16.c: Regenerated.
1314         * generated/product_r4.c: Regenerated.
1315         * generated/product_r8.c: Regenerated.
1316         * generated/reshape_c10.c: Regenerated.
1317         * generated/reshape_c16.c: Regenerated.
1318         * generated/reshape_c4.c: Regenerated.
1319         * generated/reshape_c8.c: Regenerated.
1320         * generated/reshape_i16.c: Regenerated.
1321         * generated/reshape_i4.c: Regenerated.
1322         * generated/reshape_i8.c: Regenerated.
1323         * generated/reshape_r10.c: Regenerated.
1324         * generated/reshape_r16.c: Regenerated.
1325         * generated/reshape_r4.c: Regenerated.
1326         * generated/reshape_r8.c: Regenerated.
1327         * generated/shape_i16.c: Regenerated.
1328         * generated/shape_i4.c: Regenerated.
1329         * generated/shape_i8.c: Regenerated.
1330         * generated/spread_c10.c: Regenerated.
1331         * generated/spread_c16.c: Regenerated.
1332         * generated/spread_c4.c: Regenerated.
1333         * generated/spread_c8.c: Regenerated.
1334         * generated/spread_i1.c: Regenerated.
1335         * generated/spread_i16.c: Regenerated.
1336         * generated/spread_i2.c: Regenerated.
1337         * generated/spread_i4.c: Regenerated.
1338         * generated/spread_i8.c: Regenerated.
1339         * generated/spread_r10.c: Regenerated.
1340         * generated/spread_r16.c: Regenerated.
1341         * generated/spread_r4.c: Regenerated.
1342         * generated/spread_r8.c: Regenerated.
1343         * generated/sum_c10.c: Regenerated.
1344         * generated/sum_c16.c: Regenerated.
1345         * generated/sum_c4.c: Regenerated.
1346         * generated/sum_c8.c: Regenerated.
1347         * generated/sum_i1.c: Regenerated.
1348         * generated/sum_i16.c: Regenerated.
1349         * generated/sum_i2.c: Regenerated.
1350         * generated/sum_i4.c: Regenerated.
1351         * generated/sum_i8.c: Regenerated.
1352         * generated/sum_r10.c: Regenerated.
1353         * generated/sum_r16.c: Regenerated.
1354         * generated/sum_r4.c: Regenerated.
1355         * generated/sum_r8.c: Regenerated.
1356         * generated/transpose_c10.c: Regenerated.
1357         * generated/transpose_c16.c: Regenerated.
1358         * generated/transpose_c4.c: Regenerated.
1359         * generated/transpose_c8.c: Regenerated.
1360         * generated/transpose_i16.c: Regenerated.
1361         * generated/transpose_i4.c: Regenerated.
1362         * generated/transpose_i8.c: Regenerated.
1363         * generated/transpose_r10.c: Regenerated.
1364         * generated/transpose_r16.c: Regenerated.
1365         * generated/transpose_r4.c: Regenerated.
1366         * generated/transpose_r8.c: Regenerated.
1367         * generated/unpack_c10.c: Regenerated.
1368         * generated/unpack_c16.c: Regenerated.
1369         * generated/unpack_c4.c: Regenerated.
1370         * generated/unpack_c8.c: Regenerated.
1371         * generated/unpack_i1.c: Regenerated.
1372         * generated/unpack_i16.c: Regenerated.
1373         * generated/unpack_i2.c: Regenerated.
1374         * generated/unpack_i4.c: Regenerated.
1375         * generated/unpack_i8.c: Regenerated.
1376         * generated/unpack_r10.c: Regenerated.
1377         * generated/unpack_r16.c: Regenerated.
1378         * generated/unpack_r4.c: Regenerated.
1379         * generated/unpack_r8.c: Regenerated.
1380
1381 2009-06-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1382
1383         * fmain.c (main): Don't PREFIX set_args.
1384         * libgfortran.h (set_args): Use iexport_proto.
1385         * runtime/main.c (set_args): Use iexport.
1386
1387 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1388
1389         PR libfortran/40008
1390         * libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT.
1391         * io/open.c (st_open): Don't error on negative unit number if NEWUNIT
1392         was specified. If NEWUNIT is specified, call new function to get the
1393         unique unit number and assign it.
1394         * io/io.h (st_parameter_open): Add pointer to newunit.  Add prototype for
1395         next_available_newunit. Add prototype for new function,
1396         get_unique_unit_number.
1397         * io/unit.c: Declare next_available_newunit. Define the first newunit
1398         number. (init_units): Initialize next_available_unit.
1399         (get_unique_unit_number): New function. Fix whitespace and comments.
1400         * io/transfer.c (data_transfer_init): Update error message to not be
1401         specific to OPEN statements.
1402
1403 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1404
1405         PR libfortran/40334
1406         * io/list_read.c (list_formatted_read_scalar): Set the end file
1407         conditions after a return from EOF error.
1408
1409 2009-06-04  Janne Blomqvist  <jb@gcc.gnu.org>
1410
1411         PR libfortran/40330
1412         * io/format.c (free_format_hash_table): Also free and nullify hash key.
1413         (save_parsed_format): Copy string rather than pointer copy.
1414         
1415 2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1416
1417         PR fortran/40019
1418         * intrinsics/bit_intrinsics.c: New file.
1419         * gfortran.map (GFORTRAN_1.2): New list.
1420         * Makefile.am: Add intrinsics/bit_intrinsics.c.
1421         * Makefile.in: Regenerate.
1422
1423 2009-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
1424
1425         PR libfortran/40190
1426         * configure.ac: Check for localtime_r and gmtime_r.
1427         * intrinsics/date_and_time.c: Add fallback implementations for
1428         localtime_r and gmtime_r.
1429         (date_and_time): Change to use localtime_r and gmtime_r instead of
1430         localtime and gmtime, respectively.
1431         (itime0): Use localtime_r instead of localtime.
1432         (ltime_0): Likewise.
1433         (gmtime_0): Use gmtime_r instead of gmtime.
1434         * config.h.in: Regenerated
1435         * configure: Regenerated.
1436
1437 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1438
1439         PR fortran/39178
1440         * runtime/main.c (store_exe_path): Remove static attribute.
1441         * libgfortran.h: Add back store_exe_path prototype.
1442
1443 2009-05-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1444
1445         PR libfortran/40187
1446         * intrinsics/iso_c_binding.c (c_f_pointer_u0):  Take care
1447         of stride in "shape" argument.
1448
1449 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1450
1451         PR fortran/39178
1452         * runtime/main.c (store_exe_path): Make static
1453         and multiple-times callable.
1454         (set_args): Call store_exe_path.
1455         * libgfortran.h: Remove store_exe_path prototype.
1456         * fmain.c (main): Remove store_exe_path call.
1457
1458 2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1459
1460         PR libfortran/37754
1461         * io/write_float.def: Simplify format calculation.
1462         
1463 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1464
1465         PR fortran/22423
1466         * io/transfer.c (read_block_direct): Avoid warning.
1467         * runtime/string.c (compare0): Avoid warning.
1468
1469 2009-04-30  Janne Blomqvist  <jb@gcc.gnu.org>
1470
1471         PR libfortran/39667
1472         * io/file_pos.c (st_rewind): Don't truncate or flush.
1473         * io/intrinsics.c (fgetc): Flush if switching mode.
1474         (fputc): Likewise.
1475
1476 2009-04-18  Janne Blomqvist  <jb@gcc.gnu.org>
1477
1478         PR libfortran/39782
1479         * io/transfer.c (data_transfer_init): Don't flush before seek.
1480         (finalize_transfer): Remove extra flush.
1481
1482 2009-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1483
1484         * io/io.h (is_preconnected): Remove prototype.
1485         * io/unix.c (is_preconnected): Remove function.
1486
1487 2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1488
1489         * configure.ac: Test for -ffunction-sections -fdata-sections and
1490         set SECTION_FLAGS accordingly.
1491         * configure: Regenerate.
1492
1493         * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS.
1494         * Makefile.in: Regenerate.
1495
1496 2009-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1497
1498         PR libfortran/38668
1499         * io/transfer.c (finalize_transfer): Don't flush for advance='no'.
1500
1501 2009-04-15 Danny Smith  <dannysmith@clear.net.nz>
1502
1503         * io/write.c (itoa) : Rename back to gfc_itoa.
1504         (write_i): Adjust call to write_decimal.
1505         (write_integer):  Use gfc_itoa.
1506
1507 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1508
1509         * io/io.h (move_pos_offset): Remove prototype.
1510         * io/transfer.c (formatted_transfer_scalar_read): Use sseek
1511         instead of move_pos_offset.
1512         * io/unix.c (move_pos_offset): Remove.
1513
1514 2009-04-10  Janne Blomqvist  <jb@gcc.gnu.org>
1515
1516         PR libfortran/39665 libfortran/39702 libfortran/39709
1517         * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
1518         * io/list_read.c (read_complex): Read directly into user pointer.
1519         (read_real): Likewise.
1520         (list_formatted_read_scalar): Update read_complex and read_real calls.
1521         (nml_read_obj): Read directly into user pointer.
1522
1523 2009-04-09  Janne Blomqvist  <jb@gcc.gnu.org>
1524
1525         PR libfortran/39665
1526         * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
1527         * io/read.c (convert_real): Add note about alignment requirements.
1528
1529 2009-04-09  Nick Clifton  <nickc@redhat.com>
1530
1531         * m4/cshift0.m4: Change copyright header to refer to version 3
1532         of the GNU General Public License with version 3.1 of the GCC
1533         Runtime Library Exception and to point readers at the COPYING3
1534         and COPYING3.RUNTIME files and the FSF's license web page.
1535         * c99_protos.h: Likewise.
1536         * config/fpu-387.h: Likewise.
1537         * config/fpu-aix.h: Likewise.
1538         * config/fpu-generic.h: Likewise.
1539         * config/fpu-glibc.h: Likewise.
1540         * config/fpu-sysv.h: Likewise.
1541         * intrinsics/abort.c: Likewise.
1542         * intrinsics/access.c: Likewise.
1543         * intrinsics/args.c: Likewise.
1544         * intrinsics/associated.c: Likewise.
1545         * intrinsics/c99_functions.c: Likewise.
1546         * intrinsics/chdir.c: Likewise.
1547         * intrinsics/chmod.c: Likewise.
1548         * intrinsics/clock.c: Likewise.
1549         * intrinsics/cpu_time.c: Likewise.
1550         * intrinsics/cshift0.c: Likewise.
1551         * intrinsics/ctime.c: Likewise.
1552         * intrinsics/date_and_time.c: Likewise.
1553         * intrinsics/dprod_r8.f90: Likewise.
1554         * intrinsics/dtime.c: Likewise.
1555         * intrinsics/env.c: Likewise.
1556         * intrinsics/eoshift0.c: Likewise.
1557         * intrinsics/eoshift2.c: Likewise.
1558         * intrinsics/erfc_scaled.c: Likewise.
1559         * intrinsics/erfc_scaled_inc.c: Likewise.
1560         * intrinsics/etime.c: Likewise.
1561         * intrinsics/exit.c: Likewise.
1562         * intrinsics/f2c_specifics.F90: Likewise.
1563         * intrinsics/fnum.c: Likewise.
1564         * intrinsics/gerror.c: Likewise.
1565         * intrinsics/getXid.c: Likewise.
1566         * intrinsics/getcwd.c: Likewise.
1567         * intrinsics/getlog.c: Likewise.
1568         * intrinsics/hostnm.c: Likewise.
1569         * intrinsics/ierrno.c: Likewise.
1570         * intrinsics/ishftc.c: Likewise.
1571         * intrinsics/iso_c_binding.c: Likewise.
1572         * intrinsics/iso_c_binding.h: Likewise.
1573         * intrinsics/iso_c_generated_procs.c: Likewise.
1574         * intrinsics/kill.c: Likewise.
1575         * intrinsics/link.c: Likewise.
1576         * intrinsics/malloc.c: Likewise.
1577         * intrinsics/move_alloc.c: Likewise.
1578         * intrinsics/mvbits.c: Likewise.
1579         * intrinsics/pack_generic.c: Likewise.
1580         * intrinsics/perror.c: Likewise.
1581         * intrinsics/rand.c: Likewise.
1582         * intrinsics/random.c: Likewise.
1583         * intrinsics/rename.c: Likewise.
1584         * intrinsics/reshape_generic.c: Likewise.
1585         * intrinsics/reshape_packed.c: Likewise.
1586         * intrinsics/selected_char_kind.c: Likewise.
1587         * intrinsics/selected_int_kind.f90: Likewise.
1588         * intrinsics/selected_real_kind.f90: Likewise.
1589         * intrinsics/signal.c: Likewise.
1590         * intrinsics/size.c: Likewise.
1591         * intrinsics/sleep.c: Likewise.
1592         * intrinsics/spread_generic.c: Likewise.
1593         * intrinsics/stat.c: Likewise.
1594         * intrinsics/string_intrinsics.c: Likewise.
1595         * intrinsics/string_intrinsics_inc.c: Likewise.
1596         * intrinsics/symlnk.c: Likewise.
1597         * intrinsics/system.c: Likewise.
1598         * intrinsics/system_clock.c: Likewise.
1599         * intrinsics/time.c: Likewise.
1600         * intrinsics/time_1.h: Likewise.
1601         * intrinsics/transpose_generic.c: Likewise.
1602         * intrinsics/umask.c: Likewise.
1603         * intrinsics/unlink.c: Likewise.
1604         * intrinsics/unpack_generic.c: Likewise.
1605         * io/close.c: Likewise.
1606         * io/fbuf.c: Likewise.
1607         * io/file_pos.c: Likewise.
1608         * io/format.c: Likewise.
1609         * io/inquire.c: Likewise.
1610         * io/intrinsics.c: Likewise.
1611         * io/io.h: Likewise.
1612         * io/list_read.c: Likewise.
1613         * io/lock.c: Likewise.
1614         * io/open.c: Likewise.
1615         * io/read.c: Likewise.
1616         * io/size_from_kind.c: Likewise.
1617         * io/transfer.c: Likewise.
1618         * io/unit.c: Likewise.
1619         * io/unix.c: Likewise.
1620         * io/write.c: Likewise.
1621         * io/write_float.def: Likewise.
1622         * libgfortran.h: Likewise.
1623         * m4/all.m4: Likewise.
1624         * m4/any.m4: Likewise.
1625         * m4/count.m4: Likewise.
1626         * m4/cshift1.m4: Likewise.
1627         * m4/eoshift1.m4: Likewise.
1628         * m4/eoshift3.m4: Likewise.
1629         * m4/exponent.m4: Likewise.
1630         * m4/fraction.m4: Likewise.
1631         * m4/head.m4: Likewise.
1632         * m4/in_pack.m4: Likewise.
1633         * m4/in_unpack.m4: Likewise.
1634         * m4/matmul.m4: Likewise.
1635         * m4/matmull.m4: Likewise.
1636         * m4/maxloc0.m4: Likewise.
1637         * m4/maxloc1.m4: Likewise.
1638         * m4/maxval.m4: Likewise.
1639         * m4/minloc0.m4: Likewise.
1640         * m4/minloc1.m4: Likewise.
1641         * m4/minval.m4: Likewise.
1642         * m4/nearest.m4: Likewise.
1643         * m4/pack.m4: Likewise.
1644         * m4/pow.m4: Likewise.
1645         * m4/product.m4: Likewise.
1646         * m4/reshape.m4: Likewise.
1647         * m4/rrspacing.m4: Likewise.
1648         * m4/set_exponent.m4: Likewise.
1649         * m4/shape.m4: Likewise.
1650         * m4/spacing.m4: Likewise.
1651         * m4/spread.m4: Likewise.
1652         * m4/sum.m4: Likewise.
1653         * m4/transpose.m4: Likewise.
1654         * m4/unpack.m4: Likewise.
1655         * runtime/backtrace.c: Likewise.
1656         * runtime/compile_options.c: Likewise.
1657         * runtime/convert_char.c: Likewise.
1658         * runtime/environ.c: Likewise.
1659         * runtime/error.c: Likewise.
1660         * runtime/in_pack_generic.c: Likewise.
1661         * runtime/in_unpack_generic.c: Likewise.
1662         * runtime/main.c: Likewise.
1663         * runtime/memory.c: Likewise.
1664         * runtime/pause.c: Likewise.
1665         * runtime/select.c: Likewise.
1666         * runtime/select_inc.c: Likewise.
1667         * runtime/stop.c: Likewise.
1668         * runtime/string.c: Likewise.
1669         * generated/_abs_c10.F90: Regenerate.
1670         * generated/_abs_c16.F90: Regenerate.
1671         * generated/_abs_c4.F90: Regenerate.
1672         * generated/_abs_c8.F90: Regenerate.
1673         * generated/_abs_i16.F90: Regenerate.
1674         * generated/_abs_i4.F90: Regenerate.
1675         * generated/_abs_i8.F90: Regenerate.
1676         * generated/_abs_r10.F90: Regenerate.
1677         * generated/_abs_r16.F90: Regenerate.
1678         * generated/_abs_r4.F90: Regenerate.
1679         * generated/_abs_r8.F90: Regenerate.
1680         * generated/_acos_r10.F90: Regenerate.
1681         * generated/_acos_r16.F90: Regenerate.
1682         * generated/_acos_r4.F90: Regenerate.
1683         * generated/_acos_r8.F90: Regenerate.
1684         * generated/_acosh_r10.F90: Regenerate.
1685         * generated/_acosh_r16.F90: Regenerate.
1686         * generated/_acosh_r4.F90: Regenerate.
1687         * generated/_acosh_r8.F90: Regenerate.
1688         * generated/_aimag_c10.F90: Regenerate.
1689         * generated/_aimag_c16.F90: Regenerate.
1690         * generated/_aimag_c4.F90: Regenerate.
1691         * generated/_aimag_c8.F90: Regenerate.
1692         * generated/_aint_r10.F90: Regenerate.
1693         * generated/_aint_r16.F90: Regenerate.
1694         * generated/_aint_r4.F90: Regenerate.
1695         * generated/_aint_r8.F90: Regenerate.
1696         * generated/_anint_r10.F90: Regenerate.
1697         * generated/_anint_r16.F90: Regenerate.
1698         * generated/_anint_r4.F90: Regenerate.
1699         * generated/_anint_r8.F90: Regenerate.
1700         * generated/_asin_r10.F90: Regenerate.
1701         * generated/_asin_r16.F90: Regenerate.
1702         * generated/_asin_r4.F90: Regenerate.
1703         * generated/_asin_r8.F90: Regenerate.
1704         * generated/_asinh_r10.F90: Regenerate.
1705         * generated/_asinh_r16.F90: Regenerate.
1706         * generated/_asinh_r4.F90: Regenerate.
1707         * generated/_asinh_r8.F90: Regenerate.
1708         * generated/_atan2_r10.F90: Regenerate.
1709         * generated/_atan2_r16.F90: Regenerate.
1710         * generated/_atan2_r4.F90: Regenerate.
1711         * generated/_atan2_r8.F90: Regenerate.
1712         * generated/_atan_r10.F90: Regenerate.
1713         * generated/_atan_r16.F90: Regenerate.
1714         * generated/_atan_r4.F90: Regenerate.
1715         * generated/_atan_r8.F90: Regenerate.
1716         * generated/_atanh_r10.F90: Regenerate.
1717         * generated/_atanh_r16.F90: Regenerate.
1718         * generated/_atanh_r4.F90: Regenerate.
1719         * generated/_atanh_r8.F90: Regenerate.
1720         * generated/_conjg_c10.F90: Regenerate.
1721         * generated/_conjg_c16.F90: Regenerate.
1722         * generated/_conjg_c4.F90: Regenerate.
1723         * generated/_conjg_c8.F90: Regenerate.
1724         * generated/_cos_c10.F90: Regenerate.
1725         * generated/_cos_c16.F90: Regenerate.
1726         * generated/_cos_c4.F90: Regenerate.
1727         * generated/_cos_c8.F90: Regenerate.
1728         * generated/_cos_r10.F90: Regenerate.
1729         * generated/_cos_r16.F90: Regenerate.
1730         * generated/_cos_r4.F90: Regenerate.
1731         * generated/_cos_r8.F90: Regenerate.
1732         * generated/_cosh_r10.F90: Regenerate.
1733         * generated/_cosh_r16.F90: Regenerate.
1734         * generated/_cosh_r4.F90: Regenerate.
1735         * generated/_cosh_r8.F90: Regenerate.
1736         * generated/_dim_i16.F90: Regenerate.
1737         * generated/_dim_i4.F90: Regenerate.
1738         * generated/_dim_i8.F90: Regenerate.
1739         * generated/_dim_r10.F90: Regenerate.
1740         * generated/_dim_r16.F90: Regenerate.
1741         * generated/_dim_r4.F90: Regenerate.
1742         * generated/_dim_r8.F90: Regenerate.
1743         * generated/_exp_c10.F90: Regenerate.
1744         * generated/_exp_c16.F90: Regenerate.
1745         * generated/_exp_c4.F90: Regenerate.
1746         * generated/_exp_c8.F90: Regenerate.
1747         * generated/_exp_r10.F90: Regenerate.
1748         * generated/_exp_r16.F90: Regenerate.
1749         * generated/_exp_r4.F90: Regenerate.
1750         * generated/_exp_r8.F90: Regenerate.
1751         * generated/_log10_r10.F90: Regenerate.
1752         * generated/_log10_r16.F90: Regenerate.
1753         * generated/_log10_r4.F90: Regenerate.
1754         * generated/_log10_r8.F90: Regenerate.
1755         * generated/_log_c10.F90: Regenerate.
1756         * generated/_log_c16.F90: Regenerate.
1757         * generated/_log_c4.F90: Regenerate.
1758         * generated/_log_c8.F90: Regenerate.
1759         * generated/_log_r10.F90: Regenerate.
1760         * generated/_log_r16.F90: Regenerate.
1761         * generated/_log_r4.F90: Regenerate.
1762         * generated/_log_r8.F90: Regenerate.
1763         * generated/_mod_i16.F90: Regenerate.
1764         * generated/_mod_i4.F90: Regenerate.
1765         * generated/_mod_i8.F90: Regenerate.
1766         * generated/_mod_r10.F90: Regenerate.
1767         * generated/_mod_r16.F90: Regenerate.
1768         * generated/_mod_r4.F90: Regenerate.
1769         * generated/_mod_r8.F90: Regenerate.
1770         * generated/_sign_i16.F90: Regenerate.
1771         * generated/_sign_i4.F90: Regenerate.
1772         * generated/_sign_i8.F90: Regenerate.
1773         * generated/_sign_r10.F90: Regenerate.
1774         * generated/_sign_r16.F90: Regenerate.
1775         * generated/_sign_r4.F90: Regenerate.
1776         * generated/_sign_r8.F90: Regenerate.
1777         * generated/_sin_c10.F90: Regenerate.
1778         * generated/_sin_c16.F90: Regenerate.
1779         * generated/_sin_c4.F90: Regenerate.
1780         * generated/_sin_c8.F90: Regenerate.
1781         * generated/_sin_r10.F90: Regenerate.
1782         * generated/_sin_r16.F90: Regenerate.
1783         * generated/_sin_r4.F90: Regenerate.
1784         * generated/_sin_r8.F90: Regenerate.
1785         * generated/_sinh_r10.F90: Regenerate.
1786         * generated/_sinh_r16.F90: Regenerate.
1787         * generated/_sinh_r4.F90: Regenerate.
1788         * generated/_sinh_r8.F90: Regenerate.
1789         * generated/_sqrt_c10.F90: Regenerate.
1790         * generated/_sqrt_c16.F90: Regenerate.
1791         * generated/_sqrt_c4.F90: Regenerate.
1792         * generated/_sqrt_c8.F90: Regenerate.
1793         * generated/_sqrt_r10.F90: Regenerate.
1794         * generated/_sqrt_r16.F90: Regenerate.
1795         * generated/_sqrt_r4.F90: Regenerate.
1796         * generated/_sqrt_r8.F90: Regenerate.
1797         * generated/_tan_r10.F90: Regenerate.
1798         * generated/_tan_r16.F90: Regenerate.
1799         * generated/_tan_r4.F90: Regenerate.
1800         * generated/_tan_r8.F90: Regenerate.
1801         * generated/_tanh_r10.F90: Regenerate.
1802         * generated/_tanh_r16.F90: Regenerate.
1803         * generated/_tanh_r4.F90: Regenerate.
1804         * generated/_tanh_r8.F90: Regenerate.
1805         * generated/all_l1.c: Regenerate.
1806         * generated/all_l16.c: Regenerate.
1807         * generated/all_l2.c: Regenerate.
1808         * generated/all_l4.c: Regenerate.
1809         * generated/all_l8.c: Regenerate.
1810         * generated/any_l1.c: Regenerate.
1811         * generated/any_l16.c: Regenerate.
1812         * generated/any_l2.c: Regenerate.
1813         * generated/any_l4.c: Regenerate.
1814         * generated/any_l8.c: Regenerate.
1815         * generated/count_16_l.c: Regenerate.
1816         * generated/count_1_l.c: Regenerate.
1817         * generated/count_2_l.c: Regenerate.
1818         * generated/count_4_l.c: Regenerate.
1819         * generated/count_8_l.c: Regenerate.
1820         * generated/cshift0_c10.c: Regenerate.
1821         * generated/cshift0_c16.c: Regenerate.
1822         * generated/cshift0_c4.c: Regenerate.
1823         * generated/cshift0_c8.c: Regenerate.
1824         * generated/cshift0_i1.c: Regenerate.
1825         * generated/cshift0_i16.c: Regenerate.
1826         * generated/cshift0_i2.c: Regenerate.
1827         * generated/cshift0_i4.c: Regenerate.
1828         * generated/cshift0_i8.c: Regenerate.
1829         * generated/cshift0_r10.c: Regenerate.
1830         * generated/cshift0_r16.c: Regenerate.
1831         * generated/cshift0_r4.c: Regenerate.
1832         * generated/cshift0_r8.c: Regenerate.
1833         * generated/cshift1_16.c: Regenerate.
1834         * generated/cshift1_4.c: Regenerate.
1835         * generated/cshift1_8.c: Regenerate.
1836         * generated/eoshift1_16.c: Regenerate.
1837         * generated/eoshift1_4.c: Regenerate.
1838         * generated/eoshift1_8.c: Regenerate.
1839         * generated/eoshift3_16.c: Regenerate.
1840         * generated/eoshift3_4.c: Regenerate.
1841         * generated/eoshift3_8.c: Regenerate.
1842         * generated/exponent_r10.c: Regenerate.
1843         * generated/exponent_r16.c: Regenerate.
1844         * generated/exponent_r4.c: Regenerate.
1845         * generated/exponent_r8.c: Regenerate.
1846         * generated/fraction_r10.c: Regenerate.
1847         * generated/fraction_r16.c: Regenerate.
1848         * generated/fraction_r4.c: Regenerate.
1849         * generated/fraction_r8.c: Regenerate.
1850         * generated/in_pack_c10.c: Regenerate.
1851         * generated/in_pack_c16.c: Regenerate.
1852         * generated/in_pack_c4.c: Regenerate.
1853         * generated/in_pack_c8.c: Regenerate.
1854         * generated/in_pack_i1.c: Regenerate.
1855         * generated/in_pack_i16.c: Regenerate.
1856         * generated/in_pack_i2.c: Regenerate.
1857         * generated/in_pack_i4.c: Regenerate.
1858         * generated/in_pack_i8.c: Regenerate.
1859         * generated/in_pack_r10.c: Regenerate.
1860         * generated/in_pack_r16.c: Regenerate.
1861         * generated/in_pack_r4.c: Regenerate.
1862         * generated/in_pack_r8.c: Regenerate.
1863         * generated/in_unpack_c10.c: Regenerate.
1864         * generated/in_unpack_c16.c: Regenerate.
1865         * generated/in_unpack_c4.c: Regenerate.
1866         * generated/in_unpack_c8.c: Regenerate.
1867         * generated/in_unpack_i1.c: Regenerate.
1868         * generated/in_unpack_i16.c: Regenerate.
1869         * generated/in_unpack_i2.c: Regenerate.
1870         * generated/in_unpack_i4.c: Regenerate.
1871         * generated/in_unpack_i8.c: Regenerate.
1872         * generated/in_unpack_r10.c: Regenerate.
1873         * generated/in_unpack_r16.c: Regenerate.
1874         * generated/in_unpack_r4.c: Regenerate.
1875         * generated/in_unpack_r8.c: Regenerate.
1876         * generated/matmul_c10.c: Regenerate.
1877         * generated/matmul_c16.c: Regenerate.
1878         * generated/matmul_c4.c: Regenerate.
1879         * generated/matmul_c8.c: Regenerate.
1880         * generated/matmul_i1.c: Regenerate.
1881         * generated/matmul_i16.c: Regenerate.
1882         * generated/matmul_i2.c: Regenerate.
1883         * generated/matmul_i4.c: Regenerate.
1884         * generated/matmul_i8.c: Regenerate.
1885         * generated/matmul_l16.c: Regenerate.
1886         * generated/matmul_l4.c: Regenerate.
1887         * generated/matmul_l8.c: Regenerate.
1888         * generated/matmul_r10.c: Regenerate.
1889         * generated/matmul_r16.c: Regenerate.
1890         * generated/matmul_r4.c: Regenerate.
1891         * generated/matmul_r8.c: Regenerate.
1892         * generated/maxloc0_16_i1.c: Regenerate.
1893         * generated/maxloc0_16_i16.c: Regenerate.
1894         * generated/maxloc0_16_i2.c: Regenerate.
1895         * generated/maxloc0_16_i4.c: Regenerate.
1896         * generated/maxloc0_16_i8.c: Regenerate.
1897         * generated/maxloc0_16_r10.c: Regenerate.
1898         * generated/maxloc0_16_r16.c: Regenerate.
1899         * generated/maxloc0_16_r4.c: Regenerate.
1900         * generated/maxloc0_16_r8.c: Regenerate.
1901         * generated/maxloc0_4_i1.c: Regenerate.
1902         * generated/maxloc0_4_i16.c: Regenerate.
1903         * generated/maxloc0_4_i2.c: Regenerate.
1904         * generated/maxloc0_4_i4.c: Regenerate.
1905         * generated/maxloc0_4_i8.c: Regenerate.
1906         * generated/maxloc0_4_r10.c: Regenerate.
1907         * generated/maxloc0_4_r16.c: Regenerate.
1908         * generated/maxloc0_4_r4.c: Regenerate.
1909         * generated/maxloc0_4_r8.c: Regenerate.
1910         * generated/maxloc0_8_i1.c: Regenerate.
1911         * generated/maxloc0_8_i16.c: Regenerate.
1912         * generated/maxloc0_8_i2.c: Regenerate.
1913         * generated/maxloc0_8_i4.c: Regenerate.
1914         * generated/maxloc0_8_i8.c: Regenerate.
1915         * generated/maxloc0_8_r10.c: Regenerate.
1916         * generated/maxloc0_8_r16.c: Regenerate.
1917         * generated/maxloc0_8_r4.c: Regenerate.
1918         * generated/maxloc0_8_r8.c: Regenerate.
1919         * generated/maxloc1_16_i1.c: Regenerate.
1920         * generated/maxloc1_16_i16.c: Regenerate.
1921         * generated/maxloc1_16_i2.c: Regenerate.
1922         * generated/maxloc1_16_i4.c: Regenerate.
1923         * generated/maxloc1_16_i8.c: Regenerate.
1924         * generated/maxloc1_16_r10.c: Regenerate.
1925         * generated/maxloc1_16_r16.c: Regenerate.
1926         * generated/maxloc1_16_r4.c: Regenerate.
1927         * generated/maxloc1_16_r8.c: Regenerate.
1928         * generated/maxloc1_4_i1.c: Regenerate.
1929         * generated/maxloc1_4_i16.c: Regenerate.
1930         * generated/maxloc1_4_i2.c: Regenerate.
1931         * generated/maxloc1_4_i4.c: Regenerate.
1932         * generated/maxloc1_4_i8.c: Regenerate.
1933         * generated/maxloc1_4_r10.c: Regenerate.
1934         * generated/maxloc1_4_r16.c: Regenerate.
1935         * generated/maxloc1_4_r4.c: Regenerate.
1936         * generated/maxloc1_4_r8.c: Regenerate.
1937         * generated/maxloc1_8_i1.c: Regenerate.
1938         * generated/maxloc1_8_i16.c: Regenerate.
1939         * generated/maxloc1_8_i2.c: Regenerate.
1940         * generated/maxloc1_8_i4.c: Regenerate.
1941         * generated/maxloc1_8_i8.c: Regenerate.
1942         * generated/maxloc1_8_r10.c: Regenerate.
1943         * generated/maxloc1_8_r16.c: Regenerate.
1944         * generated/maxloc1_8_r4.c: Regenerate.
1945         * generated/maxloc1_8_r8.c: Regenerate.
1946         * generated/maxval_i1.c: Regenerate.
1947         * generated/maxval_i16.c: Regenerate.
1948         * generated/maxval_i2.c: Regenerate.
1949         * generated/maxval_i4.c: Regenerate.
1950         * generated/maxval_i8.c: Regenerate.
1951         * generated/maxval_r10.c: Regenerate.
1952         * generated/maxval_r16.c: Regenerate.
1953         * generated/maxval_r4.c: Regenerate.
1954         * generated/maxval_r8.c: Regenerate.
1955         * generated/minloc0_16_i1.c: Regenerate.
1956         * generated/minloc0_16_i16.c: Regenerate.
1957         * generated/minloc0_16_i2.c: Regenerate.
1958         * generated/minloc0_16_i4.c: Regenerate.
1959         * generated/minloc0_16_i8.c: Regenerate.
1960         * generated/minloc0_16_r10.c: Regenerate.
1961         * generated/minloc0_16_r16.c: Regenerate.
1962         * generated/minloc0_16_r4.c: Regenerate.
1963         * generated/minloc0_16_r8.c: Regenerate.
1964         * generated/minloc0_4_i1.c: Regenerate.
1965         * generated/minloc0_4_i16.c: Regenerate.
1966         * generated/minloc0_4_i2.c: Regenerate.
1967         * generated/minloc0_4_i4.c: Regenerate.
1968         * generated/minloc0_4_i8.c: Regenerate.
1969         * generated/minloc0_4_r10.c: Regenerate.
1970         * generated/minloc0_4_r16.c: Regenerate.
1971         * generated/minloc0_4_r4.c: Regenerate.
1972         * generated/minloc0_4_r8.c: Regenerate.
1973         * generated/minloc0_8_i1.c: Regenerate.
1974         * generated/minloc0_8_i16.c: Regenerate.
1975         * generated/minloc0_8_i2.c: Regenerate.
1976         * generated/minloc0_8_i4.c: Regenerate.
1977         * generated/minloc0_8_i8.c: Regenerate.
1978         * generated/minloc0_8_r10.c: Regenerate.
1979         * generated/minloc0_8_r16.c: Regenerate.
1980         * generated/minloc0_8_r4.c: Regenerate.
1981         * generated/minloc0_8_r8.c: Regenerate.
1982         * generated/minloc1_16_i1.c: Regenerate.
1983         * generated/minloc1_16_i16.c: Regenerate.
1984         * generated/minloc1_16_i2.c: Regenerate.
1985         * generated/minloc1_16_i4.c: Regenerate.
1986         * generated/minloc1_16_i8.c: Regenerate.
1987         * generated/minloc1_16_r10.c: Regenerate.
1988         * generated/minloc1_16_r16.c: Regenerate.
1989         * generated/minloc1_16_r4.c: Regenerate.
1990         * generated/minloc1_16_r8.c: Regenerate.
1991         * generated/minloc1_4_i1.c: Regenerate.
1992         * generated/minloc1_4_i16.c: Regenerate.
1993         * generated/minloc1_4_i2.c: Regenerate.
1994         * generated/minloc1_4_i4.c: Regenerate.
1995         * generated/minloc1_4_i8.c: Regenerate.
1996         * generated/minloc1_4_r10.c: Regenerate.
1997         * generated/minloc1_4_r16.c: Regenerate.
1998         * generated/minloc1_4_r4.c: Regenerate.
1999         * generated/minloc1_4_r8.c: Regenerate.
2000         * generated/minloc1_8_i1.c: Regenerate.
2001         * generated/minloc1_8_i16.c: Regenerate.
2002         * generated/minloc1_8_i2.c: Regenerate.
2003         * generated/minloc1_8_i4.c: Regenerate.
2004         * generated/minloc1_8_i8.c: Regenerate.
2005         * generated/minloc1_8_r10.c: Regenerate.
2006         * generated/minloc1_8_r16.c: Regenerate.
2007         * generated/minloc1_8_r4.c: Regenerate.
2008         * generated/minloc1_8_r8.c: Regenerate.
2009         * generated/minval_i1.c: Regenerate.
2010         * generated/minval_i16.c: Regenerate.
2011         * generated/minval_i2.c: Regenerate.
2012         * generated/minval_i4.c: Regenerate.
2013         * generated/minval_i8.c: Regenerate.
2014         * generated/minval_r10.c: Regenerate.
2015         * generated/minval_r16.c: Regenerate.
2016         * generated/minval_r4.c: Regenerate.
2017         * generated/minval_r8.c: Regenerate.
2018         * generated/misc_specifics.F90: Regenerate.
2019         * generated/nearest_r10.c: Regenerate.
2020         * generated/nearest_r16.c: Regenerate.
2021         * generated/nearest_r4.c: Regenerate.
2022         * generated/nearest_r8.c: Regenerate.
2023         * generated/pack_c10.c: Regenerate.
2024         * generated/pack_c16.c: Regenerate.
2025         * generated/pack_c4.c: Regenerate.
2026         * generated/pack_c8.c: Regenerate.
2027         * generated/pack_i1.c: Regenerate.
2028         * generated/pack_i16.c: Regenerate.
2029         * generated/pack_i2.c: Regenerate.
2030         * generated/pack_i4.c: Regenerate.
2031         * generated/pack_i8.c: Regenerate.
2032         * generated/pack_r10.c: Regenerate.
2033         * generated/pack_r16.c: Regenerate.
2034         * generated/pack_r4.c: Regenerate.
2035         * generated/pack_r8.c: Regenerate.
2036         * generated/pow_c10_i16.c: Regenerate.
2037         * generated/pow_c10_i4.c: Regenerate.
2038         * generated/pow_c10_i8.c: Regenerate.
2039         * generated/pow_c16_i16.c: Regenerate.
2040         * generated/pow_c16_i4.c: Regenerate.
2041         * generated/pow_c16_i8.c: Regenerate.
2042         * generated/pow_c4_i16.c: Regenerate.
2043         * generated/pow_c4_i4.c: Regenerate.
2044         * generated/pow_c4_i8.c: Regenerate.
2045         * generated/pow_c8_i16.c: Regenerate.
2046         * generated/pow_c8_i4.c: Regenerate.
2047         * generated/pow_c8_i8.c: Regenerate.
2048         * generated/pow_i16_i16.c: Regenerate.
2049         * generated/pow_i16_i4.c: Regenerate.
2050         * generated/pow_i16_i8.c: Regenerate.
2051         * generated/pow_i4_i16.c: Regenerate.
2052         * generated/pow_i4_i4.c: Regenerate.
2053         * generated/pow_i4_i8.c: Regenerate.
2054         * generated/pow_i8_i16.c: Regenerate.
2055         * generated/pow_i8_i4.c: Regenerate.
2056         * generated/pow_i8_i8.c: Regenerate.
2057         * generated/pow_r10_i16.c: Regenerate.
2058         * generated/pow_r10_i8.c: Regenerate.
2059         * generated/pow_r16_i16.c: Regenerate.
2060         * generated/pow_r16_i8.c: Regenerate.
2061         * generated/pow_r4_i16.c: Regenerate.
2062         * generated/pow_r4_i8.c: Regenerate.
2063         * generated/pow_r8_i16.c: Regenerate.
2064         * generated/pow_r8_i8.c: Regenerate.
2065         * generated/product_c10.c: Regenerate.
2066         * generated/product_c16.c: Regenerate.
2067         * generated/product_c4.c: Regenerate.
2068         * generated/product_c8.c: Regenerate.
2069         * generated/product_i1.c: Regenerate.
2070         * generated/product_i16.c: Regenerate.
2071         * generated/product_i2.c: Regenerate.
2072         * generated/product_i4.c: Regenerate.
2073         * generated/product_i8.c: Regenerate.
2074         * generated/product_r10.c: Regenerate.
2075         * generated/product_r16.c: Regenerate.
2076         * generated/product_r4.c: Regenerate.
2077         * generated/product_r8.c: Regenerate.
2078         * generated/reshape_c10.c: Regenerate.
2079         * generated/reshape_c16.c: Regenerate.
2080         * generated/reshape_c4.c: Regenerate.
2081         * generated/reshape_c8.c: Regenerate.
2082         * generated/reshape_i16.c: Regenerate.
2083         * generated/reshape_i4.c: Regenerate.
2084         * generated/reshape_i8.c: Regenerate.
2085         * generated/reshape_r10.c: Regenerate.
2086         * generated/reshape_r16.c: Regenerate.
2087         * generated/reshape_r4.c: Regenerate.
2088         * generated/reshape_r8.c: Regenerate.
2089         * generated/rrspacing_r10.c: Regenerate.
2090         * generated/rrspacing_r16.c: Regenerate.
2091         * generated/rrspacing_r4.c: Regenerate.
2092         * generated/rrspacing_r8.c: Regenerate.
2093         * generated/set_exponent_r10.c: Regenerate.
2094         * generated/set_exponent_r16.c: Regenerate.
2095         * generated/set_exponent_r4.c: Regenerate.
2096         * generated/set_exponent_r8.c: Regenerate.
2097         * generated/shape_i16.c: Regenerate.
2098         * generated/shape_i4.c: Regenerate.
2099         * generated/shape_i8.c: Regenerate.
2100         * generated/spacing_r10.c: Regenerate.
2101         * generated/spacing_r16.c: Regenerate.
2102         * generated/spacing_r4.c: Regenerate.
2103         * generated/spacing_r8.c: Regenerate.
2104         * generated/spread_c10.c: Regenerate.
2105         * generated/spread_c16.c: Regenerate.
2106         * generated/spread_c4.c: Regenerate.
2107         * generated/spread_c8.c: Regenerate.
2108         * generated/spread_i1.c: Regenerate.
2109         * generated/spread_i16.c: Regenerate.
2110         * generated/spread_i2.c: Regenerate.
2111         * generated/spread_i4.c: Regenerate.
2112         * generated/spread_i8.c: Regenerate.
2113         * generated/spread_r10.c: Regenerate.
2114         * generated/spread_r16.c: Regenerate.
2115         * generated/spread_r4.c: Regenerate.
2116         * generated/spread_r8.c: Regenerate.
2117         * generated/sum_c10.c: Regenerate.
2118         * generated/sum_c16.c: Regenerate.
2119         * generated/sum_c4.c: Regenerate.
2120         * generated/sum_c8.c: Regenerate.
2121         * generated/sum_i1.c: Regenerate.
2122         * generated/sum_i16.c: Regenerate.
2123         * generated/sum_i2.c: Regenerate.
2124         * generated/sum_i4.c: Regenerate.
2125         * generated/sum_i8.c: Regenerate.
2126         * generated/sum_r10.c: Regenerate.
2127         * generated/sum_r16.c: Regenerate.
2128         * generated/sum_r4.c: Regenerate.
2129         * generated/sum_r8.c: Regenerate.
2130         * generated/transpose_c10.c: Regenerate.
2131         * generated/transpose_c16.c: Regenerate.
2132         * generated/transpose_c4.c: Regenerate.
2133         * generated/transpose_c8.c: Regenerate.
2134         * generated/transpose_i16.c: Regenerate.
2135         * generated/transpose_i4.c: Regenerate.
2136         * generated/transpose_i8.c: Regenerate.
2137         * generated/transpose_r10.c: Regenerate.
2138         * generated/transpose_r16.c: Regenerate.
2139         * generated/transpose_r4.c: Regenerate.
2140         * generated/transpose_r8.c: Regenerate.
2141         * generated/unpack_c10.c: Regenerate.
2142         * generated/unpack_c16.c: Regenerate.
2143         * generated/unpack_c4.c: Regenerate.
2144         * generated/unpack_c8.c: Regenerate.
2145         * generated/unpack_i1.c: Regenerate.
2146         * generated/unpack_i16.c: Regenerate.
2147         * generated/unpack_i2.c: Regenerate.
2148         * generated/unpack_i4.c: Regenerate.
2149         * generated/unpack_i8.c: Regenerate.
2150         * generated/unpack_r10.c: Regenerate.
2151         * generated/unpack_r16.c: Regenerate.
2152         * generated/unpack_r4.c: Regenerate.
2153         * generated/unpack_r8.c: Regenerate.
2154
2155 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2156
2157         * io/open.c (already_open): Test for POSIX close return value.
2158         * io/unit.c (close_unit_1): Likewise.
2159         * io/unix.c (raw_close): Return 0 for success for preconnected units.
2160
2161 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2162
2163         * runtime/string.c (compare0): Use gfc_charlen_type.
2164         * runtime/error.c (gfc_itoa): Move to io/write.c
2165         (xtoa): Rename to gfc_xtoa.
2166         * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
2167         * intrinsics/cshift0.c (cshift0): Use index_type for shift arg.
2168         * intrinsics/date_and_time.c (date_and_time): Use index_type.
2169         (itime_i4): Likewise.
2170         (itime_i8): Likewise.
2171         (idate_i4): Likewise.
2172         (idate_i8): Likewise.
2173         (gmtime_i4): Likewise.
2174         (gmtime_i8): Likewise.
2175         (ltime_i4): Likewise.
2176         (ltime_i8): Likewise.
2177         * libgfortran.h (gfc_itoa): Remove prototype.
2178         (xtoa): Rename prototype to gfc_xtoa.
2179         * io/list_read.c (nml_read_obj): Use size_t for string length.
2180         * io/transfer.c (read_block_direct): Change nbytes arg from
2181         pointer to value.
2182         (unformatted_read): Minor cleanup, call read_block_directly properly.
2183         (skip_record): Use ssize_t.
2184         (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
2185         (iolength_transfer): Make sure to multiply before cast.
2186         * io/intrinsics.c (fgetc): Remove unnecessary variable.
2187         * io/format.c (format_hash): Use gfc_charlen_type.
2188         * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
2189         make static.
2190         (write_i): Call with pointer to itoa.
2191         (write_z): Call with pointer to gfc_xtoa.
2192         (write_integer): Pointer to itoa.
2193         (nml_write_obj): Type cleanup, don't call strlen in loop.
2194         
2195 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2196
2197         PR libgfortran/39664
2198         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
2199         STDERR_FILENO nor STDIN_FILENO.
2200
2201 2009-04-06  David Edelsohn  <edelsohn@gnu.org>
2202         
2203         * io/io.h (struct stream): Rename truncate to trunc.
2204         (struncate): Same.
2205         * io/unix.c (raw_init): Rename truncate to trunc.
2206         (buf_init): Same.
2207         (open_internal): Same.
2208         
2209 2009-04-05  Daniel Kraft  <d@domob.eu>
2210
2211         PR fortran/38654
2212         * io/read.c (read_f): Reworked to speed up floating point parsing.
2213         (convert_real): Use pointer-casting instead of memcpy and temporaries.
2214
2215 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2216
2217         PR libfortran/37754
2218         * io/io.h (format_hash_entry): New structure for hash table.
2219         (format_hash_table): The hash table itself.
2220         (free_format_data): Revise function prototype.
2221         (free_format_hash_table, init_format_hash,
2222         free_format_hash): New function prototypes.
2223         * io/unit.c (close_unit_1): Use free_format_hash_table.
2224         * io/transfer.c (st_read_done, st_write_done): Free format data if
2225         internal unit.
2226         * io/format.c (free_format_hash_table): New function that frees any
2227         memory allocated previously for cached format data.
2228         (reset_node): New static helper function to reset the format counters
2229         for a format node.
2230         (reset_fnode_counters): New static function recursively calls reset_node
2231         to traverse the fnode tree.
2232         (format_hash): New simple hash function based on XOR, probabalistic,
2233         tosses collisions.
2234         (save_parsed_format): New static function to save the parsed format
2235         data to use again.
2236         (find_parsed_format): New static function searches the hash table
2237         looking for a match.
2238         (free_format_data): Revised to accept pointer to format data rather than
2239         the dtp pointer so that the function can be used in more places.
2240         (format_lex): Editorial.
2241         (parse_format_list): Set flag used to determine of format data hashing
2242         is to be used.  Internal units are not persistent enough for this.
2243         (revert): Move to ne location in file.
2244         (parse_format): Use new functions to look for previously parsed
2245         format strings and use them rather than re-parse.  If not found, saves
2246         the parsed format data for later use.
2247         
2248 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2249
2250         PR libfortran/37754
2251         * io/transfer.c (formatted_transfer_scalar): Remove this function by
2252         factoring it into two new functions, one for read and one for write,
2253         eliminating all the conditionals for read or write mode.
2254         (formatted transfer_scalar_read): New function.
2255         (formatted transfer_scalar_write): New function.
2256         (formatted_transfer): Use new functions.
2257
2258 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
2259
2260         PR libfortran/25561 libfortran/37754
2261         * io/io.h (struct stream): Define new stream interface function
2262         pointers, and inline functions for accessing it.
2263         (struct fbuf): Use int instead of size_t, remove flushed element.
2264         (mem_alloc_w): New prototype.
2265         (mem_alloc_r): New prototype.
2266         (stream_at_bof): Remove prototype.
2267         (stream_at_eof): Remove prototype.
2268         (file_position): Remove prototype.
2269         (flush): Remove prototype.
2270         (stream_offset): Remove prototype.
2271         (unit_truncate): New prototype.
2272         (read_block_form): Change to return pointer, int* argument.
2273         (hit_eof): New prototype.
2274         (fbuf_init): Change prototype.
2275         (fbuf_reset): Change prototype.
2276         (fbuf_alloc): Change prototype.
2277         (fbuf_flush): Change prototype.
2278         (fbuf_seek): Change prototype.
2279         (fbuf_read): New prototype.
2280         (fbuf_getc_refill): New prototype.
2281         (fbuf_getc): New inline function.
2282         * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
2283         (fbuf_debug): New function.
2284         (fbuf_reset): Flush, and return position offset.
2285         (fbuf_alloc): Simplify, don't flush, just realloc.
2286         (fbuf_flush): Make usable for read mode, salvage remaining bytes.
2287         (fbuf_seek): New whence argument.
2288         (fbuf_read): New function.
2289         (fbuf_getc_refill): New function.
2290         * io/file_pos.c (formatted_backspace): Use new stream interface.
2291         (unformatted_backspace): Likewise.
2292         (st_backspace): Make sure format buffer is reset, use new stream
2293         interface, use unit_truncate.
2294         (st_endfile): Likewise.
2295         (st_rewind): Likewise.
2296         * io/intrinsics.c: Use new stream interface.
2297         * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
2298         to resize.
2299         (free_saved): Don't check u.p.scratch.
2300         (next_char): Use new stream interface, use fbuf_getc() for external files.
2301         (finish_list_read): flush format buffer.
2302         (nml_query): Update to use modified interface:s
2303         * io/open.c (test_endfile): Use new stream interface.
2304         (edit_modes): Likewise.
2305         (new_unit): Likewise, set bytes_left to 1 for stream files.
2306         * io/read.c (read_l): Use new read_block_form interface.
2307         (read_utf8): Likewise.
2308         (read_utf8_char1): Likewise.
2309         (read_default_char1): Likewise.
2310         (read_utf8_char4): Likewise.
2311         (read_default_char4): Likewise.
2312         (read_a): Likewise.
2313         (read_a_char4): Likewise.
2314         (read_decimal): Likewise.
2315         (read_radix): Likewise.
2316         (read_f): Likewise.
2317         * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
2318         usage of u.p.line_buffer.
2319         (read_block_form): Update interface to return pointer, use
2320         fbuf_read for direct access.
2321         (read_block_direct): Update to new stream interface.
2322         (write_block): Use mem_alloc_w for internal I/O.
2323         (write_buf): Update to new stream interface.
2324         (formatted_transfer_scalar): Don't use u.p.line_buffer, use
2325         fbuf_seek for external files.
2326         (us_read): Update to new stream interface.
2327         (us_write): Likewise.
2328         (data_transfer_init): Always check if we switch modes and flush.
2329         (skip_record): Use new stream interface, fix comparison.
2330         (next_record_r): Check for and reset u.p.at_eof, use new stream
2331         interface, use fbuf_getc for spacing.
2332         (write_us_marker): Update to new stream interface, don't inline.
2333         (next_record_w_unf): Likewise.
2334         (sset): New function.
2335         (next_record_w): Use new stream interface, use fbuf for printing
2336         newline.
2337         (next_record): Use new stream interface.
2338         (finalize_transfer): Remove sfree call, use new stream interface.
2339         (st_iolength_done): Don't use u.p.scratch.
2340         (st_read): Don't check for end of file.
2341         (st_read_done): Don't use u.p.scratch, use unit_truncate.
2342         (hit_eof): New function.
2343         * io/unit.c (init_units): Always init fbuf for formatted units.
2344         (update_position): Use new stream interface.
2345         (unit_truncate): New function.
2346         (finish_last_advance_record): Use fbuf to print newline.
2347         * io/unix.c: Remove unused SSIZE_MAX macro.
2348         (BUFFER_SIZE): Make static const variable rather than macro.
2349         (struct unix_stream): Remove dirty_offset, len, method,
2350         small_buffer. Order elements by decreasing size.
2351         (struct int_stream): Remove.
2352         (move_pos_offset): Remove usage of dirty_offset.
2353         (reset_stream): Remove.
2354         (do_read): Rename to raw_read, update to match new stream
2355         interface.
2356         (do_write): Rename to raw_write, update to new stream interface.
2357         (raw_seek): New function.
2358         (raw_tell): New function.
2359         (raw_truncate): New function.
2360         (raw_close): New function.
2361         (raw_flush): New function.
2362         (raw_init): New function.
2363         (fd_alloc): Remove.
2364         (fd_alloc_r_at): Remove.
2365         (fd_alloc_w_at): Remove.
2366         (fd_sfree): Remove.
2367         (fd_seek): Remove.
2368         (fd_truncate): Remove.
2369         (fd_sset): Remove.
2370         (fd_read): Remove.
2371         (fd_write): Remove.
2372         (fd_close): Remove.
2373         (fd_open): Remove.
2374         (fd_flush): Rename to buf_flush, update to new stream interface
2375         and unix_stream.
2376         (buf_read): New function.
2377         (buf_write): New function.
2378         (buf_seek): New function.
2379         (buf_tell): New function.
2380         (buf_truncate): New function.
2381         (buf_close): New function.
2382         (buf_init): New function.
2383         (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
2384         (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
2385         (mem_read): Change to match new stream interface.
2386         (mem_write): Likewise.
2387         (mem_seek): Likewise.
2388         (mem_tell): Likewise.
2389         (mem_truncate): Likewise.
2390         (mem_close): Likewise.
2391         (mem_flush): New function.
2392         (mem_sfree): Remove.
2393         (empty_internal_buffer): Cast to correct type.
2394         (open_internal): Use correct type, init function pointers.
2395         (fd_to_stream): Test whether to open file as buffered or raw.
2396         (output_stream): Remove mode set.
2397         (error_stream): Likewise.
2398         (flush_all_units_1): Use new stream interface.
2399         (flush_all_units): Likewise.
2400         (stream_at_bof): Remove.
2401         (stream_at_eof): Remove.
2402         (file_position): Remove.
2403         (file_length): Update logic to use stream interface.
2404         (flush): Remove.
2405         (stream_offset): Remove.
2406         * io/write.c (write_utf8_char4): Use int instead of size_t.
2407         (write_x): Extra safety check.
2408         (namelist_write_newline): Use new stream interface.
2409
2410 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2411
2412         PR fortran/33595
2413         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
2414         Revise checks to round up.
2415         (roundf): Likewise.
2416
2417 2009-03-28  Daniel Kraft  <d@domob.eu>
2418
2419         * intrinsics/string_intrinsics.c: #include <assert.h>
2420         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
2421         instead of calculating the length directly.
2422         (string_len_trim): For KIND=1, speed search up.
2423
2424 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2425
2426         PR libfortran/39528
2427         * io/list_read.c (list_formatted_read_scalar): Move check for read
2428         completion to just after the check for a repeated value.
2429
2430 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2431
2432         PR libfortran/39402
2433         * io/write_float.def (output_float): Handle F0.d formatting correctly
2434         for any d when value is 0.0.
2435
2436 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2437
2438         * configure: Regenerate.
2439
2440 2009-01-21  Daniel Kraft  <d@domob.eu>
2441
2442         PR fortran/38887
2443         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
2444         abort when called with empty array.
2445         * m4/in_unpack.m4:  Ditto.
2446         * generated/in_unpack_i1.c:  Regenerated.
2447         * generated/in_unpack_i2.c:  Regenerated.
2448         * generated/in_unpack_i4.c:  Regenerated.
2449         * generated/in_unpack_i8.c:  Regenerated.
2450         * generated/in_unpack_i16.c: Regenerated.
2451         * generated/in_unpack_r4.c:  Regenerated.
2452         * generated/in_unpack_r8.c:  Regenerated.
2453         * generated/in_unpack_r10.c: Regenerated.
2454         * generated/in_unpack_r16.c: Regenerated.
2455         * generated/in_unpack_c4.c:  Regenerated.
2456         * generated/in_unpack_c8.c:  Regenerated.
2457         * generated/in_unpack_c10.c: Regenerated.
2458         * generated/in_unpack_c16.c: Regenerated.
2459
2460 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2461
2462         PR libfortran/38772
2463         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
2464         allowing proper digit testing. White space fix.
2465
2466 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2467
2468         PR libfortran/38735
2469         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
2470         internal units.
2471
2472 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2473
2474         PR fortran/31832
2475         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
2476         broken powf.
2477         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
2478         * intrinsics/c99_functions.c: Use internal powf implementation if
2479         HAVE_BROKEN_POWF is defined.
2480         * configure: Rebuilt.
2481         * config.h.in: Rebuilt.
2482
2483 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2484
2485         PR libfortran/37472
2486         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
2487         to avoid sensitivity to round-off.
2488
2489 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2490
2491         PR libfortran/38398
2492         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
2493         suppress blanks for g0 formatting.
2494         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
2495         for g0 formatting.
2496         * io.c (write.c): Do not use ES formatting and use new bit to suppress
2497         blanks.
2498         * io/write_float.def (output_float): Adjust the location of setting the
2499         width so that it can be adjusted when suppressing blanks.  Set number of
2500         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
2501         clean-up and add some white space for readability.
2502         
2503 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2504
2505         * configure: Regenerate.
2506
2507 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2508
2509         PR libfortran/38504
2510         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
2511         returned by gfc_itoa.
2512
2513 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2514
2515         PR libfortran/38430
2516         * io/transfer.c (data_transfer_init): Move constraint check for REC=
2517         and STREAM access into condition for other REC= constraints to simplify.
2518         Comment out this constraint to avoid breaking compatibility with 4.3
2519         until later.  Added a TODO for above comment and this one.
2520         Fix test for max pos.
2521
2522 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2523
2524         PR libfortran/38291
2525         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
2526         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
2527         comment.
2528
2529 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
2530
2531         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
2532
2533 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2534
2535         PR libfortran/38291
2536         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
2537         Add check for unit opened with ACCESS="stream". Flush and seek if
2538         current stream position does not match. Check ENDFILE on read.
2539
2540 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2541
2542         PR fortran/38285
2543         * write_float.def (WRITE_FLOAT): Zero the float value for special case
2544         only if scale_factor = 0.
2545         
2546 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
2547
2548         PR libfortran/38234
2549         * intrinsics/reshape_generic.c (reshape_internal):
2550         Source can be larger than shape.
2551         * m4/reshape.m4:  Likewise.
2552         * generated/reshape_c10.c Regenerated.
2553         * generated/reshape_c16.c Regenerated.
2554         * generated/reshape_c4.c Regenerated.
2555         * generated/reshape_c8.c Regenerated.
2556         * generated/reshape_i16.c Regenerated.
2557         * generated/reshape_i4.c Regenerated.
2558         * generated/reshape_i8.c Regenerated.
2559         * generated/reshape_r10.c Regenerated.
2560         * generated/reshape_r16.c Regenerated.
2561         * generated/reshape_r4.c Regenerated.
2562         * generated/reshape_r8.c Regenerated.
2563
2564 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
2565
2566         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
2567         format attribute.
2568
2569
2570 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2571
2572         PR libfortran/38225
2573         * intrinsics/reshape_generic.c (reshape_internal):
2574         Use all dimensions of source for bounds checking.
2575         * m4/reshape.m4:  Likewise.
2576         * generated/reshape_c10.c Regenerated.
2577         * generated/reshape_c16.c Regenerated.
2578         * generated/reshape_c4.c Regenerated.
2579         * generated/reshape_c8.c Regenerated.
2580         * generated/reshape_i16.c Regenerated.
2581         * generated/reshape_i4.c Regenerated.
2582         * generated/reshape_i8.c Regenerated.
2583         * generated/reshape_r10.c Regenerated.
2584         * generated/reshape_r16.c Regenerated.
2585         * generated/reshape_r4.c Regenerated.
2586         * generated/reshape_r8.c Regenerated.
2587
2588 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
2589
2590         PR libfortran/37839
2591         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
2592         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
2593         (st_parameter_inquire): Reorder and fix types of round, sign and
2594         pending fields.
2595         (st_parameter_43, st_parameter_44): Removed.
2596         (st_parameter_dt): Put back struct definition directly to u.p
2597         declaration.  Change type of u.p.size_used from gfc_offset to
2598         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
2599         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
2600         pad, round and sign fields after the union.
2601         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
2602         flags2 if it is defined.
2603         * io/transfer.c (read_sf, read_block_form, write_block): Cast
2604         additions to size_used to GFC_IO_INT instead of gfc_offset.
2605         (data_transfer_init): Clear whole u.p struct.  Adjust
2606         for moving id, pos, asynchronous, blank, decimal, delim, pad,
2607         round and sign fields from u.p directly into st_parameter_dt.
2608         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
2609         * io/file_pos.c (st_endfile): Clear whole u.p struct.
2610
2611 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2612
2613         PR libfortran/37472
2614         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
2615         G format specification to F format.
2616
2617 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2618
2619         PR libfortran/38135
2620         * m4/reshape.m4:  Correct bounds checking when PAD is present.
2621         Treat PAD as if it were SOURCE when SOURCE is empty.
2622         * intrinsics/reshape_generic.c:  Likewise.
2623         * generated/reshape_c10.c Regenerated.
2624         * generated/reshape_c16.c Regenerated.
2625         * generated/reshape_c4.c Regenerated.
2626         * generated/reshape_c8.c Regenerated.
2627         * generated/reshape_i16.c Regenerated.
2628         * generated/reshape_i4.c Regenerated.
2629         * generated/reshape_i8.c Regenerated.
2630         * generated/reshape_r10.c Regenerated.
2631         * generated/reshape_r16.c Regenerated.
2632         * generated/reshape_r4.c Regenerated.
2633         * generated/reshape_r8.c Regenerated.
2634
2635 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2636
2637         PR libfortran/38097
2638         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
2639         conditions for BZ/BN.
2640         * io/unit.c (get_internal_unit): Initialize flags.blank.
2641         * io/transfer.c (data_transfer_init): Fix whitespace.
2642
2643 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2644
2645         PR libfortran/37294
2646         * io/write.c (namelist_write_newline): Use array loop specification to
2647         advance to next internal array unit record. (namelist_write): Adjust to
2648         accomodate the internal array unit behavior.
2649
2650 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
2651
2652         PR fortran/37159
2653         * intrinsics/random.c: Added comment to adapt check.c, should
2654         kiss_size change.
2655         Few cosmetic changes to existing comments.
2656
2657 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2658
2659         PR libfortran/37707
2660         * io/list_read.c (read_character): Remove code to look ahead in namelist
2661         reads to descriminate non-delimited strings from namelist objects.
2662         * io/write.c (namelist_write): Delimit character strings with quote or
2663         apostrophe, defaulting to quote.
2664
2665 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2666
2667         PR libfortran/34670
2668         * intrinsics/transpose_generic.c:  Implement bounds checking.
2669         * m4/transpose.m4:  Likewise.
2670         * generated/transpose_c8.c: Regenerated.
2671         * generated/transpose_c16.c: Regenerated.
2672         * generated/transpose_r10.c: Regenerated.
2673         * generated/transpose_i8.c: Regenerated.
2674         * generated/transpose_c10.c: Regenerated.
2675         * generated/transpose_r4.c: Regenerated.
2676         * generated/transpose_c4.c: Regenerated.
2677         * generated/transpose_i16.c: Regenerated.
2678         * generated/transpose_i4.c: Regenerated.
2679         * generated/transpose_r8.c: Regenerated.
2680         * generated/transpose_r16.c: Regenerated.
2681
2682 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2683
2684         PR libfortran/37834
2685         * io/write_float.def (output_float): Emit '0.' for special case of
2686         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
2687
2688 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2689
2690         PR libfortran/37863
2691         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
2692         * io/io.h (st_parameter_44): Fix id type declaration.
2693
2694 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2695
2696         * io/file_pos.c (unformatted_backspace): Normal case is
2697         GFC_CONVERT_NATIVE.
2698         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
2699         as unlikely.
2700         (readl_block_form):  Likewise.
2701         (read_block_direct):  Likewise.
2702         (write_block):  Likewise.
2703         (write_buf):  Likewise.
2704         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
2705         (next_record_w_unf):  Mark paths leading to generate_error()
2706         as unlikely.
2707
2708 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2709
2710         PR libfortran/34670
2711         * generated/spread_r4.c: Regenerated.
2712
2713 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2714
2715         PR libfortran/34670
2716         * intrinsics/reshape_generic.c:  Add bounds checking.
2717         * m4/reshape.m4:  Likewise.
2718         * generated/reshape_c10.c: Regenerated.
2719         * generated/reshape_c16.c: Regenerated.
2720         * generated/reshape_c4.c: Regenerated.
2721         * generated/reshape_c8.c: Regenerated.
2722         * generated/reshape_i16.c: Regenerated.
2723         * generated/reshape_i4.c: Regenerated.
2724         * generated/reshape_i8.c: Regenerated.
2725         * generated/reshape_r10.c: Regenerated.
2726         * generated/reshape_r16.c: Regenerated.
2727         * generated/reshape_r4.c: Regenerated.
2728         * generated/reshape_r8.c: Regenerated.
2729         * generated/spread_r4.c: Regenerated.
2730
2731 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2732
2733         PR libfortran/37083
2734         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
2735         (finish_list_read): Add EOF check.
2736
2737 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2738
2739         PR libfortran/37753
2740         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
2741         is the usual case.  Check for kind==1 for non-byte-reversing
2742         operation.
2743         (unformatted_write):  Likewise.
2744
2745 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2746
2747         PR libfortran/37707
2748         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
2749         is greater than zero, call nml_object_read with the first object rather
2750         than the sub-object.
2751
2752 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2753             Steve Ellcey  <sje@cup.hp.com>
2754
2755         * configure: Regenerate for new libtool.
2756         * Makefile.in: Ditto.
2757
2758 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2759
2760         PR libfortran/37498
2761         * list_read.c (eat_separator): Revert previous patch and move
2762         delim_status, decimal_status, and pad_status to gfc_unit.
2763         (parse_real): Ditto. (read_real): Ditto.
2764         * read.c (read_a): Likewise. (read_a_char4): Likewise.
2765         (read_f): Likewise.
2766         * inquire.c (inquire_via_unit): Add missing check for
2767         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
2768         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
2769         to gfc_unit.
2770         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
2771         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
2772         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
2773         (write_character): Ditto. (write_real_g0): Ditto.
2774         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
2775         (namelist_write): Ditto.
2776         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
2777
2778 2008-09-24  Tobias Burnus  <burnus@net-b.de>
2779
2780         * runtime/compile_options.c (init_compile_options):
2781         Sync flags with front end.
2782
2783 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2784
2785         PR libfortran/37498
2786         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
2787         area.
2788         * list_read.c (eat_separator): Only access F2003 I/O parameters if
2789         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
2790         (read_real): Ditto.
2791         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
2792         strictly necessary. (read_f): Likewise.
2793         * io.h (unit_sign_s): New enumerator to allow duplication of
2794         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
2795         (st_parameter_43): New structure copied from 4.3 version of 
2796         st_paramater_dt private section. (st_parameter_44): New structure with
2797         F2003 items added. (st_parameter_dt): Modified to create union of new
2798         and old structures to allow correct memory setting for 4.3 ABI
2799         compatibility. Bumped the pad size.
2800         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
2801         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
2802         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
2803         add comment, fix formatting.
2804         * write.c (write_default_char4): Likewise though not strictly necessary.
2805         (write_utf8_char4): Ditto. (write_character): Ditto.
2806         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
2807         (nml_write_obj): Ditto. (namelist_write): Ditto.
2808         * write_float.def (calculate_sign): Eliminate warning by including all
2809         cases in switch. (output_float): Output only decimal point of F2003 flag
2810         is not set.
2811
2812 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2813             H. J. Lu  <hongjiu.lu@intel.com>
2814
2815         * mk-sik-inc.sh: Make -Wunused-variable proof.
2816         * mk-srk-inc.sh: Make -Wunused-variable proof.
2817
2818 2008-09-10  Tobias Burnus  <burnus@net-b.de>
2819
2820         * mk-kinds-h.sh: Make -Wunused-variable proof.
2821
2822 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2823
2824         PR fortran/37203
2825         * intrinsics/reshape_generic.c:  Add checking on
2826         out-of-bounds and duplicate values of order argument.
2827         * m4/reshape.m4:  Likewise.
2828         * generated/reshape_c10.c: Regenerated.
2829         * generated/reshape_c16.c: Regenerated.
2830         * generated/reshape_c4.c: Regenerated.
2831         * generated/reshape_c8.c: Regenerated.
2832         * generated/reshape_i16.c: Regenerated.
2833         * generated/reshape_i4.c: Regenerated.
2834         * generated/reshape_i8.c: Regenerated.
2835         * generated/reshape_r10.c: Regenerated.
2836         * generated/reshape_r16.c: Regenerated.
2837         * generated/reshape_r4.c: Regenerated.
2838         * generated/reshape_r8.c: Regenerated.
2839
2840 2008-09-06  Tobias Burnus  <burnus@net-b.de>
2841
2842         * libgfortran.h (likely,unlikely): New makros.
2843         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
2844         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
2845         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
2846         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
2847         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
2848         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
2849         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
2850
2851         * generated/minval_r8.c: Regenerated.
2852         * generated/spread_r10.c: Regenerated.
2853         * generated/minloc1_16_r16.c: Regenerated.
2854         * generated/maxloc1_4_r8.c: Regenerated.
2855         * generated/sum_i8.c: Regenerated.
2856         * generated/any_l16.c: Regenerated.
2857         * generated/spread_i8.c: Regenerated.
2858         * generated/maxval_i2.c: Regenerated.
2859         * generated/any_l2.c: Regenerated.
2860         * generated/product_r4.c: Regenerated.
2861         * generated/maxloc1_8_i4.c: Regenerated.
2862         * generated/maxloc0_4_r4.c: Regenerated.
2863         * generated/all_l1.c: Regenerated.
2864         * generated/matmul_r8.c: Regenerated.
2865         * generated/product_i2.c: Regenerated.
2866         * generated/minloc0_4_r16.c: Regenerated.
2867         * generated/minloc0_4_i1.c: Regenerated.
2868         * generated/maxloc0_4_r16.c: Regenerated.
2869         * generated/maxloc0_4_i2.c: Regenerated.
2870         * generated/minloc1_8_r16.c: Regenerated.
2871         * generated/maxloc1_8_r16.c: Regenerated.
2872         * generated/maxloc0_8_i8.c: Regenerated.
2873         * generated/sum_r16.c: Regenerated.
2874         * generated/sum_i1.c: Regenerated.
2875         * generated/minloc1_4_r8.c: Regenerated.
2876         * generated/maxloc1_16_r16.c: Regenerated.
2877         * generated/minloc1_16_i4.c: Regenerated.
2878         * generated/maxloc1_16_i4.c: Regenerated.
2879         * generated/minloc0_16_i8.c: Regenerated.
2880         * generated/spread_i1.c: Regenerated.
2881         * generated/maxloc0_16_i8.c: Regenerated.
2882         * generated/maxval_r16.c: Regenerated.
2883         * generated/product_c10.c: Regenerated.
2884         * generated/minloc1_8_i4.c: Regenerated.
2885         * generated/minloc0_16_i16.c: Regenerated.
2886         * generated/matmul_r16.c: Regenerated.
2887         * generated/minloc0_4_r4.c: Regenerated.
2888         * generated/all_l2.c: Regenerated.
2889         * generated/product_c4.c: Regenerated.
2890         * generated/sum_r4.c: Regenerated.
2891         * generated/minloc0_4_i2.c: Regenerated.
2892         * generated/spread_c10.c: Regenerated.
2893         * generated/maxloc0_8_i1.c: Regenerated.
2894         * generated/spread_r4.c: Regenerated.
2895         * generated/minloc0_8_i8.c: Regenerated.
2896         * generated/matmul_c8.c: Regenerated.
2897         * generated/all_l16.c: Regenerated.
2898         * generated/minloc1_16_r10.c: Regenerated.
2899         * generated/sum_i2.c: Regenerated.
2900         * generated/minloc0_16_i1.c: Regenerated.
2901         * generated/maxloc0_16_i1.c: Regenerated.
2902         * generated/maxloc1_8_r8.c: Regenerated.
2903         * generated/minval_i16.c: Regenerated.
2904         * generated/spread_i2.c: Regenerated.
2905         * generated/maxval_i4.c: Regenerated.
2906         * generated/minval_i8.c: Regenerated.
2907         * generated/any_l4.c: Regenerated.
2908         * generated/maxloc1_4_i8.c: Regenerated.
2909         * generated/maxloc0_16_i16.c: Regenerated.
2910         * generated/maxloc0_8_r4.c: Regenerated.
2911         * generated/minloc1_4_i16.c: Regenerated.
2912         * generated/maxloc1_4_i16.c: Regenerated.
2913         * generated/minloc0_4_r10.c: Regenerated.
2914         * generated/minloc0_8_i16.c: Regenerated.
2915         * generated/maxloc0_4_r10.c: Regenerated.
2916         * generated/maxloc0_8_i16.c: Regenerated.
2917         * generated/minloc1_8_r10.c: Regenerated.
2918         * generated/product_i4.c: Regenerated.
2919         * generated/minloc0_16_r4.c: Regenerated.
2920         * generated/sum_c16.c: Regenerated.
2921         * generated/maxloc1_8_r10.c: Regenerated.
2922         * generated/maxloc0_16_r4.c: Regenerated.
2923         * generated/minloc1_16_r8.c: Regenerated.
2924         * generated/minloc0_8_i1.c: Regenerated.
2925         * generated/maxloc0_4_i4.c: Regenerated.
2926         * generated/maxloc1_16_r8.c: Regenerated.
2927         * generated/maxloc0_8_i2.c: Regenerated.
2928         * generated/sum_r10.c: Regenerated.
2929         * generated/count_4_l.c: Regenerated.
2930         * generated/sum_c4.c: Regenerated.
2931         * generated/count_8_l.c: Regenerated.
2932         * generated/maxloc1_16_r10.c: Regenerated.
2933         * generated/matmul_i8.c: Regenerated.
2934         * generated/minloc0_16_i2.c: Regenerated.
2935         * generated/minloc1_8_r8.c: Regenerated.
2936         * generated/maxloc0_16_i2.c: Regenerated.
2937         * generated/spread_c4.c: Regenerated.
2938         * generated/matmul_c16.c: Regenerated.
2939         * generated/maxval_r10.c: Regenerated.
2940         * generated/minval_i1.c: Regenerated.
2941         * generated/maxloc1_4_i1.c: Regenerated.
2942         * generated/matmul_r10.c: Regenerated.
2943         * generated/minloc1_4_i8.c: Regenerated.
2944         * generated/minloc0_8_r4.c: Regenerated.
2945         * generated/matmul_l4.c: Regenerated.
2946         * generated/product_i16.c: Regenerated.
2947         * generated/minloc0_16_r16.c: Regenerated.
2948         * generated/all_l4.c: Regenerated.
2949         * generated/minloc0_4_i4.c: Regenerated.
2950         * generated/minloc0_8_i2.c: Regenerated.
2951         * generated/matmul_i1.c: Regenerated.
2952         * generated/minval_r4.c: Regenerated.
2953         * generated/maxloc1_4_r4.c: Regenerated.
2954         * generated/spread_i16.c: Regenerated.
2955         * generated/sum_i4.c: Regenerated.
2956         * generated/maxval_r8.c: Regenerated.
2957         * generated/spread_i4.c: Regenerated.
2958         * generated/minloc1_4_i1.c: Regenerated.
2959         * generated/minval_r16.c: Regenerated.
2960         * generated/minval_i2.c: Regenerated.
2961         * generated/maxloc1_4_i2.c: Regenerated.
2962         * generated/product_r8.c: Regenerated.
2963         * generated/maxloc1_8_i8.c: Regenerated.
2964         * generated/maxloc0_4_r8.c: Regenerated.
2965         * generated/maxloc0_16_r16.c: Regenerated.
2966         * generated/matmul_r4.c: Regenerated.
2967         * generated/sum_c10.c: Regenerated.
2968         * generated/minloc1_4_r16.c: Regenerated.
2969         * generated/maxloc1_4_r16.c: Regenerated.
2970         * generated/minloc0_8_r16.c: Regenerated.
2971         * generated/maxloc0_8_r16.c: Regenerated.
2972         * generated/count_1_l.c: Regenerated.
2973         * generated/maxloc0_8_i4.c: Regenerated.
2974         * generated/matmul_i2.c: Regenerated.
2975         * generated/minloc1_4_r4.c: Regenerated.
2976         * generated/matmul_c10.c: Regenerated.
2977         * generated/minloc0_16_i4.c: Regenerated.
2978         * generated/maxloc0_16_i4.c: Regenerated.
2979         * generated/minloc1_16_i8.c: Regenerated.
2980         * generated/maxloc1_16_i8.c: Regenerated.
2981         * generated/minloc1_4_i2.c: Regenerated.
2982         * generated/matmul_l16.c: Regenerated.
2983         * generated/maxloc1_8_i1.c: Regenerated.
2984         * generated/minloc0_16_r10.c: Regenerated.
2985         * generated/minloc1_8_i8.c: Regenerated.
2986         * generated/minloc0_4_r8.c: Regenerated.
2987         * generated/product_r16.c: Regenerated.
2988         * generated/product_c8.c: Regenerated.
2989         * generated/sum_r8.c: Regenerated.
2990         * generated/minloc0_8_i4.c: Regenerated.
2991         * generated/matmul_c4.c: Regenerated.
2992         * generated/minloc1_16_i16.c: Regenerated.
2993         * generated/spread_r8.c: Regenerated.
2994         * generated/maxloc1_8_r4.c: Regenerated.
2995         * generated/minloc1_16_i1.c: Regenerated.
2996         * generated/maxloc1_16_i1.c: Regenerated.
2997         * generated/spread_r16.c: Regenerated.
2998         * generated/minval_r10.c: Regenerated.
2999         * generated/count_16_l.c: Regenerated.
3000         * generated/minval_i4.c: Regenerated.
3001         * generated/minloc1_8_i1.c: Regenerated.
3002         * generated/maxloc1_4_i4.c: Regenerated.
3003         * generated/maxloc1_8_i2.c: Regenerated.
3004         * generated/maxval_i8.c: Regenerated.
3005         * generated/any_l8.c: Regenerated.
3006         * generated/maxloc0_16_r10.c: Regenerated.
3007         * generated/minloc0_4_i16.c: Regenerated.
3008         * generated/maxloc0_8_r8.c: Regenerated.
3009         * generated/maxloc0_4_i16.c: Regenerated.
3010         * generated/minloc1_4_r10.c: Regenerated.
3011         * generated/minloc1_8_i16.c: Regenerated.
3012         * generated/maxloc1_4_r10.c: Regenerated.
3013         * generated/maxloc1_8_i16.c: Regenerated.
3014         * generated/minloc0_8_r10.c: Regenerated.
3015         * generated/maxloc0_8_r10.c: Regenerated.
3016         * generated/minloc1_16_r4.c: Regenerated.
3017         * generated/maxloc1_16_r4.c: Regenerated.
3018         * generated/minloc0_16_r8.c: Regenerated.
3019         * generated/product_i8.c: Regenerated.
3020         * generated/maxloc0_16_r8.c: Regenerated.
3021         * generated/sum_i16.c: Regenerated.
3022         * generated/count_2_l.c: Regenerated.
3023         * generated/maxloc0_4_i8.c: Regenerated.
3024         * generated/maxloc1_16_i16.c: Regenerated.
3025         * generated/matmul_i4.c: Regenerated.
3026         * generated/minloc1_8_r4.c: Regenerated.
3027         * generated/sum_c8.c: Regenerated.
3028         * generated/minloc1_16_i2.c: Regenerated.
3029         * generated/maxloc1_16_i2.c: Regenerated.
3030         * generated/maxval_i16.c: Regenerated.
3031         * generated/spread_c8.c: Regenerated.
3032         * generated/matmul_i16.c: Regenerated.
3033         * generated/minloc1_4_i4.c: Regenerated.
3034         * generated/maxval_i1.c: Regenerated.
3035         * generated/minloc1_8_i2.c: Regenerated.
3036         * generated/any_l1.c: Regenerated.
3037         * generated/product_c16.c: Regenerated.
3038         * generated/minloc0_8_r8.c: Regenerated.
3039         * generated/matmul_l8.c: Regenerated.
3040         * generated/product_r10.c: Regenerated.
3041         * generated/product_i1.c: Regenerated.
3042         * generated/all_l8.c: Regenerated.
3043         * generated/maxloc0_4_i1.c: Regenerated.
3044         * generated/minloc0_4_i8.c: Regenerated.
3045         * generated/spread_c16.c: Regenerated.
3046         * generated/maxval_r4.c: Regenerated.
3047
3048 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3049
3050         PR libfortran/37301
3051         PR libfortran/37228
3052         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
3053         * io/transfer.c (formatted_transfer_scalar): Use new function.
3054         * io/format.c (parse_format_list): Enable g0.d.
3055         * io/write.c (write_a_char4): Delete unused var.
3056         (set_fnode_default): New function to set the default fnode w, d, and e
3057         factored from write_real. (write_real): Use new factored function.
3058         (write_real_g0): New function that sets d to that passed by g0.d format
3059         specifier and set format to ES.  Default values for w and e are used
3060         from the new function, set_fnode_default.
3061
3062 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3063
3064         * runtime/error.c: Fix cast for printf.
3065
3066 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3067
3068         PR libfortran/36895
3069         * io/write.c (namelist_write_newline): New function to correctly mark
3070         next records in both external and internal units.
3071         (nml_write_obj): Use new function.
3072         (namelist_write: Use new function.
3073
3074 2008-08-19  Tobias Burnus  <burnus@net-b.de>
3075
3076         PR libfortran/35863
3077         * io/write.c (write_a_char4): Add missing variable declaration
3078         in HAVE_CRLF block.
3079
3080 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3081
3082         PR libfortran/35863
3083         * intrinsics/selected_char_kind.c: Enable iso_10646.
3084         * io/read.c (typedef uchar): New type.
3085         (read_utf8): New function to read a single UTF-8 encoded character.
3086         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
3087         (read_default_char1): New functio to read default into KIND=1 string.
3088         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
3089         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
3090         (read_a): Modify to use the new functions.
3091         (read_a_char4): Modify to use the new functions.
3092         * io/write.c (error.h): Add include. (typedef uchar): New type.
3093         (write_default_char4): New function to default write KIND=4 string.
3094         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
3095         (write_a_char4): Modify to use new functions.
3096         (write_character): Modify to use new functions.
3097
3098 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
3099
3100         PR libfortran/37123
3101         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
3102
3103 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
3104
3105         PR libfortran/36886
3106         * Makefile.am:  Added $(i_cshift0_c).
3107         Added $(i_cshift0_c) to gfor_built_specific_src.
3108         Add rule to build from cshift0.m4.
3109         * Makefile.in:  Regenerated.
3110         * libgfortran.h:  Addedd prototypes for cshift0_i1,
3111         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
3112         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
3113         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
3114         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
3115         * intrinsics/cshift0.c:  Remove helper functions for
3116         the innter shift loop.
3117         (cshift0):  Call specific functions depending on type
3118         of array argument.  Only call specific functions for
3119         correct alignment for other types.
3120         * m4/cshift0.m4:  New file.
3121         * generated/cshift0_i1.c:  New file.
3122         * generated/cshift0_i2.c:  New file.
3123         * generated/cshift0_i4.c:  New file.
3124         * generated/cshift0_i8:.c  New file.
3125         * generated/cshift0_i16.c:  New file.
3126         * generated/cshift0_r4.c:  New file.
3127         * generated/cshift0_r8.c:  New file.
3128         * generated/cshift0_r10.c:  New file.
3129         * generated/cshift0_r16.c:  New file.
3130         * generated/cshift0_c4.c:  New file.
3131         * generated/cshift0_c8.c:  New file.
3132         * generated/cshift0_c10.c:  New file.
3133         * generated/cshift0_c16.c:  New file.
3134
3135 2008-07-27  Tobias Burnus  <burnus@net-b.de>
3136
3137         PR fortran/36132
3138         PR fortran/29952
3139         PR fortran/36909
3140         * runtime/error.c: New function runtime_error_at.
3141         * gfortran.map: Ditto.
3142         * libgfortran.h: Ditto.
3143
3144 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3145
3146         PR fortran/36582
3147         * io/list_read.c: If variable rank is zero, do not adjust the found
3148         namelist object pointer.
3149
3150 2008-07-22  Daniel Kraft  <d@domob.eu>
3151
3152         PR fortran/29835
3153         * io/format.c (struct format_data):  New member error_element.
3154         (unexpected_element):  Added '%c' to message.
3155         (next_char):  Keep track of last parsed character in fmt->error_element.
3156         (format_error):  If the message is unexpected_element, output the
3157         offending character, too.
3158
3159 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
3160
3161         PR libfortran/36890
3162         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
3163         signed/unsigned comparison warning in formatted_backspace.
3164
3165 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
3166
3167         PR libfortran/36773
3168         * intrinsics/cshift0.c (cshift0):  Return early if size of array
3169         is zero.
3170         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
3171         return array is zero.
3172         * intrinsics/eoshift2.c (eoshift2):  Likewise.
3173         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
3174         is zero.
3175         * m4/eoshift3.m4 (eoshift3):  Likewise.
3176         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
3177         array is zero.
3178         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
3179         array is zero.
3180         * generated/cshift1_16.c: Regenerated.
3181         * generated/cshift1_4.c: Regenerated.
3182         * generated/cshift1_8.c: Regenerated.
3183         * generated/eoshift1_16.c: Regenerated.
3184         * generated/eoshift1_4.c: Regenerated.
3185         * generated/eoshift1_8.c: Regenerated.
3186         * generated/eoshift3_16.c: Regenerated.
3187         * generated/eoshift3_4.c: Regenerated.
3188         * generated/eoshift3_8.c: Regenerated.
3189
3190 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3191
3192         PR fortran/36857
3193         * io/write_float.def: Comment out locale dependent code and fix general
3194         comments.
3195         
3196 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
3197
3198         PR fortran/36341
3199         PR fortran/34670
3200         * m4/matmul.m4:  Add bounds checking.
3201         * m4/matmull.m4:  Likewise.
3202         * generated/matmul_c10.c: Regenerated.
3203         * generated/matmul_c16.c: Regenerated.
3204         * generated/matmul_c4.c: Regenerated.
3205         * generated/matmul_c8.c: Regenerated.
3206         * generated/matmul_i1.c: Regenerated.
3207         * generated/matmul_i16.c: Regenerated.
3208         * generated/matmul_i2.c: Regenerated.
3209         * generated/matmul_i4.c: Regenerated.
3210         * generated/matmul_i8.c: Regenerated.
3211         * generated/matmul_l16.c: Regenerated.
3212         * generated/matmul_l4.c: Regenerated.
3213         * generated/matmul_l8.c: Regenerated.
3214         * generated/matmul_r10.c: Regenerated.
3215         * generated/matmul_r16.c: Regenerated.
3216         * generated/matmul_r4.c: Regenerated.
3217         * generated/matmul_r8.c: Regenerated.
3218
3219 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3220
3221         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
3222         variable name.
3223         * configure: Regenerate.
3224
3225 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3226
3227         PR fortran/36676
3228         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
3229         
3230 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3231
3232         PR fortran/36657
3233         * io/list_read.c (read_character): Check for '!' along with separators.
3234         (find_nml_name): Likewise and eat the comment if found.
3235
3236 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3237
3238         * configure: Regenerate.
3239
3240 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3241
3242         PR fortran/36546
3243         * io/list_read.c (eat_separator): Add tab character to condition
3244         for looping past whitespace.
3245
3246 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3247
3248         PR fortran/36515
3249         * libgfortran.h (compile_options_t): Add int range_check to structure.
3250         * runtime/compile_options.c (set_options): Add range_check option.
3251         (init_compile_options): Likewise.
3252         *io/read.c (read_decimal): Change overflow checks to include
3253         range_check.
3254         
3255 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3256
3257         PR fortran/36538
3258         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
3259         tabs.
3260
3261 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3262
3263         PR fortran/35863
3264         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
3265         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
3266         big_endian. (determine_endianness): Add endian_off and set its value
3267         according to big_endian.
3268         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
3269         * io/io.h: Add prototype declarations for new functions.
3270         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
3271         (list_formatted_read): Calculate stride based on kind for character type
3272         and use it when calling list_formatted_read_scalar.
3273         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
3274         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
3275         * io/read.c (read_a_char4): New function to handle formatted read.
3276         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
3277         (write_a_char4): New function to handle formatted write.
3278         (write_character): Modify to accept the kind parameter and adjust for
3279         endianess of the machine. (list_formatted_write): Calculate the stride
3280         resulting from the kind and adjust the list_formatted_write_scalar call
3281         accordingly. (nml_write_obj): Adjust calls to write_character.
3282         (namelist_write): Likewise.
3283         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
3284         'kind' argument to better describe what it is. Add calls to new
3285         functions for kind == 4. (formatted_transfer): Modify to handle the case
3286         of type character and kind equals 4 to pass in the kind to the transfer
3287         routines. (transfer_character_wide): Add this new function.
3288         (transfer_array): Don't set kind to the character string length. Adjust
3289         strides bases on character kind.
3290         (unformatted_read): Adjust size based on kind for character types.
3291         (unformatted_write): Likewise. (data_transfer_init): Change
3292         l8_to_l4_offset to big_endian.
3293         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
3294
3295 2008-06-13  Tobias Burnus  <burnus@net-b.de>
3296
3297         * configure.ac (AM_CFLAGS): Remove -Werror again.
3298         * configure: Regenerate.
3299
3300 2008-06-13  Tobias Burnus  <burnus@net-b.de>
3301
3302         PR libgfortran/36518
3303         * configure.ac (AM_CFLAGS): Add -Werror.
3304         * configure: Regenerate.
3305         * m4/ifunction_logical.m4: Cast "n" to "(int)".
3306         * generated/any_l16.c: Regenerate.
3307         * generated/any_l2.c: Regenerate.
3308         * generated/all_l1.c: Regenerate.
3309         * generated/all_l2.c: Regenerate.
3310         * generated/all_l16.c: Regenerate.
3311         * generated/any_l4.c: Regenerate.
3312         * generated/count_4_l.c: Regenerate.
3313         * generated/count_8_l.c: Regenerate.
3314         * generated/all_l4.c: Regenerate.
3315         * generated/count_1_l.c: Regenerate.
3316         * generated/count_16_l.c: Regenerate.
3317         * generated/any_l8.c: Regenerate.
3318         * generated/count_2_l.c: Regenerate.
3319         * generated/any_l1.c: Regenerate.
3320         * generated/all_l8.c: Regenerate.
3321
3322 2008-06-13  Tobias Burnus  <burnus@net-b.de>
3323
3324         PR fortran/36495
3325         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
3326         * configure: (generated) ditto.
3327         * intrinsics/dprod_r8.f90: Add "implicit none".
3328
3329 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3330
3331         PR libfortran/36420
3332         PR libfortran/36421
3333         PR libfortran/36422
3334         * io/io.h: Add prototype for write_real.
3335         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
3336         use write_real.
3337         * io/format.c: Add zero width error message. (parse_format_list): Use
3338         error message for FMT_A if followed by FMT_ZERO. Use zero width error
3339         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
3340         Fix typo in comment.
3341         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
3342         (write_l): Add wlen variable and use it if FMT_G and width is zero.
3343         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
3344         formatting. (write_real): Remove static declaration.
3345
3346 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3347
3348         PR fortran/36319
3349         * intrinsics/string_intrinsics_inc.c (string_index): Return
3350         correct value for zero-length substring.
3351         * intrinsics/cshift0.c: Add _char4 variant.
3352         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
3353         wider than a single byte. Add _char4 variant and use above
3354         functionality.
3355         * intrinsics/eoshift2.c (eoshift2): Likewise.
3356         * m4/eoshift1.m4: Likewise.
3357         * m4/eoshift3.m4: Likewise.
3358         * m4/cshift1.m4: Add _char4 variants.
3359         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
3360         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
3361         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
3362         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
3363         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
3364         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
3365         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
3366         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
3367         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
3368         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
3369         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
3370         * generated/eoshift3_4.c: Regenerate.
3371         * generated/eoshift1_8.c: Regenerate.
3372         * generated/eoshift1_16.c: Regenerate.
3373         * generated/cshift1_4.c: Regenerate.
3374         * generated/eoshift1_4.c: Regenerate.
3375         * generated/eoshift3_8.c: Regenerate.
3376         * generated/eoshift3_16.c: Regenerate.
3377         * generated/cshift1_8.c: Regenerate.
3378         * generated/cshift1_16.c: Regenerate.
3379
3380 2008-05-25  Tobias Burnus  <burnus@net-b.de>
3381
3382         PR fortran/32600
3383         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
3384         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
3385         * gfortran.map (c_f_procpointer): Remove.
3386
3387 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
3388
3389         PR libgfortran/36302
3390         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
3391         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
3392         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
3393         _gfortran_cshift0_16_char.  Sort alphabetically.
3394         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
3395         * intrinsics/eoshift2.c:  Likewise.
3396         * intrinsics/cshift0.c:  Likewise.
3397
3398 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
3399
3400         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
3401         pointer is restrict.
3402         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
3403         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
3404         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
3405         (spread_scalar_'rtype_code`): Likewise.
3406         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
3407         * m4/eoshift1.m4 (eoshift1):  Likewise.
3408         * m4/eoshift3.m4 (eoshift3):  Likewise.
3409         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
3410         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
3411         (unpack1_'rtype_code`):  Likewise.
3412         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
3413         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
3414         * intrinsics/eoshift0.c (eoshift0):  Likewise.
3415         * intrinsics/eoshift2.c (eoshift2):  Likewise.
3416         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
3417         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
3418         * generated/eoshift1_16.c: Regenerated.
3419         * generated/eoshift1_4.c: Regenerated.
3420         * generated/eoshift1_8.c: Regenerated.
3421         * generated/eoshift3_16.c: Regenerated.
3422         * generated/eoshift3_4.c: Regenerated.
3423         * generated/eoshift3_8.c: Regenerated.
3424         * generated/in_pack_c10.c: Regenerated.
3425         * generated/in_pack_c16.c: Regenerated.
3426         * generated/in_pack_c4.c: Regenerated.
3427         * generated/in_pack_c8.c: Regenerated.
3428         * generated/in_pack_i1.c: Regenerated.
3429         * generated/in_pack_i16.c: Regenerated.
3430         * generated/in_pack_i2.c: Regenerated.
3431         * generated/in_pack_i4.c: Regenerated.
3432         * generated/in_pack_i8.c: Regenerated.
3433         * generated/in_pack_r10.c: Regenerated.
3434         * generated/in_pack_r16.c: Regenerated.
3435         * generated/in_pack_r4.c: Regenerated.
3436         * generated/in_pack_r8.c: Regenerated.
3437         * generated/in_unpack_c10.c: Regenerated.
3438         * generated/in_unpack_c16.c: Regenerated.
3439         * generated/in_unpack_c4.c: Regenerated.
3440         * generated/in_unpack_c8.c: Regenerated.
3441         * generated/in_unpack_i1.c: Regenerated.
3442         * generated/in_unpack_i16.c: Regenerated.
3443         * generated/in_unpack_i2.c: Regenerated.
3444         * generated/in_unpack_i4.c: Regenerated.
3445         * generated/in_unpack_i8.c: Regenerated.
3446         * generated/in_unpack_r10.c: Regenerated.
3447         * generated/in_unpack_r16.c: Regenerated.
3448         * generated/in_unpack_r4.c: Regenerated.
3449         * generated/in_unpack_r8.c: Regenerated.
3450         * generated/maxloc0_16_i1.c: Regenerated.
3451         * generated/maxloc0_16_i16.c: Regenerated.
3452         * generated/maxloc0_16_i2.c: Regenerated.
3453         * generated/maxloc0_16_i4.c: Regenerated.
3454         * generated/maxloc0_16_i8.c: Regenerated.
3455         * generated/maxloc0_16_r10.c: Regenerated.
3456         * generated/maxloc0_16_r16.c: Regenerated.
3457         * generated/maxloc0_16_r4.c: Regenerated.
3458         * generated/maxloc0_16_r8.c: Regenerated.
3459         * generated/maxloc0_4_i1.c: Regenerated.
3460         * generated/maxloc0_4_i16.c: Regenerated.
3461         * generated/maxloc0_4_i2.c: Regenerated.
3462         * generated/maxloc0_4_i4.c: Regenerated.
3463         * generated/maxloc0_4_i8.c: Regenerated.
3464         * generated/maxloc0_4_r10.c: Regenerated.
3465         * generated/maxloc0_4_r16.c: Regenerated.
3466         * generated/maxloc0_4_r4.c: Regenerated.
3467         * generated/maxloc0_4_r8.c: Regenerated.
3468         * generated/maxloc0_8_i1.c: Regenerated.
3469         * generated/maxloc0_8_i16.c: Regenerated.
3470         * generated/maxloc0_8_i2.c: Regenerated.
3471         * generated/maxloc0_8_i4.c: Regenerated.
3472         * generated/maxloc0_8_i8.c: Regenerated.
3473         * generated/maxloc0_8_r10.c: Regenerated.
3474         * generated/maxloc0_8_r16.c: Regenerated.
3475         * generated/maxloc0_8_r4.c: Regenerated.
3476         * generated/maxloc0_8_r8.c: Regenerated.
3477         * generated/minloc0_16_i1.c: Regenerated.
3478         * generated/minloc0_16_i16.c: Regenerated.
3479         * generated/minloc0_16_i2.c: Regenerated.
3480         * generated/minloc0_16_i4.c: Regenerated.
3481         * generated/minloc0_16_i8.c: Regenerated.
3482         * generated/minloc0_16_r10.c: Regenerated.
3483         * generated/minloc0_16_r16.c: Regenerated.
3484         * generated/minloc0_16_r4.c: Regenerated.
3485         * generated/minloc0_16_r8.c: Regenerated.
3486         * generated/minloc0_4_i1.c: Regenerated.
3487         * generated/minloc0_4_i16.c: Regenerated.
3488         * generated/minloc0_4_i2.c: Regenerated.
3489         * generated/minloc0_4_i4.c: Regenerated.
3490         * generated/minloc0_4_i8.c: Regenerated.
3491         * generated/minloc0_4_r10.c: Regenerated.
3492         * generated/minloc0_4_r16.c: Regenerated.
3493         * generated/minloc0_4_r4.c: Regenerated.
3494         * generated/minloc0_4_r8.c: Regenerated.
3495         * generated/minloc0_8_i1.c: Regenerated.
3496         * generated/minloc0_8_i16.c: Regenerated.
3497         * generated/minloc0_8_i2.c: Regenerated.
3498         * generated/minloc0_8_i4.c: Regenerated.
3499         * generated/minloc0_8_i8.c: Regenerated.
3500         * generated/minloc0_8_r10.c: Regenerated.
3501         * generated/minloc0_8_r16.c: Regenerated.
3502         * generated/minloc0_8_r4.c: Regenerated.
3503         * generated/minloc0_8_r8.c: Regenerated.
3504         * generated/pack_c10.c: Regenerated.
3505         * generated/pack_c16.c: Regenerated.
3506         * generated/pack_c4.c: Regenerated.
3507         * generated/pack_c8.c: Regenerated.
3508         * generated/pack_i1.c: Regenerated.
3509         * generated/pack_i16.c: Regenerated.
3510         * generated/pack_i2.c: Regenerated.
3511         * generated/pack_i4.c: Regenerated.
3512         * generated/pack_i8.c: Regenerated.
3513         * generated/pack_r10.c: Regenerated.
3514         * generated/pack_r16.c: Regenerated.
3515         * generated/pack_r4.c: Regenerated.
3516         * generated/pack_r8.c: Regenerated.
3517         * generated/spread_c10.c: Regenerated.
3518         * generated/spread_c16.c: Regenerated.
3519         * generated/spread_c4.c: Regenerated.
3520         * generated/spread_c8.c: Regenerated.
3521         * generated/spread_i1.c: Regenerated.
3522         * generated/spread_i16.c: Regenerated.
3523         * generated/spread_i2.c: Regenerated.
3524         * generated/spread_i4.c: Regenerated.
3525         * generated/spread_i8.c: Regenerated.
3526         * generated/spread_r10.c: Regenerated.
3527         * generated/spread_r16.c: Regenerated.
3528         * generated/spread_r4.c: Regenerated.
3529         * generated/spread_r8.c: Regenerated.
3530         * generated/transpose_c10.c: Regenerated.
3531         * generated/transpose_c16.c: Regenerated.
3532         * generated/transpose_c4.c: Regenerated.
3533         * generated/transpose_c8.c: Regenerated.
3534         * generated/transpose_i16.c: Regenerated.
3535         * generated/transpose_i4.c: Regenerated.
3536         * generated/transpose_i8.c: Regenerated.
3537         * generated/transpose_r10.c: Regenerated.
3538         * generated/transpose_r16.c: Regenerated.
3539         * generated/transpose_r4.c: Regenerated.
3540         * generated/transpose_r8.c: Regenerated.
3541         * generated/unpack_c10.c: Regenerated.
3542         * generated/unpack_c16.c: Regenerated.
3543         * generated/unpack_c4.c: Regenerated.
3544         * generated/unpack_c8.c: Regenerated.
3545         * generated/unpack_i1.c: Regenerated.
3546         * generated/unpack_i16.c: Regenerated.
3547         * generated/unpack_i2.c: Regenerated.
3548         * generated/unpack_i4.c: Regenerated.
3549         * generated/unpack_i8.c: Regenerated.
3550         * generated/unpack_r10.c: Regenerated.
3551         * generated/unpack_r16.c: Regenerated.
3552         * generated/unpack_r4.c: Regenerated.
3553         * generated/unpack_r8.c: Regenerated.
3554
3555 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3556
3557         * runtime/select.c: Moved content to select_inc.c. Include it. 
3558         Add macros for different character types.
3559         * runtime/select_inc.c: New file.
3560         * runtime/convert_char.c: New file.
3561         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
3562         functions.
3563         * intrinsics/transpose_generic.c (transpose_char4): New function.
3564         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
3565         New functions.
3566         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
3567         New functions.
3568         * intrinsics/reshape_generic.c (reshape_char): Use
3569         gfc_charlen_type as type for length variables.
3570         (reshape_char4): New function.
3571         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
3572         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
3573         _gfortran_transpose_char4, _gfortran_spread_char4,
3574         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
3575         _gfortran_pack_char4, _gfortran_pack_s_char4,
3576         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
3577         * Makefile.am: Add runtime/convert_char.c.
3578         * Makefile.in: Regenerate.
3579
3580 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
3581
3582         * io/list_read.c (list_formatted_read_scalar):  Declare
3583         type as volatile to shut up compiler warning.
3584
3585 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3586
3587         PR libfortran/25561
3588         * io/io.h (struct fbuf): Change pointer to position offset.
3589         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
3590         changes.
3591         (fbuf_reset): ptr=>pos changes.
3592         (fbuf_alloc): If the request doesn't fit, don't waste memory by
3593         keeping flushed bytes. ptr=>pos changes.
3594         (fbuf_flush): ptr=>pos changes.
3595         (fbuf_seek): Don't seek past the left tab limit, don't update active
3596         byte count.
3597         * io/open.c (new_unit): If RECL has been specified, used that as
3598         initial buffer size.
3599
3600 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
3601
3602         PR libfortran/35632
3603         * io/open.c (new_unit): Set stream position to correct value.
3604
3605 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
3606
3607         PR libfortran/25561
3608         * Makefile.am: Add fbuf.c to gfor_io_src.
3609         * Makefile.in: Regenerate.
3610         * io/io.h (read_block): Remove.
3611         (struct stream): Remove alloc_r_at function pointer.
3612         (salloc_r): Remove.
3613         (salloc_r_at): Remove.
3614         (salloc_w_at): Remove.
3615         (salloc_w): Remove offset argument.
3616         (struct fbuf): New struct for format buffer.
3617         (struct gfc_unit): Add fbuf.
3618         (read_block_form): New prototype.
3619         (fbuf_init): Likewise.
3620         (fbuf_destroy): Likewise.
3621         (fbuf_reset): Likewise.
3622         (fbuf_alloc): Likewise.
3623         (fbuf_flush): Likewise.
3624         (fbuf_seek): Likewise.
3625         * io/file_pos.c (formatted_backspace): Change to use sread.
3626         (unformatted_backspace): Likewise.
3627         (st_backspace): Flush format buffer.
3628         (st_rewind): Likewise.
3629         * io/list_read.c (next_char): Likewise.
3630         (nml_query): Tidying, flush format buffer.
3631         * io/open.c (new_unit): Init format buffer.
3632         * io/read.c (read_l): Change to use read_block_form.
3633         (read_a): Likewise.
3634         (read_decimal): Likewise.
3635         (read_radix): Likewise.
3636         (read_f): Likewise.
3637         (read_x): Empty reads also for stream I/O.
3638         * io/transfer.c (read_sf): Change to use sread.
3639         (read_block): Rename to read_block_form, change prototype, use sread.
3640         (read_block_direct): Don't seek stream files.
3641         (write_block): Change to use fbuf if external file, don't seek stream
3642         files.
3643         (write_buf): Don't seek stream files.
3644         (formatted_transfer_scalar): Use fbuf for external files.
3645         (us_read): Change to use sread.
3646         (pre_position): Do nothing for stream I/O.
3647         (data_transfer_init): Flush fbuf when switching from write to read, if
3648         POS is specified, seek stream file to correct offset.
3649         (skip_record): Change to use sread.
3650         (min_off): New function.
3651         (next_record_r): Change to use sread.
3652         (next_record_w): Change to use sset/sseek, flush fbuf.
3653         (finalize_transfer): Flush fbuf.
3654         * io/unit.c (init_units): Init fbuf for stdout, stderr.
3655         (close_unit_1): Destroy fbuf.
3656         (finish_last_advance_record): Flush fbuf, no need to seek.
3657         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
3658         (fd_alloc_w_at): Likewise.
3659         (fd_read): Remove third argument to fd_alloc_r_at.
3660         (fd_write): Remove third argument to fd_alloc_w_at.
3661         (fd_sset): Likewise.
3662         (fd_open): Don't set alloc_r_at.
3663         (mem_alloc_r_at): Remove unused where argument.
3664         (mem_alloc_w_at): Likewise.
3665         (mem_read): Don't incorrectly return previous errno, remove unused
3666         third argument to alloc function.
3667         (mem_write): Likewise.
3668         (mem_set): Likewise.
3669         (open_internal): Don't set alloc_r_at pointer.
3670         * io/fbuf.c: New file.
3671
3672 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3673
3674         * libgfortran.h (gfc_char4_t): New type.
3675         (GFC_SIZE_OF_CHAR_KIND): New macro.
3676         (compare_string): Adjust prototype.
3677         (compare_string_char4): New prototype.
3678         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
3679         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
3680         _gfortran_concat_string_char4, _gfortran_string_index_char4,
3681         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
3682         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
3683         _gfortran_string_verify_char4.
3684         * intrinsics/string_intrinsics_inc.c: New file from content of
3685         string_intrinsics.c with types replaced by macros.
3686         * intrinsics/string_intrinsics.c: Move content to
3687         string_intrinsics_inc.c.
3688
3689 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3690
3691         PR libfortran/36202
3692         * io/list_read (eat_separator): Handle the CR-LF case correctly.
3693
3694 2008-05-09  Julian Brown  <julian@codesourcery.com>
3695
3696         * Makefile.am (LTLDFLAGS): New.
3697         (libgfortran_la_LDFLAGS): Use above.
3698         * Makefile.in: Regenerate.
3699
3700 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3701
3702         PR libfortran/36131
3703         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
3704         (next_record_w): Likewise.
3705
3706 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3707
3708         PR libfortran/35995
3709         * m4/ifunction_logical.m4:  If the extent of "array"
3710         is less than zero, set it to zero.  Use an explicit
3711         flag for breaking out of the main loop to avoid, because
3712         the data pointer for "array" may be NULL for an empty
3713         array.
3714         * m4/ifunction.m4:  Likewise.
3715         * generated/all_l1.c: Regenerated.
3716         * generated/all_l16.c: Regenerated.
3717         * generated/all_l2.c: Regenerated.
3718         * generated/all_l4.c: Regenerated.
3719         * generated/all_l8.c: Regenerated.
3720         * generated/any_l1.c: Regenerated.
3721         * generated/any_l16.c: Regenerated.
3722         * generated/any_l2.c: Regenerated.
3723         * generated/any_l4.c: Regenerated.
3724         * generated/any_l8.c: Regenerated.
3725         * generated/count_16_l.c: Regenerated.
3726         * generated/count_1_l.c: Regenerated.
3727         * generated/count_2_l.c: Regenerated.
3728         * generated/count_4_l.c: Regenerated.
3729         * generated/count_8_l.c: Regenerated.
3730         * generated/maxloc1_16_i1.c: Regenerated.
3731         * generated/maxloc1_16_i16.c: Regenerated.
3732         * generated/maxloc1_16_i2.c: Regenerated.
3733         * generated/maxloc1_16_i4.c: Regenerated.
3734         * generated/maxloc1_16_i8.c: Regenerated.
3735         * generated/maxloc1_16_r10.c: Regenerated.
3736         * generated/maxloc1_16_r16.c: Regenerated.
3737         * generated/maxloc1_16_r4.c: Regenerated.
3738         * generated/maxloc1_16_r8.c: Regenerated.
3739         * generated/maxloc1_4_i1.c: Regenerated.
3740         * generated/maxloc1_4_i16.c: Regenerated.
3741         * generated/maxloc1_4_i2.c: Regenerated.
3742         * generated/maxloc1_4_i4.c: Regenerated.
3743         * generated/maxloc1_4_i8.c: Regenerated.
3744         * generated/maxloc1_4_r10.c: Regenerated.
3745         * generated/maxloc1_4_r16.c: Regenerated.
3746         * generated/maxloc1_4_r4.c: Regenerated.
3747         * generated/maxloc1_4_r8.c: Regenerated.
3748         * generated/maxloc1_8_i1.c: Regenerated.
3749         * generated/maxloc1_8_i16.c: Regenerated.
3750         * generated/maxloc1_8_i2.c: Regenerated.
3751         * generated/maxloc1_8_i4.c: Regenerated.
3752         * generated/maxloc1_8_i8.c: Regenerated.
3753         * generated/maxloc1_8_r10.c: Regenerated.
3754         * generated/maxloc1_8_r16.c: Regenerated.
3755         * generated/maxloc1_8_r4.c: Regenerated.
3756         * generated/maxloc1_8_r8.c: Regenerated.
3757         * generated/maxval_i1.c: Regenerated.
3758         * generated/maxval_i16.c: Regenerated.
3759         * generated/maxval_i2.c: Regenerated.
3760         * generated/maxval_i4.c: Regenerated.
3761         * generated/maxval_i8.c: Regenerated.
3762         * generated/maxval_r10.c: Regenerated.
3763         * generated/maxval_r16.c: Regenerated.
3764         * generated/maxval_r4.c: Regenerated.
3765         * generated/maxval_r8.c: Regenerated.
3766         * generated/minloc1_16_i1.c: Regenerated.
3767         * generated/minloc1_16_i16.c: Regenerated.
3768         * generated/minloc1_16_i2.c: Regenerated.
3769         * generated/minloc1_16_i4.c: Regenerated.
3770         * generated/minloc1_16_i8.c: Regenerated.
3771         * generated/minloc1_16_r10.c: Regenerated.
3772         * generated/minloc1_16_r16.c: Regenerated.
3773         * generated/minloc1_16_r4.c: Regenerated.
3774         * generated/minloc1_16_r8.c: Regenerated.
3775         * generated/minloc1_4_i1.c: Regenerated.
3776         * generated/minloc1_4_i16.c: Regenerated.
3777         * generated/minloc1_4_i2.c: Regenerated.
3778         * generated/minloc1_4_i4.c: Regenerated.
3779         * generated/minloc1_4_i8.c: Regenerated.
3780         * generated/minloc1_4_r10.c: Regenerated.
3781         * generated/minloc1_4_r16.c: Regenerated.
3782         * generated/minloc1_4_r4.c: Regenerated.
3783         * generated/minloc1_4_r8.c: Regenerated.
3784         * generated/minloc1_8_i1.c: Regenerated.
3785         * generated/minloc1_8_i16.c: Regenerated.
3786         * generated/minloc1_8_i2.c: Regenerated.
3787         * generated/minloc1_8_i4.c: Regenerated.
3788         * generated/minloc1_8_i8.c: Regenerated.
3789         * generated/minloc1_8_r10.c: Regenerated.
3790         * generated/minloc1_8_r16.c: Regenerated.
3791         * generated/minloc1_8_r4.c: Regenerated.
3792         * generated/minloc1_8_r8.c: Regenerated.
3793         * generated/minval_i1.c: Regenerated.
3794         * generated/minval_i16.c: Regenerated.
3795         * generated/minval_i2.c: Regenerated.
3796         * generated/minval_i4.c: Regenerated.
3797         * generated/minval_i8.c: Regenerated.
3798         * generated/minval_r10.c: Regenerated.
3799         * generated/minval_r16.c: Regenerated.
3800         * generated/minval_r4.c: Regenerated.
3801         * generated/minval_r8.c: Regenerated.
3802         * generated/product_c10.c: Regenerated.
3803         * generated/product_c16.c: Regenerated.
3804         * generated/product_c4.c: Regenerated.
3805         * generated/product_c8.c: Regenerated.
3806         * generated/product_i1.c: Regenerated.
3807         * generated/product_i16.c: Regenerated.
3808         * generated/product_i2.c: Regenerated.
3809         * generated/product_i4.c: Regenerated.
3810         * generated/product_i8.c: Regenerated.
3811         * generated/product_r10.c: Regenerated.
3812         * generated/product_r16.c: Regenerated.
3813         * generated/product_r4.c: Regenerated.
3814         * generated/product_r8.c: Regenerated.
3815         * generated/sum_c10.c: Regenerated.
3816         * generated/sum_c16.c: Regenerated.
3817         * generated/sum_c4.c: Regenerated.
3818         * generated/sum_c8.c: Regenerated.
3819         * generated/sum_i1.c: Regenerated.
3820         * generated/sum_i16.c: Regenerated.
3821         * generated/sum_i2.c: Regenerated.
3822         * generated/sum_i4.c: Regenerated.
3823         * generated/sum_i8.c: Regenerated.
3824         * generated/sum_r10.c: Regenerated.
3825         * generated/sum_r16.c: Regenerated.
3826         * generated/sum_r4.c: Regenerated.
3827         * generated/sum_r8.c: Regenerated.
3828
3829 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3830
3831         PR libfortran/35990
3832         * intrinsics/pack_generic.c:  Really commit.
3833
3834 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3835
3836         PR libfortran/35990
3837         * intrinsics/pack_generic.c:  If an extent of the source
3838         array is less then zero, set it to zero.  Set the source
3839         pointer to NULL if the source size is zero.  Set the total
3840         number of elements to zero if the vector has an extent
3841         less or equal to zero.
3842         * m4/pack.m4:  Set the source pointer to NULL if the
3843         source array is zero-sized.  Set the total number of
3844         elemements to zero if the vector has an extent less or
3845         equal to zero.
3846         * generated/pack_i1.c:  Regenerated.
3847         * generated/pack_i2.c:  Regenerated.
3848         * generated/pack_i4.c:  Regenerated.
3849         * generated/pack_i8.c:  Regenerated.
3850         * generated/pack_i16.c:  Regenerated.
3851         * generated/pack_r4.c:  Regenerated.
3852         * generated/pack_r8.c:  Regenerated.
3853         * generated/pack_r10.c:  Regenerated.
3854         * generated/pack_r16.c:  Regenerated.
3855         * generated/pack_c4.c:  Regenerated.
3856         * generated/pack_c8.c:  Regenerated.
3857         * generated/pack_c10.c:  Regenerated.
3858         * generated/pack_c16.c:  Regenerated.
3859
3860 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3861
3862         PR libfortran/36094
3863         * runtime/error.c (show_locus): Provide modified error message when
3864         filename has not yet been associated with a unit number.
3865         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
3866
3867 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3868
3869         * intrinsics/selected_char_kind.c: New file.
3870         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
3871         * Makefile.am: Add intrinsics/selected_char_kind.c.
3872         * Makefile.in: Regenerate.
3873
3874 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
3875
3876         PR libfortran/35993
3877         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
3878         implementation for multi-dimensional return arrays when
3879         the mask is .false.
3880         * generated/maxloc1_16_i1.c: Regenerated.
3881         * generated/maxloc1_16_i16.c: Regenerated.
3882         * generated/maxloc1_16_i2.c: Regenerated.
3883         * generated/maxloc1_16_i4.c: Regenerated.
3884         * generated/maxloc1_16_i8.c: Regenerated.
3885         * generated/maxloc1_16_r10.c: Regenerated.
3886         * generated/maxloc1_16_r16.c: Regenerated.
3887         * generated/maxloc1_16_r4.c: Regenerated.
3888         * generated/maxloc1_16_r8.c: Regenerated.
3889         * generated/maxloc1_4_i1.c: Regenerated.
3890         * generated/maxloc1_4_i16.c: Regenerated.
3891         * generated/maxloc1_4_i2.c: Regenerated.
3892         * generated/maxloc1_4_i4.c: Regenerated.
3893         * generated/maxloc1_4_i8.c: Regenerated.
3894         * generated/maxloc1_4_r10.c: Regenerated.
3895         * generated/maxloc1_4_r16.c: Regenerated.
3896         * generated/maxloc1_4_r4.c: Regenerated.
3897         * generated/maxloc1_4_r8.c: Regenerated.
3898         * generated/maxloc1_8_i1.c: Regenerated.
3899         * generated/maxloc1_8_i16.c: Regenerated.
3900         * generated/maxloc1_8_i2.c: Regenerated.
3901         * generated/maxloc1_8_i4.c: Regenerated.
3902         * generated/maxloc1_8_i8.c: Regenerated.
3903         * generated/maxloc1_8_r10.c: Regenerated.
3904         * generated/maxloc1_8_r16.c: Regenerated.
3905         * generated/maxloc1_8_r4.c: Regenerated.
3906         * generated/maxloc1_8_r8.c: Regenerated.
3907         * generated/maxval_i1.c: Regenerated.
3908         * generated/maxval_i16.c: Regenerated.
3909         * generated/maxval_i2.c: Regenerated.
3910         * generated/maxval_i4.c: Regenerated.
3911         * generated/maxval_i8.c: Regenerated.
3912         * generated/maxval_r10.c: Regenerated.
3913         * generated/maxval_r16.c: Regenerated.
3914         * generated/maxval_r4.c: Regenerated.
3915         * generated/maxval_r8.c: Regenerated.
3916         * generated/minloc1_16_i1.c: Regenerated.
3917         * generated/minloc1_16_i16.c: Regenerated.
3918         * generated/minloc1_16_i2.c: Regenerated.
3919         * generated/minloc1_16_i4.c: Regenerated.
3920         * generated/minloc1_16_i8.c: Regenerated.
3921         * generated/minloc1_16_r10.c: Regenerated.
3922         * generated/minloc1_16_r16.c: Regenerated.
3923         * generated/minloc1_16_r4.c: Regenerated.
3924         * generated/minloc1_16_r8.c: Regenerated.
3925         * generated/minloc1_4_i1.c: Regenerated.
3926         * generated/minloc1_4_i16.c: Regenerated.
3927         * generated/minloc1_4_i2.c: Regenerated.
3928         * generated/minloc1_4_i4.c: Regenerated.
3929         * generated/minloc1_4_i8.c: Regenerated.
3930         * generated/minloc1_4_r10.c: Regenerated.
3931         * generated/minloc1_4_r16.c: Regenerated.
3932         * generated/minloc1_4_r4.c: Regenerated.
3933         * generated/minloc1_4_r8.c: Regenerated.
3934         * generated/minloc1_8_i1.c: Regenerated.
3935         * generated/minloc1_8_i16.c: Regenerated.
3936         * generated/minloc1_8_i2.c: Regenerated.
3937         * generated/minloc1_8_i4.c: Regenerated.
3938         * generated/minloc1_8_i8.c: Regenerated.
3939         * generated/minloc1_8_r10.c: Regenerated.
3940         * generated/minloc1_8_r16.c: Regenerated.
3941         * generated/minloc1_8_r4.c: Regenerated.
3942         * generated/minloc1_8_r8.c: Regenerated.
3943         * generated/minval_i1.c: Regenerated.
3944         * generated/minval_i16.c: Regenerated.
3945         * generated/minval_i2.c: Regenerated.
3946         * generated/minval_i4.c: Regenerated.
3947         * generated/minval_i8.c: Regenerated.
3948         * generated/minval_r10.c: Regenerated.
3949         * generated/minval_r16.c: Regenerated.
3950         * generated/minval_r4.c: Regenerated.
3951         * generated/minval_r8.c: Regenerated.
3952         * generated/product_c10.c: Regenerated.
3953         * generated/product_c16.c: Regenerated.
3954         * generated/product_c4.c: Regenerated.
3955         * generated/product_c8.c: Regenerated.
3956         * generated/product_i1.c: Regenerated.
3957         * generated/product_i16.c: Regenerated.
3958         * generated/product_i2.c: Regenerated.
3959         * generated/product_i4.c: Regenerated.
3960         * generated/product_i8.c: Regenerated.
3961         * generated/product_r10.c: Regenerated.
3962         * generated/product_r16.c: Regenerated.
3963         * generated/product_r4.c: Regenerated.
3964         * generated/product_r8.c: Regenerated.
3965         * generated/sum_c10.c: Regenerated.
3966         * generated/sum_c16.c: Regenerated.
3967         * generated/sum_c4.c: Regenerated.
3968         * generated/sum_c8.c: Regenerated.
3969         * generated/sum_i1.c: Regenerated.
3970         * generated/sum_i16.c: Regenerated.
3971         * generated/sum_i2.c: Regenerated.
3972         * generated/sum_i4.c: Regenerated.
3973         * generated/sum_i8.c: Regenerated.
3974         * generated/sum_r10.c: Regenerated.
3975         * generated/sum_r16.c: Regenerated.
3976         * generated/sum_r4.c: Regenerated.
3977         * generated/sum_r8.c: Regenerated.
3978
3979 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
3980
3981         PR libfortran/35960
3982         * m4/reshape.m4:  Fix typo in last commit.
3983         * generated/reshape_i4.c:  Regererated.
3984         * generated/reshape_i8.c:  Regenerated.
3985         * generated/reshape_i16.c:  Regenerated.
3986         * generated/reshape_r4.c:  Regenerated.
3987         * generated/reshape_r8.c:  Regenerated.
3988         * generated/reshape_r10.c:  Regenerated.
3989         * generated/reshape_r16.c:  Regenerated.
3990         * generated/reshape_c4.c:  Regenerated.
3991         * generated/reshape_c8.c:  Regenerated.
3992         * generated/reshape_c10.c:  Regenerated.
3993         * generated/reshape_c16.c:  Regenerated.
3994
3995 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3996
3997         * intrinsics/time_1.h (__time_1): Remove unused variable.
3998
3999 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
4000
4001         PR libfortran/35988
4002         * m4/matmul.m4:  Only issue a runtime error if extents are
4003         non-zero.
4004         * generated/matmul_i1.c:  Regenerated.
4005         * generated/matmul_i2.c:  Regenerated.
4006         * generated/matmul_i4.c:  Regenerated.
4007         * generated/matmul_i8.c:  Regenerated.
4008         * generated/matmul_i16.c:  Regenerated.
4009         * generated/matmul_r4.c:  Regenerated.
4010         * generated/matmul_r8.c:  Regenerated.
4011         * generated/matmul_r10.c:  Regenerated.
4012         * generated/matmul_r16.c:  Regenerated.
4013         * generated/matmul_c4.c:  Regenerated.
4014         * generated/matmul_c8.c:  Regenerated.
4015         * generated/matmul_c10.c:  Regenerated.
4016         * generated/matmul_c16.c:  Regenerated.
4017
4018 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4019
4020         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
4021         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
4022         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
4023         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
4024         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
4025         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
4026         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
4027         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
4028         Fix cache variable names.
4029         * configure, Makefile.in: Regenerate.
4030
4031 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4032
4033         PR fortran/35991
4034         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
4035
4036 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
4037
4038         PR libfortran/35960
4039         * intrinsics/reshape_generic.c (reshape_internal): If the size
4040         of the resized array is zero, as determined by the SHAPE
4041         argument, return early.
4042         * m4/reshape.m4:  Likewise.
4043         * generated/reshape_i4.c:  Regererated.
4044         * generated/reshape_i8.c:  Regenerated.
4045         * generated/reshape_i16.c:  Regenerated.
4046         * generated/reshape_r4.c:  Regenerated.
4047         * generated/reshape_r8.c:  Regenerated.
4048         * generated/reshape_r10.c:  Regenerated.
4049         * generated/reshape_r16.c:  Regenerated.
4050         * generated/reshape_c4.c:  Regenerated.
4051         * generated/reshape_c8.c:  Regenerated.
4052         * generated/reshape_c10.c:  Regenerated.
4053         * generated/reshape_c16.c:  Regenerated.
4054
4055 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4056
4057         PR bootstrap/35457
4058         * aclocal.m4: Regenerate.
4059         * configure: Regenerate.
4060
4061 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
4062
4063         PR libfortran/32972
4064         * intrinsics/spread_generic.c (spread):  Use spread_i2()
4065         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
4066
4067 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
4068         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4069
4070         PR libfortran/32972
4071         PR libfortran/32512
4072         configure.ac:  Add test for uintptr_t.
4073         configure:  Regenerated.
4074         config.h.in:  Regenerated.
4075         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
4076         GFC_DTYPE_DERIVED_2:  New macro.
4077         GFC_DTYPE_DERIVED_4:  New macro.
4078         GFC_DTYPE_DERIVED_8:  New macro.
4079         GFC_DTYPE_DERIVED_16:  New macro.
4080         GFC_UNALIGNED_2:  New macro.
4081         GFC_UNALIGNED_4:  New macro.
4082         GFC_UNALIGNED_8:  New macro.
4083         GFC_UNALIGNED_16:  New macro.
4084         intptr_t:  Define if we don't have it.
4085         uintptr_t:  Likewise.
4086         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
4087         * intrinsics/signal.c (signal_sub):  Likewise.
4088         (signal_sub_int):  Likewise.
4089         (alarm_sub_int_i4):  Likewise.
4090         * intrinsics/spread_generic.c (spread):  Use the integer
4091         routines for handling derived types of sizes 1, 2, 4, 8 and 16
4092         if the alignment of all pointers is correct.
4093         (spread_scalar):  Likewise.
4094         * intrinsics/pack_generic.c (pack):  Likewise.
4095         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
4096         * intrinsics/unpack_generic.c (unpack1):  Likewise.
4097         (unpack0):  Likewise.
4098         * runtime/in_pack_generic.c (internal_pack):  Likewise.
4099         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
4100
4101 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
4102
4103         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
4104         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
4105         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
4106         is used.
4107         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
4108         nml_read_obj call.  Use snprintf instead of sprintf when %s
4109         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
4110         of parse_err_msg array.  Append " for namelist variable " and
4111         nl->var_name to it.
4112         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
4113         sizeof nml_err_msg as extra argument to nml_get_obj_data.
4114
4115 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4116
4117         PR fortran/25829 28655
4118         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
4119         and flags.status. (st_open): Initialize flags.async.
4120         * io/list_read.c (read_charactor): Use delim_status instead of
4121         flags.delim.
4122         * io/read.c (read_x): Use pad_status instead of flags.pad.
4123         * io/inquire.c (inquire_via_unit): Add new checks.
4124         (inquire_via_filename): Likewise.
4125         * io/io.h (st_parameter_inquire): Add new flags.
4126         (st_parameter_dt): Likewise.
4127         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
4128         flags.async.
4129         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
4130         pad_status instead of flags.pad. (read_block): Likewise.
4131         (data_transfer_init): Set flags.async and add checks.
4132         * io/write.c (write_character): Use delim_status.
4133         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
4134         (namelist_write): Likewise.
4135
4136 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4137
4138         PR fortran/25829 28655
4139         * gfortran.map: Add new symbol, _gfortran_st_wait.
4140         * libgfortran.h (st_paramter_common): Add new I/O parameters.
4141         * open.c (st_option decimal_opt[], st_option encoding_opt[],
4142         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
4143         parameter option arrays. (edit_modes): Add checks for new parameters.
4144         (new_unit): Likewise. (st_open): Likewise.
4145         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
4146         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
4147         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
4148         * read.c (read_a): Use decimal status flag to allow comma in place of a
4149         decimal point. (read_f): Allow comma as acceptable character in float.
4150         According to decimal flag, substitute a period for a comma.
4151         (read_x): If decimal status flag is comma, disable the read_comma flag,
4152         not allowing comma as a delimiter, an extension otherwise.
4153         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
4154         unit_async): New enumerators. Add all new I/O parameters.
4155         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
4156         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
4157         (fd_sfree): Use new enumerator. (fd_read): Likewise.
4158         (fd_write): Likewise. (fd_close): Fix whitespace.
4159         (fd_open): Use new enumertors. (tempfile, regular_file,
4160         open_external): Fix whitespace. (output_stream, error_stream): Set
4161         method. (stream_offset): Fix whitespace.
4162         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
4163         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
4164         based on new decimal_status flag. (data_transfer_init): Initialize new
4165         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
4166         * format.c: (format_lex): Add format specifiers DP, DC, and D.
4167         (parse_format_list): Parse the new specifiers.
4168         * write.c (write_decimal): Use new sign enumerators to set the sign.
4169         (write_complex): Handle decimal comma and semi-colon separator.
4170         (nml_write_obj): Likewise.
4171         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
4172         sign enumerators. (output_float): Likewise. Use new decimal_status flag
4173         to set the decimal character to a point or a comma.
4174         
4175 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
4176
4177         PR libfortran/32972
4178         PR libfortran/32512
4179         * Makefile.am:  Add new variable, i_spread_c, containing
4180         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
4181         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
4182         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
4183         * Makefile.in:  Regenerated.
4184         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
4185         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
4186         spread_c4, spread_c8, spread_c10, spread_c16,
4187         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
4188         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
4189         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
4190         spread_scalar_c10 and spread_scalar_c16.
4191         Add macros to isolate both type and size information
4192         from array descriptors with a single mask operation.
4193         * intrinsics/spread_generic.c:  Add calls to specific
4194         spread functions.
4195         * m4/spread.m4:  New file.
4196         * generated/spread_i1.c:  New file.
4197         * generated/spread_i2.c:  New file.
4198         * generated/spread_i4.c:  New file.
4199         * generated/spread_i8.c:  New file.
4200         * generated/spread_i16.c:  New file.
4201         * generated/spread_r4.c:  New file.
4202         * generated/spread_r8.c:  New file.
4203         * generated/spread_r10.c:  New file.
4204         * generated/spread_r16.c:  New file.
4205         * generated/spread_c4.c:  New file.
4206         * generated/spread_c8.c:  New file.
4207         * generated/spread_c10.c:  New file.
4208         * generated/spread_c16.c:  New file.
4209
4210 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4211
4212         PR libfortran/35699
4213         * io/transfer.c (write_buf):  Don't pad the record, just return if the
4214         data is NULL.  (next_record_w): If there are bytes left in the record
4215         for unformatted direct I/O, pad out the record with zero bytes.
4216
4217 2008-03-28  Tobias Burnus  <burnus@net-b.de>
4218
4219         PR fortran/35721
4220         * intrinsics/associated.c (associated): Ignore different
4221         stride of pointer vs. target if only one element is referred.
4222
4223 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4224
4225         * io/unix.c (fd_close):  Do not close STDIN.
4226
4227 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
4228
4229         PR libfortran/32972
4230         * Makefile.am:  Add new variable, i_unpack_c, containing
4231         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
4232         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
4233         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
4234         and unpack_c16.c
4235         Add i_unpack_c to gfor_built_src.
4236         Add rule to generate i_unpack_c from m4/unpack.m4.
4237         * Makefile.in:  Regenerated.
4238         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
4239         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
4240         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
4241         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
4242         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
4243         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
4244         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
4245         unpack1 functions.
4246         (unpack0):  Add calls to specific unpack0 functions.
4247         * m4/unpack.m4:  New file.
4248         * generated/unpack_i1.c:  New file.
4249         * generated/unpack_i2.c:  New file.
4250         * generated/unpack_i4.c:  New file.
4251         * generated/unpack_i8.c:  New file.
4252         * generated/unpack_i16.c:  New file.
4253         * generated/unpack_r4.c:  New file.
4254         * generated/unpack_r8.c:  New file.
4255         * generated/unpack_r10.c:  New file.
4256         * generated/unpack_r16.c:  New file.
4257         * generated/unpack_c4.c:  New file.
4258         * generated/unpack_c8.c:  New file.
4259         * generated/unpack_c10.c:  New file.
4260         * generated/unpack_c16.c:  New file.
4261
4262 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4263
4264         PR libfortran/35632
4265         * io/transfer.c (data_transfer_init):  Fix whitespace.
4266         (next_record_w): Truncate the file only if the stream
4267         position is short of the file end.
4268
4269 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4270
4271         * intrinsics/pack_generic.c:  Fix typo.
4272
4273 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
4274
4275         * gfortran.map: Move erfc_scaled symbols to new symbol node
4276         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
4277
4278 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
4279
4280         PR libfortran/32972
4281         * runtime/in_pack_generic.c (internal_pack):  Call correct
4282         function, pack_i16, for GFC_INTEGER_16.
4283
4284 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
4285
4286         PR libfortran/32972
4287         * Makefile.am:  Add new variable, i_pack_c, containing
4288         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
4289         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
4290         pack_c8.c, pack_c10.c, pack_c16.c.
4291         Add m4/pack.m4 to m4_files.
4292         Add i_pack_c to gfor_built_src.
4293         Add rule to generate i_pack_c from m4/pack.m4.
4294         * Makefile.in:  Regenerated.
4295         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
4296         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
4297         pack_c10, pack_c16.
4298         * intrinsics/pack_generic.c:  Add calls to specific
4299         pack functions.
4300         * m4/pack.m4:  New file.
4301         * generated/pack_i1.c:  New file.
4302         * generated/pack_i2.c:  New file.
4303         * generated/pack_i4.c:  New file.
4304         * generated/pack_i8.c:  New file.
4305         * generated/pack_i16.c:  New file.
4306         * generated/pack_r4.c:  New file.
4307         * generated/pack_r8.c:  New file.
4308         * generated/pack_r10.c:  New file.
4309         * generated/pack_r16.c:  New file.
4310         * generated/pack_c4.c:  New file.
4311         * generated/pack_c8.c:  New file.
4312         * generated/pack_c10.c:  New file.
4313         * generated/pack_c16.c:  New file.
4314
4315 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4316
4317         PR libfortran/35627
4318         * io/list_read.c (free_line): Clear the line buffer enable flag and
4319         reset the index into line_buffer, aka item_count.
4320         (next_char): Cleanup whitespace.
4321         (read_logical): Use unget_char to assure that the first character of the
4322         bad logical is saved in case it is part of an object name. Remove the
4323         clearing of index and flag that is now in free_line.
4324         (read_real): Likewise.
4325
4326 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
4327
4328         PR libfortran/32972
4329         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
4330         last commit.
4331
4332 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
4333
4334         PR libfortran/32972
4335         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
4336         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
4337         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
4338         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
4339         in_unpack_r16.c.
4340         * Makefile.in: Regenerate.
4341         * libgfortran.h:  Add prototypes for internal_pack_1,
4342         internal_pack_2, internal_pack_16, internal_pack_r4,
4343         internal_pack_r8, internal_pack_r10, internal_pack_r16,
4344         internal_pack_c10 and internal_pack_c16.  Add prototypes for
4345         internal_unpack_1, internal_unpack_2, internal_unpack_16,
4346         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
4347         internal_unpack_r16, internal_unpack_c10 and
4348         internal_unpack_c16.
4349         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
4350         of hardwired sizes.
4351         Add calls to internal_pack_1, internal_pack_2,
4352         internal_pack_16, internal_pack_r4, internal_pack_r8,
4353         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
4354         internal_pack_c16.
4355         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
4356         instead of hardwired sizes.
4357         Add calls to internal_unpack_1, internal_unpack_2,
4358         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
4359         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
4360         and internal_unpack_c16.
4361         * generated/in_pack_r4.c:  New file.
4362         * generated/in_pack_i2.c:  New file.
4363         * generated/in_unpack_i1.c:  New file.
4364         * generated/in_pack_r10.c:  New file.
4365         * generated/in_unpack_r4.c:  New file.
4366         * generated/in_unpack_i2.c:  New file.
4367         * generated/in_unpack_r16.c:  New file.
4368         * generated/in_pack_r8.c:  New file.
4369         * generated/in_unpack_r10.c:  New file.
4370         * generated/in_unpack_r8.c:  New file.
4371         * generated/in_pack_r16.c:  New file.
4372         * generated/in_pack_i1.c:  New file.
4373
4374 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4375
4376         PR libfortran/35617
4377         * io/list_read.c (eat_separator): If next character after eatline is '!'
4378         then eatline again. 
4379
4380 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4381
4382         * aclocal.m4: Regenerate.
4383         * configure: Likewise.
4384         * Makefile.in: Likewise.
4385
4386 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4387
4388         PR libfortran/35524
4389         * intrinsics/erfc_scaled_inc.c: Only define the long double
4390         variant of erfc_scaled if expl is available.
4391
4392 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4393
4394         PR libfortran/32812
4395         * intrinsics/random.c (scramble_seed, unscramble_seed): New
4396         functions.
4397         (random_seed_i4): Scramble the seed the user gives us before
4398         storing it, and unscramble it when we return it back later.
4399
4400 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
4401
4402         PR libfortran/35293
4403         * io/unix.c (fd_truncate): Fold s->special_file case into
4404         success case of ftruncate/chsize call instead of the failure case.
4405         Make failure case actually return failure.  Properly update stream
4406         pointers on failure.  Call runtime_error for targets without
4407         neither ftruncate nor chsize where such a call would be needed.
4408
4409 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4410
4411         PR fortran/33197
4412         * intrinsics/erfc_scaled_inc.c: New file.
4413         * intrinsics/erfc_scaled.c: New file.
4414         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
4415         * Makefile.am: Add intrinsics/erfc_scaled.c.
4416         * config.h.in: Regenerate.
4417         * configure: Regenerate.
4418         * Makefile.in: Regenerate.
4419
4420 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4421
4422         PR libfortran/35355
4423         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
4424         for mingw.
4425
4426 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4427
4428         PR libfortran/35063
4429         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
4430         instead of macro kludge.
4431         
4432 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4433
4434         PR fortran/29549
4435         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
4436         libgfortran.
4437         * Makefile.in: Regenerated.
4438
4439 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4440
4441         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
4442         * generated/all_l1.c: Regenerate.
4443         * generated/all_l2.c: Regenerate.
4444         * generated/all_l4.c: Regenerate.
4445         * generated/all_l8.c: Regenerate.
4446         * generated/all_l16.c: Regenerate.
4447         * generated/any_l1.c: Regenerate.
4448         * generated/any_l2.c: Regenerate.
4449         * generated/any_l4.c: Regenerate.
4450         * generated/any_l8.c: Regenerate.
4451         * generated/any_l16.c: Regenerate.
4452         * generated/count_1_l.c: Regenerate.
4453         * generated/count_2_l.c: Regenerate.
4454         * generated/count_4_l.c: Regenerate.
4455         * generated/count_8_l.c: Regenerate.
4456         * generated/count_16_l.c: Regenerate.
4457
4458 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4459
4460         PR libfortran/32841
4461         * acinclude.m4: Don't use HAVE_MATH_H.
4462         * configure: Regenerate.
4463
4464 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4465
4466         PR libfortran/35132
4467         * io/transfer.c (next_record_w): Truncate after the last record for
4468         STREAM I/O.
4469
4470         PR libfortran/34954
4471         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
4472
4473         PR libfortran/34974
4474         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
4475         is less than zero. (next_record_w): Use sseek to position the file to
4476         the max position reached.
4477
4478 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4479
4480         PR libfortran/35036
4481         * write_float.def (output_float):  Add error checks for zero digits
4482         after decimal point in E and D format specifiers.
4483         
4484 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4485
4486         PR libfortran/35063
4487         * io/unit.c (destroy_unit_mutex): New function that uses
4488         __gthread_mutex_destroy_function or pthread_mutex_destroy after
4489         unlocking and before free_mem for final closure of I/O unit.
4490         (delete_root): Use new function.
4491         (free_internal_unit): Likewise.
4492         (close_unit_1): Likewise.
4493
4494 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
4495
4496         PR libfortran/35001
4497         * m4/shape.m4:  Return 0 for extents <= 0.
4498         * generated/shape_i4.c:  Regenerated.
4499         * generated/shape_i8.c:  Regenerated.
4500         * generated/shape_i16.c:  Regenerated.
4501
4502 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
4503
4504         PR libfortran/34980
4505         * m4/shape.m4:  If return array is empty, return early.
4506         * generated/shape_i4.c:  Regenerated.
4507         * generated/shape_i8.c:  Regenerated.
4508         * generated/shape_i16.c:  Regenerated.
4509
4510 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
4511
4512         PR libfofortran/34887
4513         * io/transfer.c (next_record_w): Always move to the farthest
4514         position when completing the record (also when we are
4515         processing a slash edit descriptor).
4516
4517 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4518
4519         PR libfortran/34876
4520         * io/transfer.c (write_buf): Handle case of zero sized array.
4521         (transfer_array): Set data pointer to NULL and size to zero.  Then
4522         make a data transfer and return.
4523         
4524 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
4525
4526         * configure: Regenerate.
4527
4528 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4529
4530         PR libfortran/34795
4531         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
4532         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
4533         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
4534         FORAMATTED, and UNFORMATTED inquiries.
4535         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
4536         for files that are not opened. (inquire_direct): Same.
4537         (inquire_formatted): Same.
4538         
4539 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4540
4541         PR libfortran/34782
4542         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
4543         of the current max_pos or the newly calculated position.
4544
4545 2008-01-18  Tobias Burnus  <burnus@net-b.de>
4546
4547         * io/write.c (write_real): Increase default precision
4548         for REAL(16) by one.
4549
4550 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
4551
4552         PR libfortran/34669
4553         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
4554         to avoid piping the -fdump-parse-tree output to the assembler
4555         when configuring with -pipe.
4556         * mk-sik-inc.sh: Likewise.
4557         * mk-srk-inc.sh: Likewise.
4558
4559 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
4560
4561         PR libfortran/34671
4562         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
4563         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
4564         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
4565         _gfortran_count_8_l Removed _gfortran_count_16_l16,
4566         _gfortran_count_16_l4, _gfortran_count_16_l8,
4567         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
4568         _gfortran_count_8_l16, _gfortran_count_8_l4 and
4569         _gfortran_count_8_l8.
4570         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
4571         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
4572         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
4573         generated/count_16_l4.c, generated/count_4_l8.c,
4574         generated/count_8_l8.c, generated/count_16_l8.c,
4575         generated/count_4_l16.c, generated/count_8_l16.c, and
4576         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
4577         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
4578         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
4579         any of the files generated from all.m4, any.m4 and count.m4.
4580         * Makefile.in:  Regenerated.
4581         * m4/ifunction_logical.m4:  New file.  Use
4582         GFC_LOGICAL_1 pointer for access to source arrays.
4583         * m4/any.m4:  Include ifunction_logical.m4 instead of
4584         ifunction.m4.  Don't check atype_name.
4585         * m4/all.m4:  Likewise.
4586         * m4/count.m4:  Likewise.
4587         * generated/any_l1.c:  New file.
4588         * generated/any_l2.c:  New file.
4589         * generated/all_l1.c:  New file.
4590         * generated/count_1_l.c:  New file.
4591         * generated/count_2_l.c:  New file.
4592         * generated/count_4_l.c:  New file.
4593         * generated/count_8_l.c:  New file.
4594         * generated/count_16_l.c:  New file.
4595         * generated/any_l4.c:  Regenerated.
4596         * generated/any_l8.c:  Regenerated.
4597         * generated/any_l16.c:  Regenerated.
4598         * generated/all_l4.c: Regenerated.
4599         * generated/all_l8.c: Regenerated.
4600         * generated/all_l16.c: Regenerated.
4601         * generated/count_4_l4.c:  Removed.
4602         * generated/count_4_l8.c:  Removed.
4603         * generated/count_4_l16.c:  Removed.
4604         * generated/count_8_l4.c:  Removed.
4605         * generated/count_8_l8.c:  Removed.
4606         * generated/count_8_l16.c:  Removed.
4607         * generated/count_16_l4.c:  Removed.
4608         * generated/count_16_l8.c:  Removed.
4609         * generated/count_16_l16.c:  Removed.
4610
4611 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
4612
4613         PR libfortran/34746
4614         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
4615         in printf format for all bounds checking; cast all
4616         integer-like arguments to runtime_error() to long int.
4617         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4618         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4619         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
4620         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4621         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4622         * generated/all_l16.c: Regenerated.
4623         * generated/all_l4.c: Regenerated.
4624         * generated/all_l8.c: Regenerated.
4625         * generated/any_l16.c: Regenerated.
4626         * generated/any_l4.c: Regenerated.
4627         * generated/any_l8.c: Regenerated.
4628         * generated/count_16_l16.c: Regenerated.
4629         * generated/count_16_l4.c: Regenerated.
4630         * generated/count_16_l8.c: Regenerated.
4631         * generated/count_4_l16.c: Regenerated.
4632         * generated/count_4_l4.c: Regenerated.
4633         * generated/count_4_l8.c: Regenerated.
4634         * generated/count_8_l16.c: Regenerated.
4635         * generated/count_8_l4.c: Regenerated.
4636         * generated/count_8_l8.c: Regenerated.
4637         * generated/maxloc0_16_i1.c: Regenerated.
4638         * generated/maxloc0_16_i16.c: Regenerated.
4639         * generated/maxloc0_16_i2.c: Regenerated.
4640         * generated/maxloc0_16_i4.c: Regenerated.
4641         * generated/maxloc0_16_i8.c: Regenerated.
4642         * generated/maxloc0_16_r10.c: Regenerated.
4643         * generated/maxloc0_16_r16.c: Regenerated.
4644         * generated/maxloc0_16_r4.c: Regenerated.
4645         * generated/maxloc0_16_r8.c: Regenerated.
4646         * generated/maxloc0_4_i1.c: Regenerated.
4647         * generated/maxloc0_4_i16.c: Regenerated.
4648         * generated/maxloc0_4_i2.c: Regenerated.
4649         * generated/maxloc0_4_i4.c: Regenerated.
4650         * generated/maxloc0_4_i8.c: Regenerated.
4651         * generated/maxloc0_4_r10.c: Regenerated.
4652         * generated/maxloc0_4_r16.c: Regenerated.
4653         * generated/maxloc0_4_r4.c: Regenerated.
4654         * generated/maxloc0_4_r8.c: Regenerated.
4655         * generated/maxloc0_8_i1.c: Regenerated.
4656         * generated/maxloc0_8_i16.c: Regenerated.
4657         * generated/maxloc0_8_i2.c: Regenerated.
4658         * generated/maxloc0_8_i4.c: Regenerated.
4659         * generated/maxloc0_8_i8.c: Regenerated.
4660         * generated/maxloc0_8_r10.c: Regenerated.
4661         * generated/maxloc0_8_r16.c: Regenerated.
4662         * generated/maxloc0_8_r4.c: Regenerated.
4663         * generated/maxloc0_8_r8.c: Regenerated.
4664         * generated/maxloc1_16_i1.c: Regenerated.
4665         * generated/maxloc1_16_i16.c: Regenerated.
4666         * generated/maxloc1_16_i2.c: Regenerated.
4667         * generated/maxloc1_16_i4.c: Regenerated.
4668         * generated/maxloc1_16_i8.c: Regenerated.
4669         * generated/maxloc1_16_r10.c: Regenerated.
4670         * generated/maxloc1_16_r16.c: Regenerated.
4671         * generated/maxloc1_16_r4.c: Regenerated.
4672         * generated/maxloc1_16_r8.c: Regenerated.
4673         * generated/maxloc1_4_i1.c: Regenerated.
4674         * generated/maxloc1_4_i16.c: Regenerated.
4675         * generated/maxloc1_4_i2.c: Regenerated.
4676         * generated/maxloc1_4_i4.c: Regenerated.
4677         * generated/maxloc1_4_i8.c: Regenerated.
4678         * generated/maxloc1_4_r10.c: Regenerated.
4679         * generated/maxloc1_4_r16.c: Regenerated.
4680         * generated/maxloc1_4_r4.c: Regenerated.
4681         * generated/maxloc1_4_r8.c: Regenerated.
4682         * generated/maxloc1_8_i1.c: Regenerated.
4683         * generated/maxloc1_8_i16.c: Regenerated.
4684         * generated/maxloc1_8_i2.c: Regenerated.
4685         * generated/maxloc1_8_i4.c: Regenerated.
4686         * generated/maxloc1_8_i8.c: Regenerated.
4687         * generated/maxloc1_8_r10.c: Regenerated.
4688         * generated/maxloc1_8_r16.c: Regenerated.
4689         * generated/maxloc1_8_r4.c: Regenerated.
4690         * generated/maxloc1_8_r8.c: Regenerated.
4691         * generated/maxval_i1.c: Regenerated.
4692         * generated/maxval_i16.c: Regenerated.
4693         * generated/maxval_i2.c: Regenerated.
4694         * generated/maxval_i4.c: Regenerated.
4695         * generated/maxval_i8.c: Regenerated.
4696         * generated/maxval_r10.c: Regenerated.
4697         * generated/maxval_r16.c: Regenerated.
4698         * generated/maxval_r4.c: Regenerated.
4699         * generated/maxval_r8.c: Regenerated.
4700         * generated/minloc0_16_i1.c: Regenerated.
4701         * generated/minloc0_16_i16.c: Regenerated.
4702         * generated/minloc0_16_i2.c: Regenerated.
4703         * generated/minloc0_16_i4.c: Regenerated.
4704         * generated/minloc0_16_i8.c: Regenerated.
4705         * generated/minloc0_16_r10.c: Regenerated.
4706         * generated/minloc0_16_r16.c: Regenerated.
4707         * generated/minloc0_16_r4.c: Regenerated.
4708         * generated/minloc0_16_r8.c: Regenerated.
4709         * generated/minloc0_4_i1.c: Regenerated.
4710         * generated/minloc0_4_i16.c: Regenerated.
4711         * generated/minloc0_4_i2.c: Regenerated.
4712         * generated/minloc0_4_i4.c: Regenerated.
4713         * generated/minloc0_4_i8.c: Regenerated.
4714         * generated/minloc0_4_r10.c: Regenerated.
4715         * generated/minloc0_4_r16.c: Regenerated.
4716         * generated/minloc0_4_r4.c: Regenerated.
4717         * generated/minloc0_4_r8.c: Regenerated.
4718         * generated/minloc0_8_i1.c: Regenerated.
4719         * generated/minloc0_8_i16.c: Regenerated.
4720         * generated/minloc0_8_i2.c: Regenerated.
4721         * generated/minloc0_8_i4.c: Regenerated.
4722         * generated/minloc0_8_i8.c: Regenerated.
4723         * generated/minloc0_8_r10.c: Regenerated.
4724         * generated/minloc0_8_r16.c: Regenerated.
4725         * generated/minloc0_8_r4.c: Regenerated.
4726         * generated/minloc0_8_r8.c: Regenerated.
4727         * generated/minloc1_16_i1.c: Regenerated.
4728         * generated/minloc1_16_i16.c: Regenerated.
4729         * generated/minloc1_16_i2.c: Regenerated.
4730         * generated/minloc1_16_i4.c: Regenerated.
4731         * generated/minloc1_16_i8.c: Regenerated.
4732         * generated/minloc1_16_r10.c: Regenerated.
4733         * generated/minloc1_16_r16.c: Regenerated.
4734         * generated/minloc1_16_r4.c: Regenerated.
4735         * generated/minloc1_16_r8.c: Regenerated.
4736         * generated/minloc1_4_i1.c: Regenerated.
4737         * generated/minloc1_4_i16.c: Regenerated.
4738         * generated/minloc1_4_i2.c: Regenerated.
4739         * generated/minloc1_4_i4.c: Regenerated.
4740         * generated/minloc1_4_i8.c: Regenerated.
4741         * generated/minloc1_4_r10.c: Regenerated.
4742         * generated/minloc1_4_r16.c: Regenerated.
4743         * generated/minloc1_4_r4.c: Regenerated.
4744         * generated/minloc1_4_r8.c: Regenerated.
4745         * generated/minloc1_8_i1.c: Regenerated.
4746         * generated/minloc1_8_i16.c: Regenerated.
4747         * generated/minloc1_8_i2.c: Regenerated.
4748         * generated/minloc1_8_i4.c: Regenerated.
4749         * generated/minloc1_8_i8.c: Regenerated.
4750         * generated/minloc1_8_r10.c: Regenerated.
4751         * generated/minloc1_8_r16.c: Regenerated.
4752         * generated/minloc1_8_r4.c: Regenerated.
4753         * generated/minloc1_8_r8.c: Regenerated.
4754         * generated/minval_i1.c: Regenerated.
4755         * generated/minval_i16.c: Regenerated.
4756         * generated/minval_i2.c: Regenerated.
4757         * generated/minval_i4.c: Regenerated.
4758         * generated/minval_i8.c: Regenerated.
4759         * generated/minval_r10.c: Regenerated.
4760         * generated/minval_r16.c: Regenerated.
4761         * generated/minval_r4.c: Regenerated.
4762         * generated/minval_r8.c: Regenerated.
4763         * generated/product_c10.c: Regenerated.
4764         * generated/product_c16.c: Regenerated.
4765         * generated/product_c4.c: Regenerated.
4766         * generated/product_c8.c: Regenerated.
4767         * generated/product_i1.c: Regenerated.
4768         * generated/product_i16.c: Regenerated.
4769         * generated/product_i2.c: Regenerated.
4770         * generated/product_i4.c: Regenerated.
4771         * generated/product_i8.c: Regenerated.
4772         * generated/product_r10.c: Regenerated.
4773         * generated/product_r16.c: Regenerated.
4774         * generated/product_r4.c: Regenerated.
4775         * generated/product_r8.c: Regenerated.
4776         * generated/sum_c10.c: Regenerated.
4777         * generated/sum_c16.c: Regenerated.
4778         * generated/sum_c4.c: Regenerated.
4779         * generated/sum_c8.c: Regenerated.
4780         * generated/sum_i1.c: Regenerated.
4781         * generated/sum_i16.c: Regenerated.
4782         * generated/sum_i2.c: Regenerated.
4783         * generated/sum_i4.c: Regenerated.
4784         * generated/sum_i8.c: Regenerated.
4785         * generated/sum_r10.c: Regenerated.
4786         * generated/sum_r16.c: Regenerated.
4787         * generated/sum_r4.c: Regenerated.
4788         * generated/sum_r8.c: Regenerated.
4789
4790 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
4791
4792         PR libfortran/34670
4793         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
4794         (u_name):  New macro for the upper case name of the intrinsic.
4795         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
4796         bounds checking and rank check, depending on
4797         compile_options.bounds_check.
4798         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4799         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4800         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
4801         bounds checking and rank check, depending on
4802         compile_options.bounds_check.
4803         (`m'name`'rtype_qual`_'atype_code):  Likewise.
4804         (`s'name`'rtype_qual`_'atype_code):  Likewise.
4805         * generated/all_l16.c: Regenerated.
4806         * generated/all_l4.c: Regenerated.
4807         * generated/all_l8.c: Regenerated.
4808         * generated/any_l16.c: Regenerated.
4809         * generated/any_l4.c: Regenerated.
4810         * generated/any_l8.c: Regenerated.
4811         * generated/count_16_l16.c: Regenerated.
4812         * generated/count_16_l4.c: Regenerated.
4813         * generated/count_16_l8.c: Regenerated.
4814         * generated/count_4_l16.c: Regenerated.
4815         * generated/count_4_l4.c: Regenerated.
4816         * generated/count_4_l8.c: Regenerated.
4817         * generated/count_8_l16.c: Regenerated.
4818         * generated/count_8_l4.c: Regenerated.
4819         * generated/count_8_l8.c: Regenerated.
4820         * generated/maxloc0_16_i1.c: Regenerated.
4821         * generated/maxloc0_16_i16.c: Regenerated.
4822         * generated/maxloc0_16_i2.c: Regenerated.
4823         * generated/maxloc0_16_i4.c: Regenerated.
4824         * generated/maxloc0_16_i8.c: Regenerated.
4825         * generated/maxloc0_16_r10.c: Regenerated.
4826         * generated/maxloc0_16_r16.c: Regenerated.
4827         * generated/maxloc0_16_r4.c: Regenerated.
4828         * generated/maxloc0_16_r8.c: Regenerated.
4829         * generated/maxloc0_4_i1.c: Regenerated.
4830         * generated/maxloc0_4_i16.c: Regenerated.
4831         * generated/maxloc0_4_i2.c: Regenerated.
4832         * generated/maxloc0_4_i4.c: Regenerated.
4833         * generated/maxloc0_4_i8.c: Regenerated.
4834         * generated/maxloc0_4_r10.c: Regenerated.
4835         * generated/maxloc0_4_r16.c: Regenerated.
4836         * generated/maxloc0_4_r4.c: Regenerated.
4837         * generated/maxloc0_4_r8.c: Regenerated.
4838         * generated/maxloc0_8_i1.c: Regenerated.
4839         * generated/maxloc0_8_i16.c: Regenerated.
4840         * generated/maxloc0_8_i2.c: Regenerated.
4841         * generated/maxloc0_8_i4.c: Regenerated.
4842         * generated/maxloc0_8_i8.c: Regenerated.
4843         * generated/maxloc0_8_r10.c: Regenerated.
4844         * generated/maxloc0_8_r16.c: Regenerated.
4845         * generated/maxloc0_8_r4.c: Regenerated.
4846         * generated/maxloc0_8_r8.c: Regenerated.
4847         * generated/maxloc1_16_i1.c: Regenerated.
4848         * generated/maxloc1_16_i16.c: Regenerated.
4849         * generated/maxloc1_16_i2.c: Regenerated.
4850         * generated/maxloc1_16_i4.c: Regenerated.
4851         * generated/maxloc1_16_i8.c: Regenerated.
4852         * generated/maxloc1_16_r10.c: Regenerated.
4853         * generated/maxloc1_16_r16.c: Regenerated.
4854         * generated/maxloc1_16_r4.c: Regenerated.
4855         * generated/maxloc1_16_r8.c: Regenerated.
4856         * generated/maxloc1_4_i1.c: Regenerated.
4857         * generated/maxloc1_4_i16.c: Regenerated.
4858         * generated/maxloc1_4_i2.c: Regenerated.
4859         * generated/maxloc1_4_i4.c: Regenerated.
4860         * generated/maxloc1_4_i8.c: Regenerated.
4861         * generated/maxloc1_4_r10.c: Regenerated.
4862         * generated/maxloc1_4_r16.c: Regenerated.
4863         * generated/maxloc1_4_r4.c: Regenerated.
4864         * generated/maxloc1_4_r8.c: Regenerated.
4865         * generated/maxloc1_8_i1.c: Regenerated.
4866         * generated/maxloc1_8_i16.c: Regenerated.
4867         * generated/maxloc1_8_i2.c: Regenerated.
4868         * generated/maxloc1_8_i4.c: Regenerated.
4869         * generated/maxloc1_8_i8.c: Regenerated.
4870         * generated/maxloc1_8_r10.c: Regenerated.
4871         * generated/maxloc1_8_r16.c: Regenerated.
4872         * generated/maxloc1_8_r4.c: Regenerated.
4873         * generated/maxloc1_8_r8.c: Regenerated.
4874         * generated/maxval_i1.c: Regenerated.
4875         * generated/maxval_i16.c: Regenerated.
4876         * generated/maxval_i2.c: Regenerated.
4877         * generated/maxval_i4.c: Regenerated.
4878         * generated/maxval_i8.c: Regenerated.
4879         * generated/maxval_r10.c: Regenerated.
4880         * generated/maxval_r16.c: Regenerated.
4881         * generated/maxval_r4.c: Regenerated.
4882         * generated/maxval_r8.c: Regenerated.
4883         * generated/minloc0_16_i1.c: Regenerated.
4884         * generated/minloc0_16_i16.c: Regenerated.
4885         * generated/minloc0_16_i2.c: Regenerated.
4886         * generated/minloc0_16_i4.c: Regenerated.
4887         * generated/minloc0_16_i8.c: Regenerated.
4888         * generated/minloc0_16_r10.c: Regenerated.
4889         * generated/minloc0_16_r16.c: Regenerated.
4890         * generated/minloc0_16_r4.c: Regenerated.
4891         * generated/minloc0_16_r8.c: Regenerated.
4892         * generated/minloc0_4_i1.c: Regenerated.
4893         * generated/minloc0_4_i16.c: Regenerated.
4894         * generated/minloc0_4_i2.c: Regenerated.
4895         * generated/minloc0_4_i4.c: Regenerated.
4896         * generated/minloc0_4_i8.c: Regenerated.
4897         * generated/minloc0_4_r10.c: Regenerated.
4898         * generated/minloc0_4_r16.c: Regenerated.
4899         * generated/minloc0_4_r4.c: Regenerated.
4900         * generated/minloc0_4_r8.c: Regenerated.
4901         * generated/minloc0_8_i1.c: Regenerated.
4902         * generated/minloc0_8_i16.c: Regenerated.
4903         * generated/minloc0_8_i2.c: Regenerated.
4904         * generated/minloc0_8_i4.c: Regenerated.
4905         * generated/minloc0_8_i8.c: Regenerated.
4906         * generated/minloc0_8_r10.c: Regenerated.
4907         * generated/minloc0_8_r16.c: Regenerated.
4908         * generated/minloc0_8_r4.c: Regenerated.
4909         * generated/minloc0_8_r8.c: Regenerated.
4910         * generated/minloc1_16_i1.c: Regenerated.
4911         * generated/minloc1_16_i16.c: Regenerated.
4912         * generated/minloc1_16_i2.c: Regenerated.
4913         * generated/minloc1_16_i4.c: Regenerated.
4914         * generated/minloc1_16_i8.c: Regenerated.
4915         * generated/minloc1_16_r10.c: Regenerated.
4916         * generated/minloc1_16_r16.c: Regenerated.
4917         * generated/minloc1_16_r4.c: Regenerated.
4918         * generated/minloc1_16_r8.c: Regenerated.
4919         * generated/minloc1_4_i1.c: Regenerated.
4920         * generated/minloc1_4_i16.c: Regenerated.
4921         * generated/minloc1_4_i2.c: Regenerated.
4922         * generated/minloc1_4_i4.c: Regenerated.
4923         * generated/minloc1_4_i8.c: Regenerated.
4924         * generated/minloc1_4_r10.c: Regenerated.
4925         * generated/minloc1_4_r16.c: Regenerated.
4926         * generated/minloc1_4_r4.c: Regenerated.
4927         * generated/minloc1_4_r8.c: Regenerated.
4928         * generated/minloc1_8_i1.c: Regenerated.
4929         * generated/minloc1_8_i16.c: Regenerated.
4930         * generated/minloc1_8_i2.c: Regenerated.
4931         * generated/minloc1_8_i4.c: Regenerated.
4932         * generated/minloc1_8_i8.c: Regenerated.
4933         * generated/minloc1_8_r10.c: Regenerated.
4934         * generated/minloc1_8_r16.c: Regenerated.
4935         * generated/minloc1_8_r4.c: Regenerated.
4936         * generated/minloc1_8_r8.c: Regenerated.
4937         * generated/minval_i1.c: Regenerated.
4938         * generated/minval_i16.c: Regenerated.
4939         * generated/minval_i2.c: Regenerated.
4940         * generated/minval_i4.c: Regenerated.
4941         * generated/minval_i8.c: Regenerated.
4942         * generated/minval_r10.c: Regenerated.
4943         * generated/minval_r16.c: Regenerated.
4944         * generated/minval_r4.c: Regenerated.
4945         * generated/minval_r8.c: Regenerated.
4946         * generated/product_c10.c: Regenerated.
4947         * generated/product_c16.c: Regenerated.
4948         * generated/product_c4.c: Regenerated.
4949         * generated/product_c8.c: Regenerated.
4950         * generated/product_i1.c: Regenerated.
4951         * generated/product_i16.c: Regenerated.
4952         * generated/product_i2.c: Regenerated.
4953         * generated/product_i4.c: Regenerated.
4954         * generated/product_i8.c: Regenerated.
4955         * generated/product_r10.c: Regenerated.
4956         * generated/product_r16.c: Regenerated.
4957         * generated/product_r4.c: Regenerated.
4958         * generated/product_r8.c: Regenerated.
4959         * generated/sum_c10.c: Regenerated.
4960         * generated/sum_c16.c: Regenerated.
4961         * generated/sum_c4.c: Regenerated.
4962         * generated/sum_c8.c: Regenerated.
4963         * generated/sum_i1.c: Regenerated.
4964         * generated/sum_i16.c: Regenerated.
4965         * generated/sum_i2.c: Regenerated.
4966         * generated/sum_i4.c: Regenerated.
4967         * generated/sum_i8.c: Regenerated.
4968         * generated/sum_r10.c: Regenerated.
4969         * generated/sum_r16.c: Regenerated.
4970         * generated/sum_r4.c: Regenerated.
4971         * generated/sum_r8.c: Regenerated.
4972
4973 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4974
4975         PR libfortran/34676
4976         * io/list_read.c (next_char): Only save the EOF condition for later if
4977         advance="no".
4978
4979 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
4980
4981         PR libfortran/34565
4982         * io/io.h:  Adjust protoypes for open_internal(),
4983         next_array_record() and init_loop_spec().
4984         * io/list_read.c (next_char):  Use argument "finished"
4985         of next_array_record to check for end on internal file.
4986         * io/unit.c:  Calculate the offset for an array
4987         internal file and supply this informatin to open_internal().
4988         * io/unix.c (open_internal):  Set the offset for the internal
4989         file on open.
4990         * io/transfer.c (init_loop_spec):  Calculate the starting
4991         record in case of negative strides.  Return size of 0 for
4992         an empty array.
4993         (next_array_record):  Use an extra flag to signal that the
4994         array is finished.
4995         (next_record_r):  Use the new flag to next_array_record().
4996         (next_record_w):  Likewise.