OSDN Git Service

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