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