OSDN Git Service

2009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2
3         * runtime/string.c (compare0): Use gfc_charlen_type.
4         * runtime/error.c (gfc_itoa): Move to io/write.c
5         (xtoa): Rename to gfc_xtoa.
6         * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
7         * intrinsics/cshift0.c (cshift0): Use index_type for shift arg.
8         * intrinsics/date_and_time.c (date_and_time): Use index_type.
9         (itime_i4): Likewise.
10         (itime_i8): Likewise.
11         (idate_i4): Likewise.
12         (idate_i8): Likewise.
13         (gmtime_i4): Likewise.
14         (gmtime_i8): Likewise.
15         (ltime_i4): Likewise.
16         (ltime_i8): Likewise.
17         * libgfortran.h (gfc_itoa): Remove prototype.
18         (xtoa): Rename prototype to gfc_xtoa.
19         * io/list_read.c (nml_read_obj): Use size_t for string length.
20         * io/transfer.c (read_block_direct): Change nbytes arg from
21         pointer to value.
22         (unformatted_read): Minor cleanup, call read_block_directly properly.
23         (skip_record): Use ssize_t.
24         (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
25         (iolength_transfer): Make sure to multiply before cast.
26         * io/intrinsics.c (fgetc): Remove unnecessary variable.
27         * io/format.c (format_hash): Use gfc_charlen_type.
28         * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
29         make static.
30         (write_i): Call with pointer to itoa.
31         (write_z): Call with pointer to gfc_xtoa.
32         (write_integer): Pointer to itoa.
33         (nml_write_obj): Type cleanup, don't call strlen in loop.
34         
35 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
36
37         PR libgfortran/39664
38         * io/unix.c (raw_close): Don't close STDOUT_FILENO,
39         STDERR_FILENO nor STDIN_FILENO.
40
41 2009-04-06  David Edelsohn  <edelsohn@gnu.org>
42         
43         * io/io.h (struct stream): Rename truncate to trunc.
44         (struncate): Same.
45         * io/unix.c (raw_init): Rename truncate to trunc.
46         (buf_init): Same.
47         (open_internal): Same.
48         
49 2009-04-05  Daniel Kraft  <d@domob.eu>
50
51         PR fortran/38654
52         * io/read.c (read_f): Reworked to speed up floating point parsing.
53         (convert_real): Use pointer-casting instead of memcpy and temporaries.
54
55 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
56
57         PR libfortran/37754
58         * io/io.h (format_hash_entry): New structure for hash table.
59         (format_hash_table): The hash table itself.
60         (free_format_data): Revise function prototype.
61         (free_format_hash_table, init_format_hash,
62         free_format_hash): New function prototypes.
63         * io/unit.c (close_unit_1): Use free_format_hash_table.
64         * io/transfer.c (st_read_done, st_write_done): Free format data if
65         internal unit.
66         * io/format.c (free_format_hash_table): New function that frees any
67         memory allocated previously for cached format data.
68         (reset_node): New static helper function to reset the format counters
69         for a format node.
70         (reset_fnode_counters): New static function recursively calls reset_node
71         to traverse the fnode tree.
72         (format_hash): New simple hash function based on XOR, probabalistic,
73         tosses collisions.
74         (save_parsed_format): New static function to save the parsed format
75         data to use again.
76         (find_parsed_format): New static function searches the hash table
77         looking for a match.
78         (free_format_data): Revised to accept pointer to format data rather than
79         the dtp pointer so that the function can be used in more places.
80         (format_lex): Editorial.
81         (parse_format_list): Set flag used to determine of format data hashing
82         is to be used.  Internal units are not persistent enough for this.
83         (revert): Move to ne location in file.
84         (parse_format): Use new functions to look for previously parsed
85         format strings and use them rather than re-parse.  If not found, saves
86         the parsed format data for later use.
87         
88 2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
89
90         PR libfortran/37754
91         * io/transfer.c (formatted_transfer_scalar): Remove this function by
92         factoring it into two new functions, one for read and one for write,
93         eliminating all the conditionals for read or write mode.
94         (formatted transfer_scalar_read): New function.
95         (formatted transfer_scalar_write): New function.
96         (formatted_transfer): Use new functions.
97
98 2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
99
100         PR libfortran/25561 libfortran/37754
101         * io/io.h (struct stream): Define new stream interface function
102         pointers, and inline functions for accessing it.
103         (struct fbuf): Use int instead of size_t, remove flushed element.
104         (mem_alloc_w): New prototype.
105         (mem_alloc_r): New prototype.
106         (stream_at_bof): Remove prototype.
107         (stream_at_eof): Remove prototype.
108         (file_position): Remove prototype.
109         (flush): Remove prototype.
110         (stream_offset): Remove prototype.
111         (unit_truncate): New prototype.
112         (read_block_form): Change to return pointer, int* argument.
113         (hit_eof): New prototype.
114         (fbuf_init): Change prototype.
115         (fbuf_reset): Change prototype.
116         (fbuf_alloc): Change prototype.
117         (fbuf_flush): Change prototype.
118         (fbuf_seek): Change prototype.
119         (fbuf_read): New prototype.
120         (fbuf_getc_refill): New prototype.
121         (fbuf_getc): New inline function.
122         * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
123         (fbuf_debug): New function.
124         (fbuf_reset): Flush, and return position offset.
125         (fbuf_alloc): Simplify, don't flush, just realloc.
126         (fbuf_flush): Make usable for read mode, salvage remaining bytes.
127         (fbuf_seek): New whence argument.
128         (fbuf_read): New function.
129         (fbuf_getc_refill): New function.
130         * io/file_pos.c (formatted_backspace): Use new stream interface.
131         (unformatted_backspace): Likewise.
132         (st_backspace): Make sure format buffer is reset, use new stream
133         interface, use unit_truncate.
134         (st_endfile): Likewise.
135         (st_rewind): Likewise.
136         * io/intrinsics.c: Use new stream interface.
137         * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
138         to resize.
139         (free_saved): Don't check u.p.scratch.
140         (next_char): Use new stream interface, use fbuf_getc() for external files.
141         (finish_list_read): flush format buffer.
142         (nml_query): Update to use modified interface:s
143         * io/open.c (test_endfile): Use new stream interface.
144         (edit_modes): Likewise.
145         (new_unit): Likewise, set bytes_left to 1 for stream files.
146         * io/read.c (read_l): Use new read_block_form interface.
147         (read_utf8): Likewise.
148         (read_utf8_char1): Likewise.
149         (read_default_char1): Likewise.
150         (read_utf8_char4): Likewise.
151         (read_default_char4): Likewise.
152         (read_a): Likewise.
153         (read_a_char4): Likewise.
154         (read_decimal): Likewise.
155         (read_radix): Likewise.
156         (read_f): Likewise.
157         * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
158         usage of u.p.line_buffer.
159         (read_block_form): Update interface to return pointer, use
160         fbuf_read for direct access.
161         (read_block_direct): Update to new stream interface.
162         (write_block): Use mem_alloc_w for internal I/O.
163         (write_buf): Update to new stream interface.
164         (formatted_transfer_scalar): Don't use u.p.line_buffer, use
165         fbuf_seek for external files.
166         (us_read): Update to new stream interface.
167         (us_write): Likewise.
168         (data_transfer_init): Always check if we switch modes and flush.
169         (skip_record): Use new stream interface, fix comparison.
170         (next_record_r): Check for and reset u.p.at_eof, use new stream
171         interface, use fbuf_getc for spacing.
172         (write_us_marker): Update to new stream interface, don't inline.
173         (next_record_w_unf): Likewise.
174         (sset): New function.
175         (next_record_w): Use new stream interface, use fbuf for printing
176         newline.
177         (next_record): Use new stream interface.
178         (finalize_transfer): Remove sfree call, use new stream interface.
179         (st_iolength_done): Don't use u.p.scratch.
180         (st_read): Don't check for end of file.
181         (st_read_done): Don't use u.p.scratch, use unit_truncate.
182         (hit_eof): New function.
183         * io/unit.c (init_units): Always init fbuf for formatted units.
184         (update_position): Use new stream interface.
185         (unit_truncate): New function.
186         (finish_last_advance_record): Use fbuf to print newline.
187         * io/unix.c: Remove unused SSIZE_MAX macro.
188         (BUFFER_SIZE): Make static const variable rather than macro.
189         (struct unix_stream): Remove dirty_offset, len, method,
190         small_buffer. Order elements by decreasing size.
191         (struct int_stream): Remove.
192         (move_pos_offset): Remove usage of dirty_offset.
193         (reset_stream): Remove.
194         (do_read): Rename to raw_read, update to match new stream
195         interface.
196         (do_write): Rename to raw_write, update to new stream interface.
197         (raw_seek): New function.
198         (raw_tell): New function.
199         (raw_truncate): New function.
200         (raw_close): New function.
201         (raw_flush): New function.
202         (raw_init): New function.
203         (fd_alloc): Remove.
204         (fd_alloc_r_at): Remove.
205         (fd_alloc_w_at): Remove.
206         (fd_sfree): Remove.
207         (fd_seek): Remove.
208         (fd_truncate): Remove.
209         (fd_sset): Remove.
210         (fd_read): Remove.
211         (fd_write): Remove.
212         (fd_close): Remove.
213         (fd_open): Remove.
214         (fd_flush): Rename to buf_flush, update to new stream interface
215         and unix_stream.
216         (buf_read): New function.
217         (buf_write): New function.
218         (buf_seek): New function.
219         (buf_tell): New function.
220         (buf_truncate): New function.
221         (buf_close): New function.
222         (buf_init): New function.
223         (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
224         (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
225         (mem_read): Change to match new stream interface.
226         (mem_write): Likewise.
227         (mem_seek): Likewise.
228         (mem_tell): Likewise.
229         (mem_truncate): Likewise.
230         (mem_close): Likewise.
231         (mem_flush): New function.
232         (mem_sfree): Remove.
233         (empty_internal_buffer): Cast to correct type.
234         (open_internal): Use correct type, init function pointers.
235         (fd_to_stream): Test whether to open file as buffered or raw.
236         (output_stream): Remove mode set.
237         (error_stream): Likewise.
238         (flush_all_units_1): Use new stream interface.
239         (flush_all_units): Likewise.
240         (stream_at_bof): Remove.
241         (stream_at_eof): Remove.
242         (file_position): Remove.
243         (file_length): Update logic to use stream interface.
244         (flush): Remove.
245         (stream_offset): Remove.
246         * io/write.c (write_utf8_char4): Use int instead of size_t.
247         (write_x): Extra safety check.
248         (namelist_write_newline): Use new stream interface.
249
250 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
251
252         PR fortran/33595
253         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
254         Revise checks to round up.
255         (roundf): Likewise.
256
257 2009-03-28  Daniel Kraft  <d@domob.eu>
258
259         * intrinsics/string_intrinsics.c: #include <assert.h>
260         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
261         instead of calculating the length directly.
262         (string_len_trim): For KIND=1, speed search up.
263
264 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
265
266         PR libfortran/39528
267         * io/list_read.c (list_formatted_read_scalar): Move check for read
268         completion to just after the check for a repeated value.
269
270 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
271
272         PR libfortran/39402
273         * io/write_float.def (output_float): Handle F0.d formatting correctly
274         for any d when value is 0.0.
275
276 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
277
278         * configure: Regenerate.
279
280 2009-01-21  Daniel Kraft  <d@domob.eu>
281
282         PR fortran/38887
283         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
284         abort when called with empty array.
285         * m4/in_unpack.m4:  Ditto.
286         * generated/in_unpack_i1.c:  Regenerated.
287         * generated/in_unpack_i2.c:  Regenerated.
288         * generated/in_unpack_i4.c:  Regenerated.
289         * generated/in_unpack_i8.c:  Regenerated.
290         * generated/in_unpack_i16.c: Regenerated.
291         * generated/in_unpack_r4.c:  Regenerated.
292         * generated/in_unpack_r8.c:  Regenerated.
293         * generated/in_unpack_r10.c: Regenerated.
294         * generated/in_unpack_r16.c: Regenerated.
295         * generated/in_unpack_c4.c:  Regenerated.
296         * generated/in_unpack_c8.c:  Regenerated.
297         * generated/in_unpack_c10.c: Regenerated.
298         * generated/in_unpack_c16.c: Regenerated.
299
300 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
301
302         PR libfortran/38772
303         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
304         allowing proper digit testing. White space fix.
305
306 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
307
308         PR libfortran/38735
309         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
310         internal units.
311
312 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
313
314         PR fortran/31832
315         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
316         broken powf.
317         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
318         * intrinsics/c99_functions.c: Use internal powf implementation if
319         HAVE_BROKEN_POWF is defined.
320         * configure: Rebuilt.
321         * config.h.in: Rebuilt.
322
323 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
324
325         PR libfortran/37472
326         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
327         to avoid sensitivity to round-off.
328
329 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
330
331         PR libfortran/38398
332         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
333         suppress blanks for g0 formatting.
334         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
335         for g0 formatting.
336         * io.c (write.c): Do not use ES formatting and use new bit to suppress
337         blanks.
338         * io/write_float.def (output_float): Adjust the location of setting the
339         width so that it can be adjusted when suppressing blanks.  Set number of
340         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
341         clean-up and add some white space for readability.
342         
343 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
344
345         * configure: Regenerate.
346
347 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
348
349         PR libfortran/38504
350         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
351         returned by gfc_itoa.
352
353 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
354
355         PR libfortran/38430
356         * io/transfer.c (data_transfer_init): Move constraint check for REC=
357         and STREAM access into condition for other REC= constraints to simplify.
358         Comment out this constraint to avoid breaking compatibility with 4.3
359         until later.  Added a TODO for above comment and this one.
360         Fix test for max pos.
361
362 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
363
364         PR libfortran/38291
365         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
366         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
367         comment.
368
369 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
370
371         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
372
373 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
374
375         PR libfortran/38291
376         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
377         Add check for unit opened with ACCESS="stream". Flush and seek if
378         current stream position does not match. Check ENDFILE on read.
379
380 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
381
382         PR fortran/38285
383         * write_float.def (WRITE_FLOAT): Zero the float value for special case
384         only if scale_factor = 0.
385         
386 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
387
388         PR libfortran/38234
389         * intrinsics/reshape_generic.c (reshape_internal):
390         Source can be larger than shape.
391         * m4/reshape.m4:  Likewise.
392         * generated/reshape_c10.c Regenerated.
393         * generated/reshape_c16.c Regenerated.
394         * generated/reshape_c4.c Regenerated.
395         * generated/reshape_c8.c Regenerated.
396         * generated/reshape_i16.c Regenerated.
397         * generated/reshape_i4.c Regenerated.
398         * generated/reshape_i8.c Regenerated.
399         * generated/reshape_r10.c Regenerated.
400         * generated/reshape_r16.c Regenerated.
401         * generated/reshape_r4.c Regenerated.
402         * generated/reshape_r8.c Regenerated.
403
404 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
405
406         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
407         format attribute.
408
409
410 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
411
412         PR libfortran/38225
413         * intrinsics/reshape_generic.c (reshape_internal):
414         Use all dimensions of source for bounds checking.
415         * m4/reshape.m4:  Likewise.
416         * generated/reshape_c10.c Regenerated.
417         * generated/reshape_c16.c Regenerated.
418         * generated/reshape_c4.c Regenerated.
419         * generated/reshape_c8.c Regenerated.
420         * generated/reshape_i16.c Regenerated.
421         * generated/reshape_i4.c Regenerated.
422         * generated/reshape_i8.c Regenerated.
423         * generated/reshape_r10.c Regenerated.
424         * generated/reshape_r16.c Regenerated.
425         * generated/reshape_r4.c Regenerated.
426         * generated/reshape_r8.c Regenerated.
427
428 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
429
430         PR libfortran/37839
431         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
432         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
433         (st_parameter_inquire): Reorder and fix types of round, sign and
434         pending fields.
435         (st_parameter_43, st_parameter_44): Removed.
436         (st_parameter_dt): Put back struct definition directly to u.p
437         declaration.  Change type of u.p.size_used from gfc_offset to
438         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
439         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
440         pad, round and sign fields after the union.
441         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
442         flags2 if it is defined.
443         * io/transfer.c (read_sf, read_block_form, write_block): Cast
444         additions to size_used to GFC_IO_INT instead of gfc_offset.
445         (data_transfer_init): Clear whole u.p struct.  Adjust
446         for moving id, pos, asynchronous, blank, decimal, delim, pad,
447         round and sign fields from u.p directly into st_parameter_dt.
448         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
449         * io/file_pos.c (st_endfile): Clear whole u.p struct.
450
451 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
452
453         PR libfortran/37472
454         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
455         G format specification to F format.
456
457 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
458
459         PR libfortran/38135
460         * m4/reshape.m4:  Correct bounds checking when PAD is present.
461         Treat PAD as if it were SOURCE when SOURCE is empty.
462         * intrinsics/reshape_generic.c:  Likewise.
463         * generated/reshape_c10.c Regenerated.
464         * generated/reshape_c16.c Regenerated.
465         * generated/reshape_c4.c Regenerated.
466         * generated/reshape_c8.c Regenerated.
467         * generated/reshape_i16.c Regenerated.
468         * generated/reshape_i4.c Regenerated.
469         * generated/reshape_i8.c Regenerated.
470         * generated/reshape_r10.c Regenerated.
471         * generated/reshape_r16.c Regenerated.
472         * generated/reshape_r4.c Regenerated.
473         * generated/reshape_r8.c Regenerated.
474
475 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
476
477         PR libfortran/38097
478         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
479         conditions for BZ/BN.
480         * io/unit.c (get_internal_unit): Initialize flags.blank.
481         * io/transfer.c (data_transfer_init): Fix whitespace.
482
483 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
484
485         PR libfortran/37294
486         * io/write.c (namelist_write_newline): Use array loop specification to
487         advance to next internal array unit record. (namelist_write): Adjust to
488         accomodate the internal array unit behavior.
489
490 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
491
492         PR fortran/37159
493         * intrinsics/random.c: Added comment to adapt check.c, should
494         kiss_size change.
495         Few cosmetic changes to existing comments.
496
497 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
498
499         PR libfortran/37707
500         * io/list_read.c (read_character): Remove code to look ahead in namelist
501         reads to descriminate non-delimited strings from namelist objects.
502         * io/write.c (namelist_write): Delimit character strings with quote or
503         apostrophe, defaulting to quote.
504
505 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
506
507         PR libfortran/34670
508         * intrinsics/transpose_generic.c:  Implement bounds checking.
509         * m4/transpose.m4:  Likewise.
510         * generated/transpose_c8.c: Regenerated.
511         * generated/transpose_c16.c: Regenerated.
512         * generated/transpose_r10.c: Regenerated.
513         * generated/transpose_i8.c: Regenerated.
514         * generated/transpose_c10.c: Regenerated.
515         * generated/transpose_r4.c: Regenerated.
516         * generated/transpose_c4.c: Regenerated.
517         * generated/transpose_i16.c: Regenerated.
518         * generated/transpose_i4.c: Regenerated.
519         * generated/transpose_r8.c: Regenerated.
520         * generated/transpose_r16.c: Regenerated.
521
522 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
523
524         PR libfortran/37834
525         * io/write_float.def (output_float): Emit '0.' for special case of
526         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
527
528 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
529
530         PR libfortran/37863
531         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
532         * io/io.h (st_parameter_44): Fix id type declaration.
533
534 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
535
536         * io/file_pos.c (unformatted_backspace): Normal case is
537         GFC_CONVERT_NATIVE.
538         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
539         as unlikely.
540         (readl_block_form):  Likewise.
541         (read_block_direct):  Likewise.
542         (write_block):  Likewise.
543         (write_buf):  Likewise.
544         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
545         (next_record_w_unf):  Mark paths leading to generate_error()
546         as unlikely.
547
548 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
549
550         PR libfortran/34670
551         * generated/spread_r4.c: Regenerated.
552
553 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
554
555         PR libfortran/34670
556         * intrinsics/reshape_generic.c:  Add bounds checking.
557         * m4/reshape.m4:  Likewise.
558         * generated/reshape_c10.c: Regenerated.
559         * generated/reshape_c16.c: Regenerated.
560         * generated/reshape_c4.c: Regenerated.
561         * generated/reshape_c8.c: Regenerated.
562         * generated/reshape_i16.c: Regenerated.
563         * generated/reshape_i4.c: Regenerated.
564         * generated/reshape_i8.c: Regenerated.
565         * generated/reshape_r10.c: Regenerated.
566         * generated/reshape_r16.c: Regenerated.
567         * generated/reshape_r4.c: Regenerated.
568         * generated/reshape_r8.c: Regenerated.
569         * generated/spread_r4.c: Regenerated.
570
571 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
572
573         PR libfortran/37083
574         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
575         (finish_list_read): Add EOF check.
576
577 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
578
579         PR libfortran/37753
580         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
581         is the usual case.  Check for kind==1 for non-byte-reversing
582         operation.
583         (unformatted_write):  Likewise.
584
585 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
586
587         PR libfortran/37707
588         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
589         is greater than zero, call nml_object_read with the first object rather
590         than the sub-object.
591
592 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
593             Steve Ellcey  <sje@cup.hp.com>
594
595         * configure: Regenerate for new libtool.
596         * Makefile.in: Ditto.
597
598 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
599
600         PR libfortran/37498
601         * list_read.c (eat_separator): Revert previous patch and move
602         delim_status, decimal_status, and pad_status to gfc_unit.
603         (parse_real): Ditto. (read_real): Ditto.
604         * read.c (read_a): Likewise. (read_a_char4): Likewise.
605         (read_f): Likewise.
606         * inquire.c (inquire_via_unit): Add missing check for
607         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
608         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
609         to gfc_unit.
610         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
611         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
612         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
613         (write_character): Ditto. (write_real_g0): Ditto.
614         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
615         (namelist_write): Ditto.
616         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
617
618 2008-09-24  Tobias Burnus  <burnus@net-b.de>
619
620         * runtime/compile_options.c (init_compile_options):
621         Sync flags with front end.
622
623 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
624
625         PR libfortran/37498
626         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
627         area.
628         * list_read.c (eat_separator): Only access F2003 I/O parameters if
629         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
630         (read_real): Ditto.
631         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
632         strictly necessary. (read_f): Likewise.
633         * io.h (unit_sign_s): New enumerator to allow duplication of
634         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
635         (st_parameter_43): New structure copied from 4.3 version of 
636         st_paramater_dt private section. (st_parameter_44): New structure with
637         F2003 items added. (st_parameter_dt): Modified to create union of new
638         and old structures to allow correct memory setting for 4.3 ABI
639         compatibility. Bumped the pad size.
640         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
641         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
642         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
643         add comment, fix formatting.
644         * write.c (write_default_char4): Likewise though not strictly necessary.
645         (write_utf8_char4): Ditto. (write_character): Ditto.
646         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
647         (nml_write_obj): Ditto. (namelist_write): Ditto.
648         * write_float.def (calculate_sign): Eliminate warning by including all
649         cases in switch. (output_float): Output only decimal point of F2003 flag
650         is not set.
651
652 2008-09-10  Tobias Burnus  <burnus@net-b.de>
653             H. J. Lu  <hongjiu.lu@intel.com>
654
655         * mk-sik-inc.sh: Make -Wunused-variable proof.
656         * mk-srk-inc.sh: Make -Wunused-variable proof.
657
658 2008-09-10  Tobias Burnus  <burnus@net-b.de>
659
660         * mk-kinds-h.sh: Make -Wunused-variable proof.
661
662 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
663
664         PR fortran/37203
665         * intrinsics/reshape_generic.c:  Add checking on
666         out-of-bounds and duplicate values of order argument.
667         * m4/reshape.m4:  Likewise.
668         * generated/reshape_c10.c: Regenerated.
669         * generated/reshape_c16.c: Regenerated.
670         * generated/reshape_c4.c: Regenerated.
671         * generated/reshape_c8.c: Regenerated.
672         * generated/reshape_i16.c: Regenerated.
673         * generated/reshape_i4.c: Regenerated.
674         * generated/reshape_i8.c: Regenerated.
675         * generated/reshape_r10.c: Regenerated.
676         * generated/reshape_r16.c: Regenerated.
677         * generated/reshape_r4.c: Regenerated.
678         * generated/reshape_r8.c: Regenerated.
679
680 2008-09-06  Tobias Burnus  <burnus@net-b.de>
681
682         * libgfortran.h (likely,unlikely): New makros.
683         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
684         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
685         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
686         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
687         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
688         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
689         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
690
691         * generated/minval_r8.c: Regenerated.
692         * generated/spread_r10.c: Regenerated.
693         * generated/minloc1_16_r16.c: Regenerated.
694         * generated/maxloc1_4_r8.c: Regenerated.
695         * generated/sum_i8.c: Regenerated.
696         * generated/any_l16.c: Regenerated.
697         * generated/spread_i8.c: Regenerated.
698         * generated/maxval_i2.c: Regenerated.
699         * generated/any_l2.c: Regenerated.
700         * generated/product_r4.c: Regenerated.
701         * generated/maxloc1_8_i4.c: Regenerated.
702         * generated/maxloc0_4_r4.c: Regenerated.
703         * generated/all_l1.c: Regenerated.
704         * generated/matmul_r8.c: Regenerated.
705         * generated/product_i2.c: Regenerated.
706         * generated/minloc0_4_r16.c: Regenerated.
707         * generated/minloc0_4_i1.c: Regenerated.
708         * generated/maxloc0_4_r16.c: Regenerated.
709         * generated/maxloc0_4_i2.c: Regenerated.
710         * generated/minloc1_8_r16.c: Regenerated.
711         * generated/maxloc1_8_r16.c: Regenerated.
712         * generated/maxloc0_8_i8.c: Regenerated.
713         * generated/sum_r16.c: Regenerated.
714         * generated/sum_i1.c: Regenerated.
715         * generated/minloc1_4_r8.c: Regenerated.
716         * generated/maxloc1_16_r16.c: Regenerated.
717         * generated/minloc1_16_i4.c: Regenerated.
718         * generated/maxloc1_16_i4.c: Regenerated.
719         * generated/minloc0_16_i8.c: Regenerated.
720         * generated/spread_i1.c: Regenerated.
721         * generated/maxloc0_16_i8.c: Regenerated.
722         * generated/maxval_r16.c: Regenerated.
723         * generated/product_c10.c: Regenerated.
724         * generated/minloc1_8_i4.c: Regenerated.
725         * generated/minloc0_16_i16.c: Regenerated.
726         * generated/matmul_r16.c: Regenerated.
727         * generated/minloc0_4_r4.c: Regenerated.
728         * generated/all_l2.c: Regenerated.
729         * generated/product_c4.c: Regenerated.
730         * generated/sum_r4.c: Regenerated.
731         * generated/minloc0_4_i2.c: Regenerated.
732         * generated/spread_c10.c: Regenerated.
733         * generated/maxloc0_8_i1.c: Regenerated.
734         * generated/spread_r4.c: Regenerated.
735         * generated/minloc0_8_i8.c: Regenerated.
736         * generated/matmul_c8.c: Regenerated.
737         * generated/all_l16.c: Regenerated.
738         * generated/minloc1_16_r10.c: Regenerated.
739         * generated/sum_i2.c: Regenerated.
740         * generated/minloc0_16_i1.c: Regenerated.
741         * generated/maxloc0_16_i1.c: Regenerated.
742         * generated/maxloc1_8_r8.c: Regenerated.
743         * generated/minval_i16.c: Regenerated.
744         * generated/spread_i2.c: Regenerated.
745         * generated/maxval_i4.c: Regenerated.
746         * generated/minval_i8.c: Regenerated.
747         * generated/any_l4.c: Regenerated.
748         * generated/maxloc1_4_i8.c: Regenerated.
749         * generated/maxloc0_16_i16.c: Regenerated.
750         * generated/maxloc0_8_r4.c: Regenerated.
751         * generated/minloc1_4_i16.c: Regenerated.
752         * generated/maxloc1_4_i16.c: Regenerated.
753         * generated/minloc0_4_r10.c: Regenerated.
754         * generated/minloc0_8_i16.c: Regenerated.
755         * generated/maxloc0_4_r10.c: Regenerated.
756         * generated/maxloc0_8_i16.c: Regenerated.
757         * generated/minloc1_8_r10.c: Regenerated.
758         * generated/product_i4.c: Regenerated.
759         * generated/minloc0_16_r4.c: Regenerated.
760         * generated/sum_c16.c: Regenerated.
761         * generated/maxloc1_8_r10.c: Regenerated.
762         * generated/maxloc0_16_r4.c: Regenerated.
763         * generated/minloc1_16_r8.c: Regenerated.
764         * generated/minloc0_8_i1.c: Regenerated.
765         * generated/maxloc0_4_i4.c: Regenerated.
766         * generated/maxloc1_16_r8.c: Regenerated.
767         * generated/maxloc0_8_i2.c: Regenerated.
768         * generated/sum_r10.c: Regenerated.
769         * generated/count_4_l.c: Regenerated.
770         * generated/sum_c4.c: Regenerated.
771         * generated/count_8_l.c: Regenerated.
772         * generated/maxloc1_16_r10.c: Regenerated.
773         * generated/matmul_i8.c: Regenerated.
774         * generated/minloc0_16_i2.c: Regenerated.
775         * generated/minloc1_8_r8.c: Regenerated.
776         * generated/maxloc0_16_i2.c: Regenerated.
777         * generated/spread_c4.c: Regenerated.
778         * generated/matmul_c16.c: Regenerated.
779         * generated/maxval_r10.c: Regenerated.
780         * generated/minval_i1.c: Regenerated.
781         * generated/maxloc1_4_i1.c: Regenerated.
782         * generated/matmul_r10.c: Regenerated.
783         * generated/minloc1_4_i8.c: Regenerated.
784         * generated/minloc0_8_r4.c: Regenerated.
785         * generated/matmul_l4.c: Regenerated.
786         * generated/product_i16.c: Regenerated.
787         * generated/minloc0_16_r16.c: Regenerated.
788         * generated/all_l4.c: Regenerated.
789         * generated/minloc0_4_i4.c: Regenerated.
790         * generated/minloc0_8_i2.c: Regenerated.
791         * generated/matmul_i1.c: Regenerated.
792         * generated/minval_r4.c: Regenerated.
793         * generated/maxloc1_4_r4.c: Regenerated.
794         * generated/spread_i16.c: Regenerated.
795         * generated/sum_i4.c: Regenerated.
796         * generated/maxval_r8.c: Regenerated.
797         * generated/spread_i4.c: Regenerated.
798         * generated/minloc1_4_i1.c: Regenerated.
799         * generated/minval_r16.c: Regenerated.
800         * generated/minval_i2.c: Regenerated.
801         * generated/maxloc1_4_i2.c: Regenerated.
802         * generated/product_r8.c: Regenerated.
803         * generated/maxloc1_8_i8.c: Regenerated.
804         * generated/maxloc0_4_r8.c: Regenerated.
805         * generated/maxloc0_16_r16.c: Regenerated.
806         * generated/matmul_r4.c: Regenerated.
807         * generated/sum_c10.c: Regenerated.
808         * generated/minloc1_4_r16.c: Regenerated.
809         * generated/maxloc1_4_r16.c: Regenerated.
810         * generated/minloc0_8_r16.c: Regenerated.
811         * generated/maxloc0_8_r16.c: Regenerated.
812         * generated/count_1_l.c: Regenerated.
813         * generated/maxloc0_8_i4.c: Regenerated.
814         * generated/matmul_i2.c: Regenerated.
815         * generated/minloc1_4_r4.c: Regenerated.
816         * generated/matmul_c10.c: Regenerated.
817         * generated/minloc0_16_i4.c: Regenerated.
818         * generated/maxloc0_16_i4.c: Regenerated.
819         * generated/minloc1_16_i8.c: Regenerated.
820         * generated/maxloc1_16_i8.c: Regenerated.
821         * generated/minloc1_4_i2.c: Regenerated.
822         * generated/matmul_l16.c: Regenerated.
823         * generated/maxloc1_8_i1.c: Regenerated.
824         * generated/minloc0_16_r10.c: Regenerated.
825         * generated/minloc1_8_i8.c: Regenerated.
826         * generated/minloc0_4_r8.c: Regenerated.
827         * generated/product_r16.c: Regenerated.
828         * generated/product_c8.c: Regenerated.
829         * generated/sum_r8.c: Regenerated.
830         * generated/minloc0_8_i4.c: Regenerated.
831         * generated/matmul_c4.c: Regenerated.
832         * generated/minloc1_16_i16.c: Regenerated.
833         * generated/spread_r8.c: Regenerated.
834         * generated/maxloc1_8_r4.c: Regenerated.
835         * generated/minloc1_16_i1.c: Regenerated.
836         * generated/maxloc1_16_i1.c: Regenerated.
837         * generated/spread_r16.c: Regenerated.
838         * generated/minval_r10.c: Regenerated.
839         * generated/count_16_l.c: Regenerated.
840         * generated/minval_i4.c: Regenerated.
841         * generated/minloc1_8_i1.c: Regenerated.
842         * generated/maxloc1_4_i4.c: Regenerated.
843         * generated/maxloc1_8_i2.c: Regenerated.
844         * generated/maxval_i8.c: Regenerated.
845         * generated/any_l8.c: Regenerated.
846         * generated/maxloc0_16_r10.c: Regenerated.
847         * generated/minloc0_4_i16.c: Regenerated.
848         * generated/maxloc0_8_r8.c: Regenerated.
849         * generated/maxloc0_4_i16.c: Regenerated.
850         * generated/minloc1_4_r10.c: Regenerated.
851         * generated/minloc1_8_i16.c: Regenerated.
852         * generated/maxloc1_4_r10.c: Regenerated.
853         * generated/maxloc1_8_i16.c: Regenerated.
854         * generated/minloc0_8_r10.c: Regenerated.
855         * generated/maxloc0_8_r10.c: Regenerated.
856         * generated/minloc1_16_r4.c: Regenerated.
857         * generated/maxloc1_16_r4.c: Regenerated.
858         * generated/minloc0_16_r8.c: Regenerated.
859         * generated/product_i8.c: Regenerated.
860         * generated/maxloc0_16_r8.c: Regenerated.
861         * generated/sum_i16.c: Regenerated.
862         * generated/count_2_l.c: Regenerated.
863         * generated/maxloc0_4_i8.c: Regenerated.
864         * generated/maxloc1_16_i16.c: Regenerated.
865         * generated/matmul_i4.c: Regenerated.
866         * generated/minloc1_8_r4.c: Regenerated.
867         * generated/sum_c8.c: Regenerated.
868         * generated/minloc1_16_i2.c: Regenerated.
869         * generated/maxloc1_16_i2.c: Regenerated.
870         * generated/maxval_i16.c: Regenerated.
871         * generated/spread_c8.c: Regenerated.
872         * generated/matmul_i16.c: Regenerated.
873         * generated/minloc1_4_i4.c: Regenerated.
874         * generated/maxval_i1.c: Regenerated.
875         * generated/minloc1_8_i2.c: Regenerated.
876         * generated/any_l1.c: Regenerated.
877         * generated/product_c16.c: Regenerated.
878         * generated/minloc0_8_r8.c: Regenerated.
879         * generated/matmul_l8.c: Regenerated.
880         * generated/product_r10.c: Regenerated.
881         * generated/product_i1.c: Regenerated.
882         * generated/all_l8.c: Regenerated.
883         * generated/maxloc0_4_i1.c: Regenerated.
884         * generated/minloc0_4_i8.c: Regenerated.
885         * generated/spread_c16.c: Regenerated.
886         * generated/maxval_r4.c: Regenerated.
887
888 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
889
890         PR libfortran/37301
891         PR libfortran/37228
892         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
893         * io/transfer.c (formatted_transfer_scalar): Use new function.
894         * io/format.c (parse_format_list): Enable g0.d.
895         * io/write.c (write_a_char4): Delete unused var.
896         (set_fnode_default): New function to set the default fnode w, d, and e
897         factored from write_real. (write_real): Use new factored function.
898         (write_real_g0): New function that sets d to that passed by g0.d format
899         specifier and set format to ES.  Default values for w and e are used
900         from the new function, set_fnode_default.
901
902 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
903
904         * runtime/error.c: Fix cast for printf.
905
906 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
907
908         PR libfortran/36895
909         * io/write.c (namelist_write_newline): New function to correctly mark
910         next records in both external and internal units.
911         (nml_write_obj): Use new function.
912         (namelist_write: Use new function.
913
914 2008-08-19  Tobias Burnus  <burnus@net-b.de>
915
916         PR libfortran/35863
917         * io/write.c (write_a_char4): Add missing variable declaration
918         in HAVE_CRLF block.
919
920 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
921
922         PR libfortran/35863
923         * intrinsics/selected_char_kind.c: Enable iso_10646.
924         * io/read.c (typedef uchar): New type.
925         (read_utf8): New function to read a single UTF-8 encoded character.
926         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
927         (read_default_char1): New functio to read default into KIND=1 string.
928         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
929         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
930         (read_a): Modify to use the new functions.
931         (read_a_char4): Modify to use the new functions.
932         * io/write.c (error.h): Add include. (typedef uchar): New type.
933         (write_default_char4): New function to default write KIND=4 string.
934         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
935         (write_a_char4): Modify to use new functions.
936         (write_character): Modify to use new functions.
937
938 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
939
940         PR libfortran/37123
941         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
942
943 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
944
945         PR libfortran/36886
946         * Makefile.am:  Added $(i_cshift0_c).
947         Added $(i_cshift0_c) to gfor_built_specific_src.
948         Add rule to build from cshift0.m4.
949         * Makefile.in:  Regenerated.
950         * libgfortran.h:  Addedd prototypes for cshift0_i1,
951         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
952         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
953         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
954         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
955         * intrinsics/cshift0.c:  Remove helper functions for
956         the innter shift loop.
957         (cshift0):  Call specific functions depending on type
958         of array argument.  Only call specific functions for
959         correct alignment for other types.
960         * m4/cshift0.m4:  New file.
961         * generated/cshift0_i1.c:  New file.
962         * generated/cshift0_i2.c:  New file.
963         * generated/cshift0_i4.c:  New file.
964         * generated/cshift0_i8:.c  New file.
965         * generated/cshift0_i16.c:  New file.
966         * generated/cshift0_r4.c:  New file.
967         * generated/cshift0_r8.c:  New file.
968         * generated/cshift0_r10.c:  New file.
969         * generated/cshift0_r16.c:  New file.
970         * generated/cshift0_c4.c:  New file.
971         * generated/cshift0_c8.c:  New file.
972         * generated/cshift0_c10.c:  New file.
973         * generated/cshift0_c16.c:  New file.
974
975 2008-07-27  Tobias Burnus  <burnus@net-b.de>
976
977         PR fortran/36132
978         PR fortran/29952
979         PR fortran/36909
980         * runtime/error.c: New function runtime_error_at.
981         * gfortran.map: Ditto.
982         * libgfortran.h: Ditto.
983
984 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
985
986         PR fortran/36582
987         * io/list_read.c: If variable rank is zero, do not adjust the found
988         namelist object pointer.
989
990 2008-07-22  Daniel Kraft  <d@domob.eu>
991
992         PR fortran/29835
993         * io/format.c (struct format_data):  New member error_element.
994         (unexpected_element):  Added '%c' to message.
995         (next_char):  Keep track of last parsed character in fmt->error_element.
996         (format_error):  If the message is unexpected_element, output the
997         offending character, too.
998
999 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1000
1001         PR libfortran/36890
1002         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
1003         signed/unsigned comparison warning in formatted_backspace.
1004
1005 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1006
1007         PR libfortran/36773
1008         * intrinsics/cshift0.c (cshift0):  Return early if size of array
1009         is zero.
1010         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
1011         return array is zero.
1012         * intrinsics/eoshift2.c (eoshift2):  Likewise.
1013         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
1014         is zero.
1015         * m4/eoshift3.m4 (eoshift3):  Likewise.
1016         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
1017         array is zero.
1018         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
1019         array is zero.
1020         * generated/cshift1_16.c: Regenerated.
1021         * generated/cshift1_4.c: Regenerated.
1022         * generated/cshift1_8.c: Regenerated.
1023         * generated/eoshift1_16.c: Regenerated.
1024         * generated/eoshift1_4.c: Regenerated.
1025         * generated/eoshift1_8.c: Regenerated.
1026         * generated/eoshift3_16.c: Regenerated.
1027         * generated/eoshift3_4.c: Regenerated.
1028         * generated/eoshift3_8.c: Regenerated.
1029
1030 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1031
1032         PR fortran/36857
1033         * io/write_float.def: Comment out locale dependent code and fix general
1034         comments.
1035         
1036 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1037
1038         PR fortran/36341
1039         PR fortran/34670
1040         * m4/matmul.m4:  Add bounds checking.
1041         * m4/matmull.m4:  Likewise.
1042         * generated/matmul_c10.c: Regenerated.
1043         * generated/matmul_c16.c: Regenerated.
1044         * generated/matmul_c4.c: Regenerated.
1045         * generated/matmul_c8.c: Regenerated.
1046         * generated/matmul_i1.c: Regenerated.
1047         * generated/matmul_i16.c: Regenerated.
1048         * generated/matmul_i2.c: Regenerated.
1049         * generated/matmul_i4.c: Regenerated.
1050         * generated/matmul_i8.c: Regenerated.
1051         * generated/matmul_l16.c: Regenerated.
1052         * generated/matmul_l4.c: Regenerated.
1053         * generated/matmul_l8.c: Regenerated.
1054         * generated/matmul_r10.c: Regenerated.
1055         * generated/matmul_r16.c: Regenerated.
1056         * generated/matmul_r4.c: Regenerated.
1057         * generated/matmul_r8.c: Regenerated.
1058
1059 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1060
1061         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
1062         variable name.
1063         * configure: Regenerate.
1064
1065 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1066
1067         PR fortran/36676
1068         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
1069         
1070 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1071
1072         PR fortran/36657
1073         * io/list_read.c (read_character): Check for '!' along with separators.
1074         (find_nml_name): Likewise and eat the comment if found.
1075
1076 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1077
1078         * configure: Regenerate.
1079
1080 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1081
1082         PR fortran/36546
1083         * io/list_read.c (eat_separator): Add tab character to condition
1084         for looping past whitespace.
1085
1086 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1087
1088         PR fortran/36515
1089         * libgfortran.h (compile_options_t): Add int range_check to structure.
1090         * runtime/compile_options.c (set_options): Add range_check option.
1091         (init_compile_options): Likewise.
1092         *io/read.c (read_decimal): Change overflow checks to include
1093         range_check.
1094         
1095 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1096
1097         PR fortran/36538
1098         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
1099         tabs.
1100
1101 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1102
1103         PR fortran/35863
1104         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
1105         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
1106         big_endian. (determine_endianness): Add endian_off and set its value
1107         according to big_endian.
1108         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
1109         * io/io.h: Add prototype declarations for new functions.
1110         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
1111         (list_formatted_read): Calculate stride based on kind for character type
1112         and use it when calling list_formatted_read_scalar.
1113         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
1114         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
1115         * io/read.c (read_a_char4): New function to handle formatted read.
1116         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
1117         (write_a_char4): New function to handle formatted write.
1118         (write_character): Modify to accept the kind parameter and adjust for
1119         endianess of the machine. (list_formatted_write): Calculate the stride
1120         resulting from the kind and adjust the list_formatted_write_scalar call
1121         accordingly. (nml_write_obj): Adjust calls to write_character.
1122         (namelist_write): Likewise.
1123         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
1124         'kind' argument to better describe what it is. Add calls to new
1125         functions for kind == 4. (formatted_transfer): Modify to handle the case
1126         of type character and kind equals 4 to pass in the kind to the transfer
1127         routines. (transfer_character_wide): Add this new function.
1128         (transfer_array): Don't set kind to the character string length. Adjust
1129         strides bases on character kind.
1130         (unformatted_read): Adjust size based on kind for character types.
1131         (unformatted_write): Likewise. (data_transfer_init): Change
1132         l8_to_l4_offset to big_endian.
1133         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
1134
1135 2008-06-13  Tobias Burnus  <burnus@net-b.de>
1136
1137         * configure.ac (AM_CFLAGS): Remove -Werror again.
1138         * configure: Regenerate.
1139
1140 2008-06-13  Tobias Burnus  <burnus@net-b.de>
1141
1142         PR libgfortran/36518
1143         * configure.ac (AM_CFLAGS): Add -Werror.
1144         * configure: Regenerate.
1145         * m4/ifunction_logical.m4: Cast "n" to "(int)".
1146         * generated/any_l16.c: Regenerate.
1147         * generated/any_l2.c: Regenerate.
1148         * generated/all_l1.c: Regenerate.
1149         * generated/all_l2.c: Regenerate.
1150         * generated/all_l16.c: Regenerate.
1151         * generated/any_l4.c: Regenerate.
1152         * generated/count_4_l.c: Regenerate.
1153         * generated/count_8_l.c: Regenerate.
1154         * generated/all_l4.c: Regenerate.
1155         * generated/count_1_l.c: Regenerate.
1156         * generated/count_16_l.c: Regenerate.
1157         * generated/any_l8.c: Regenerate.
1158         * generated/count_2_l.c: Regenerate.
1159         * generated/any_l1.c: Regenerate.
1160         * generated/all_l8.c: Regenerate.
1161
1162 2008-06-13  Tobias Burnus  <burnus@net-b.de>
1163
1164         PR fortran/36495
1165         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
1166         * configure: (generated) ditto.
1167         * intrinsics/dprod_r8.f90: Add "implicit none".
1168
1169 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1170
1171         PR libfortran/36420
1172         PR libfortran/36421
1173         PR libfortran/36422
1174         * io/io.h: Add prototype for write_real.
1175         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
1176         use write_real.
1177         * io/format.c: Add zero width error message. (parse_format_list): Use
1178         error message for FMT_A if followed by FMT_ZERO. Use zero width error
1179         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
1180         Fix typo in comment.
1181         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
1182         (write_l): Add wlen variable and use it if FMT_G and width is zero.
1183         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
1184         formatting. (write_real): Remove static declaration.
1185
1186 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1187
1188         PR fortran/36319
1189         * intrinsics/string_intrinsics_inc.c (string_index): Return
1190         correct value for zero-length substring.
1191         * intrinsics/cshift0.c: Add _char4 variant.
1192         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
1193         wider than a single byte. Add _char4 variant and use above
1194         functionality.
1195         * intrinsics/eoshift2.c (eoshift2): Likewise.
1196         * m4/eoshift1.m4: Likewise.
1197         * m4/eoshift3.m4: Likewise.
1198         * m4/cshift1.m4: Add _char4 variants.
1199         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
1200         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
1201         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
1202         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
1203         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
1204         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
1205         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
1206         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
1207         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
1208         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
1209         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
1210         * generated/eoshift3_4.c: Regenerate.
1211         * generated/eoshift1_8.c: Regenerate.
1212         * generated/eoshift1_16.c: Regenerate.
1213         * generated/cshift1_4.c: Regenerate.
1214         * generated/eoshift1_4.c: Regenerate.
1215         * generated/eoshift3_8.c: Regenerate.
1216         * generated/eoshift3_16.c: Regenerate.
1217         * generated/cshift1_8.c: Regenerate.
1218         * generated/cshift1_16.c: Regenerate.
1219
1220 2008-05-25  Tobias Burnus  <burnus@net-b.de>
1221
1222         PR fortran/32600
1223         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
1224         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
1225         * gfortran.map (c_f_procpointer): Remove.
1226
1227 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1228
1229         PR libgfortran/36302
1230         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
1231         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
1232         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
1233         _gfortran_cshift0_16_char.  Sort alphabetically.
1234         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
1235         * intrinsics/eoshift2.c:  Likewise.
1236         * intrinsics/cshift0.c:  Likewise.
1237
1238 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
1239
1240         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
1241         pointer is restrict.
1242         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
1243         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
1244         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
1245         (spread_scalar_'rtype_code`): Likewise.
1246         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
1247         * m4/eoshift1.m4 (eoshift1):  Likewise.
1248         * m4/eoshift3.m4 (eoshift3):  Likewise.
1249         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
1250         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
1251         (unpack1_'rtype_code`):  Likewise.
1252         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
1253         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
1254         * intrinsics/eoshift0.c (eoshift0):  Likewise.
1255         * intrinsics/eoshift2.c (eoshift2):  Likewise.
1256         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
1257         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
1258         * generated/eoshift1_16.c: Regenerated.
1259         * generated/eoshift1_4.c: Regenerated.
1260         * generated/eoshift1_8.c: Regenerated.
1261         * generated/eoshift3_16.c: Regenerated.
1262         * generated/eoshift3_4.c: Regenerated.
1263         * generated/eoshift3_8.c: Regenerated.
1264         * generated/in_pack_c10.c: Regenerated.
1265         * generated/in_pack_c16.c: Regenerated.
1266         * generated/in_pack_c4.c: Regenerated.
1267         * generated/in_pack_c8.c: Regenerated.
1268         * generated/in_pack_i1.c: Regenerated.
1269         * generated/in_pack_i16.c: Regenerated.
1270         * generated/in_pack_i2.c: Regenerated.
1271         * generated/in_pack_i4.c: Regenerated.
1272         * generated/in_pack_i8.c: Regenerated.
1273         * generated/in_pack_r10.c: Regenerated.
1274         * generated/in_pack_r16.c: Regenerated.
1275         * generated/in_pack_r4.c: Regenerated.
1276         * generated/in_pack_r8.c: Regenerated.
1277         * generated/in_unpack_c10.c: Regenerated.
1278         * generated/in_unpack_c16.c: Regenerated.
1279         * generated/in_unpack_c4.c: Regenerated.
1280         * generated/in_unpack_c8.c: Regenerated.
1281         * generated/in_unpack_i1.c: Regenerated.
1282         * generated/in_unpack_i16.c: Regenerated.
1283         * generated/in_unpack_i2.c: Regenerated.
1284         * generated/in_unpack_i4.c: Regenerated.
1285         * generated/in_unpack_i8.c: Regenerated.
1286         * generated/in_unpack_r10.c: Regenerated.
1287         * generated/in_unpack_r16.c: Regenerated.
1288         * generated/in_unpack_r4.c: Regenerated.
1289         * generated/in_unpack_r8.c: Regenerated.
1290         * generated/maxloc0_16_i1.c: Regenerated.
1291         * generated/maxloc0_16_i16.c: Regenerated.
1292         * generated/maxloc0_16_i2.c: Regenerated.
1293         * generated/maxloc0_16_i4.c: Regenerated.
1294         * generated/maxloc0_16_i8.c: Regenerated.
1295         * generated/maxloc0_16_r10.c: Regenerated.
1296         * generated/maxloc0_16_r16.c: Regenerated.
1297         * generated/maxloc0_16_r4.c: Regenerated.
1298         * generated/maxloc0_16_r8.c: Regenerated.
1299         * generated/maxloc0_4_i1.c: Regenerated.
1300         * generated/maxloc0_4_i16.c: Regenerated.
1301         * generated/maxloc0_4_i2.c: Regenerated.
1302         * generated/maxloc0_4_i4.c: Regenerated.
1303         * generated/maxloc0_4_i8.c: Regenerated.
1304         * generated/maxloc0_4_r10.c: Regenerated.
1305         * generated/maxloc0_4_r16.c: Regenerated.
1306         * generated/maxloc0_4_r4.c: Regenerated.
1307         * generated/maxloc0_4_r8.c: Regenerated.
1308         * generated/maxloc0_8_i1.c: Regenerated.
1309         * generated/maxloc0_8_i16.c: Regenerated.
1310         * generated/maxloc0_8_i2.c: Regenerated.
1311         * generated/maxloc0_8_i4.c: Regenerated.
1312         * generated/maxloc0_8_i8.c: Regenerated.
1313         * generated/maxloc0_8_r10.c: Regenerated.
1314         * generated/maxloc0_8_r16.c: Regenerated.
1315         * generated/maxloc0_8_r4.c: Regenerated.
1316         * generated/maxloc0_8_r8.c: Regenerated.
1317         * generated/minloc0_16_i1.c: Regenerated.
1318         * generated/minloc0_16_i16.c: Regenerated.
1319         * generated/minloc0_16_i2.c: Regenerated.
1320         * generated/minloc0_16_i4.c: Regenerated.
1321         * generated/minloc0_16_i8.c: Regenerated.
1322         * generated/minloc0_16_r10.c: Regenerated.
1323         * generated/minloc0_16_r16.c: Regenerated.
1324         * generated/minloc0_16_r4.c: Regenerated.
1325         * generated/minloc0_16_r8.c: Regenerated.
1326         * generated/minloc0_4_i1.c: Regenerated.
1327         * generated/minloc0_4_i16.c: Regenerated.
1328         * generated/minloc0_4_i2.c: Regenerated.
1329         * generated/minloc0_4_i4.c: Regenerated.
1330         * generated/minloc0_4_i8.c: Regenerated.
1331         * generated/minloc0_4_r10.c: Regenerated.
1332         * generated/minloc0_4_r16.c: Regenerated.
1333         * generated/minloc0_4_r4.c: Regenerated.
1334         * generated/minloc0_4_r8.c: Regenerated.
1335         * generated/minloc0_8_i1.c: Regenerated.
1336         * generated/minloc0_8_i16.c: Regenerated.
1337         * generated/minloc0_8_i2.c: Regenerated.
1338         * generated/minloc0_8_i4.c: Regenerated.
1339         * generated/minloc0_8_i8.c: Regenerated.
1340         * generated/minloc0_8_r10.c: Regenerated.
1341         * generated/minloc0_8_r16.c: Regenerated.
1342         * generated/minloc0_8_r4.c: Regenerated.
1343         * generated/minloc0_8_r8.c: Regenerated.
1344         * generated/pack_c10.c: Regenerated.
1345         * generated/pack_c16.c: Regenerated.
1346         * generated/pack_c4.c: Regenerated.
1347         * generated/pack_c8.c: Regenerated.
1348         * generated/pack_i1.c: Regenerated.
1349         * generated/pack_i16.c: Regenerated.
1350         * generated/pack_i2.c: Regenerated.
1351         * generated/pack_i4.c: Regenerated.
1352         * generated/pack_i8.c: Regenerated.
1353         * generated/pack_r10.c: Regenerated.
1354         * generated/pack_r16.c: Regenerated.
1355         * generated/pack_r4.c: Regenerated.
1356         * generated/pack_r8.c: Regenerated.
1357         * generated/spread_c10.c: Regenerated.
1358         * generated/spread_c16.c: Regenerated.
1359         * generated/spread_c4.c: Regenerated.
1360         * generated/spread_c8.c: Regenerated.
1361         * generated/spread_i1.c: Regenerated.
1362         * generated/spread_i16.c: Regenerated.
1363         * generated/spread_i2.c: Regenerated.
1364         * generated/spread_i4.c: Regenerated.
1365         * generated/spread_i8.c: Regenerated.
1366         * generated/spread_r10.c: Regenerated.
1367         * generated/spread_r16.c: Regenerated.
1368         * generated/spread_r4.c: Regenerated.
1369         * generated/spread_r8.c: Regenerated.
1370         * generated/transpose_c10.c: Regenerated.
1371         * generated/transpose_c16.c: Regenerated.
1372         * generated/transpose_c4.c: Regenerated.
1373         * generated/transpose_c8.c: Regenerated.
1374         * generated/transpose_i16.c: Regenerated.
1375         * generated/transpose_i4.c: Regenerated.
1376         * generated/transpose_i8.c: Regenerated.
1377         * generated/transpose_r10.c: Regenerated.
1378         * generated/transpose_r16.c: Regenerated.
1379         * generated/transpose_r4.c: Regenerated.
1380         * generated/transpose_r8.c: Regenerated.
1381         * generated/unpack_c10.c: Regenerated.
1382         * generated/unpack_c16.c: Regenerated.
1383         * generated/unpack_c4.c: Regenerated.
1384         * generated/unpack_c8.c: Regenerated.
1385         * generated/unpack_i1.c: Regenerated.
1386         * generated/unpack_i16.c: Regenerated.
1387         * generated/unpack_i2.c: Regenerated.
1388         * generated/unpack_i4.c: Regenerated.
1389         * generated/unpack_i8.c: Regenerated.
1390         * generated/unpack_r10.c: Regenerated.
1391         * generated/unpack_r16.c: Regenerated.
1392         * generated/unpack_r4.c: Regenerated.
1393         * generated/unpack_r8.c: Regenerated.
1394
1395 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1396
1397         * runtime/select.c: Moved content to select_inc.c. Include it. 
1398         Add macros for different character types.
1399         * runtime/select_inc.c: New file.
1400         * runtime/convert_char.c: New file.
1401         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
1402         functions.
1403         * intrinsics/transpose_generic.c (transpose_char4): New function.
1404         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
1405         New functions.
1406         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
1407         New functions.
1408         * intrinsics/reshape_generic.c (reshape_char): Use
1409         gfc_charlen_type as type for length variables.
1410         (reshape_char4): New function.
1411         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
1412         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
1413         _gfortran_transpose_char4, _gfortran_spread_char4,
1414         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
1415         _gfortran_pack_char4, _gfortran_pack_s_char4,
1416         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
1417         * Makefile.am: Add runtime/convert_char.c.
1418         * Makefile.in: Regenerate.
1419
1420 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
1421
1422         * io/list_read.c (list_formatted_read_scalar):  Declare
1423         type as volatile to shut up compiler warning.
1424
1425 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1426
1427         PR libfortran/25561
1428         * io/io.h (struct fbuf): Change pointer to position offset.
1429         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
1430         changes.
1431         (fbuf_reset): ptr=>pos changes.
1432         (fbuf_alloc): If the request doesn't fit, don't waste memory by
1433         keeping flushed bytes. ptr=>pos changes.
1434         (fbuf_flush): ptr=>pos changes.
1435         (fbuf_seek): Don't seek past the left tab limit, don't update active
1436         byte count.
1437         * io/open.c (new_unit): If RECL has been specified, used that as
1438         initial buffer size.
1439
1440 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1441
1442         PR libfortran/35632
1443         * io/open.c (new_unit): Set stream position to correct value.
1444
1445 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
1446
1447         PR libfortran/25561
1448         * Makefile.am: Add fbuf.c to gfor_io_src.
1449         * Makefile.in: Regenerate.
1450         * io/io.h (read_block): Remove.
1451         (struct stream): Remove alloc_r_at function pointer.
1452         (salloc_r): Remove.
1453         (salloc_r_at): Remove.
1454         (salloc_w_at): Remove.
1455         (salloc_w): Remove offset argument.
1456         (struct fbuf): New struct for format buffer.
1457         (struct gfc_unit): Add fbuf.
1458         (read_block_form): New prototype.
1459         (fbuf_init): Likewise.
1460         (fbuf_destroy): Likewise.
1461         (fbuf_reset): Likewise.
1462         (fbuf_alloc): Likewise.
1463         (fbuf_flush): Likewise.
1464         (fbuf_seek): Likewise.
1465         * io/file_pos.c (formatted_backspace): Change to use sread.
1466         (unformatted_backspace): Likewise.
1467         (st_backspace): Flush format buffer.
1468         (st_rewind): Likewise.
1469         * io/list_read.c (next_char): Likewise.
1470         (nml_query): Tidying, flush format buffer.
1471         * io/open.c (new_unit): Init format buffer.
1472         * io/read.c (read_l): Change to use read_block_form.
1473         (read_a): Likewise.
1474         (read_decimal): Likewise.
1475         (read_radix): Likewise.
1476         (read_f): Likewise.
1477         (read_x): Empty reads also for stream I/O.
1478         * io/transfer.c (read_sf): Change to use sread.
1479         (read_block): Rename to read_block_form, change prototype, use sread.
1480         (read_block_direct): Don't seek stream files.
1481         (write_block): Change to use fbuf if external file, don't seek stream
1482         files.
1483         (write_buf): Don't seek stream files.
1484         (formatted_transfer_scalar): Use fbuf for external files.
1485         (us_read): Change to use sread.
1486         (pre_position): Do nothing for stream I/O.
1487         (data_transfer_init): Flush fbuf when switching from write to read, if
1488         POS is specified, seek stream file to correct offset.
1489         (skip_record): Change to use sread.
1490         (min_off): New function.
1491         (next_record_r): Change to use sread.
1492         (next_record_w): Change to use sset/sseek, flush fbuf.
1493         (finalize_transfer): Flush fbuf.
1494         * io/unit.c (init_units): Init fbuf for stdout, stderr.
1495         (close_unit_1): Destroy fbuf.
1496         (finish_last_advance_record): Flush fbuf, no need to seek.
1497         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
1498         (fd_alloc_w_at): Likewise.
1499         (fd_read): Remove third argument to fd_alloc_r_at.
1500         (fd_write): Remove third argument to fd_alloc_w_at.
1501         (fd_sset): Likewise.
1502         (fd_open): Don't set alloc_r_at.
1503         (mem_alloc_r_at): Remove unused where argument.
1504         (mem_alloc_w_at): Likewise.
1505         (mem_read): Don't incorrectly return previous errno, remove unused
1506         third argument to alloc function.
1507         (mem_write): Likewise.
1508         (mem_set): Likewise.
1509         (open_internal): Don't set alloc_r_at pointer.
1510         * io/fbuf.c: New file.
1511
1512 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1513
1514         * libgfortran.h (gfc_char4_t): New type.
1515         (GFC_SIZE_OF_CHAR_KIND): New macro.
1516         (compare_string): Adjust prototype.
1517         (compare_string_char4): New prototype.
1518         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
1519         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
1520         _gfortran_concat_string_char4, _gfortran_string_index_char4,
1521         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
1522         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
1523         _gfortran_string_verify_char4.
1524         * intrinsics/string_intrinsics_inc.c: New file from content of
1525         string_intrinsics.c with types replaced by macros.
1526         * intrinsics/string_intrinsics.c: Move content to
1527         string_intrinsics_inc.c.
1528
1529 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1530
1531         PR libfortran/36202
1532         * io/list_read (eat_separator): Handle the CR-LF case correctly.
1533
1534 2008-05-09  Julian Brown  <julian@codesourcery.com>
1535
1536         * Makefile.am (LTLDFLAGS): New.
1537         (libgfortran_la_LDFLAGS): Use above.
1538         * Makefile.in: Regenerate.
1539
1540 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1541
1542         PR libfortran/36131
1543         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
1544         (next_record_w): Likewise.
1545
1546 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1547
1548         PR libfortran/35995
1549         * m4/ifunction_logical.m4:  If the extent of "array"
1550         is less than zero, set it to zero.  Use an explicit
1551         flag for breaking out of the main loop to avoid, because
1552         the data pointer for "array" may be NULL for an empty
1553         array.
1554         * m4/ifunction.m4:  Likewise.
1555         * generated/all_l1.c: Regenerated.
1556         * generated/all_l16.c: Regenerated.
1557         * generated/all_l2.c: Regenerated.
1558         * generated/all_l4.c: Regenerated.
1559         * generated/all_l8.c: Regenerated.
1560         * generated/any_l1.c: Regenerated.
1561         * generated/any_l16.c: Regenerated.
1562         * generated/any_l2.c: Regenerated.
1563         * generated/any_l4.c: Regenerated.
1564         * generated/any_l8.c: Regenerated.
1565         * generated/count_16_l.c: Regenerated.
1566         * generated/count_1_l.c: Regenerated.
1567         * generated/count_2_l.c: Regenerated.
1568         * generated/count_4_l.c: Regenerated.
1569         * generated/count_8_l.c: Regenerated.
1570         * generated/maxloc1_16_i1.c: Regenerated.
1571         * generated/maxloc1_16_i16.c: Regenerated.
1572         * generated/maxloc1_16_i2.c: Regenerated.
1573         * generated/maxloc1_16_i4.c: Regenerated.
1574         * generated/maxloc1_16_i8.c: Regenerated.
1575         * generated/maxloc1_16_r10.c: Regenerated.
1576         * generated/maxloc1_16_r16.c: Regenerated.
1577         * generated/maxloc1_16_r4.c: Regenerated.
1578         * generated/maxloc1_16_r8.c: Regenerated.
1579         * generated/maxloc1_4_i1.c: Regenerated.
1580         * generated/maxloc1_4_i16.c: Regenerated.
1581         * generated/maxloc1_4_i2.c: Regenerated.
1582         * generated/maxloc1_4_i4.c: Regenerated.
1583         * generated/maxloc1_4_i8.c: Regenerated.
1584         * generated/maxloc1_4_r10.c: Regenerated.
1585         * generated/maxloc1_4_r16.c: Regenerated.
1586         * generated/maxloc1_4_r4.c: Regenerated.
1587         * generated/maxloc1_4_r8.c: Regenerated.
1588         * generated/maxloc1_8_i1.c: Regenerated.
1589         * generated/maxloc1_8_i16.c: Regenerated.
1590         * generated/maxloc1_8_i2.c: Regenerated.
1591         * generated/maxloc1_8_i4.c: Regenerated.
1592         * generated/maxloc1_8_i8.c: Regenerated.
1593         * generated/maxloc1_8_r10.c: Regenerated.
1594         * generated/maxloc1_8_r16.c: Regenerated.
1595         * generated/maxloc1_8_r4.c: Regenerated.
1596         * generated/maxloc1_8_r8.c: Regenerated.
1597         * generated/maxval_i1.c: Regenerated.
1598         * generated/maxval_i16.c: Regenerated.
1599         * generated/maxval_i2.c: Regenerated.
1600         * generated/maxval_i4.c: Regenerated.
1601         * generated/maxval_i8.c: Regenerated.
1602         * generated/maxval_r10.c: Regenerated.
1603         * generated/maxval_r16.c: Regenerated.
1604         * generated/maxval_r4.c: Regenerated.
1605         * generated/maxval_r8.c: Regenerated.
1606         * generated/minloc1_16_i1.c: Regenerated.
1607         * generated/minloc1_16_i16.c: Regenerated.
1608         * generated/minloc1_16_i2.c: Regenerated.
1609         * generated/minloc1_16_i4.c: Regenerated.
1610         * generated/minloc1_16_i8.c: Regenerated.
1611         * generated/minloc1_16_r10.c: Regenerated.
1612         * generated/minloc1_16_r16.c: Regenerated.
1613         * generated/minloc1_16_r4.c: Regenerated.
1614         * generated/minloc1_16_r8.c: Regenerated.
1615         * generated/minloc1_4_i1.c: Regenerated.
1616         * generated/minloc1_4_i16.c: Regenerated.
1617         * generated/minloc1_4_i2.c: Regenerated.
1618         * generated/minloc1_4_i4.c: Regenerated.
1619         * generated/minloc1_4_i8.c: Regenerated.
1620         * generated/minloc1_4_r10.c: Regenerated.
1621         * generated/minloc1_4_r16.c: Regenerated.
1622         * generated/minloc1_4_r4.c: Regenerated.
1623         * generated/minloc1_4_r8.c: Regenerated.
1624         * generated/minloc1_8_i1.c: Regenerated.
1625         * generated/minloc1_8_i16.c: Regenerated.
1626         * generated/minloc1_8_i2.c: Regenerated.
1627         * generated/minloc1_8_i4.c: Regenerated.
1628         * generated/minloc1_8_i8.c: Regenerated.
1629         * generated/minloc1_8_r10.c: Regenerated.
1630         * generated/minloc1_8_r16.c: Regenerated.
1631         * generated/minloc1_8_r4.c: Regenerated.
1632         * generated/minloc1_8_r8.c: Regenerated.
1633         * generated/minval_i1.c: Regenerated.
1634         * generated/minval_i16.c: Regenerated.
1635         * generated/minval_i2.c: Regenerated.
1636         * generated/minval_i4.c: Regenerated.
1637         * generated/minval_i8.c: Regenerated.
1638         * generated/minval_r10.c: Regenerated.
1639         * generated/minval_r16.c: Regenerated.
1640         * generated/minval_r4.c: Regenerated.
1641         * generated/minval_r8.c: Regenerated.
1642         * generated/product_c10.c: Regenerated.
1643         * generated/product_c16.c: Regenerated.
1644         * generated/product_c4.c: Regenerated.
1645         * generated/product_c8.c: Regenerated.
1646         * generated/product_i1.c: Regenerated.
1647         * generated/product_i16.c: Regenerated.
1648         * generated/product_i2.c: Regenerated.
1649         * generated/product_i4.c: Regenerated.
1650         * generated/product_i8.c: Regenerated.
1651         * generated/product_r10.c: Regenerated.
1652         * generated/product_r16.c: Regenerated.
1653         * generated/product_r4.c: Regenerated.
1654         * generated/product_r8.c: Regenerated.
1655         * generated/sum_c10.c: Regenerated.
1656         * generated/sum_c16.c: Regenerated.
1657         * generated/sum_c4.c: Regenerated.
1658         * generated/sum_c8.c: Regenerated.
1659         * generated/sum_i1.c: Regenerated.
1660         * generated/sum_i16.c: Regenerated.
1661         * generated/sum_i2.c: Regenerated.
1662         * generated/sum_i4.c: Regenerated.
1663         * generated/sum_i8.c: Regenerated.
1664         * generated/sum_r10.c: Regenerated.
1665         * generated/sum_r16.c: Regenerated.
1666         * generated/sum_r4.c: Regenerated.
1667         * generated/sum_r8.c: Regenerated.
1668
1669 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1670
1671         PR libfortran/35990
1672         * intrinsics/pack_generic.c:  Really commit.
1673
1674 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1675
1676         PR libfortran/35990
1677         * intrinsics/pack_generic.c:  If an extent of the source
1678         array is less then zero, set it to zero.  Set the source
1679         pointer to NULL if the source size is zero.  Set the total
1680         number of elements to zero if the vector has an extent
1681         less or equal to zero.
1682         * m4/pack.m4:  Set the source pointer to NULL if the
1683         source array is zero-sized.  Set the total number of
1684         elemements to zero if the vector has an extent less or
1685         equal to zero.
1686         * generated/pack_i1.c:  Regenerated.
1687         * generated/pack_i2.c:  Regenerated.
1688         * generated/pack_i4.c:  Regenerated.
1689         * generated/pack_i8.c:  Regenerated.
1690         * generated/pack_i16.c:  Regenerated.
1691         * generated/pack_r4.c:  Regenerated.
1692         * generated/pack_r8.c:  Regenerated.
1693         * generated/pack_r10.c:  Regenerated.
1694         * generated/pack_r16.c:  Regenerated.
1695         * generated/pack_c4.c:  Regenerated.
1696         * generated/pack_c8.c:  Regenerated.
1697         * generated/pack_c10.c:  Regenerated.
1698         * generated/pack_c16.c:  Regenerated.
1699
1700 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1701
1702         PR libfortran/36094
1703         * runtime/error.c (show_locus): Provide modified error message when
1704         filename has not yet been associated with a unit number.
1705         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
1706
1707 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1708
1709         * intrinsics/selected_char_kind.c: New file.
1710         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
1711         * Makefile.am: Add intrinsics/selected_char_kind.c.
1712         * Makefile.in: Regenerate.
1713
1714 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1715
1716         PR libfortran/35993
1717         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
1718         implementation for multi-dimensional return arrays when
1719         the mask is .false.
1720         * generated/maxloc1_16_i1.c: Regenerated.
1721         * generated/maxloc1_16_i16.c: Regenerated.
1722         * generated/maxloc1_16_i2.c: Regenerated.
1723         * generated/maxloc1_16_i4.c: Regenerated.
1724         * generated/maxloc1_16_i8.c: Regenerated.
1725         * generated/maxloc1_16_r10.c: Regenerated.
1726         * generated/maxloc1_16_r16.c: Regenerated.
1727         * generated/maxloc1_16_r4.c: Regenerated.
1728         * generated/maxloc1_16_r8.c: Regenerated.
1729         * generated/maxloc1_4_i1.c: Regenerated.
1730         * generated/maxloc1_4_i16.c: Regenerated.
1731         * generated/maxloc1_4_i2.c: Regenerated.
1732         * generated/maxloc1_4_i4.c: Regenerated.
1733         * generated/maxloc1_4_i8.c: Regenerated.
1734         * generated/maxloc1_4_r10.c: Regenerated.
1735         * generated/maxloc1_4_r16.c: Regenerated.
1736         * generated/maxloc1_4_r4.c: Regenerated.
1737         * generated/maxloc1_4_r8.c: Regenerated.
1738         * generated/maxloc1_8_i1.c: Regenerated.
1739         * generated/maxloc1_8_i16.c: Regenerated.
1740         * generated/maxloc1_8_i2.c: Regenerated.
1741         * generated/maxloc1_8_i4.c: Regenerated.
1742         * generated/maxloc1_8_i8.c: Regenerated.
1743         * generated/maxloc1_8_r10.c: Regenerated.
1744         * generated/maxloc1_8_r16.c: Regenerated.
1745         * generated/maxloc1_8_r4.c: Regenerated.
1746         * generated/maxloc1_8_r8.c: Regenerated.
1747         * generated/maxval_i1.c: Regenerated.
1748         * generated/maxval_i16.c: Regenerated.
1749         * generated/maxval_i2.c: Regenerated.
1750         * generated/maxval_i4.c: Regenerated.
1751         * generated/maxval_i8.c: Regenerated.
1752         * generated/maxval_r10.c: Regenerated.
1753         * generated/maxval_r16.c: Regenerated.
1754         * generated/maxval_r4.c: Regenerated.
1755         * generated/maxval_r8.c: Regenerated.
1756         * generated/minloc1_16_i1.c: Regenerated.
1757         * generated/minloc1_16_i16.c: Regenerated.
1758         * generated/minloc1_16_i2.c: Regenerated.
1759         * generated/minloc1_16_i4.c: Regenerated.
1760         * generated/minloc1_16_i8.c: Regenerated.
1761         * generated/minloc1_16_r10.c: Regenerated.
1762         * generated/minloc1_16_r16.c: Regenerated.
1763         * generated/minloc1_16_r4.c: Regenerated.
1764         * generated/minloc1_16_r8.c: Regenerated.
1765         * generated/minloc1_4_i1.c: Regenerated.
1766         * generated/minloc1_4_i16.c: Regenerated.
1767         * generated/minloc1_4_i2.c: Regenerated.
1768         * generated/minloc1_4_i4.c: Regenerated.
1769         * generated/minloc1_4_i8.c: Regenerated.
1770         * generated/minloc1_4_r10.c: Regenerated.
1771         * generated/minloc1_4_r16.c: Regenerated.
1772         * generated/minloc1_4_r4.c: Regenerated.
1773         * generated/minloc1_4_r8.c: Regenerated.
1774         * generated/minloc1_8_i1.c: Regenerated.
1775         * generated/minloc1_8_i16.c: Regenerated.
1776         * generated/minloc1_8_i2.c: Regenerated.
1777         * generated/minloc1_8_i4.c: Regenerated.
1778         * generated/minloc1_8_i8.c: Regenerated.
1779         * generated/minloc1_8_r10.c: Regenerated.
1780         * generated/minloc1_8_r16.c: Regenerated.
1781         * generated/minloc1_8_r4.c: Regenerated.
1782         * generated/minloc1_8_r8.c: Regenerated.
1783         * generated/minval_i1.c: Regenerated.
1784         * generated/minval_i16.c: Regenerated.
1785         * generated/minval_i2.c: Regenerated.
1786         * generated/minval_i4.c: Regenerated.
1787         * generated/minval_i8.c: Regenerated.
1788         * generated/minval_r10.c: Regenerated.
1789         * generated/minval_r16.c: Regenerated.
1790         * generated/minval_r4.c: Regenerated.
1791         * generated/minval_r8.c: Regenerated.
1792         * generated/product_c10.c: Regenerated.
1793         * generated/product_c16.c: Regenerated.
1794         * generated/product_c4.c: Regenerated.
1795         * generated/product_c8.c: Regenerated.
1796         * generated/product_i1.c: Regenerated.
1797         * generated/product_i16.c: Regenerated.
1798         * generated/product_i2.c: Regenerated.
1799         * generated/product_i4.c: Regenerated.
1800         * generated/product_i8.c: Regenerated.
1801         * generated/product_r10.c: Regenerated.
1802         * generated/product_r16.c: Regenerated.
1803         * generated/product_r4.c: Regenerated.
1804         * generated/product_r8.c: Regenerated.
1805         * generated/sum_c10.c: Regenerated.
1806         * generated/sum_c16.c: Regenerated.
1807         * generated/sum_c4.c: Regenerated.
1808         * generated/sum_c8.c: Regenerated.
1809         * generated/sum_i1.c: Regenerated.
1810         * generated/sum_i16.c: Regenerated.
1811         * generated/sum_i2.c: Regenerated.
1812         * generated/sum_i4.c: Regenerated.
1813         * generated/sum_i8.c: Regenerated.
1814         * generated/sum_r10.c: Regenerated.
1815         * generated/sum_r16.c: Regenerated.
1816         * generated/sum_r4.c: Regenerated.
1817         * generated/sum_r8.c: Regenerated.
1818
1819 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1820
1821         PR libfortran/35960
1822         * m4/reshape.m4:  Fix typo in last commit.
1823         * generated/reshape_i4.c:  Regererated.
1824         * generated/reshape_i8.c:  Regenerated.
1825         * generated/reshape_i16.c:  Regenerated.
1826         * generated/reshape_r4.c:  Regenerated.
1827         * generated/reshape_r8.c:  Regenerated.
1828         * generated/reshape_r10.c:  Regenerated.
1829         * generated/reshape_r16.c:  Regenerated.
1830         * generated/reshape_c4.c:  Regenerated.
1831         * generated/reshape_c8.c:  Regenerated.
1832         * generated/reshape_c10.c:  Regenerated.
1833         * generated/reshape_c16.c:  Regenerated.
1834
1835 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1836
1837         * intrinsics/time_1.h (__time_1): Remove unused variable.
1838
1839 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1840
1841         PR libfortran/35988
1842         * m4/matmul.m4:  Only issue a runtime error if extents are
1843         non-zero.
1844         * generated/matmul_i1.c:  Regenerated.
1845         * generated/matmul_i2.c:  Regenerated.
1846         * generated/matmul_i4.c:  Regenerated.
1847         * generated/matmul_i8.c:  Regenerated.
1848         * generated/matmul_i16.c:  Regenerated.
1849         * generated/matmul_r4.c:  Regenerated.
1850         * generated/matmul_r8.c:  Regenerated.
1851         * generated/matmul_r10.c:  Regenerated.
1852         * generated/matmul_r16.c:  Regenerated.
1853         * generated/matmul_c4.c:  Regenerated.
1854         * generated/matmul_c8.c:  Regenerated.
1855         * generated/matmul_c10.c:  Regenerated.
1856         * generated/matmul_c16.c:  Regenerated.
1857
1858 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1859
1860         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
1861         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
1862         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
1863         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
1864         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
1865         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
1866         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
1867         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
1868         Fix cache variable names.
1869         * configure, Makefile.in: Regenerate.
1870
1871 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1872
1873         PR fortran/35991
1874         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
1875
1876 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1877
1878         PR libfortran/35960
1879         * intrinsics/reshape_generic.c (reshape_internal): If the size
1880         of the resized array is zero, as determined by the SHAPE
1881         argument, return early.
1882         * m4/reshape.m4:  Likewise.
1883         * generated/reshape_i4.c:  Regererated.
1884         * generated/reshape_i8.c:  Regenerated.
1885         * generated/reshape_i16.c:  Regenerated.
1886         * generated/reshape_r4.c:  Regenerated.
1887         * generated/reshape_r8.c:  Regenerated.
1888         * generated/reshape_r10.c:  Regenerated.
1889         * generated/reshape_r16.c:  Regenerated.
1890         * generated/reshape_c4.c:  Regenerated.
1891         * generated/reshape_c8.c:  Regenerated.
1892         * generated/reshape_c10.c:  Regenerated.
1893         * generated/reshape_c16.c:  Regenerated.
1894
1895 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1896
1897         PR bootstrap/35457
1898         * aclocal.m4: Regenerate.
1899         * configure: Regenerate.
1900
1901 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1902
1903         PR libfortran/32972
1904         * intrinsics/spread_generic.c (spread):  Use spread_i2()
1905         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
1906
1907 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1908         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1909
1910         PR libfortran/32972
1911         PR libfortran/32512
1912         configure.ac:  Add test for uintptr_t.
1913         configure:  Regenerated.
1914         config.h.in:  Regenerated.
1915         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
1916         GFC_DTYPE_DERIVED_2:  New macro.
1917         GFC_DTYPE_DERIVED_4:  New macro.
1918         GFC_DTYPE_DERIVED_8:  New macro.
1919         GFC_DTYPE_DERIVED_16:  New macro.
1920         GFC_UNALIGNED_2:  New macro.
1921         GFC_UNALIGNED_4:  New macro.
1922         GFC_UNALIGNED_8:  New macro.
1923         GFC_UNALIGNED_16:  New macro.
1924         intptr_t:  Define if we don't have it.
1925         uintptr_t:  Likewise.
1926         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
1927         * intrinsics/signal.c (signal_sub):  Likewise.
1928         (signal_sub_int):  Likewise.
1929         (alarm_sub_int_i4):  Likewise.
1930         * intrinsics/spread_generic.c (spread):  Use the integer
1931         routines for handling derived types of sizes 1, 2, 4, 8 and 16
1932         if the alignment of all pointers is correct.
1933         (spread_scalar):  Likewise.
1934         * intrinsics/pack_generic.c (pack):  Likewise.
1935         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
1936         * intrinsics/unpack_generic.c (unpack1):  Likewise.
1937         (unpack0):  Likewise.
1938         * runtime/in_pack_generic.c (internal_pack):  Likewise.
1939         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1940
1941 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
1942
1943         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
1944         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
1945         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
1946         is used.
1947         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
1948         nml_read_obj call.  Use snprintf instead of sprintf when %s
1949         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
1950         of parse_err_msg array.  Append " for namelist variable " and
1951         nl->var_name to it.
1952         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
1953         sizeof nml_err_msg as extra argument to nml_get_obj_data.
1954
1955 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1956
1957         PR fortran/25829 28655
1958         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
1959         and flags.status. (st_open): Initialize flags.async.
1960         * io/list_read.c (read_charactor): Use delim_status instead of
1961         flags.delim.
1962         * io/read.c (read_x): Use pad_status instead of flags.pad.
1963         * io/inquire.c (inquire_via_unit): Add new checks.
1964         (inquire_via_filename): Likewise.
1965         * io/io.h (st_parameter_inquire): Add new flags.
1966         (st_parameter_dt): Likewise.
1967         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
1968         flags.async.
1969         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
1970         pad_status instead of flags.pad. (read_block): Likewise.
1971         (data_transfer_init): Set flags.async and add checks.
1972         * io/write.c (write_character): Use delim_status.
1973         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
1974         (namelist_write): Likewise.
1975
1976 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1977
1978         PR fortran/25829 28655
1979         * gfortran.map: Add new symbol, _gfortran_st_wait.
1980         * libgfortran.h (st_paramter_common): Add new I/O parameters.
1981         * open.c (st_option decimal_opt[], st_option encoding_opt[],
1982         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
1983         parameter option arrays. (edit_modes): Add checks for new parameters.
1984         (new_unit): Likewise. (st_open): Likewise.
1985         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
1986         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
1987         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
1988         * read.c (read_a): Use decimal status flag to allow comma in place of a
1989         decimal point. (read_f): Allow comma as acceptable character in float.
1990         According to decimal flag, substitute a period for a comma.
1991         (read_x): If decimal status flag is comma, disable the read_comma flag,
1992         not allowing comma as a delimiter, an extension otherwise.
1993         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
1994         unit_async): New enumerators. Add all new I/O parameters.
1995         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
1996         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
1997         (fd_sfree): Use new enumerator. (fd_read): Likewise.
1998         (fd_write): Likewise. (fd_close): Fix whitespace.
1999         (fd_open): Use new enumertors. (tempfile, regular_file,
2000         open_external): Fix whitespace. (output_stream, error_stream): Set
2001         method. (stream_offset): Fix whitespace.
2002         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
2003         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
2004         based on new decimal_status flag. (data_transfer_init): Initialize new
2005         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
2006         * format.c: (format_lex): Add format specifiers DP, DC, and D.
2007         (parse_format_list): Parse the new specifiers.
2008         * write.c (write_decimal): Use new sign enumerators to set the sign.
2009         (write_complex): Handle decimal comma and semi-colon separator.
2010         (nml_write_obj): Likewise.
2011         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
2012         sign enumerators. (output_float): Likewise. Use new decimal_status flag
2013         to set the decimal character to a point or a comma.
2014         
2015 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
2016
2017         PR libfortran/32972
2018         PR libfortran/32512
2019         * Makefile.am:  Add new variable, i_spread_c, containing
2020         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
2021         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
2022         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
2023         * Makefile.in:  Regenerated.
2024         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
2025         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
2026         spread_c4, spread_c8, spread_c10, spread_c16,
2027         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
2028         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
2029         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
2030         spread_scalar_c10 and spread_scalar_c16.
2031         Add macros to isolate both type and size information
2032         from array descriptors with a single mask operation.
2033         * intrinsics/spread_generic.c:  Add calls to specific
2034         spread functions.
2035         * m4/spread.m4:  New file.
2036         * generated/spread_i1.c:  New file.
2037         * generated/spread_i2.c:  New file.
2038         * generated/spread_i4.c:  New file.
2039         * generated/spread_i8.c:  New file.
2040         * generated/spread_i16.c:  New file.
2041         * generated/spread_r4.c:  New file.
2042         * generated/spread_r8.c:  New file.
2043         * generated/spread_r10.c:  New file.
2044         * generated/spread_r16.c:  New file.
2045         * generated/spread_c4.c:  New file.
2046         * generated/spread_c8.c:  New file.
2047         * generated/spread_c10.c:  New file.
2048         * generated/spread_c16.c:  New file.
2049
2050 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2051
2052         PR libfortran/35699
2053         * io/transfer.c (write_buf):  Don't pad the record, just return if the
2054         data is NULL.  (next_record_w): If there are bytes left in the record
2055         for unformatted direct I/O, pad out the record with zero bytes.
2056
2057 2008-03-28  Tobias Burnus  <burnus@net-b.de>
2058
2059         PR fortran/35721
2060         * intrinsics/associated.c (associated): Ignore different
2061         stride of pointer vs. target if only one element is referred.
2062
2063 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2064
2065         * io/unix.c (fd_close):  Do not close STDIN.
2066
2067 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
2068
2069         PR libfortran/32972
2070         * Makefile.am:  Add new variable, i_unpack_c, containing
2071         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
2072         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
2073         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
2074         and unpack_c16.c
2075         Add i_unpack_c to gfor_built_src.
2076         Add rule to generate i_unpack_c from m4/unpack.m4.
2077         * Makefile.in:  Regenerated.
2078         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
2079         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
2080         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
2081         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
2082         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
2083         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
2084         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
2085         unpack1 functions.
2086         (unpack0):  Add calls to specific unpack0 functions.
2087         * m4/unpack.m4:  New file.
2088         * generated/unpack_i1.c:  New file.
2089         * generated/unpack_i2.c:  New file.
2090         * generated/unpack_i4.c:  New file.
2091         * generated/unpack_i8.c:  New file.
2092         * generated/unpack_i16.c:  New file.
2093         * generated/unpack_r4.c:  New file.
2094         * generated/unpack_r8.c:  New file.
2095         * generated/unpack_r10.c:  New file.
2096         * generated/unpack_r16.c:  New file.
2097         * generated/unpack_c4.c:  New file.
2098         * generated/unpack_c8.c:  New file.
2099         * generated/unpack_c10.c:  New file.
2100         * generated/unpack_c16.c:  New file.
2101
2102 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2103
2104         PR libfortran/35632
2105         * io/transfer.c (data_transfer_init):  Fix whitespace.
2106         (next_record_w): Truncate the file only if the stream
2107         position is short of the file end.
2108
2109 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2110
2111         * intrinsics/pack_generic.c:  Fix typo.
2112
2113 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
2114
2115         * gfortran.map: Move erfc_scaled symbols to new symbol node
2116         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
2117
2118 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2119
2120         PR libfortran/32972
2121         * runtime/in_pack_generic.c (internal_pack):  Call correct
2122         function, pack_i16, for GFC_INTEGER_16.
2123
2124 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2125
2126         PR libfortran/32972
2127         * Makefile.am:  Add new variable, i_pack_c, containing
2128         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
2129         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
2130         pack_c8.c, pack_c10.c, pack_c16.c.
2131         Add m4/pack.m4 to m4_files.
2132         Add i_pack_c to gfor_built_src.
2133         Add rule to generate i_pack_c from m4/pack.m4.
2134         * Makefile.in:  Regenerated.
2135         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
2136         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
2137         pack_c10, pack_c16.
2138         * intrinsics/pack_generic.c:  Add calls to specific
2139         pack functions.
2140         * m4/pack.m4:  New file.
2141         * generated/pack_i1.c:  New file.
2142         * generated/pack_i2.c:  New file.
2143         * generated/pack_i4.c:  New file.
2144         * generated/pack_i8.c:  New file.
2145         * generated/pack_i16.c:  New file.
2146         * generated/pack_r4.c:  New file.
2147         * generated/pack_r8.c:  New file.
2148         * generated/pack_r10.c:  New file.
2149         * generated/pack_r16.c:  New file.
2150         * generated/pack_c4.c:  New file.
2151         * generated/pack_c8.c:  New file.
2152         * generated/pack_c10.c:  New file.
2153         * generated/pack_c16.c:  New file.
2154
2155 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2156
2157         PR libfortran/35627
2158         * io/list_read.c (free_line): Clear the line buffer enable flag and
2159         reset the index into line_buffer, aka item_count.
2160         (next_char): Cleanup whitespace.
2161         (read_logical): Use unget_char to assure that the first character of the
2162         bad logical is saved in case it is part of an object name. Remove the
2163         clearing of index and flag that is now in free_line.
2164         (read_real): Likewise.
2165
2166 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2167
2168         PR libfortran/32972
2169         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
2170         last commit.
2171
2172 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2173
2174         PR libfortran/32972
2175         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
2176         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
2177         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
2178         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
2179         in_unpack_r16.c.
2180         * Makefile.in: Regenerate.
2181         * libgfortran.h:  Add prototypes for internal_pack_1,
2182         internal_pack_2, internal_pack_16, internal_pack_r4,
2183         internal_pack_r8, internal_pack_r10, internal_pack_r16,
2184         internal_pack_c10 and internal_pack_c16.  Add prototypes for
2185         internal_unpack_1, internal_unpack_2, internal_unpack_16,
2186         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
2187         internal_unpack_r16, internal_unpack_c10 and
2188         internal_unpack_c16.
2189         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
2190         of hardwired sizes.
2191         Add calls to internal_pack_1, internal_pack_2,
2192         internal_pack_16, internal_pack_r4, internal_pack_r8,
2193         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
2194         internal_pack_c16.
2195         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
2196         instead of hardwired sizes.
2197         Add calls to internal_unpack_1, internal_unpack_2,
2198         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
2199         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
2200         and internal_unpack_c16.
2201         * generated/in_pack_r4.c:  New file.
2202         * generated/in_pack_i2.c:  New file.
2203         * generated/in_unpack_i1.c:  New file.
2204         * generated/in_pack_r10.c:  New file.
2205         * generated/in_unpack_r4.c:  New file.
2206         * generated/in_unpack_i2.c:  New file.
2207         * generated/in_unpack_r16.c:  New file.
2208         * generated/in_pack_r8.c:  New file.
2209         * generated/in_unpack_r10.c:  New file.
2210         * generated/in_unpack_r8.c:  New file.
2211         * generated/in_pack_r16.c:  New file.
2212         * generated/in_pack_i1.c:  New file.
2213
2214 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2215
2216         PR libfortran/35617
2217         * io/list_read.c (eat_separator): If next character after eatline is '!'
2218         then eatline again. 
2219
2220 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2221
2222         * aclocal.m4: Regenerate.
2223         * configure: Likewise.
2224         * Makefile.in: Likewise.
2225
2226 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2227
2228         PR libfortran/35524
2229         * intrinsics/erfc_scaled_inc.c: Only define the long double
2230         variant of erfc_scaled if expl is available.
2231
2232 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2233
2234         PR libfortran/32812
2235         * intrinsics/random.c (scramble_seed, unscramble_seed): New
2236         functions.
2237         (random_seed_i4): Scramble the seed the user gives us before
2238         storing it, and unscramble it when we return it back later.
2239
2240 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
2241
2242         PR libfortran/35293
2243         * io/unix.c (fd_truncate): Fold s->special_file case into
2244         success case of ftruncate/chsize call instead of the failure case.
2245         Make failure case actually return failure.  Properly update stream
2246         pointers on failure.  Call runtime_error for targets without
2247         neither ftruncate nor chsize where such a call would be needed.
2248
2249 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2250
2251         PR fortran/33197
2252         * intrinsics/erfc_scaled_inc.c: New file.
2253         * intrinsics/erfc_scaled.c: New file.
2254         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
2255         * Makefile.am: Add intrinsics/erfc_scaled.c.
2256         * config.h.in: Regenerate.
2257         * configure: Regenerate.
2258         * Makefile.in: Regenerate.
2259
2260 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2261
2262         PR libfortran/35355
2263         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
2264         for mingw.
2265
2266 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
2267
2268         PR libfortran/35063
2269         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
2270         instead of macro kludge.
2271         
2272 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2273
2274         PR fortran/29549
2275         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
2276         libgfortran.
2277         * Makefile.in: Regenerated.
2278
2279 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2280
2281         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
2282         * generated/all_l1.c: Regenerate.
2283         * generated/all_l2.c: Regenerate.
2284         * generated/all_l4.c: Regenerate.
2285         * generated/all_l8.c: Regenerate.
2286         * generated/all_l16.c: Regenerate.
2287         * generated/any_l1.c: Regenerate.
2288         * generated/any_l2.c: Regenerate.
2289         * generated/any_l4.c: Regenerate.
2290         * generated/any_l8.c: Regenerate.
2291         * generated/any_l16.c: Regenerate.
2292         * generated/count_1_l.c: Regenerate.
2293         * generated/count_2_l.c: Regenerate.
2294         * generated/count_4_l.c: Regenerate.
2295         * generated/count_8_l.c: Regenerate.
2296         * generated/count_16_l.c: Regenerate.
2297
2298 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2299
2300         PR libfortran/32841
2301         * acinclude.m4: Don't use HAVE_MATH_H.
2302         * configure: Regenerate.
2303
2304 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2305
2306         PR libfortran/35132
2307         * io/transfer.c (next_record_w): Truncate after the last record for
2308         STREAM I/O.
2309
2310         PR libfortran/34954
2311         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
2312
2313         PR libfortran/34974
2314         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
2315         is less than zero. (next_record_w): Use sseek to position the file to
2316         the max position reached.
2317
2318 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2319
2320         PR libfortran/35036
2321         * write_float.def (output_float):  Add error checks for zero digits
2322         after decimal point in E and D format specifiers.
2323         
2324 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2325
2326         PR libfortran/35063
2327         * io/unit.c (destroy_unit_mutex): New function that uses
2328         __gthread_mutex_destroy_function or pthread_mutex_destroy after
2329         unlocking and before free_mem for final closure of I/O unit.
2330         (delete_root): Use new function.
2331         (free_internal_unit): Likewise.
2332         (close_unit_1): Likewise.
2333
2334 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2335
2336         PR libfortran/35001
2337         * m4/shape.m4:  Return 0 for extents <= 0.
2338         * generated/shape_i4.c:  Regenerated.
2339         * generated/shape_i8.c:  Regenerated.
2340         * generated/shape_i16.c:  Regenerated.
2341
2342 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2343
2344         PR libfortran/34980
2345         * m4/shape.m4:  If return array is empty, return early.
2346         * generated/shape_i4.c:  Regenerated.
2347         * generated/shape_i8.c:  Regenerated.
2348         * generated/shape_i16.c:  Regenerated.
2349
2350 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2351
2352         PR libfofortran/34887
2353         * io/transfer.c (next_record_w): Always move to the farthest
2354         position when completing the record (also when we are
2355         processing a slash edit descriptor).
2356
2357 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2358
2359         PR libfortran/34876
2360         * io/transfer.c (write_buf): Handle case of zero sized array.
2361         (transfer_array): Set data pointer to NULL and size to zero.  Then
2362         make a data transfer and return.
2363         
2364 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2365
2366         * configure: Regenerate.
2367
2368 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2369
2370         PR libfortran/34795
2371         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
2372         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
2373         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
2374         FORAMATTED, and UNFORMATTED inquiries.
2375         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
2376         for files that are not opened. (inquire_direct): Same.
2377         (inquire_formatted): Same.
2378         
2379 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2380
2381         PR libfortran/34782
2382         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
2383         of the current max_pos or the newly calculated position.
2384
2385 2008-01-18  Tobias Burnus  <burnus@net-b.de>
2386
2387         * io/write.c (write_real): Increase default precision
2388         for REAL(16) by one.
2389
2390 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
2391
2392         PR libfortran/34669
2393         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
2394         to avoid piping the -fdump-parse-tree output to the assembler
2395         when configuring with -pipe.
2396         * mk-sik-inc.sh: Likewise.
2397         * mk-srk-inc.sh: Likewise.
2398
2399 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2400
2401         PR libfortran/34671
2402         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
2403         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
2404         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
2405         _gfortran_count_8_l Removed _gfortran_count_16_l16,
2406         _gfortran_count_16_l4, _gfortran_count_16_l8,
2407         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
2408         _gfortran_count_8_l16, _gfortran_count_8_l4 and
2409         _gfortran_count_8_l8.
2410         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
2411         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
2412         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
2413         generated/count_16_l4.c, generated/count_4_l8.c,
2414         generated/count_8_l8.c, generated/count_16_l8.c,
2415         generated/count_4_l16.c, generated/count_8_l16.c, and
2416         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
2417         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
2418         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
2419         any of the files generated from all.m4, any.m4 and count.m4.
2420         * Makefile.in:  Regenerated.
2421         * m4/ifunction_logical.m4:  New file.  Use
2422         GFC_LOGICAL_1 pointer for access to source arrays.
2423         * m4/any.m4:  Include ifunction_logical.m4 instead of
2424         ifunction.m4.  Don't check atype_name.
2425         * m4/all.m4:  Likewise.
2426         * m4/count.m4:  Likewise.
2427         * generated/any_l1.c:  New file.
2428         * generated/any_l2.c:  New file.
2429         * generated/all_l1.c:  New file.
2430         * generated/count_1_l.c:  New file.
2431         * generated/count_2_l.c:  New file.
2432         * generated/count_4_l.c:  New file.
2433         * generated/count_8_l.c:  New file.
2434         * generated/count_16_l.c:  New file.
2435         * generated/any_l4.c:  Regenerated.
2436         * generated/any_l8.c:  Regenerated.
2437         * generated/any_l16.c:  Regenerated.
2438         * generated/all_l4.c: Regenerated.
2439         * generated/all_l8.c: Regenerated.
2440         * generated/all_l16.c: Regenerated.
2441         * generated/count_4_l4.c:  Removed.
2442         * generated/count_4_l8.c:  Removed.
2443         * generated/count_4_l16.c:  Removed.
2444         * generated/count_8_l4.c:  Removed.
2445         * generated/count_8_l8.c:  Removed.
2446         * generated/count_8_l16.c:  Removed.
2447         * generated/count_16_l4.c:  Removed.
2448         * generated/count_16_l8.c:  Removed.
2449         * generated/count_16_l16.c:  Removed.
2450
2451 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2452
2453         PR libfortran/34746
2454         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
2455         in printf format for all bounds checking; cast all
2456         integer-like arguments to runtime_error() to long int.
2457         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2458         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2459         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2460         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2461         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2462         * generated/all_l16.c: Regenerated.
2463         * generated/all_l4.c: Regenerated.
2464         * generated/all_l8.c: Regenerated.
2465         * generated/any_l16.c: Regenerated.
2466         * generated/any_l4.c: Regenerated.
2467         * generated/any_l8.c: Regenerated.
2468         * generated/count_16_l16.c: Regenerated.
2469         * generated/count_16_l4.c: Regenerated.
2470         * generated/count_16_l8.c: Regenerated.
2471         * generated/count_4_l16.c: Regenerated.
2472         * generated/count_4_l4.c: Regenerated.
2473         * generated/count_4_l8.c: Regenerated.
2474         * generated/count_8_l16.c: Regenerated.
2475         * generated/count_8_l4.c: Regenerated.
2476         * generated/count_8_l8.c: Regenerated.
2477         * generated/maxloc0_16_i1.c: Regenerated.
2478         * generated/maxloc0_16_i16.c: Regenerated.
2479         * generated/maxloc0_16_i2.c: Regenerated.
2480         * generated/maxloc0_16_i4.c: Regenerated.
2481         * generated/maxloc0_16_i8.c: Regenerated.
2482         * generated/maxloc0_16_r10.c: Regenerated.
2483         * generated/maxloc0_16_r16.c: Regenerated.
2484         * generated/maxloc0_16_r4.c: Regenerated.
2485         * generated/maxloc0_16_r8.c: Regenerated.
2486         * generated/maxloc0_4_i1.c: Regenerated.
2487         * generated/maxloc0_4_i16.c: Regenerated.
2488         * generated/maxloc0_4_i2.c: Regenerated.
2489         * generated/maxloc0_4_i4.c: Regenerated.
2490         * generated/maxloc0_4_i8.c: Regenerated.
2491         * generated/maxloc0_4_r10.c: Regenerated.
2492         * generated/maxloc0_4_r16.c: Regenerated.
2493         * generated/maxloc0_4_r4.c: Regenerated.
2494         * generated/maxloc0_4_r8.c: Regenerated.
2495         * generated/maxloc0_8_i1.c: Regenerated.
2496         * generated/maxloc0_8_i16.c: Regenerated.
2497         * generated/maxloc0_8_i2.c: Regenerated.
2498         * generated/maxloc0_8_i4.c: Regenerated.
2499         * generated/maxloc0_8_i8.c: Regenerated.
2500         * generated/maxloc0_8_r10.c: Regenerated.
2501         * generated/maxloc0_8_r16.c: Regenerated.
2502         * generated/maxloc0_8_r4.c: Regenerated.
2503         * generated/maxloc0_8_r8.c: Regenerated.
2504         * generated/maxloc1_16_i1.c: Regenerated.
2505         * generated/maxloc1_16_i16.c: Regenerated.
2506         * generated/maxloc1_16_i2.c: Regenerated.
2507         * generated/maxloc1_16_i4.c: Regenerated.
2508         * generated/maxloc1_16_i8.c: Regenerated.
2509         * generated/maxloc1_16_r10.c: Regenerated.
2510         * generated/maxloc1_16_r16.c: Regenerated.
2511         * generated/maxloc1_16_r4.c: Regenerated.
2512         * generated/maxloc1_16_r8.c: Regenerated.
2513         * generated/maxloc1_4_i1.c: Regenerated.
2514         * generated/maxloc1_4_i16.c: Regenerated.
2515         * generated/maxloc1_4_i2.c: Regenerated.
2516         * generated/maxloc1_4_i4.c: Regenerated.
2517         * generated/maxloc1_4_i8.c: Regenerated.
2518         * generated/maxloc1_4_r10.c: Regenerated.
2519         * generated/maxloc1_4_r16.c: Regenerated.
2520         * generated/maxloc1_4_r4.c: Regenerated.
2521         * generated/maxloc1_4_r8.c: Regenerated.
2522         * generated/maxloc1_8_i1.c: Regenerated.
2523         * generated/maxloc1_8_i16.c: Regenerated.
2524         * generated/maxloc1_8_i2.c: Regenerated.
2525         * generated/maxloc1_8_i4.c: Regenerated.
2526         * generated/maxloc1_8_i8.c: Regenerated.
2527         * generated/maxloc1_8_r10.c: Regenerated.
2528         * generated/maxloc1_8_r16.c: Regenerated.
2529         * generated/maxloc1_8_r4.c: Regenerated.
2530         * generated/maxloc1_8_r8.c: Regenerated.
2531         * generated/maxval_i1.c: Regenerated.
2532         * generated/maxval_i16.c: Regenerated.
2533         * generated/maxval_i2.c: Regenerated.
2534         * generated/maxval_i4.c: Regenerated.
2535         * generated/maxval_i8.c: Regenerated.
2536         * generated/maxval_r10.c: Regenerated.
2537         * generated/maxval_r16.c: Regenerated.
2538         * generated/maxval_r4.c: Regenerated.
2539         * generated/maxval_r8.c: Regenerated.
2540         * generated/minloc0_16_i1.c: Regenerated.
2541         * generated/minloc0_16_i16.c: Regenerated.
2542         * generated/minloc0_16_i2.c: Regenerated.
2543         * generated/minloc0_16_i4.c: Regenerated.
2544         * generated/minloc0_16_i8.c: Regenerated.
2545         * generated/minloc0_16_r10.c: Regenerated.
2546         * generated/minloc0_16_r16.c: Regenerated.
2547         * generated/minloc0_16_r4.c: Regenerated.
2548         * generated/minloc0_16_r8.c: Regenerated.
2549         * generated/minloc0_4_i1.c: Regenerated.
2550         * generated/minloc0_4_i16.c: Regenerated.
2551         * generated/minloc0_4_i2.c: Regenerated.
2552         * generated/minloc0_4_i4.c: Regenerated.
2553         * generated/minloc0_4_i8.c: Regenerated.
2554         * generated/minloc0_4_r10.c: Regenerated.
2555         * generated/minloc0_4_r16.c: Regenerated.
2556         * generated/minloc0_4_r4.c: Regenerated.
2557         * generated/minloc0_4_r8.c: Regenerated.
2558         * generated/minloc0_8_i1.c: Regenerated.
2559         * generated/minloc0_8_i16.c: Regenerated.
2560         * generated/minloc0_8_i2.c: Regenerated.
2561         * generated/minloc0_8_i4.c: Regenerated.
2562         * generated/minloc0_8_i8.c: Regenerated.
2563         * generated/minloc0_8_r10.c: Regenerated.
2564         * generated/minloc0_8_r16.c: Regenerated.
2565         * generated/minloc0_8_r4.c: Regenerated.
2566         * generated/minloc0_8_r8.c: Regenerated.
2567         * generated/minloc1_16_i1.c: Regenerated.
2568         * generated/minloc1_16_i16.c: Regenerated.
2569         * generated/minloc1_16_i2.c: Regenerated.
2570         * generated/minloc1_16_i4.c: Regenerated.
2571         * generated/minloc1_16_i8.c: Regenerated.
2572         * generated/minloc1_16_r10.c: Regenerated.
2573         * generated/minloc1_16_r16.c: Regenerated.
2574         * generated/minloc1_16_r4.c: Regenerated.
2575         * generated/minloc1_16_r8.c: Regenerated.
2576         * generated/minloc1_4_i1.c: Regenerated.
2577         * generated/minloc1_4_i16.c: Regenerated.
2578         * generated/minloc1_4_i2.c: Regenerated.
2579         * generated/minloc1_4_i4.c: Regenerated.
2580         * generated/minloc1_4_i8.c: Regenerated.
2581         * generated/minloc1_4_r10.c: Regenerated.
2582         * generated/minloc1_4_r16.c: Regenerated.
2583         * generated/minloc1_4_r4.c: Regenerated.
2584         * generated/minloc1_4_r8.c: Regenerated.
2585         * generated/minloc1_8_i1.c: Regenerated.
2586         * generated/minloc1_8_i16.c: Regenerated.
2587         * generated/minloc1_8_i2.c: Regenerated.
2588         * generated/minloc1_8_i4.c: Regenerated.
2589         * generated/minloc1_8_i8.c: Regenerated.
2590         * generated/minloc1_8_r10.c: Regenerated.
2591         * generated/minloc1_8_r16.c: Regenerated.
2592         * generated/minloc1_8_r4.c: Regenerated.
2593         * generated/minloc1_8_r8.c: Regenerated.
2594         * generated/minval_i1.c: Regenerated.
2595         * generated/minval_i16.c: Regenerated.
2596         * generated/minval_i2.c: Regenerated.
2597         * generated/minval_i4.c: Regenerated.
2598         * generated/minval_i8.c: Regenerated.
2599         * generated/minval_r10.c: Regenerated.
2600         * generated/minval_r16.c: Regenerated.
2601         * generated/minval_r4.c: Regenerated.
2602         * generated/minval_r8.c: Regenerated.
2603         * generated/product_c10.c: Regenerated.
2604         * generated/product_c16.c: Regenerated.
2605         * generated/product_c4.c: Regenerated.
2606         * generated/product_c8.c: Regenerated.
2607         * generated/product_i1.c: Regenerated.
2608         * generated/product_i16.c: Regenerated.
2609         * generated/product_i2.c: Regenerated.
2610         * generated/product_i4.c: Regenerated.
2611         * generated/product_i8.c: Regenerated.
2612         * generated/product_r10.c: Regenerated.
2613         * generated/product_r16.c: Regenerated.
2614         * generated/product_r4.c: Regenerated.
2615         * generated/product_r8.c: Regenerated.
2616         * generated/sum_c10.c: Regenerated.
2617         * generated/sum_c16.c: Regenerated.
2618         * generated/sum_c4.c: Regenerated.
2619         * generated/sum_c8.c: Regenerated.
2620         * generated/sum_i1.c: Regenerated.
2621         * generated/sum_i16.c: Regenerated.
2622         * generated/sum_i2.c: Regenerated.
2623         * generated/sum_i4.c: Regenerated.
2624         * generated/sum_i8.c: Regenerated.
2625         * generated/sum_r10.c: Regenerated.
2626         * generated/sum_r16.c: Regenerated.
2627         * generated/sum_r4.c: Regenerated.
2628         * generated/sum_r8.c: Regenerated.
2629
2630 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2631
2632         PR libfortran/34670
2633         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
2634         (u_name):  New macro for the upper case name of the intrinsic.
2635         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
2636         bounds checking and rank check, depending on
2637         compile_options.bounds_check.
2638         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2639         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2640         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
2641         bounds checking and rank check, depending on
2642         compile_options.bounds_check.
2643         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2644         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2645         * generated/all_l16.c: Regenerated.
2646         * generated/all_l4.c: Regenerated.
2647         * generated/all_l8.c: Regenerated.
2648         * generated/any_l16.c: Regenerated.
2649         * generated/any_l4.c: Regenerated.
2650         * generated/any_l8.c: Regenerated.
2651         * generated/count_16_l16.c: Regenerated.
2652         * generated/count_16_l4.c: Regenerated.
2653         * generated/count_16_l8.c: Regenerated.
2654         * generated/count_4_l16.c: Regenerated.
2655         * generated/count_4_l4.c: Regenerated.
2656         * generated/count_4_l8.c: Regenerated.
2657         * generated/count_8_l16.c: Regenerated.
2658         * generated/count_8_l4.c: Regenerated.
2659         * generated/count_8_l8.c: Regenerated.
2660         * generated/maxloc0_16_i1.c: Regenerated.
2661         * generated/maxloc0_16_i16.c: Regenerated.
2662         * generated/maxloc0_16_i2.c: Regenerated.
2663         * generated/maxloc0_16_i4.c: Regenerated.
2664         * generated/maxloc0_16_i8.c: Regenerated.
2665         * generated/maxloc0_16_r10.c: Regenerated.
2666         * generated/maxloc0_16_r16.c: Regenerated.
2667         * generated/maxloc0_16_r4.c: Regenerated.
2668         * generated/maxloc0_16_r8.c: Regenerated.
2669         * generated/maxloc0_4_i1.c: Regenerated.
2670         * generated/maxloc0_4_i16.c: Regenerated.
2671         * generated/maxloc0_4_i2.c: Regenerated.
2672         * generated/maxloc0_4_i4.c: Regenerated.
2673         * generated/maxloc0_4_i8.c: Regenerated.
2674         * generated/maxloc0_4_r10.c: Regenerated.
2675         * generated/maxloc0_4_r16.c: Regenerated.
2676         * generated/maxloc0_4_r4.c: Regenerated.
2677         * generated/maxloc0_4_r8.c: Regenerated.
2678         * generated/maxloc0_8_i1.c: Regenerated.
2679         * generated/maxloc0_8_i16.c: Regenerated.
2680         * generated/maxloc0_8_i2.c: Regenerated.
2681         * generated/maxloc0_8_i4.c: Regenerated.
2682         * generated/maxloc0_8_i8.c: Regenerated.
2683         * generated/maxloc0_8_r10.c: Regenerated.
2684         * generated/maxloc0_8_r16.c: Regenerated.
2685         * generated/maxloc0_8_r4.c: Regenerated.
2686         * generated/maxloc0_8_r8.c: Regenerated.
2687         * generated/maxloc1_16_i1.c: Regenerated.
2688         * generated/maxloc1_16_i16.c: Regenerated.
2689         * generated/maxloc1_16_i2.c: Regenerated.
2690         * generated/maxloc1_16_i4.c: Regenerated.
2691         * generated/maxloc1_16_i8.c: Regenerated.
2692         * generated/maxloc1_16_r10.c: Regenerated.
2693         * generated/maxloc1_16_r16.c: Regenerated.
2694         * generated/maxloc1_16_r4.c: Regenerated.
2695         * generated/maxloc1_16_r8.c: Regenerated.
2696         * generated/maxloc1_4_i1.c: Regenerated.
2697         * generated/maxloc1_4_i16.c: Regenerated.
2698         * generated/maxloc1_4_i2.c: Regenerated.
2699         * generated/maxloc1_4_i4.c: Regenerated.
2700         * generated/maxloc1_4_i8.c: Regenerated.
2701         * generated/maxloc1_4_r10.c: Regenerated.
2702         * generated/maxloc1_4_r16.c: Regenerated.
2703         * generated/maxloc1_4_r4.c: Regenerated.
2704         * generated/maxloc1_4_r8.c: Regenerated.
2705         * generated/maxloc1_8_i1.c: Regenerated.
2706         * generated/maxloc1_8_i16.c: Regenerated.
2707         * generated/maxloc1_8_i2.c: Regenerated.
2708         * generated/maxloc1_8_i4.c: Regenerated.
2709         * generated/maxloc1_8_i8.c: Regenerated.
2710         * generated/maxloc1_8_r10.c: Regenerated.
2711         * generated/maxloc1_8_r16.c: Regenerated.
2712         * generated/maxloc1_8_r4.c: Regenerated.
2713         * generated/maxloc1_8_r8.c: Regenerated.
2714         * generated/maxval_i1.c: Regenerated.
2715         * generated/maxval_i16.c: Regenerated.
2716         * generated/maxval_i2.c: Regenerated.
2717         * generated/maxval_i4.c: Regenerated.
2718         * generated/maxval_i8.c: Regenerated.
2719         * generated/maxval_r10.c: Regenerated.
2720         * generated/maxval_r16.c: Regenerated.
2721         * generated/maxval_r4.c: Regenerated.
2722         * generated/maxval_r8.c: Regenerated.
2723         * generated/minloc0_16_i1.c: Regenerated.
2724         * generated/minloc0_16_i16.c: Regenerated.
2725         * generated/minloc0_16_i2.c: Regenerated.
2726         * generated/minloc0_16_i4.c: Regenerated.
2727         * generated/minloc0_16_i8.c: Regenerated.
2728         * generated/minloc0_16_r10.c: Regenerated.
2729         * generated/minloc0_16_r16.c: Regenerated.
2730         * generated/minloc0_16_r4.c: Regenerated.
2731         * generated/minloc0_16_r8.c: Regenerated.
2732         * generated/minloc0_4_i1.c: Regenerated.
2733         * generated/minloc0_4_i16.c: Regenerated.
2734         * generated/minloc0_4_i2.c: Regenerated.
2735         * generated/minloc0_4_i4.c: Regenerated.
2736         * generated/minloc0_4_i8.c: Regenerated.
2737         * generated/minloc0_4_r10.c: Regenerated.
2738         * generated/minloc0_4_r16.c: Regenerated.
2739         * generated/minloc0_4_r4.c: Regenerated.
2740         * generated/minloc0_4_r8.c: Regenerated.
2741         * generated/minloc0_8_i1.c: Regenerated.
2742         * generated/minloc0_8_i16.c: Regenerated.
2743         * generated/minloc0_8_i2.c: Regenerated.
2744         * generated/minloc0_8_i4.c: Regenerated.
2745         * generated/minloc0_8_i8.c: Regenerated.
2746         * generated/minloc0_8_r10.c: Regenerated.
2747         * generated/minloc0_8_r16.c: Regenerated.
2748         * generated/minloc0_8_r4.c: Regenerated.
2749         * generated/minloc0_8_r8.c: Regenerated.
2750         * generated/minloc1_16_i1.c: Regenerated.
2751         * generated/minloc1_16_i16.c: Regenerated.
2752         * generated/minloc1_16_i2.c: Regenerated.
2753         * generated/minloc1_16_i4.c: Regenerated.
2754         * generated/minloc1_16_i8.c: Regenerated.
2755         * generated/minloc1_16_r10.c: Regenerated.
2756         * generated/minloc1_16_r16.c: Regenerated.
2757         * generated/minloc1_16_r4.c: Regenerated.
2758         * generated/minloc1_16_r8.c: Regenerated.
2759         * generated/minloc1_4_i1.c: Regenerated.
2760         * generated/minloc1_4_i16.c: Regenerated.
2761         * generated/minloc1_4_i2.c: Regenerated.
2762         * generated/minloc1_4_i4.c: Regenerated.
2763         * generated/minloc1_4_i8.c: Regenerated.
2764         * generated/minloc1_4_r10.c: Regenerated.
2765         * generated/minloc1_4_r16.c: Regenerated.
2766         * generated/minloc1_4_r4.c: Regenerated.
2767         * generated/minloc1_4_r8.c: Regenerated.
2768         * generated/minloc1_8_i1.c: Regenerated.
2769         * generated/minloc1_8_i16.c: Regenerated.
2770         * generated/minloc1_8_i2.c: Regenerated.
2771         * generated/minloc1_8_i4.c: Regenerated.
2772         * generated/minloc1_8_i8.c: Regenerated.
2773         * generated/minloc1_8_r10.c: Regenerated.
2774         * generated/minloc1_8_r16.c: Regenerated.
2775         * generated/minloc1_8_r4.c: Regenerated.
2776         * generated/minloc1_8_r8.c: Regenerated.
2777         * generated/minval_i1.c: Regenerated.
2778         * generated/minval_i16.c: Regenerated.
2779         * generated/minval_i2.c: Regenerated.
2780         * generated/minval_i4.c: Regenerated.
2781         * generated/minval_i8.c: Regenerated.
2782         * generated/minval_r10.c: Regenerated.
2783         * generated/minval_r16.c: Regenerated.
2784         * generated/minval_r4.c: Regenerated.
2785         * generated/minval_r8.c: Regenerated.
2786         * generated/product_c10.c: Regenerated.
2787         * generated/product_c16.c: Regenerated.
2788         * generated/product_c4.c: Regenerated.
2789         * generated/product_c8.c: Regenerated.
2790         * generated/product_i1.c: Regenerated.
2791         * generated/product_i16.c: Regenerated.
2792         * generated/product_i2.c: Regenerated.
2793         * generated/product_i4.c: Regenerated.
2794         * generated/product_i8.c: Regenerated.
2795         * generated/product_r10.c: Regenerated.
2796         * generated/product_r16.c: Regenerated.
2797         * generated/product_r4.c: Regenerated.
2798         * generated/product_r8.c: Regenerated.
2799         * generated/sum_c10.c: Regenerated.
2800         * generated/sum_c16.c: Regenerated.
2801         * generated/sum_c4.c: Regenerated.
2802         * generated/sum_c8.c: Regenerated.
2803         * generated/sum_i1.c: Regenerated.
2804         * generated/sum_i16.c: Regenerated.
2805         * generated/sum_i2.c: Regenerated.
2806         * generated/sum_i4.c: Regenerated.
2807         * generated/sum_i8.c: Regenerated.
2808         * generated/sum_r10.c: Regenerated.
2809         * generated/sum_r16.c: Regenerated.
2810         * generated/sum_r4.c: Regenerated.
2811         * generated/sum_r8.c: Regenerated.
2812
2813 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2814
2815         PR libfortran/34676
2816         * io/list_read.c (next_char): Only save the EOF condition for later if
2817         advance="no".
2818
2819 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2820
2821         PR libfortran/34565
2822         * io/io.h:  Adjust protoypes for open_internal(),
2823         next_array_record() and init_loop_spec().
2824         * io/list_read.c (next_char):  Use argument "finished"
2825         of next_array_record to check for end on internal file.
2826         * io/unit.c:  Calculate the offset for an array
2827         internal file and supply this informatin to open_internal().
2828         * io/unix.c (open_internal):  Set the offset for the internal
2829         file on open.
2830         * io/transfer.c (init_loop_spec):  Calculate the starting
2831         record in case of negative strides.  Return size of 0 for
2832         an empty array.
2833         (next_array_record):  Use an extra flag to signal that the
2834         array is finished.
2835         (next_record_r):  Use the new flag to next_array_record().
2836         (next_record_w):  Likewise.