OSDN Git Service

b874dc57819e08e865531745d1f35ca752c73881
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
2
3         * intrinsics/ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
4         * intrinsics/fget.c (fgetc, fputs): Likewise.
5         * intrinsics/tty.c (ttynam): Likewise.
6
7 2005-11-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8
9         PR libgfortran/25109
10         * io/unit.c (init_units): Set default flag to BLANK_NULL per
11         requirement of F95 standard.  Set PAD_YES for stdin.
12
13 2005-11-27  David Edelsohn  <edelsohn@gnu.org>
14
15         * intrinsics/random.c: Include config.h
16         * io/size_from_kind.c: Include config.h and libgfortran.h
17         * io/io.h: Revert 2005-11-21 change.
18
19 2005-11-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
20
21         * io/write.c (namelist_write): Correct type in previous
22         commit.
23
24 2005-11-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
25
26         PR libfortran/24919
27         * io/list_read.c (eat_separator, finish_separator,
28         read_character): Handle CRLF separators correctly during reads.
29         (nml_query): Use the HAVE_CRLF macro to print adequate newlines.
30         * io/io.h (st_parameter_dt): Add comment about the possible
31         values for sf_seen_eor.
32         * io/unix.c (tempfile, regular_file): HAVE_CRLF doesn't imply
33         that O_BINARY is defined, so we add that condition.
34         (stream_at_bof): Fix typo in comment.
35         * io/transfer.c (read_sf): Handle correctly CRLF, setting
36         sf_seen_eor value to 2 instead of 1.
37         (formatted_transfer_scalar): Use the sf_seen_eor value to
38         handle CRLF the right way.
39         * io/write.c (nml_write_obj, namelist_write): Use CRLF as newline
40         when HAVE_CRLF is defined.
41
42 2005-11-26  Richard Henderson  <rth@redhat.com>
43
44         * io/list_read.c (nml_parse_qualifier): Use ssize_t instead of int
45         in dtp->u.p.value.
46
47 2005-11-26  Janne Blomqvist  <jb@gcc.gnu.org>
48
49         PR libgfortran/24945
50         * io/open.c (edit_modes): Check for STATUS_UNKNOWN flag.
51         
52 2005-11-25  Richard Henderson  <rth@redhat.com>
53
54         * io/list_read.c (nml_parse_qualifier): Use memcpy to extract
55         values from dtp->u.p.value.
56         * io/io.h (struct st_parameter_dt): Change reversion_flag, first_item,
57         seen_dollar, sf_seen_eor, eor_condition, no_leading_blank, char_flag,
58         input_complete, at_eol, comma_flag, namelist_mode, nml_read_error to
59         single-bit fields.  Move value to where it'll be at least pointer
60         aligned.
61
62 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
63
64         * io/open.c (new_unit): Use the right unit number when checking
65         for stdin, stdout, stderr.
66
67 2005-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
68
69         PR libgfortran/24794
70         * io/list_read.c (read_character): Add auto completion on short
71         namelist reads.
72
73 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
74
75         * io/io.h (_LARGE_FILES): Undefine for AIX.
76         (_LARGE_FILE_API): Define for AIX.
77
78 2005-11-21  Jakub Jelinek  <jakub@redhat.com>
79
80         PR fortran/24774
81         PR fortran/14943
82         PR fortran/21647
83         * Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths,
84         add -D_GNU_SOURCE.
85         * Makefile.in: Regenerated.
86         * acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD,
87         LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros.
88         * configure.ac: Add them.
89         * configure: Rebuilt.
90         * config.h.in: Rebuilt.
91         * libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1.
92         * libgfortran.h (library_start, show_locus, internal_error,
93         generate_error, find_option): Add st_parameter_common * argument.
94         (library_end): Change into a dummy macro.
95         * io/io.h: Include gthr.h.
96         (SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK.
97         (CHARACTER): Remove define.
98         (st_parameter, global_t): Remove typedef.
99         (ioparm, g, ionml, current_unit): Remove variables.
100         (init_error_stream): Remove prototype.
101         (CHARACTER1, CHARACTER2): Define.
102         (st_parameter_common, st_parameter_open, st_parameter_close,
103         st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New
104         typedefs.
105         (IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR,
106         IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END,
107         IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK,
108         IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS,
109         IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK,
110         IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION,
111         IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS,
112         IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED,
113         IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED,
114         IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT,
115         IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS,
116         IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK,
117         IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION,
118         IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD,
119         IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL,
120         IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED,
121         IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ,
122         IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE,
123         IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE,
124         IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH,
125         IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE,
126         IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME,
127         IOPARM_DT_IONML_SET): Define.
128         (gfc_unit): Add lock, waiting and close fields.  Change file
129         from flexible array member into pointer to char.
130         (open_external): Add st_parameter_open * argument.
131         (find_file, file_exists): Add file and file_len arguments.
132         (flush_all_units): New prototype.
133         (max_offset, unit_root, unit_lock): New variable.
134         (is_internal_unit, is_array_io, next_array_record,
135         parse_format, next_format, unget_format, format_error,
136         read_block, write_block, next_record, convert_real,
137         read_a, read_f, read_l, read_x, read_radix, read_decimal,
138         list_formatted_read, finish_list_read, namelist_read,
139         namelist_write, write_a, write_b, write_d, write_e, write_en,
140         write_es, write_f, write_i, write_l, write_o, write_x, write_z,
141         list_formatted_write, get_unit): Add st_parameter_dt * argument.
142         (insert_unit): Remove prototype.
143         (find_or_create_unit, unlock_unit): New prototype.
144         (new_unit): Return gfc_unit *.  Add st_parameter_open *
145         and gfc_unit * arguments.
146         (free_fnodes): Remove prototype.
147         (free_format_data): New prototype.
148         (scratch): Remove.
149         (init_at_eol): Remove prototype.
150         (free_ionml): New prototype.
151         (inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked):
152         New inline functions.
153         * io/unit.c (max_offset, unit_root, unit_lock): New variables.
154         (insert): Adjust os_error caller.
155         (insert_unit): Made static.  Allocate memory here, initialize
156         lock and after inserting it return it, locked.
157         (delete_unit): Adjust for deletion of g.
158         (find_unit_1): New function.
159         (find_unit): Use it.
160         (find_or_create_unit): New function.
161         (get_unit): Add dtp argument, change meaning of the int argument
162         as creation request flag.  Adjust for different st_* calling
163         conventions, lock internal unit's lock before returning it
164         and removal of g.  Call find_unit_1 instead of find_unit.
165         (is_internal_unit, is_array_io): Add dtp argument, adjust for
166         removal of most of global variables.
167         (init_units): Initialize unit_lock.  Adjust insert_unit callers
168         and adjust for g removal.
169         (close_unit_1): New function.
170         (close_unit): Use it.
171         (unlock_unit): New function.
172         (close_units): Lock unit_lock, use close_unit_1 rather than
173         close_unit.
174         * io/close.c (st_close): Add clp argument.  Adjust for new
175         st_* calling conventions and internal function API changes.
176         * io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush):
177         Add fpp argument.  Adjust for new st_* calling conventions and
178         internal function API changes.
179         (formatted_backspace, unformatted_backspace): Likewise.  Add
180         u argument.
181         * io/open.c (edit_modes, st_open): Add opp argument.  Adjust for
182         new st_* calling conventions and internal function API changes.
183         (already_open): Likewise.  If not HAVE_UNLINK_OPEN_FILE, unlink
184         scratch file.  Instead of calling close_unit just call sclose,
185         free u->file if any and clear a few u fields before calling
186         new_unit.
187         (new_unit): Return gfc_unit *.  Add opp and u arguments.
188         Adjust for new st_* calling conventions and internal function
189         API changes.  Don't allocate unit here, rather than work with
190         already created unit u already locked on entry.  In case
191         of failure, close_unit it.
192         * io/unix.c: Include unix.h.
193         (BUFFER_SIZE, unix_stream): Moved to unix.h.
194         (unit_to_fd): Add unlock_unit call.
195         (tempfile): Add opp argument, use its fields rather than ioparm.
196         (regular_file): Likewise.
197         (open_external): Likewise.  Only unlink file if fd >= 0.
198         (init_error_stream): Add error argument, set structure it points
199         to rather than filling static variable and returning its address.
200         (FIND_FILE0_DECL, FIND_FILE0_ARGS): Define.
201         (find_file0): Use them.  Don't crash if u->s == NULL.
202         (find_file): Add file and file_len arguments, use them instead
203         of ioparm.  Add locking.  Pass either an array of 2 struct stat
204         or file and file_len pair to find_file0.
205         (flush_all_units_1, flush_all_units): New functions.
206         (file_exists): Add file and file_len arguments, use them instead
207         of ioparm.
208         * io/unix.h: New file.
209         * io/lock.c (ioparm, g, ionml): Remove variables.
210         (library_start): Add cmp argument, adjust for new st_* calling
211         conventions.
212         (library_end): Remove.
213         (free_ionml): New function.
214         * io/inquire.c (inquire_via_unit, inquire_via_filename,
215         st_inquire): Add iqp argument, adjust for new st_* calling
216         conventions and internal function API changes.
217         * io/format.c (FARRAY_SIZE): Decrease to 64.
218         (fnode_array, format_data): New typedefs.
219         (avail, array, format_string, string, error, saved_token, value,
220         format_string_len, reversion_ok, saved_format): Remove variables.
221         (colon_node): Add const.
222         (free_fnode, free_fnodes): Remove.
223         (free_format_data): New function.
224         (next_char, unget_char, get_fnode, format_lex, parse_format_list,
225         format_error, parse_format, revert, unget_format, next_test): Add
226         fmt or dtp arguments, pass it all around, adjust for internal
227         function API changes and adjust for removal of global variables.
228         (next_format): Likewise.  Constify return type.
229         (next_format0): Constify return type.
230         * io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos,
231         skips, pending_spaces, scratch, line_buffer, advance_status,
232         transfer): Remove variables.
233         (transfer_integer, transfer_real, transfer_logical,
234         transfer_character, transfer_complex, transfer_array, current_mode,
235         read_sf, read_block, read_block_direct, write_block,
236         write_block_direct, unformatted_read, unformatted_write,
237         type_name, write_constant_string, require_type,
238         formatted_transfer_scalar, us_read, us_write, pre_position,
239         data_transfer_init, next_record_r, next_record_w, next_record,
240         finalize_transfer, iolength_transfer, iolength_transfer_init,
241         st_iolength, st_iolength_done, st_read, st_read_done, st_write,
242         st_write_done, st_set_nml_var, st_set_nml_var_dim,
243         next_array_record): Add dtp argument, pass it all around, adjust for
244         internal function API changes and removal of global variables.
245         * io/list_read.c (repeat_count, saved_length, saved_used,
246         input_complete, at_eol, comma_flag, last_char, saved_string,
247         saved_type, namelist_mode, nml_read_error, value, parse_err_msg,
248         nml_err_msg, prev_nl): Remove variables.
249         (push_char, free_saved, next_char, unget_char, eat_spaces,
250         eat_separator, finish_separator, nml_bad_return, convert_integer,
251         parse_repeat, read_logical, read_integer, read_character,
252         parse_real, read_complex, read_real, check_type,
253         list_formatted_read_scalar, list_formatted_read, finish_list_read,
254         find_nml_node, nml_untouch_nodes, nml_match_name, nml_query,
255         namelist_read): Add dtp argument, pass it all around, adjust for
256         internal function API changes and removal of global variables.
257         (nml_parse_qualifier): Likewise.  Add parse_err_msg argument.
258         (nml_read_obj): Likewise.  Add pprev_nl, nml_err_msg, clow and
259         chigh arguments.
260         (nml_get_obj_data): Likewise.  Add pprev_nl and nml_err_msg
261         arguments.
262         (init_at_eol): Removed.
263         * io/read.c (convert_real, read_l, read_a, next_char, read_decimal,
264         read_radix, read_f, read_x): Add dtp argument, pass it all around,
265         adjust for internal function API changes and removal of global
266         variables.
267         (set_integer): Adjust internal_error caller.
268         * io/write.c (no_leading_blank, nml_delim): Remove variables.
269         (write_a, calculate_sign, calculate_G_format, output_float,
270         write_l, write_float, write_int, write_decimal, write_i, write_b,
271         write_o, write_z, write_d, write_e, write_f, write_en, write_es,
272         write_x, write_char, write_logical, write_integer, write_character,
273         write_real, write_complex, write_separator,
274         list_formatted_write_scalar, list_formatted_write, nml_write_obj,
275         namelist_write): Add dtp argument, pass it all around, adjust for
276         internal function API changes and removal of global variables.
277         (extract_int, extract_uint, extract_real): Adjust internal_error
278         callers.
279         * runtime/fpu.c (_GNU_SOURCE): Don't define here.
280         * runtime/error.c: Include ../io/unix.h.
281         (filename, line): Remove variables.
282         (st_printf): Pass address of a local variable to init_error_stream.
283         (show_locus): Add cmp argument.  Use fields it points to rather than
284         filename and line variables.
285         (os_error, runtime_error): Remove show_locus calls.
286         (internal_error): Add cmp argument.  Pass it down to show_locus.
287         (generate_error): Likewise.  Use flags bitmask instead of non-NULL
288         check for iostat and iomsg parameter presence, adjust for st_*
289         calling convention changes.
290         * runtime/stop.c (stop_numeric, stop_string): Remove show_locus
291         calls.
292         * runtime/pause.c (pause_numeric, pause_string): Likewise.
293         * runtime/string.c: Include ../io/io.h.
294         (find_option): Add cmp argument.  Pass it down to generate_error.
295         * intrinsics/flush.c (recursive_flush): Remove.
296         (flush_i4, flush_i8): Use flush_all_units.  Add unlock_unit
297         call.
298         * intrinsics/rand.c: Include ../io/io.h.
299         (rand_seed_lock): New variable.
300         (srand, irand): Add locking.
301         (init): New constructor function.
302         * intrinsics/random.c: Include ../io/io.h.
303         (random_lock): New variable.
304         (random_r4, random_r8, arandom_r4, arandom_r8): Add locking.
305         (random_seed): Likewise.  open failed if fd < 0.  Set i correctly.
306         (init): New constructor function.
307         * intrinsics/system_clock.c (tp0, t0): Remove.
308         (system_clock_4, system_clock_8): Don't subtract tp0/t0 from current
309         time, use just integer arithmetics.
310         * intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add
311         unlock_unit calls.
312
313 2005-11-20  Richard Henderson  <rth@redhat.com>
314
315         * Makefile.am: Revert 2005-11-14 change.  Enable -free-vectorize
316         via gmake per-target variables.
317         * Makefile.in, aclocal.m4: Regenerate.
318
319 2005-11-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
320
321         * configure.ac: Add "-I ." to the AM_FCFLAGS.
322         * configure: Regenerate.
323
324 2005-11-18  Hans-Peter Nilsson  <hp@axis.com>
325
326         * config/fpu-glibc.h (set_fpu): Only call fedisableexcept for
327         nonzero FE_ALL_EXCEPT.
328
329 2005-11-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
330
331         PR fortran/24892
332         * io/io.h (unit_access): Add ACCESS_APPEND.
333         * io/open.c (access_opt): Add APPEND value for ACCESS keyword.
334         (st_open): Use that new value to set the POSITION accordingly.
335
336 2005-11-14  Janne Blomqvist  <jb@gcc.gnu.org>
337
338         PR fortran/21468
339         * Makefile.am: Add -ftree-vectorize for compiling matmul.
340         * m4/matmul.m4: Add const and restrict to type declarations as
341         appropriate.
342         * m4/matmull.m4: Likewise.
343         * Makefile.in: Regenerated.
344         * generated/matmul_*.c: Likewise.
345         
346 2005-11-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
347
348         * intrinsics/fget.c: New file.
349         * intrinsics/ftell.c: New file.
350         * io/unix.c (stream_offset): New function.
351         * io/io.h: Add prototype for stream_offset.
352         * Makefile.am: Add intrinsics/fget.c and intrinsics/ftell.c.
353         * Makefile.in: Regenerate.
354
355 2005-11-12  Steven G. Kargl  <kargls@comcast.net>
356
357         PR libgfortran/24787
358         *  intrinsics/string_intrinsics.c (string_scan): Off by one; Fix typos
359         in nearby comment.
360
361 2005-11-10  Andreas Jaeger  <aj@suse.de>
362
363         * libgfortran.h: Add proper defines where needed.
364
365 2005-11-10  Andreas Jaeger  <aj@suse.de>
366
367         * libgfortran.h: Add missing prototypes for internal_pack
368         functions.
369
370 2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>
371
372         PR fortran/24174
373         PR fortran/24305
374         * io/io.h: Add argument to prototypes, add prototypes for
375         size_from_*_kind functions.
376         * io/list_read.c (read_complex): Add size argument, use
377         it.
378         (list_formatted_read): Add size argument, cleanup.
379         (list_formatted_read_scalar): Add size argument.
380         (nml_read_obj): Fix for padding.
381         * io/transfer.c: Add argument to transfer function pointer.
382         (unformatted_read): Add size argument.
383         (unformatted_write): Likewise.
384         (formatted_transfer_scalar): Fix for padding with complex(10).
385         (formatted_transfer): Add size argument, cleanup.
386         (transfer_integer): Add size argument to transfer call.
387         (transfer_real): Likewise.
388         (transfer_logical): Likewise.
389         (transfer_character): Likewise.
390         (transfer_complex): Likewise.
391         (transfer_array): New kind argument, use it.
392         (data_transfer_init): Add size argument to formatted_transfer
393         call.
394         (iolength_transfer): Add size argument, cleanup.
395         * io/write.c (write_complex): Add size argument, fix for padding
396         with complex(10).
397         (list_formatted_write): Add size argument, cleanup.
398         (list_formatted_write_scalar): Add size argument, use it.
399         (nml_write_obj): Fix for size vs. kind issue.
400         * io/size_from_kind.c: New file.
401         * Makefile.am: Add io/size_from_kind.c.
402         * configure: Regenerate.
403         * Makefile.in: Regenerate.
404
405 2005-11-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
406
407         * intrinsics/ctime.c: New file.
408         * configure.ac: Add check for ctime.
409         * Makefile.am: Add ctime.c
410         * configure: Regenerate.
411         * config.h.in: Regenerate.
412         * Makefile.in: Regenerate.
413
414 2005-11-05  Richard Guenther  <rguenther@suse.de>
415
416         * configure.ac: Use AM_FCFLAGS for extra flags, not FCFLAGS.
417         * configure: Regenerate.
418
419 2005-11-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
420
421         * intrinsics/tty.c (ttynam): New function.
422
423 2005-11-04  Steven G. Kargl <kargls@comcast.net>
424
425         PR fortran/24636
426         * runtime/stop.c (stop_numeric): Use stop_code = -1.
427
428 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
429
430         PR libfortran/22298
431         * runtime/main.c (stupid_function_name_for_static_linking): New
432         function.
433         * runtime/error.c (internal_error): Call
434         stupid_function_name_for_static_linking.
435         * libgfortran.h: Add prototype for
436         stupid_function_name_for_static_linking.
437
438 2005-11-01  Paul Thomas  <pault@gcc.gnu.org>
439
440         PR fortran/14994
441         * libgfortran/intrinsics/date_and_time.c: Add interface to
442         the functions date_and_time for the intrinsic function secnds.
443
444 2005-10-31  Jerry DeLisle  <jvdelisle@verizon.net>
445
446         PR libgfortran/24584
447         * io/list_read.c (free_saved): Set saved_used to zero.
448
449 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
450
451         PR libfortran/20179
452         * io/unix.c (flush_if_preconnected): New function.
453         * io/io.h: Add prototype for flush_if_preconnected.
454         * io/transfer.c (data_transfer_init): Use flush_if_preconnected
455         to workaround buggy mixed C-Fortran code.
456
457 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
458
459         * Makefile.am: Add intrinsics/malloc.c file.
460         * Makefile.in: Regenerate.
461         * intrinsics/malloc.c: New file, with implementations for free
462         and malloc library functions.
463
464 2005-10-29  Mike Stump  <mrs@apple.com>
465
466         * Makefile.am (kinds.h): Remove target, if command fails.
467         (selected_int_kind.inc): Likewise.
468         (selected_real_kind.inc): Likewise.
469         * Makefile.in: Regenerate.
470
471 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
472
473
474         * Makefile.am (intrinsics): Add signal.c.
475         * Makefile.in: Regenerate.
476         * configure.ac: Checks for signal and alarm.
477         * config.h.in: Regenerate.
478         * configure: Regenerate.
479         * intrinsics/signal.c: New file for SIGNAL and ALARM intrinsics.
480
481 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
482
483         * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check.
484         * configure.ac: Check for floatingpoint.h, fptrap.h and float.h
485         headers. Use LIBGFOR_CHECK_FPSETMASK. Check for fp_trap and
486         fp_enable functions.
487         * configure.host: Add case for systems with fpsetmask and systems
488         with fp_trap/fp_enable.
489         * config/fpu-sysv.h: New file, FPU code using fpsetmask.
490         * config/fpu-aix.h: New file, FPU code for AIX using fp_trap and
491         fp_enable.
492         * aclocal.m4: Regenerate.
493         * configure: Regenerate.
494         * config.h.in: Regenerate.
495
496 2005-10-24  Jerry DeLisle  <jvdelisle@verizon.net>
497
498         PR libgfortran/24224
499         * libgfortran.h: Remove array stride error code.
500         * runtime/error.c: Remove array stride error.
501         * io/io.h: Change name of 'nml_loop_spec' to 'array_loop_spec' to be
502         generic.  Add pointer to array_loop_spec and rank to gfc_unit
503         structure.
504         * io/list_read.c: Revise nml_loop_spec references to array_loop_spec.
505         * io/transfer.c (init_loop_spec): New function to initialize
506         an array_loop_spec.
507         (next_array_record): New function to return the index to the next array
508         record by incrementing through the array_loop_spec.
509         (next_record_r): Use new function.
510         (next_record_w): Use new function.
511         (finalize_transfer): Free memory allocated for array_loop_spec.
512         * io/unit.c (get_array_unit_len): Delete this function. Use new
513         function init_loop_spec to initialize the array_loop_spec.
514
515 2005-10-24  Paul Thomas  <pault@gcc.gnu.org>
516
517         PR fortran/24416
518         * libgfortran/io/list_read.c (namelist_read): Exit with call to
519         free_saved () so that character strings do not accumulate.
520
521 2005-10-23  Jerry DeLisle  <jvdelisle@verizon.net>
522
523         PR libgfortran/24489
524         * io/transfer.c (read_block): Change the order of execution to not read
525         past end-of-record.
526         (read_block_direct): Same change.
527
528 2005-10-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
529
530         PR libfortran/23272
531         * acinclude.m4 (LIBGFOR_CHECK_WORKING_STAT): New check.
532         * configure.ac: Use LIBGFOR_CHECK_WORKING_STAT.
533         * Makefile.in: Regenerate.
534         * configure: Regenerate.
535         * config.h.in: Regenerate.
536         * aclocal.m4: Regenerate.
537         * io/unix.c (compare_file_filename): Add fallback case for
538         systems without working stat.
539         * io/open.c (already_open): Correct call to
540         compare_file_filename.
541         * io/io.h: Correct proto for compare_file_filename.
542
543 2005-10-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
544
545         * runtime/fpu.c: Add _GNU_SOURCE definition.
546         * config/fpu-glibc.h: Remove __USE_GNU definition.
547
548 2005-10-23  Paul Thomas  <pault@gcc.gnu.org>
549
550         PR fortran/24384
551         * intrinsics/spread_generic.c (spread_internal_scalar): New
552         function that handles the special case of spread with a scalar
553         source. This has new interface functions -
554         (spread_scalar, spread_char_scalar): New functions to interface
555         with the calls specified in gfc_resolve_spread.
556
557 2005-10-21  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
558
559         PR libfortran/24383
560         * io/unix.c: Add fallback definition for SSIZE_MAX.
561
562 2005-10-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
563
564         * c99_protos.h: Define preprocessor HAVE_ macros with value 1
565         instead of empty value.
566         * intrinsics/c99_functions.c: Likewise.
567         * intrinsics/getXid.c: Define HAVE_GETPID with value 1 instead of
568         empty value.
569         * intrinsics/sleep.c: Define HAVE_SLEEP with value 1 instead of
570         empty value.
571
572 2005-10-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
573
574         PR libfortran/24432
575         * c99_protos.h: Define HAVE_ macros for all provided functions.
576
577 2005-10-14  Uros Bizjak  <uros@kss-loka.si>
578
579         * config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
580         Change cw and cw_sse variables to unsigned.
581         (SSE): New definition.
582         (has_sse): Use it.
583
584 2005-10-13  Thomas Koenig  <Thomas.Koenig@online.de>
585
586         * io/unix.c(fd_alloc_r_at):  Use read() instead of do_read()
587         only in case of special files (e.g. terminals).
588
589 2005-10-13  Uros Bizjak  <uros@kss-loka.si>
590
591         * config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
592
593 2005-10-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
594
595         * Makefile.am: Add fpu.c to the build process, and
596         target-dependent code as fpu-target.h.
597         * Makefile.in: Regenerate.
598         * configure.ac: Add call to configure.host to set
599         FPU_HOST_HEADER.
600         * configure: Regenerate.
601         * configure.host: New script to determine which host-dependent
602         code should go in.
603         * libgfortran.h: Add fpe option, remove previous fpu_ options.
604         Add bitmasks for different FPE traps. Add prototype for set_fpu.
605         * runtime/environ.c: Remove environment variables to control
606         fpu behaviour.
607         * runtime/fpu.c (set_fpe): New function for the front-end.
608         * runtime/main.c (init): Set FPU state.
609         * config: New directory to store host-dependent code.
610         * config/fpu-387.h: New file with code handling the i387 FPU.
611         * config/fpu-glibc.h: New file with code for glibc systems.
612         * config/fpu-generic.h: Fallback for the most generic host. Issue
613         warnings.
614
615 2005-10-12  Janne Blomqvist <jblomqvi@cc.hut.fi>
616
617         * io/unix.c(fd_alloc_r_at): Remove parts of patch of 2005/10/07 that
618         cause input from the terminal to hang.
619
620 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
621
622         PR libgfortran/24313
623         *  c99_functions.c (csqrtf, csqrt): Fix choice of branch cut.  Note
624         csqrt{f} were imported from glibc, and this bug is still present
625         there. glibc PR is 1146.
626
627 2005-10-07  Janne Blomqvist <jblomqvi@cc.hut.fi>
628
629         PR fortran/16339
630         PR fortran/23363
631         * io/io.h: Add read and write members to stream, define access
632         macros.
633         * io/transfer.c (read_block_direct): New function.
634         (write_block_direct): New function.
635         (unformatted_read): Change to use read_block_direct.
636         (unformatted_write): Change to use write_block_direct.
637         * io/unix.c: Remove mmap includes and defines.
638         (writen): Remove.
639         (readn): Remove.
640         (reset_stream): New function.
641         (do_read): New function.
642         (do_write): New function.
643         (fd_flush): Change to use do_write() instead of writen().
644         (fd_alloc_r_at): Change to use do_read().
645         (fd_seek): Change return type to try, as the prototype. Add check
646         to avoid syscall overhead if possible.
647         (fd_read): New function.
648         (fd_write): New function.
649         (fd_open): Set pointers for new functions.
650         (mem_read): New function.
651         (mem_write): New function.
652         (open_internal): Set pointers for new functions.
653         (is_seekable): Clean up comment.
654
655 2005-10-07  Jerry DeLisle  <jvdelisle@verizon.net>
656
657         * io/transfer.c (write_block): Add test for end-of-file condition,
658         removed from mem_alloc_w_at. (next_record_w): Clean up checks for
659         NULL pointer returns from s_alloc_w.
660         * io/unix.c (mem_alloc_w_at): Remove call to generate_error end-of-file.
661         * io/write.c (write_float): Add checks for NULL pointer returns from
662         write_block calls. (write_integer): Same.
663
664 2005-10-03  Jakub Jelinek  <jakub@redhat.com>
665
666         * runtime/memory.c (allocate_size): Malloc 1 byte if size == 0.
667
668 2005-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
669
670         PR libfortran/19308
671         PR libfortran/22437
672         * Makefile.am: Add generated files for large real and integers
673         kinds. Add a rule to create the kinds.inc c99_protos.inc files.
674         Use kinds.inc to preprocess Fortran generated files.
675         * libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
676         GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
677         gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
678         gfc_array_l16.
679         * mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
680         HAVE_GFC_COMPLEX_* when these types are available.
681         * intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
682         * m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
683         m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
684         m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
685         m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
686         m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
687         m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
688         m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
689         m4/sum.m4, m4/transpose.m4: Protect generated functions with
690         appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
691         * Makefile.in: Regenerate.
692         * all files in generated/: Regenerate.
693
694 2005-10-01  Jakub Jelinek  <jakub@redhat.com>
695
696         * runtime/memory.c (malloc_t): Remove.
697         (GFC_MALLOC_MAGIC, HEADER_SIZE, DATA_POINTER, DATA_HEADER): Remove.
698         (mem_root, runtime_cleanup, malloc_with_header): Remove.
699         (internal_malloc_size): Use just get_mem if size != 0, return NULL
700         otherwise.
701         (internal_free): Just free if non-NULL.
702         (internal_realloc_size): Remove debugging stuff.
703         (allocate_size): Use malloc directly, remove debugging stuff.
704         (deallocate): Use free directly, fix error message wording.
705
706         * libgfortran.h (GFC_ITOA_BUF_SIZE, GFC_XTOA_BUF_SIZE,
707         GFC_OTOA_BUF_SIZE, GFC_BTOA_BUF_SIZE): Define.
708         (gfc_itoa, xtoa): Add 2 extra arguments.
709         * runtime/environ.c: Include stdio.h.
710         (check_buffered): Use sprintf.
711         * runtime/error.c: Include assert.h.
712         (gfc_itoa, xtoa): Add 2 extra arguments, avoid using static
713         buffers.
714         (st_printf, st_sprintf): Adjust callers.
715         * io/write.c (otoa, btoa): Add 2 extra arguments, avoid using
716         static buffers.
717         (write_int, write_decimal): Add 2 extra arguments to conv
718         function pointer, adjust caller.
719         (write_integer): Adjust gfc_itoa caller.
720
721         * io/unit.c (get_array_unit_len): Return 0 rather than NULL.
722
723         * io/read.c (read_f): Remove spurious pointer dereference.
724
725 2005-09-30  Janne Blomqvist <jblomqvi@cc.hut.fi>
726
727         PR 24112
728         * io/open.c (edit_modes): Check for correct flag.
729
730 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
731
732         * runtime/string.c (find_option): Change 3rd argument to
733         const st_option *.
734         * libgfortran.h (find_option): Likewise.
735         * runtime/environ.c (rounding, precision, signal_choices): Constify.
736         (init_choice, show_choice): Change 2nd argument to const choice *.
737         * io/open.c (access_opt, action_opt, blank_opt, delim_opt, form_opt,
738         position_opt, status_opt, pad_opt): Constify.
739         * io/transfer.c (advance_opt): Likewise.
740         * io/inquire.c (undefined): Likewise.
741         * io/close.c (status_opt): Likewise.
742         * io/format.c (posint_required, period_required, nonneg_required,
743         unexpected_element, unexpected_end, bad_string, bad_hollerith,
744         reversion_error): Likewise.
745         * io/unix.c (yes, no, unknown): Change from const char *
746         into const char [].
747
748 2005-09-27  Steve Ellcey  <sje@cup.hp.com>
749
750         PR target/23552
751         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): New.
752         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN): New.
753         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): New.
754         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): Add use.
755         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN): Add use.
756         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): Add use.
757         * configure: Regenerate.
758         * config.h.in: Regenerate.
759         * libgfortan.h (isfinite): undef if broken, set if needed.
760         (isnan): undef if broken, set if needed.
761         (fpclassify): undef if broken, set if needed.
762         * io/write.c: Remove TODO comment about working isfinite.
763         * intrinsics/c99_functions.c (round): Use isfinite instead
764         of fpclassify.
765         * intrinsics/c99_functions.c (roundf): Ditto.
766
767 2005-09-24  Janne Blomqvist <jblomqvi@cc.hut.fi>
768
769         * io.h: Changed prototypes of list_formatted_{read|write}.
770         * list_read.c (list_formatted_read): Renamed to
771         list_formatted_read_scalar and made static.
772         (list_formatted_read): New function.
773         * transfer.c: Prototype for transfer_array. Changed transfer
774         function pointer.
775         (unformatted_read): Add nelems argument, use it.
776         (unformatted_write): Likewise.
777         (formatted_transfer): Changed name to formatted_transfer_scalar.
778         (formatted_transfer): New function.
779         (transfer_integer): Add nelems argument to transfer call, move
780         updating item count to transfer functions.
781         (transfer_real): Likewise.
782         (transfer_logical): Likewise.
783         (transfer_character): Likewise.
784         (transfer_complex): Likewise.
785         (transfer_array): New function.
786         (data_transfer_init): Call formatted_transfer with new argument.
787         (iolength_transfer): New argument, use it.
788         * write.c (list_formatted_write): Renamed to
789         list_formatted_write_scalar, made static.
790         (list_formatted_write): New function.
791
792 2005-09-26  David Edelsohn  <edelsohn@gnu.org>
793
794         * configure.ac: Add check for __clog.
795         * configure: Regenerate.
796
797 2005-09-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
798
799         * c99_protos.h: Add prototypes for C99 complex functions.
800         * libgfortran.h: Include complex.h before c99_protos.h.
801         * intrinsics/c99_functions.c: Define HAVE_ macros for the
802         fallback functions we provide.
803         (cabsf, cabs, cabsl, cargf, carg, cargl, cexpf, cexp, cexpl,
804         clogf, clog, clogl, clog10f, clog10, clog10l, cpowf, cpow, cpowl,
805         cqsrtf, csqrt, csqrtl, csinhf, csinh, csinhl, ccoshf, ccosh,
806         ccoshl, ctanhf, ctanh, ctanhl, csinf, csin, csinl, ccosf, ccos,
807         ccosl, ctanf, ctan, ctanl): New fallback functions.
808         * Makefile.am (gfor_math_trig_c, gfor_math_trig_obj,
809         gfor_specific_c, gfor_cmath_src, gfor_cmath_obj): Remove.
810         * Makefile.in: Regenerate.
811         * configure.ac: Remove checks for csin. Add checks for all C99
812         complex functions.
813         * config.h.in: Regenerate.
814         * configure: Regenerate.
815         * aclocal.m4: Regenerate.
816
817 2005-09-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
818             Danny Smith  <dannysmith@users.sourceforge.net>
819
820         PR libfortran/23803
821         * intrinsics/getXid.c: Add getpid wrapper for MinGW.
822         * intrinsics/getlog.c: Add getlogin wrapper for MinGW.
823         * intrinsics/hostnm.c: Add gethostname wrapper for MinGW.
824
825 2005-09-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
826
827         PR libfortran/23802
828         * intrinsics/sleep.c: Add correct sleep macro for MinGW.
829
830 2005-09-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
831
832         PR libfortran/23380
833         * intrinsics/cpu_time.c (__cpu_time_1): Provide a MS Windows
834         version.
835
836 2005-09-14  Jerry DeLisle  <jvdelisle@verizon.net
837
838         PR fortran/21875 Internal Unit Array I/O, NIST
839         * libgfortran.h: Add run time error code for array stride.
840         * runtime/error.c (translate_error): Add error message for
841         array stride.
842         * io/io.h: Add array descriptor pointer to IOPARM structure.
843         Add prtotypes for two new functions.
844         * io/transfer.c (data_transfer_init): Removed initialization and
845         moved to unit.c (get_unit)
846         * io/transfer.c (next_record_r): Include internal unit read
847         functionality.
848         * io/transfer.c (next_record_w): Include internal unit write
849         functionality, including padding of character array records.
850         * io/unit.c (get_array_unit_len): New function to return the number
851         of records in the character array 'file' from the array descriptor.
852         * io/unit.c (get_unit): Gathered initialization code from
853         init_data_transfer for internal units and added initialization of
854         character array unit.
855         * io/unit.c (is_array_io): New function to determine if internal unit
856         is an array.
857         * io/unix.c (mem_alloc_w_at): Add error checks for bad record length
858         and end of file.
859
860 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
861
862         PR target/19269
863         * intrinsics/cshift0.c (cshift0): Add an extra size argument.
864         (cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
865         implementations with...
866         (DEFINE_CSHIFT): ...this new macro.  Define character versions too.
867         * intrinsics/eoshift0.c (zeros): Delete.
868         (eoshift0): Add extra size and filler arguments.  Use memset if no
869         bound is provided.
870         (eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
871         implementations with...
872         (DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
873         * intrinsics/eoshift2.c (zeros): Delete.
874         (eoshift2): Add extra size and filler arguments.  Use memset if no
875         bound is provided.
876         (eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
877         implementations with...
878         (DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
879         * intrinsics/pack.c (pack_internal): New static function, reusing
880         the contents of pack and adding an extra size argument.  Change
881         "mptr" rather than "m" when calculating the array size.
882         (pack): Redefine as a forwarder to pack_internal.
883         (pack_s_internal): New static function, reusing the contents of
884         pack_s and adding an extra size argument.
885         (pack_s): Redefine as a forwarder to pack_s_internal.
886         (pack_char, pack_s_char): New functions.
887         * intrinsics/reshape.c (reshape_internal): New static function,
888         reusing the contents of reshape and adding an extra size argument.
889         (reshape): Redefine as a forwarder to reshape_internal.
890         (reshape_char): New function.
891         * intrinsics/spread.c (spread_internal): New static function,
892         reusing the contents of spread and adding an extra size argument.
893         (spread): Redefine as a forwarder to spread_internal.
894         (spread_char): New function.
895         * intrinsics/transpose.c (transpose_internal): New static function,
896         reusing the contents of transpose and adding an extra size argument.
897         (transpose): Redefine as a forwarder to transpose_internal.
898         (transpose_char): New function.
899         * intrinsics/unpack.c (unpack_internal): New static function, reusing
900         the contents of unpack1 and adding extra size and fsize arguments.
901         (unpack1): Redefine as a forwarder to unpack_internal.
902         (unpack0): Call unpack_internal instead of unpack1.
903         (unpack1_char, unpack0_char): New functions.
904         * m4/cshift1.m4 (cshift1): New static function, reusing the contents
905         of cshift1_<kind> and adding an extra size argument.
906         (cshift1_<kind>): Redefine as a forwarder to cshift1.
907         (cshift1_<kind>_char): New function.
908         * m4/eoshift1.m4 (zeros): Delete.
909         (eoshift1): New static function, reusing the contents of
910         eoshift1_<kind> and adding extra size and filler arguments.
911         Fix calculation of hstride.  Use memset if no bound is provided.
912         (eoshift1_<kind>): Redefine as a forwarder to eoshift1.
913         (eoshift1_<kind>_char): New function.
914         * m4/eoshift3.m4 (zeros): Delete.
915         (eoshift3): New static function, reusing the contents of
916         eoshift3_<kind> and adding extra size and filler arguments.
917         Use memset if no bound is provided.
918         (eoshift3_<kind>): Redefine as a forwarder to eoshift3.
919         (eoshift3_<kind>_char): New function.
920         * generated/cshift1_4.c, generated/cshift1_8.c,
921         * generated/eoshift1_4.c, generated/eoshift1_8.c,
922         * generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.
923
924 2005-09-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
925
926         PR libfortran/20179
927         * io/unix.c (is_preconnected): Add function to test if a stream
928         corresponds to a preconnected unit.
929         * io/io.h: Add prototype for is_preconnected.
930         * io/transfer.c (data_transfer_init): Do not truncate
931         preconnected units.
932
933 2005-09-10  Janne Blomqvist  <jblomqvi@cc.hut.fi>
934
935         * io/unix.c: Remove mmap code.
936
937 2005-09-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
938
939         PR libfortran/23784
940         * io/close.c (st_close): Call library_end even in case of error.
941
942 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
943
944         * io/io.h:  Add iomsg as last field of st_parameter.
945         * runtime/error.c (generate_error):  If iomsg is present, copy
946         the message there.
947
948 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
949
950         PR fortran/12840
951         * runtime/memory.c (internal_malloc_size): Return a null pointer
952         if the size is zero.
953         (internal_free): Do nothing if the pointer is null.
954         (internal_realloc_size, internal_realloc, internal_realloc64): New.
955
956 2005-09-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
957
958         PR libfortran/23262
959         * acinclude.m4 (LIBGFOR_CHECK_CRLF): New check.
960         * configure.ac: Use new check.
961         * configure.in: Regenerate.
962         * config.h.in: Regenerate.
963         * configure: Regenerate.
964         * io/transfer.c (next_record_w): Add case for CRLF as line
965         terminator.
966         * io/unix.c (tempfile, regular_file): Open files with
967         O_BINARY on systems with CRLF.
968
969 2005-09-07  Steve Ellcey  <sje@cup.hp.com>
970
971         PR libfortran/23419
972         * io/write.c (extract_int): Use memcpy to access buffer.
973         (extract_uint): Ditto.
974         (extract_real): Ditto.
975
976 2005-09-05  Thomas Koenig  <Thomas.Koenig@online.de>
977
978         * io/list_read.c:  Adjust size of of value to 32 (to hold
979         kind=16 complex values).
980
981 2005-09-04  Thomas Koenig  <Thomas.Koenig@online.de>
982
983         PR libfortran/23321
984         * io/transfer.c(data_transfer_init):  Check for a too-large
985         record number.  Return if sseek failed.
986
987 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
988
989         * io/read.c (read_x): Take int argument instead of fnode * and
990         digging the N from F->u.n.
991         * io/io.h (read_x): Adjust prototype.
992         * io/transfer.c (formatted_transfer): Adjust callers.  Don't clobber
993         f->u.n for FMT_T.
994
995 2005-09-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
996
997         * io/unix.c (stream_ttyname): Protect use of ttyname by
998         HAVE_TTYNAME macro.
999         * configure.ac: Add check for ttyname.
1000         * config.h.in: Regenerate.
1001         * configure: Regenerate.
1002
1003 2005-09-02  Andreas Jaeger  <aj@suse.de>
1004
1005         * libgfortran.h: Add prototype for init_compile_options.
1006
1007         * io/io.h: Add prototype for notify_std.
1008
1009 2005-08-31  Steve Ellcey  <sje@cup.hp.com>
1010
1011         * io/read.c (set_integer): Use memcpy to fill buffer.
1012
1013 2005-08-31  Steve Ellcey  <sje@cup.hp.com>
1014
1015         PR target/23556
1016         * io/read.c (convert_real): Use memcpy to fill buffer.
1017
1018 2005-08-29  Thomas Koenig  <Thomas.Koenig@online.de>
1019
1020         PR libfortran/23598
1021         * io/lock.c(library_start):  If ioparm.iostat is present, clear
1022         it unconditionally.
1023
1024 2005-08-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1025
1026         * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see
1027         if target can unlink open files.
1028         * configure.ac: Use this new test.
1029         * config.h.in: Regenerate.
1030         * configure: Regenerate.
1031         * Makefile.in: Regenerate.
1032         * aclocal.ac: Regenerate.
1033         * io/io.h: Add prototype for unpack_filename.
1034         * io/close.c (st_close): Delete file after closing unit if
1035         HAVE_UNLINK_OPEN_FILE is not defined.
1036         * io/unix.c (unpack_filename): Unlink scratch file after opening
1037         it only if HAVE_UNLINK_OPEN_FILE is defined.
1038
1039 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
1040
1041         * All files: Update FSF address.
1042
1043 2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>
1044
1045         PR libfortran/23428
1046         * io/transfer.c (iolength_transfer):  Remove __attribute__ ((unused))
1047         from type.  Return correct length for inquire(iolength=)
1048         for complex variables.
1049
1050 2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1051             Steven Bosscher  <stevenb@suse.de>
1052
1053         PR libfortran/20006
1054         * Makefile.am: Add file runtime/compile_options.c.
1055         * Makefile.in: Regenerate.
1056         * libgfortran.h: Create structure compile_options_t. Define the
1057         compile_options variable and GFC_STD_ macros.
1058         * runtime/compile_options.c: New file.
1059         * runtime/error.c (notify_std): New function.
1060         * runtime/main.c (init): Call init_compile_options during
1061         initialization.
1062         * io/format.c: Use the new notify_std function for the $
1063         descriptor extension.
1064
1065 2005-08-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1066         * Makefile.am: Add file intrinsics/tty.c to Makefile process.
1067         * Makefile.in: Regenerate.
1068         * io/io.h: Prototypes for new functions stream_isatty and
1069         stream_ttyname.
1070         * io/unix (stream_isatty, stream_ttyname): New functions to call
1071         isatty() and ttyname() on a given unit.
1072         * intrinsics/tty.c: New file to implement g77 intrinsics TTYNAM
1073         and ISATTY.
1074
1075 2005-08-08  Jerry DeLisle  <jvdelisle@verizon.net>
1076
1077         PR libfortran/23154
1078         * io/transfer.c (data_transfer_init): Initialize
1079         current_unit->bytes_left for a read.
1080
1081 2005-08-07  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1082
1083         PR fortran/22390
1084         * io/backspace.c: File removed, contents moved to ...
1085         * io/endfile.c: Ditto.
1086         * io/rewind.c: Ditto.
1087         * io/file_pos.c: New file, ... here.
1088         * Makefile.am: Add file_pos.c to list, remove obsolete files.
1089         * Makefile.in: Regenerated.
1090
1091 2005-08-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1092
1093         * io/io.h: Change DEFAULT_TEMPDIR to /tmp instead of /var/tmp.
1094         * io/unix.c (tempfile): Look at the TEMP environment variable
1095         to find the temporary files directory. Whitespace correction.
1096
1097 2005-08-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1098
1099         * io/unix.c: Add O_RDWR to open() call.
1100
1101 2005-08-04 Paul Thomas  <pault@gcc.gnu.org>
1102
1103         * transfer.c (data_transfer_init): Truncate file in
1104         sequential WRITE when last_record == 0, rather than
1105         current_record.  Cures problem on RH9.
1106
1107 2005-08-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1108
1109         * libgfortran.h: When isfinite is not provided by the system,
1110         define it as a macro, so that it can accept any floating point
1111         type.
1112
1113 2005-08-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1114
1115         PR libfortran/23178
1116         * intrinsics/flush.c (flush_i8): Add function flush_i8. Update
1117         copyright years.
1118
1119 2005-07-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1120
1121         PR libfortran/21787
1122         * intrinsics/abort.c (abort): Close units before aborting.
1123         Updated copyright years.
1124
1125 2005-07-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1126
1127         PR libfortran/22436
1128         * io/write.c (write_real): Add default formats for real(10) and
1129         real(16).
1130
1131 2005-07-30 Paul Thomas  <pault@gcc.gnu.org>
1132
1133         PR fortran/22570 and related issues.
1134         * transfer.c (formatted_transfer): Make sure that there
1135         really is data present before X- or T- editing. Move all
1136         treatment of tabbing during writes to start of next data
1137         producing format. Suppress incorrect zeroing of bytes_left
1138         in slash formating. Insert int cast for assignment of a
1139         difference of two gfc_offsets.
1140
1141 2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
1142
1143         * io/write.c (write_float): Revise output of IEEE exceptional
1144         values to comply with F95 and F2003 standards.
1145
1146 2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
1147
1148         PR libfortran/22570
1149         * io/unit.c (init_units): Replace BLANK_ZERO with
1150         BLANK_UNSPECIFIED.
1151
1152 2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>
1153
1154         PR libfortran/21875  (FM111.f)
1155         * io/read.c (next_char): Return a ' ' character when BLANK_ZERO
1156         or BLANK_NULL are active.
1157         (read_decimal): Interpret ' ' character correctly for BZ or BN.
1158         (read_radix): Interpret ' ' character correctly for BZ or BN.
1159         (read_f): Interpret ' ' character correctly for BZ or BN.
1160
1161 2005-07-22 Paul Thomas  <pault@gcc.gnu.org>
1162
1163         PR libfortran/22570
1164         * read.c (read_x): Correct the condition for doing the
1165         x-editing during formatted input.
1166         * transfer.c (formatted_transfer): Cast offset difference
1167         as int, clean-up arithmetic with new variable, bytes_used,
1168         zero counters for FMT_SLASH,
1169         (data_transfer_init) Zero X- and T-editing counters
1170         unconditionally.
1171         (next_record_w) Zero X- and T-editing counters.
1172         unconditionally.
1173
1174 2005-07-17  Jerry DeLisle  <jvdelisle@verizon.net>
1175
1176         * io/write.c (write_float): Fix field width checks for
1177         printing 'Infinity' or 'Inf'.
1178         (output_float): Fix typo in comment.
1179
1180 2005-07-12 Paul Thomas  <pault@gcc.gnu.org>
1181
1182         PR libfortran/16435
1183         * transfer.c (formatted_transfer): Correct the problems
1184         with X- and T-editting that caused TLs followed by TRs
1185         to overwrite data, which caused NIST FM908.FOR to fail
1186         on many tests.
1187         (data_transfer_init): Zero X- and T-editting counters at
1188         the start of formatted IO.
1189         * write.c (write_x): Write specified number of skips with
1190         specified number of spaces at the end.
1191
1192 2005-07-13 Paul Thomas  <pault@gcc.gnu.org>
1193
1194         * io/read.c (read_complex): Prevent X formatting during reads
1195         from going beyond EOR to fix NIST fm908.FOR failure.
1196         * io/list_read.c (read_complex): Allow complex data in list-
1197         directed reads to have eols either side of the comma to
1198         fix NIST FM906.FOR failure.
1199
1200 2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>
1201
1202         PR libfortran/21593
1203         * io/unix.c:  Add member special_file to type unix_stream.
1204         (fd_truncate):  Don't call ftruncate or chsize if
1205         s refers to a special file.
1206         (fd_to_stream):  initialize s->special_file.
1207
1208 2005-07-11  David Edelsohn  <edelsohn@gnu.org>
1209
1210         PR libgfortran/22412
1211         * io/write.c (otoa): Bias p by SCRATCH_SIZE, not
1212         sizeof (SCRATCH_SIZE).
1213         (btoa): Same.
1214
1215 2005-07-09  Jerry DeLisle  <jvdelisle@verizon.net>
1216
1217         PR libfortran/21875  (FM111.f)
1218         * io/read.c (next_char): Return a ' ' character when BLANK_ZERO or
1219         BLANK_NULL are active.
1220         (read_decimal): Interpret ' ' character correctly for BZ or BN.
1221         (read_radix): Interpret ' ' character correctly for BZ or BN.
1222         (read_f): Interpret ' ' character correctly for BZ or BN.
1223         * gfortran.dg/test (fmt_read_bz_bn.f90): New test case.
1224
1225 2005-07-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1226             Thomas Koenig  <Thomas.Koenig@online.de>
1227
1228         PR libfortran/22217
1229         * io/write.c (extract_unit):  New function; extract
1230         ints as unsigned signed int of the correct size.
1231         (write_int):  Use it.
1232         * runtime/error.c:  Adjust copyright years.
1233         Adjust size of buffer to maximum that can occur.
1234
1235 2005-07-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1236
1237         * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
1238         'size_t offset'.
1239         * intrinsics/cshift0.c, intrinsics/eoshift0.c,
1240         intrinsics/eoshift2.c,intrinsics/pack_generic.c,
1241         intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
1242         intrinsics/transpose_generic.c, intrinsics/unpack_generic,
1243         m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
1244         m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
1245         m4,transpose.m4: Set renamed field 'offset' to zero instead of
1246         'base'.
1247         * generated/all_l4.c, generated/all_l8.c,
1248         generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
1249         generated/count_4_l8.c, generated/count_8_l4.c,
1250         generated/count_8_l8.c, generated/chift1_4.c,
1251         generated/cshift1_8.c, generated/eoshift1_4.c,
1252         generated/eoshift1_8.c, generated/eoshift3_4.c,
1253         generated/eoshift3_8.c, generated/matmul_c4.c,
1254         generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
1255         generated/matmul_l4.c, generated/matmul_l8.c,
1256         generated/matmul_r4.c, generated/matmul_r8.c,
1257         generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
1258         generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
1259         generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
1260         generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
1261         generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
1262         generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
1263         generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
1264         generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
1265         generated/maxval_i4.c, generated/maxval_i8.c,
1266         generated/maxval_r4.c, generated/maxval_r8.c,
1267         generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
1268         generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
1269         generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
1270         generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
1271         generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
1272         generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
1273         generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
1274         generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
1275         generated/minval_i4.c, generated/minval_i8.c,
1276         generated/minval_r4.c, generated/minval_r8.c,
1277         generated/product_c4.c, generated/product_c8.c,
1278         generated/product_i4.c, generated/product_i8.c,
1279         generated/product_r4.c, generated/product_r8.c,
1280         generated/reshape_c4.c, generated/reshape_c8.c,
1281         generated/reshape_i4.c, generated/reshape_i8.c,
1282         generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
1283         generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
1284         generated/transpose_c4.c, generated/transpose_c8.c,
1285         generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:
1286
1287 2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>
1288
1289         PR libfortran/21594
1290         * intrinsics/eoshift0.c:  If abs(shift) > len, fill the
1291         the whole array with the boundary value, but don't overrun it.
1292         * intrinsics/eoshift2.c:  Likewise.
1293         * m4/eoshift1.m4:  Likewise.
1294         * m4/eoshift3.m4:  Likewise.
1295         * generated/eoshift1_4.c:  Regenerated.
1296         * generated/eoshift1_8.c:  Regenerated.
1297         * generated/eoshift3_4.c:  Regenerated.
1298         * generated/eoshift3_8.c:  Regenerated.
1299
1300 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
1301
1302         PR fortran/16531
1303         * io/transfer.c (formatted_transfer): Enable FMT_A on other types to
1304         support Hollerith constants.
1305
1306 2005-07-01  Andreas Jaeger  <aj@suse.de>
1307
1308         * intrinsics/unpack_generic.c: Remove const from parameter.
1309
1310         * io/transfer.c (formatted_transfer): Remove unused variable.
1311
1312 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
1313
1314         PR libfortran/22142
1315         * m4/eoshift1.m4:  Correct bstride (it needs to be multiplied
1316         by size since it's a char pointer).
1317         * m4/eoshift1_4.c:  Regenerated.
1318         * m4/eoshift1_8.c:  Regenerated.
1319
1320 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
1321
1322         PR libfortran/22142
1323         * m4/eoshift3.m4:  Correct bstride (it needs to be multiplied
1324         by size since it's a char pointer).
1325         * m4/eoshift3_4.c:  Regenerated.
1326         * m4/eoshift3_8.c:  Regenerated.
1327
1328 2005-06-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1329
1330         PR libfortran/22170
1331         * io/transfer.c (formatted_transfer): Do not iterate on the
1332         repeat count of a FMT_SLASH, since this is already done in
1333         next_format().
1334
1335 2005-06-25  Thomas Koenig  <Thomas.Koenig@online.de>
1336
1337         PR libfortran/22144
1338         * m4/cshift1.m4: Remove const from argument ret.
1339         Populate return array descriptor if ret->data is NULL.
1340         * m4/eoshift1.m4: Likewise.
1341         * m4/eoshift3.m4: Likewise.
1342         * generated/cshift1_4.c:  Regenerated.
1343         * generated/cshift1_8.c:  Regenerated.
1344         * generated/eoshift1_4.c:  Regenerated.
1345         * generated/eoshift1_8.c:  Regenerated.
1346         * generated/eoshift3_4.c:  Regenerated.
1347         * generated/eoshift3_8.c:  Regenerated.
1348
1349 2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>
1350
1351         PR libfortran/21915
1352         * Makefile.am: Include intrinsics/hyper.c.
1353         * c99_protos.h: Add prototypes for single precision versions of
1354         acosh, asinh, and atanh for platforms that do not have these.
1355         * config.h.in: Add #undef for wrappers.
1356         * configure.ac: Add checks for single precision versions.
1357         * aclocal.m4: Regenerated.
1358         * Makefile.in: Regenerated.
1359         * configure: Regenerated.
1360         * intrinsics/hyper.c: New file, adds new wrapper functions.
1361
1362 2005-06-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1363
1364         * intrinsics/c99_functions.c (log10l): New log10l function for
1365         systems where this is not available.
1366         * c99_protos.h: Prototype for log10l function.
1367         * libgfortran.h: Use generated kinds.h to define GFC_INTEGER_*,
1368         GFC_UINTEGER_*, GFC_LOGICAL_*, GFC_REAL_*, GFC_COMPLEX_*. Update
1369         prototypes for gfc_itoa and xtoa.
1370         * io/io.h: Update prototypes for set_integer and max_value.
1371         * io/list_read.c (convert_integer): Use new
1372         GFC_(INTEGER|REAL)_LARGEST type.
1373         * io/read.c (set_integer): Likewise.
1374         (max_value): Likewise.
1375         (convert_real): Likewise.
1376         (real_l): Likewise.
1377         (next_char): Likewise.
1378         (read_decimal): Likewise.
1379         (read_radix): Likewise.
1380         (read_f): Likewise.
1381         * io/write.c (extract_int): Use new GFC_INTEGER_LARGEST type.
1382         (extract_real): Use new GFC_REAL_LARGEST type.
1383         (calculate_exp): Likewise.
1384         (calculate_G_format): Likewise.
1385         (output_float): Likewise. Use log10l for long double values.
1386         Add comment for sprintf format. Use GFC_REAL_LARGEST_FORMAT.
1387         (write_l): Use new GFC_INTEGER_LARGEST type.
1388         (write_float): Use new GFC_REAL_LARGEST type.
1389         (write_int): Remove useless special case for (len < 8).
1390         (write_decimal): Use GFC_INTEGER_LARGEST.
1391         (otoa): Use GFC_UINTEGER_LARGEST as argument.
1392         (btoa): Use GFC_UINTEGER_LARGEST as argument.
1393         * runtime/error.c (gfc_itoa): Use GFC_INTEGER_LARGEST as
1394         argument.
1395         (xtoa): Use GFC_UINTEGER_LARGEST as argument.
1396         * Makefile.am: Use mk-kinds-h.sh to generate header kinds.h
1397         with all Fortran kinds available.
1398         * configure.ac: Check for strtold and log10l.
1399         * Makefile.in: Regenerate.
1400         * aclocal.m4: Regenerate.
1401         * configure: Regenerate.
1402         * config.h.in: Regenerate.
1403         * mk-kinds-h.sh: Configuration script for available integer
1404         and real kinds.
1405
1406
1407 2005-06-18  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1408
1409         * unix.c (stream_at_bof): Don't assume that all non-mmapped files
1410         are non-seekable.
1411         (stream_at_eof): Likewise.
1412
1413 2005-06-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1414
1415         PR libfortran/19155
1416         * io/read.c (convert_real): strtod can set errno to EINVAL on an
1417         empty string, but we shouldn't have an error in that case.
1418
1419 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1420
1421         PR libfortran/19216
1422         * io/list_read.c (eat_separator): No need to call next_record,
1423         even in non-namelist_mode.
1424
1425 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1426
1427         * io/transfer.c (formatted_transfer): Fix typo in error message.
1428
1429 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1430
1431         PR libfortran/16436
1432         * io/transfer.c (read_sf): Correct updating of bytes_left field.
1433         (formatted_transfer): Correct updating of bytes_left field and
1434         reformatting code (comments and whitespace).
1435         * io/unix.c (move_pos_offset): "active" field should not be
1436         changed here. Whitespace corrections.
1437
1438 2005-06-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1439
1440         PR libfortran/21950
1441         * intrinsics/c99_functions.c (scalbn): Provide fallback
1442         implementation for scalbn.
1443         * c99_protos.h: Prototype for scalbn.
1444         * configure.ac: Add check for scalbn.
1445         * configure: Regenerate.
1446         * config.h.in: Regenerate.
1447
1448 2005-06-14  Thomas Koenig  <Thomas.Koenig@online.de>
1449
1450         * intrinsics/eoshift0.c:  Removed prototype for eoshift0.
1451         * intrinsics/eoshift2.c:  Removed prototype for eoshift2.
1452
1453 2005-06-14  Tom Tromey  <tromey@redhat.com>
1454
1455         PR libgcj/19877:
1456         * configure, aclocal.m4, Makefile.in: Rebuilt.
1457
1458 2005-06-12  Thomas Koenig  <Thomas.Koenig@online.de>
1459
1460         PR libfortran/21594
1461         * intrinsics/eoshift0.c:  Add prototype for eoshift0.
1462         * intrinsics/eoshift2.c:  Add prototype for eoshift2.
1463
1464 2005-06-12  Steven G. Kargl <kargls@comcast.net>
1465             Thomas Koenig  <Thomas.Koenig@online.de>
1466
1467         PR libfortran/PR21797
1468         * m4/cexp.m4 (csqrt`'q):  Add type qualifyer to
1469         sqrt and fabs.
1470         * generated/exp_c4.c:  Regenerated.
1471
1472 2005-06-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1473
1474         PR libfortran/19155
1475         * io/read.c (read_f): Take care of spaces after initial sign.
1476
1477 2005-06-11  Thomas Koenig  <Thomas.Koenig@onlinde.de>
1478
1479         PR libfortran/21333
1480         * Makefile.am: Add in_pack_c4.c, in_pack_c8.c, in_unpack_c4.c
1481         and in_unpack_c8.c.
1482         * Makefile.in: Regenerate.
1483         * libgfortran.h:  Declare internal_pack_c4, internal_pack_c8,
1484         internal_unpack_c4 and internal_unpack_c8.
1485         * m4/in_pack.m4: Use rtype_ccode insteald of rtype_kind
1486         in function name.
1487         Use sizeof (rtype_name) as size for memory allocation.
1488         * m4/in_unpack.m4: Use rtype_ccode insteald of rtype_kind
1489         in function name.
1490         Use sizeof (rtype_name) for calculation of sizes for memcpy.
1491         * runtime/in_pack_generic.c:  For real, integer and logical
1492         call internal_pack_4 if size==4 and internal_pack_8 if
1493         size==8.
1494         For complex, call internal_pack_c4 if size==8 and
1495         internal_pack_c8 if size==16.
1496         * runtime/in_unpack_generic.c: For real, integer and logical
1497         call internal_unpack_4 if size==4 and internal_unpack_8 if
1498         size==8.
1499         For complex, call internal_unpack_c4 if size==8 and
1500         internal_unpack_c8 if size==16.
1501         * generated/in_pack_i4.c:  Regenerated.
1502         * generated/in_pack_i8.c:  Regenerated.
1503         * generated/in_unpack_i4.c:  Regenerated.
1504         * generated/in_unpack_i8.c:  Regenerated.
1505         * generated/in_pack_c4.c:  New file.
1506         * generated/in_pack_c8.c:  New file.
1507         * generated/in_unpack_c4.c:  New file.
1508         * generated/in_unpack_c8.c:  New file.
1509
1510 2005-06-09  Thomas Koenig  <Thomas.Koenig@online.de>
1511
1512         PR libfortran/21480
1513         * m4/reshape.m4:  Use sizeof (rtype_name) for sizes to be passed
1514         to reshape_packed.
1515         * generated/reshape_c4.c:  Regenerated.
1516         * generated/reshape_c8.c:  Regenerated.
1517         * generated/reshape_i4.c:  Regenerated.
1518         * generated/reshape_i8.c:  Regenerated.
1519
1520 2005-06-07  Thomas Koenig  <Thomas.Koenig@online.de>
1521
1522         PR libfortran/21926
1523         * m4/matmul.m4:  Correct zeroing of result for non-packed
1524         arrays with lowest stride is one.
1525         * generated/matmul_c4.c:  Regenerated.
1526         * generated/matmul_c8.c:  Regenerated.
1527         * generated/matmul_i4.c:  Regenerated.
1528         * generated/matmul_i8.c:  Regenerated.
1529         * generated/matmul_r4.c:  Regenerated.
1530         * generated/matmul_r8.c:  Regenerated.
1531
1532 2005-05-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1533
1534         PR libfortran/20179
1535         * io/unix.c (fd_close): Add test so that we don't close()
1536         stdout and stderr.
1537
1538 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1539
1540         PR libfortran/20006
1541         * io/format.c (parse_format_list): Set repeat count of $ format
1542         node to 1.
1543         * io/transfer.c (read_sf): Add g.seen_dollar to the test
1544         concerning advancing I/O.
1545         (data_transfer_init): Likewise.
1546         (finalize_transfer): Likewise.
1547
1548 2005-05-27  Thomas Koenig  <Thomas.Koenig@online.de>
1549
1550         * runtime/in_pack_generic.c:  Adjust copyright years.
1551         (in_pack_generic):  Change dimension of auxiliary arrays from
1552         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1553         * runtime/in_unpack_generic.c:  Adjust copyright years.
1554         (in_unpack_generic):  Change dimension of auxiliary arrays from
1555         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1556
1557 2005-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
1558
1559         PR libfortran/17283
1560         * intrinsics/unpack_generic.c:  Fix name of routine
1561         on top.  Update copyright years.
1562         (unpack1):  Remove const from return array descriptor.
1563         rs:  New variable, for calculating return sizes.
1564         Populate return array descriptor if ret->data is NULL.
1565
1566 2005-05-22  Peter Wainwright  <prw@ceiriog1.demon.co.uk>
1567
1568         PR libfortran/21376
1569         * io/write.c (output_float): Rework logic to avoid call to log10
1570         with argument equal to zero.
1571
1572 2005-05-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1573
1574         * configure.ac: Check for trunc and truncf in libm.
1575         * configure: Regenerate.
1576         * config.h.in: Likewise.
1577         * intrinsics/c99_functions.c (trunc, truncf): New functions.
1578         * c99_protos.h (trunc, truncf): Declare them.
1579
1580 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
1581
1582         PR libfortran/21127
1583         * Makefile.am:  Really commit.
1584         * Makefile.in:  Really commit.
1585
1586 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
1587
1588         PR libfortran/21127
1589         * Makefile.am:  Add generated/reshape_c4.c and
1590         generated/reshape_c8.c.
1591         * Makefile.in:  Regenerated.
1592         * m4/iparm.m4:  Define rtype_ccode to be c4 or c8 for
1593         complex types, 4 or 8 otherwise.
1594         * m4/reshape.m4:  Use rtype_ccode instead of rtype_kind
1595         in function name.
1596         * generated/reshape_c4.c: New file.
1597         * generated/reshape_c8.c: New file.
1598
1599 2005-05-16  Andreas Jaeger  <aj@suse.de>
1600
1601         * configure.ac: Add additional warning flags.
1602         * configure: Regenerate.
1603
1604         * io/write.c (calculate_G_format): Remove unused parameter.
1605         (output_float): Remove unused parameter.
1606         (write_float): Change callers.
1607         (nml_write_obj): Avoid signed warning.
1608         Make variable const to support -Wwrite-strings.
1609
1610         * io/unix.c (fd_alloc, mmap_open, mmap_sfree, mem_sfree,
1611         mem_truncate): Mark argument as unused.
1612
1613         * io/unit.c (get_unit): Mark argument as unused.
1614         (init_units): Avoid warning about signed comparision.
1615
1616         * io/transfer.c (next_record_r): Remove unused parameter.
1617         (next_record_w): Remove unused parameter.
1618         (next_record): Change callers.
1619         (iolength_transfer): Mark arguments as unused.
1620
1621         * io/open.c: Add initializer.
1622
1623         * io/list_read.c (read_character): Mark argument as unused.
1624         (nml_match_name): Add const to make compile with -Wwrite-strings.
1625
1626         * io/format.c: Add initializer.
1627
1628 2005-05-15  Andreas Jaeger  <aj@suse.de>
1629
1630         * m4/eoshift1.m4: Initialize variables to avoid warnings.
1631         * m4/eoshift3.m4: Initialize variables to avoid warnings.
1632         * generated/eoshift1_4.c, generated/eoshift1_8.c,
1633         generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerated.
1634
1635         * intrinsics/spread_generic.c (spread): Initialize variables to
1636         avoid warnings.
1637
1638         * intrinsics/eoshift0.c (eoshift0): Initialize variables to avoid
1639         warnings.
1640         * intrinsics/eoshift2.c (eoshift2): Initialize variables to avoid
1641         warnings.
1642
1643         * io/list_read.c (nml_get_obj_data): Initialize variables to avoid
1644         warnings.
1645
1646         * intrinsics/pack_generic.c (pack): Remove unneeded calculation.
1647
1648         * m4/matmull.m4 (matmul_): Remove unneeded calculations, fix
1649         pointer cast to avoid warning.
1650         * generated/matmul_l4.c: Regenerated.
1651         * generated/matmul_l8.c: Regenerated.
1652
1653         * Makefile.am: Remove AM_CFLAGS here.
1654         * configure.ac: Define AM_CFLAGS and AM_FCFLAGS so that warnings
1655         are set.  Set additionally -Wstrict-prototypes for CFLAGS.
1656         * Makefile.in: Regenerated.
1657         * aclocal.m4: Regenerated.
1658         * configure: Regenerated.
1659
1660         * intrinsics/system_clock.c (system_clock_4, system_clock_8): Add
1661         missing returns, reformat a bit.
1662
1663         * io/write.c (nml_write_obj): Use %d again - and cast to int,
1664         st_sprintf does not handle %ld.
1665
1666         * io/unit.c (is_internal_unit): Add void as parameter list.
1667
1668         * io/transfer.c: Move prototype declarations before the functions.
1669
1670         * runtime/normalize.c (almostone_r4, almostone_r8): Fix parameter
1671         list.
1672
1673         * intrinsics/random.c (KISS_DEFAULT_SEED): Remove extra semicolon.
1674
1675         * io/transfer.c: Do not use empty initializers for global objects.
1676         Add missing initializers.
1677
1678         * io/lock.c: Do not use empty initializers for global objects.
1679
1680         * io/close.c: Add missing initializers.
1681
1682         * runtime/environ.c: Add missing initializers. Do not use empty
1683         initializers for global object.
1684         (init_string): Mark argument as unused.
1685
1686         * runtime/main.c (cleanup): Fix parameter list.
1687
1688         * io/io.h: Fix parameter lists.
1689
1690         * m4/transpose.m4, m4/matmul.m4: Fix pointer cast to avoid
1691         warning.
1692
1693         * generated/transpose_c4.c, generated/transpose_c8.c,
1694         generated/transpose_i4.c, generated/transpose_i8.c,
1695         generated/matmul_c4.c, generated/matmul_c8.c,
1696         generated/matmul_i4.c, generated/matmul_i8.c,
1697         generated/matmul_r4.c, generated/matmul_r8.c: Regenerated.
1698
1699         * io/write.c (nml_write_obj): Fix 64-bit problem.
1700
1701         * io/list_read.c (nml_get_obj_data): Add missing braces around
1702         initializer to avoid warnings.
1703
1704         * intrinsics/etime.c (etime_sub): Remove unused variable.
1705
1706         * intrinsics/chdir.c, intrinsics/getlog.c, intrinsics/link.c,
1707         intrinsics/symlnk.c, intrinsics/perror.c: Include <string.h> for
1708         prototypes.
1709
1710         * runtime/string.c (compare0): Remove unused variable.
1711         * io/unit.c (init_units): Remove unused variables.
1712         * intrinsics/getcwd.c (getcwd_i4_sub): Remove unused variable.
1713         * intrinsics/unlink.c (unlink_i4_sub): Remove unused variable.
1714         * intrinsics/stat.c (stat_i4_sub, fstat_i8_sub, fstat_i4_sub,
1715         stat_i8_sub): Remove unused variable.
1716
1717 2005-05-12  Thomas Koenig  <Thomas.Koenig@online.de>
1718
1719         PR libfortran/21324
1720         * runtime/memory.c:  Don't define GFC_CLEAR_MEMORY (it's a
1721         performance hog).
1722         * io/open.c (new_unit): Zero freshly allocated memory for
1723         unit structure.
1724         * io/unit.c (init_units):  Zero freshly allocated memory for
1725         STDIN, STDOUT and STDERR.
1726         * io/unix.c (open_internal):  Zero freshly allocated memory
1727         for unix_stream.
1728         (fd_to_stream):  Likewise.
1729
1730 2005-05-11  Bud Davis  <bdavis@gfortran.org>
1731
1732         PR fortran/19478
1733         * io/unix.c (fd_truncate): update positions when ftruncate
1734         fails (like writing to /dev/null).
1735
1736 2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1737
1738         PR libfortran/21471
1739         * open.c (new_unit): Take care of the case where POSITION_APPEND
1740         is specified (sseek to the end, and set u>-endfile).
1741
1742 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1743
1744         PR fortran/20178
1745         * Makefile.am (gfor_specific_src): Add 'intrinsics/f2c_intrinsics.F90'
1746         to dependencies.
1747         * Makefile.in: Regenerate.
1748         * intrinsics/f2c_specific.F90: New file.
1749
1750 2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1751
1752         PR libfortran/20788
1753         * io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating
1754         we don't we to mmap this stream. Use fd_open instead of mmap_open
1755         in that case.
1756         (open_external): Call fd_to_stream with avoid_mmap = 0.
1757         (input_stream): Call fd_to_stream with avoid_mmap = 1.
1758         (output_stream): Likewise.
1759         (error_stream): Likewise.
1760
1761 2005-05-09  Mike Stump  <mrs@apple.com>
1762
1763         * configure: Regenerate.
1764
1765 2005-05-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1766
1767         PR libfortran/19155
1768         * io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
1769         non-blank characters of a real number.
1770
1771 2005-05-04  Thomas Koenig  <Thomas.Koenig@online.de>
1772
1773         PR libfortran/21354
1774         * m4/cshift1.m4: Change dimension of auxiliary arrays from
1775         GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
1776         * m4/eoshift1.m4: Likewise.
1777         * m4/eoshift3.m4: Likewise.
1778         * m4/ifunction.m4: Likewise.
1779         * m4/in_pack.m4: Likewise.
1780         * m4/in_unpack.m4: Likewise.
1781         * intrinsics/cshift0.c: Likewise.
1782         * intrinsics/eoshift0.c: Likewise.
1783         * intrinsics/eoshift2.c: Likewise.
1784         * intrinsics/random.c: Likewise.
1785         * intrinsics/spread_generic.c: Likewise.
1786         * intrinsics/stat.c: Likewise.
1787         * generated/all_l4.c: Regenerated.
1788         * generated/all_l8.c: Regenerated.
1789         * generated/any_l4.c: Regenerated.
1790         * generated/any_l8.c: Regenerated.
1791         * generated/count_4_l4.c: Regenerated.
1792         * generated/count_4_l8.c: Regenerated.
1793         * generated/count_8_l4.c: Regenerated.
1794         * generated/count_8_l8.c: Regenerated.
1795         * generated/cshift1_4.c: Regenerated.
1796         * generated/cshift1_8.c: Regenerated.
1797         * generated/eoshift1_4.c: Regenerated.
1798         * generated/eoshift1_8.c: Regenerated.
1799         * generated/eoshift3_4.c: Regenerated.
1800         * generated/eoshift3_8.c: Regenerated.
1801         * generated/in_pack_i4.c: Regenerated.
1802         * generated/in_pack_i8.c: Regenerated.
1803         * generated/in_unpack_i4.c: Regenerated.
1804         * generated/in_unpack_i8.c: Regenerated.
1805         * generated/maxloc0_4_i4.c: Regenerated.
1806         * generated/maxloc0_4_i8.c: Regenerated.
1807         * generated/maxloc0_4_r4.c: Regenerated.
1808         * generated/maxloc0_4_r8.c: Regenerated.
1809         * generated/maxloc0_8_i4.c: Regenerated.
1810         * generated/maxloc0_8_i8.c: Regenerated.
1811         * generated/maxloc0_8_r4.c: Regenerated.
1812         * generated/maxloc0_8_r8.c: Regenerated.
1813         * generated/maxloc1_4_i4.c: Regenerated.
1814         * generated/maxloc1_4_i8.c: Regenerated.
1815         * generated/maxloc1_4_r4.c: Regenerated.
1816         * generated/maxloc1_4_r8.c: Regenerated.
1817         * generated/maxloc1_8_i4.c: Regenerated.
1818         * generated/maxloc1_8_i8.c: Regenerated.
1819         * generated/maxloc1_8_r4.c: Regenerated.
1820         * generated/maxloc1_8_r8.c: Regenerated.
1821         * generated/maxval_i4.c: Regenerated.
1822         * generated/maxval_i8.c: Regenerated.
1823         * generated/maxval_r4.c: Regenerated.
1824         * generated/maxval_r8.c: Regenerated.
1825         * generated/minloc0_4_i4.c: Regenerated.
1826         * generated/minloc0_4_i8.c: Regenerated.
1827         * generated/minloc0_4_r4.c: Regenerated.
1828         * generated/minloc0_4_r8.c: Regenerated.
1829         * generated/minloc0_8_i4.c: Regenerated.
1830         * generated/minloc0_8_i8.c: Regenerated.
1831         * generated/minloc0_8_r4.c: Regenerated.
1832         * generated/minloc0_8_r8.c: Regenerated.
1833         * generated/minloc1_4_i4.c: Regenerated.
1834         * generated/minloc1_4_i8.c: Regenerated.
1835         * generated/minloc1_4_r4.c: Regenerated.
1836         * generated/minloc1_4_r8.c: Regenerated.
1837         * generated/minloc1_8_i4.c: Regenerated.
1838         * generated/minloc1_8_i8.c: Regenerated.
1839         * generated/minloc1_8_r4.c: Regenerated.
1840         * generated/minloc1_8_r8.c: Regenerated.
1841         * generated/minval_i4.c: Regenerated.
1842         * generated/minval_i8.c: Regenerated.
1843         * generated/minval_r4.c: Regenerated.
1844         * generated/minval_r8.c: Regenerated.
1845         * generated/product_c4.c: Regenerated.
1846         * generated/product_c8.c: Regenerated.
1847         * generated/product_i4.c: Regenerated.
1848         * generated/product_i8.c: Regenerated.
1849         * generated/product_r4.c: Regenerated.
1850         * generated/product_r8.c: Regenerated.
1851         * generated/sum_c4.c: Regenerated.
1852         * generated/sum_c8.c: Regenerated.
1853         * generated/sum_i4.c: Regenerated.
1854         * generated/sum_i8.c: Regenerated.
1855         * generated/sum_r4.c: Regenerated.
1856         * generated/sum_r8.c: Regenerated.
1857
1858 2005-04-30  Thomas Koenig  <Thomas.Koenig@online.de>
1859
1860         PR libfortran/18958
1861         libgfortran.h:  Change typedef of index_type from size_t
1862         to ssize_t.
1863
1864 2005-04-30  Paul Thomas  <pault@gcc.gnu.org>
1865
1866         PR libfortran/18857
1867         * generated/matmul_r8.c: Remove incorrect assertions.
1868         * generated/matmul_c4.c: Regenerate
1869         * generated/matmul_c8.c: Regenerate
1870         * generated/matmul_i4.c: Regenerate
1871         * generated/matmul_i8.c: Regenerate
1872         * generated/matmul_r4.c: Regenerate
1873         * generated/matmul_r8.c: Regenerate
1874
1875 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1876
1877         * configure.ac: Check for ftruncate and chsize.
1878         * io/unix.c (fd_truncate): Provide chsize as alternative to
1879         ftruncate.
1880         * config.h.in: Regenerate.
1881         * configure: Regenerate.
1882
1883 2004-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1884
1885         * intrinsics/rename.c: Add missing #includes.
1886
1887 2004-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1888
1889         * AUTHORS, COPYING, INSTALL, NEWS, README: Remove.
1890
1891 2005-04-26  David Edelsohn  <edelsohn@gnu.org>
1892
1893         PR libfortran/20930
1894         * io/rewind.c (st_rewind): Flush the stream when resetting the mode
1895         from WRITING to READING.
1896
1897 2005-04-22  Paul Thomas  <pault@gcc.gnu.org>
1898             Jerry DeLisle  <jvdelisle@verizon.net>
1899
1900         * io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
1901         * io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
1902         call for ext_name.  These fix the bug reported by Jerry DeLisle to
1903         the fortran list and are based on his suggested fix.
1904
1905 2005-04-22  Thomas Koenig  <Thomas.Koenig@online.de>
1906
1907         PR libfortran/20074
1908         PR libfortran/20436
1909         PR libfortran/21108
1910         * m4/reshape.m4 (reshape_`'rtype_kind):  rs, rex:  New
1911         variables, to be used in calculation of return array sizes.
1912         Populate return array descriptor if ret->data is NULL.
1913         Fix condition for early return (it used to test something
1914         undefined if order was used).
1915         Remove duplicate check wether pad is used.
1916         * intrinsics/reshape_generic.c (reshape_generic): Likewise.
1917         Fix a few places where the wrong variables were set.
1918         * generated/reshape_i4.c: Regenerated.
1919         * generated/reshape_i8.c: Regenerated.
1920
1921 2005-04-18  Paul  Thomas <pault@gcc.gnu.org>
1922
1923         * io/list_read.c (nml_touch_nodes, nml_read_obj,
1924         nml_get_obj_data): Fix memory leaks in code for derived types.
1925
1926 2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1927
1928         PR libfortran/20950
1929         * io/inquire.c (inquire_via_unit): Check for the gfc_unit being
1930         NULL when setting ioparm.sequential.
1931
1932 2005-04-17  Thomas Koenig  <Thomas.Koenig@online.de>
1933
1934         PR libfortran/21075
1935         * m4/reshape.m4 (reshape_`'rtype_kind):  Change dimension
1936         of auxiliary arrays from GFC_MAX_DIMENSIONS - 1 to
1937         GFC_MAX_DIMENSIONS.
1938         * intrinsics/reshape_generic.c (reshape_generic):  Likewise.
1939         * generated/reshape_i4.c:  Regenerated.
1940         * generated/reshape_i8.c:  Regenerated.
1941
1942 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
1943
1944         * io/list_read.c (eat_separator): at_eol = 1 replaced
1945         (zapped at some time?).
1946
1947 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
1948
1949         PR libgfortran/12884
1950         PR libgfortran/17285
1951         PR libgfortran/18122
1952         PR libgfortran/18210
1953         PR libgfortran/18392
1954         PR libgfortran/18591
1955         PR libgfortran/18879
1956         * io/io.h (nml_ls): Declare.
1957         (namelist_info): Modify for arrays.
1958         * io/list_read.c (namelist_read): Reduced to call to new functions.
1959         (match_namelist_name): Simplified.
1960         (nml_query): Handles stdin queries ? and =?. New function.
1961         (nml_get_obj_data): Parses object name. New function.
1962         (touch_nml_nodes): Marks objects for read. New function.
1963         (untouch_nml_nodes): Resets objects. New function.
1964         (parse_qualifier): Parses and checks qualifiers. New function
1965         (nml_read_object): Reads and stores object data. New function.
1966         (eat_separator): No new_record on '/' in namelist.
1967         (finish_separator): No new_record on '/' in namelist.
1968         (read_logical): Error return for namelist.
1969         (read_integer): Error return for namelist.
1970         (read_complex): Error return for namelist.
1971         (read_real): Error return for namelist.
1972         * io/lock.c (library_end): Free extended namelist_info types.
1973         * io/transfer.c (st_set_nml_var): Modified for arrays.
1974         (st_set_nml_var_dim): Dimension descriptors. New function.
1975         * io/write.c (namelist_write): Reduced to call to new functions.
1976         (nml_write_obj): Writes output for object. New function.
1977         (write_integer): Suppress leading blanks for repeat counts.
1978         (write_int): Suppress leading blanks for repeat counts.
1979         (write_float): Suppress leading blanks for repeat counts.
1980         (output_float): Suppress leading blanks for repeat counts.
1981
1982 2005-04-15  Thomas Koenig  <Thomas.Koenig@online.de>
1983
1984         PR libfortran/18495
1985         * intrinsics/spread_generic.c (spread):  Remove const from
1986         return array descriptor.
1987         New variables: rrank (rank of return array),  rs (for
1988         calculating the size of the return array), srank (rank
1989         of the source array).
1990         Generate runtime error if the dim= argument is larger than
1991         the rank of the return array.
1992         Generate runtime error if the needed rank of the return
1993         array is larger than 7.
1994         If ret->data is null, populate the return array descriptor
1995         and initialize the variables for the actual operation.
1996         Otherwise, set ret->dim[0].stride to one if it is zero.
1997         Change second, independent use of variable dim to srank.
1998
1999 2005-04-12  Mike Stump  <mrs@apple.com>
2000
2001         * configure: Regenerate.
2002
2003 2005-04-13  Thomas Koenig  <Thomas.Koenig@online.de>
2004
2005         PR libfortran/19106
2006         * m4/iforeach.c (name`'rtype_qual`_'atype_code):  Add TODO
2007         that setting correct strides is a front end job.
2008         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
2009         a lowest stride of 0, adjust to 1.
2010         * m4/ifunction.c (name`'rtype_qual`_'atype_code):  Add TODO
2011         that setting correct strides is a front end job.
2012         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
2013         a lowest stride of 0, adjust to 1.
2014         * maxloc0_4_i4.c: Regenerated
2015         * maxloc0_4_i8.c: Regenerated
2016         * maxloc0_4_r4.c: Regenerated
2017         * maxloc0_4_r8.c: Regenerated
2018         * maxloc0_8_i4.c: Regenerated
2019         * maxloc0_8_i8.c: Regenerated
2020         * maxloc0_8_r4.c: Regenerated
2021         * maxloc0_8_r8.c: Regenerated
2022         * maxloc1_4_i4.c: Regenerated
2023         * maxloc1_4_i8.c: Regenerated
2024         * maxloc1_4_r4.c: Regenerated
2025         * maxloc1_4_r8.c: Regenerated
2026         * maxloc1_8_i4.c: Regenerated
2027         * maxloc1_8_i8.c: Regenerated
2028         * maxloc1_8_r4.c: Regenerated
2029         * maxloc1_8_r8.c: Regenerated
2030         * maxval_i4.c: Regenerated
2031         * maxval_i8.c: Regenerated
2032         * maxval_r4.c: Regenerated
2033         * maxval_r8.c: Regenerated
2034         * minloc0_4_i4.c: Regenerated
2035         * minloc0_4_i8.c: Regenerated
2036         * minloc0_4_r4.c: Regenerated
2037         * minloc0_4_r8.c: Regenerated
2038         * minloc0_8_i4.c: Regenerated
2039         * minloc0_8_i8.c: Regenerated
2040         * minloc0_8_r4.c: Regenerated
2041         * minloc0_8_r8.c: Regenerated
2042         * minloc1_4_i4.c: Regenerated
2043         * minloc1_4_i8.c: Regenerated
2044         * minloc1_4_r4.c: Regenerated
2045         * minloc1_4_r8.c: Regenerated
2046         * minloc1_8_i4.c: Regenerated
2047         * minloc1_8_i8.c: Regenerated
2048         * minloc1_8_r4.c: Regenerated
2049         * minloc1_8_r8.c: Regenerated
2050         * minval_i4.c: Regenerated
2051         * minval_i8.c: Regenerated
2052         * minval_r4.c: Regenerated
2053         * minval_r8.c: Regenerated
2054         * product_c4.c: Regenerated
2055         * product_c8.c: Regenerated
2056         * product_i4.c: Regenerated
2057         * product_i8.c: Regenerated
2058         * product_r4.c: Regenerated
2059         * product_r8.c: Regenerated
2060         * sum_c4.c: Regenerated
2061         * sum_c8.c: Regenerated
2062         * sum_i4.c: Regenerated
2063         * sum_i8.c: Regenerated
2064         * sum_r4.c: Regenerated
2065         * sum_r8.c: Regenerated
2066
2067 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2068
2069         PR libfortran/20788
2070         * runtime/environ.c (init_unsigned_integer): Function for
2071         environment variables we want to be positive.
2072         (init_integer): Function to allow negative environment
2073         variables (e.g. for GFORTRAN_STDIN_UNIT).
2074
2075 2005-04-10  Thomas Koenig <Thomas.Koenig@online.de>
2076
2077         PR libfortran/17992
2078         PR libfortran/19568
2079         PR libfortran/19595
2080         PR libfortran/20005
2081         PR libfortran/20092
2082         PR libfortran/20131
2083         PR libfortran/20661
2084         PR libfortran/20744
2085         * io/transfer.c (top level): eor_condition: New static variable.
2086         (read_sf): Remove unnecessary zeroing of buffer (there is enough
2087         information in its length).
2088         Return a string of length 0 (to be padded by caller) if EOR was
2089         seen previously.
2090         Remove erroneous special casing of EOR for standard input.
2091         Set eor_condition for non-advancing I/O if an end of line was
2092         detected.
2093         Increment ioparm.size if necessary.
2094         (formatted_transfer):  Skip the function if there is an EOR condition.
2095         (data_transfer_init):  Initialize eor_condition to zero (false).
2096         (next_record_r):  Clear sf_seen_eor if a \n has been seen already.
2097         (finalize_transfer):  If there is an EOR condition, raise the error.
2098
2099 2005-04-09  Bud Davis  <bdavis@gfortran.org>
2100             Steven G. Kargl <kargls@comcast.net>
2101
2102         PR fortran/19872
2103         * io/transfer.c (data_transfer_init): truncate an existing
2104         file on the first write.
2105
2106 2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
2107
2108         PR libfortran/19106
2109         PR libfortran/19014
2110         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
2111         If retarray->data is NULL (i.e. the front end does not
2112         know the rank and dimenson of the array), fill in its
2113         properties and allocate memory.
2114         Change the assertions about rank and dimension of retarray into
2115         runtime errors and only check them for retarray->data != NULL.
2116         Do the same for correcting the stride from 0 to 1 in retarray.
2117         (`m'name`'rtype_qual`_'atype_code): Likewise.
2118         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
2119         Change assertion about rank of array to runtime error.
2120         (`m'name`'rtype_qual`_'atype_code): Likewise.
2121         * generated/all_l4.c: Regenerated.
2122         * generated/all_l8.c: Regenerated.
2123         * generated/any_l4.c: Regenerated.
2124         * generated/any_l8.c: Regenerated.
2125         * generated/count_4_l4.c: Regenerated.
2126         * generated/count_4_l8.c: Regenerated.
2127         * generated/count_8_l4.c: Regenerated.
2128         * generated/count_8_l8.c: Regenerated.
2129         * generated/maxloc0_4_i4.c: Regenerated.
2130         * generated/maxloc0_4_i8.c: Regenerated.
2131         * generated/maxloc0_4_r4.c: Regenerated.
2132         * generated/maxloc0_4_r8.c: Regenerated.
2133         * generated/maxloc0_8_i4.c: Regenerated.
2134         * generated/maxloc0_8_i8.c: Regenerated.
2135         * generated/maxloc0_8_r4.c: Regenerated.
2136         * generated/maxloc0_8_r8.c: Regenerated.
2137         * generated/maxloc1_4_i4.c: Regenerated.
2138         * generated/maxloc1_4_i8.c: Regenerated.
2139         * generated/maxloc1_4_r4.c: Regenerated.
2140         * generated/maxloc1_4_r8.c: Regenerated.
2141         * generated/maxloc1_8_i4.c: Regenerated.
2142         * generated/maxloc1_8_i8.c: Regenerated.
2143         * generated/maxloc1_8_r4.c: Regenerated.
2144         * generated/maxloc1_8_r8.c: Regenerated.
2145         * generated/maxval_i4.c: Regenerated.
2146         * generated/maxval_i8.c: Regenerated.
2147         * generated/maxval_r4.c: Regenerated.
2148         * generated/maxval_r8.c: Regenerated.
2149         * generated/minloc0_4_i4.c: Regenerated.
2150         * generated/minloc0_4_i8.c: Regenerated.
2151         * generated/minloc0_4_r4.c: Regenerated.
2152         * generated/minloc0_4_r8.c: Regenerated.
2153         * generated/minloc0_8_i4.c: Regenerated.
2154         * generated/minloc0_8_i8.c: Regenerated.
2155         * generated/minloc0_8_r4.c: Regenerated.
2156         * generated/minloc0_8_r8.c: Regenerated.
2157         * generated/minloc1_4_i4.c: Regenerated.
2158         * generated/minloc1_4_i8.c: Regenerated.
2159         * generated/minloc1_4_r4.c: Regenerated.
2160         * generated/minloc1_4_r8.c: Regenerated.
2161         * generated/minloc1_8_i4.c: Regenerated.
2162         * generated/minloc1_8_i8.c: Regenerated.
2163         * generated/minloc1_8_r4.c: Regenerated.
2164         * generated/minloc1_8_r8.c: Regenerated.
2165         * generated/minval_i4.c: Regenerated.
2166         * generated/minval_i8.c: Regenerated.
2167         * generated/minval_r4.c: Regenerated.
2168         * generated/minval_r8.c: Regenerated.
2169         * generated/product_c4.c: Regenerated.
2170         * generated/product_c8.c: Regenerated.
2171         * generated/product_i4.c: Regenerated.
2172         * generated/product_i8.c: Regenerated.
2173         * generated/product_r4.c: Regenerated.
2174         * generated/product_r8.c: Regenerated.
2175         * generated/sum_c4.c: Regenerated.
2176         * generated/sum_c8.c: Regenerated.
2177         * generated/sum_i4.c: Regenerated.
2178         * generated/sum_i8.c: Regenerated.
2179         * generated/sum_r4.c: Regenerated.
2180         * generated/sum_r8.c: Regenerated.
2181
2182 2005-04-09  Thomas Koenig <Thomas.Koenig@online.de>
2183
2184         PR libfortran/20163
2185         * runtime/string.c (compare0): Use fstrlen() to
2186         strip trailing blanks from option string.
2187
2188 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
2189
2190         PR fortran/13257
2191         * format.c (parse_format_list): Allow an optional comma
2192         between descriptors.
2193
2194 2005-04-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2195
2196         * io/backspace.c (unformatted_backspace): Do not dereference
2197         the pointer to the stream.
2198
2199 2005-04-07  Andrew Pinski  <pinskia@physics.uc.edu>
2200
2201         PR libfortran/20766
2202         * configure.ac (extra_ldflags_libgfortran): Set for *-darwin* to
2203         "-Wl,-single_module".
2204         * configure: Regenerate.
2205         * Makefile.am (libgfortran_la_LDFLAGS): Add extra_ldflags_libgfortran.
2206         * Makefile.in: Regenerate.
2207
2208 2005-04-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2209
2210         PR libfortran/20755
2211         * write.c (write_float): A G edit descriptor may locally change
2212         the scale factor, but it needs to be restored afterwards.
2213
2214 2005-04-03  Dale Ranta  <dir@lanl.gov>
2215             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2216
2217         PR libfortran/20068
2218         PR libfortran/20125
2219         PR libfortran/20156
2220         PR libfortran/20471
2221         * io/backspace.c (unformatted_backspace): Fix error in arithmetic.
2222         (st_backspace): When in WRITING mode, we flush and falling back
2223         into READING mode. In all cases, correctly position the stream.
2224
2225 2005-03-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2226
2227         PR libfortran/20660
2228         * io/inquire.c (inquire_via_unit): Non-opened units should still be
2229         reported by an INQUIRE statement as existing.
2230         * io/transfer.c (data_transfer_init): Never accept negative units.
2231
2232 2005-03-29  Dale Ranta  <dir@lanl.gov>
2233             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2234
2235         PR libfortran/20163
2236         * io/open.c (st_open): call library_end() before returning even if
2237         an error arises.
2238
2239 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2240
2241         PR libfortran/19678
2242         * list_read.c (next_char, eat_separator, finish_separator, read_real)
2243         (namelist_read): Add support for '\r' as well as '\n' as EOL
2244         character.
2245
2246         PR libfortran/19679
2247         * list_read.c (read_sf): Add a '\r' in a test to support DOS
2248         line-endings when line length is exceeded.
2249
2250 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2251
2252         PR libfortran/15332
2253         * io/format.c (parse_format_list): format node for colon edit
2254         descriptor needs a repeat counter set to 1.
2255
2256 2005-02-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2257
2258         * config.h.in: Regenerate.
2259
2260 2005-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2261
2262         PR libfortran/18025
2263         * write.c (output_float): Handling the "F0.d" format similarly as
2264         commercial compilers.
2265
2266 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2267
2268         * Makefile.am: Added new files.
2269         * Makefile.in: Regenerate.
2270         * aclocal.m4: Regenerate.
2271         * configure.ac: add checks for signal.h headers file, as well as
2272         following functions: chdir, strerror, getlogin, gethostname, kill,
2273         link, symlink, perror, sleep, time.
2274         * configure: Regenerate.
2275         * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
2276         intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
2277         intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
2278         intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
2279         implementend g77 intrinsics.
2280
2281 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
2282
2283         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2284         In all substitutions, leave gcc_version to be expanded by the Makefile.
2285         * aclocal.m4, configure: Regenerate.
2286         * Makefile.am: Set gcc_version.
2287         * Makefile.in: Regenerate.
2288
2289 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2290
2291         PR libfortran/20257
2292         * open.c (new_unit): set record length to max_offset rather than
2293           using a hard-coded limit (which was too low).
2294
2295 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2296
2297         PR libfortran/20480
2298         * write.c (output_float): special check when writing 0.0 with
2299           EN and ES formats.
2300
2301 2005-03-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2302
2303         PR libfortran/20124
2304         * write.c (output_float): Adds a nzero_real variable to store
2305         the number of leading zeros whatever the format width is. Corrects
2306         the rounding of numbers less than 10^(-width). Fixes typo in an
2307         error message. Updates copyright years
2308
2309 2005-02-27  Toon Moene  <toon@moene.indiv.nluug.nl>
2310
2311         * runtime/environ.c: Update copyright years.
2312
2313 2005-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2314
2315         * io/write.c: Update copyright years.
2316
2317 2005-02-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2318
2319         PR libfortran/20101
2320         * io/write.c (output_float): Added special check for value 0.0 in
2321         PE format.
2322
2323 2004-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2324
2325         * io/write.c (output_float): Fix typo in condition.
2326
2327 2005-02-25  Peter O'Gorman  <peter@pogma.com>
2328             Toon Moene  <toon@moene.indiv.nluug.nl>
2329
2330         PR libgfortran/17748
2331         * runtime/environ.c: Remove references to environ.
2332         (show_variables): remove GFORTRAN_UNBUFFERED_* and
2333         GFORTRAN_NAME_* because they require environ.
2334         (pattern_scan): Remove function.
2335
2336 2004-02-22  Paul Thomas <paulthomas2@wannado.fr>
2337             Bud Davis  <bdavis@gfortran.org>
2338
2339         * io/list_read.c (read_real): Handle separators properly
2340         in list directed read.
2341
2342 2004-02-21  Bud Davis  <bdavis@gfortran.org>
2343
2344         PR fortran/20086
2345         * io/transfer.c (write_constant_string): accept an 'h' as
2346         the start of a hollerith format string.
2347
2348 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2349
2350         PR libfortran/19302
2351         * intrinsics/c99_functions.c (nextafterf): Special-case infinite
2352         numbers.
2353
2354 2005-02-21  Steven G. Kargl  <kargls@comcast.net>
2355
2356         * io/write.c (output_float):  Typo in error meesage.
2357
2358 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
2359
2360         PR 20085
2361         * intrinsic/args.c (iargc): Off by 1.
2362
2363 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
2364
2365         *  intrinsic/date_and_time.c: Fix conformance problems.
2366
2367 2005-02-01  Paul Thomas <paulthomas2@wanadoo.fr>
2368
2369         PR libgfortran/19363
2370         PR libgfortran/19691
2371         * libgfortran.h (isfinite): Work around broken isfinite(x) in Cygwin.
2372
2373 2005-01-30  Bud Davis  <bdavis@gfortran.org>
2374
2375         PR fortran/19647
2376         * io/inquire.c (inquire_via_unit): Use correct variable for
2377         pad.
2378
2379 2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
2380
2381         PR libfortran/19595
2382         * io/transfer.c (data_transfer_init): eor requires advance="NO".
2383
2384 2005-01-25  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2385
2386         PR libfortran/19524
2387         * io/read.c (read_f): Don't free uninitialized pointer.
2388
2389 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
2390         Paul Brook  <paul@codesourcery.com>
2391
2392         PR fortran/19294
2393         * Makefile.am: Add transpose_c4.c and transpose_c8.c.
2394         * intrinsics/cshift0.c: Use separate optimized loops for complex types.
2395         * m4/transpose.m4: Include type letter in function name.
2396         * Makefile.in: Regenerate.
2397         * generated/transpose_*.c: Regenerate.
2398
2399 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
2400
2401         PR libfortran/19451
2402         * io/transfer.c (finalize_transfer):  Don't do anything if
2403         there is an error condition.
2404
2405 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
2406
2407         PR libgfortran/19052
2408         * libgfortran.h (options_t): Add stderr_unit.
2409         * io/io.h (error_stream): Declare.
2410         * io/open.c (new_unit): Do not terminate abnormally if opening
2411         file preconnected to stdin, stdout, or stderr.
2412         * io/unit.c (init_units): Initialize stderr_unit.
2413         * io/unix.c (error_stream): New function.
2414         * runtime/environ.c (GFORTRAN_STDERR_UNIT): New environment variable.
2415
2416 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
2417
2418         PR libfortran/18982
2419         * io/unix.c (regular_file):  No need to change flags->action
2420         if an error occurs.  Document this.
2421         No need to call stat() for STATUS_OLD, open() will
2422         fail anyway.
2423         For ACTION_UNSPECIFIED, try open for read-write, then for
2424         read-only if open fails with EACCES, then for write-only
2425         if that fails with EACCES again.
2426         * io/unix.c (open_external): Document changed behavior of
2427         regular_file.
2428
2429 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2430
2431         PR fortran/19194
2432         * io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
2433         use CHARACTER macro for definition of string valued paramters.
2434
2435 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
2436
2437         PR fortran/19314
2438         * io/inquire.c(inquire_via_unit): implement POSITION=.
2439         * io/transfer.c(next_record): update position for
2440         INQUIRE.
2441         * io/rewind.c(st_rewind): update position for
2442         INQUIRE.
2443
2444 2005-01-16  Bud Davis  <bdavis9659@comcast.net>
2445
2446         PR fortran/18778
2447         * io/transfer.c (us_read): no bytes available is not a
2448         runtime error.
2449
2450 2005-01-15  Bud Davis  <bdavis9659@comcast.net>
2451
2452         PR fortran/18983
2453         * io/transfer.c (st_write_done): only truncate when it
2454         is required.
2455
2456 2005-01-12  Toon Moene  <toon@moene.indiv.nluug.nl>
2457
2458         PR libfortran/19280
2459         c99_protos.h: License changed to GPL+exception.
2460         libgfortran.h: Ditto.
2461         intrinsics/abort.c: Ditto.
2462         intrinsics/args.c: Ditto.
2463         intrinsics/associated.c: Ditto.
2464         intrinsics/bessel.c: Ditto.
2465         intrinsics/c99_functions.c: Ditto.
2466         intrinsics/cpu_time.c: Ditto.
2467         intrinsics/cshift0.c: Ditto.
2468         intrinsics/date_and_time.c: Ditto.
2469         intrinsics/env.c: Ditto.
2470         intrinsics/eoshift0.c: Ditto.
2471         intrinsics/eoshift2.c: Ditto.
2472         intrinsics/erf.c: Ditto.
2473         intrinsics/etime.c: Ditto.
2474         intrinsics/exit.c: Ditto.
2475         intrinsics/flush.c: Ditto.
2476         intrinsics/fnum.c: Ditto.
2477         intrinsics/getXid.c: Ditto.
2478         intrinsics/getcwd.c: Ditto.
2479         intrinsics/ishftc.c: Ditto.
2480         intrinsics/mvbits.c: Ditto.
2481         intrinsics/pack_generic.c: Ditto.
2482         intrinsics/rand.c: Ditto.
2483         intrinsics/random.c: Ditto.
2484         intrinsics/reshape_generic.c: Ditto.
2485         intrinsics/reshape_packed.c: Ditto.
2486         intrinsics/size.c: Ditto.
2487         intrinsics/spread_generic.c: Ditto.
2488         intrinsics/stat.c: Ditto.
2489         intrinsics/string_intrinsics.c: Ditto.
2490         intrinsics/system.c: Ditto.
2491         intrinsics/system_clock.c: Ditto.
2492         intrinsics/transpose_generic.c: Ditto.
2493         intrinsics/umask.c: Ditto.
2494         intrinsics/unlink.c: Ditto.
2495         intrinsics/unpack_generic.c: Ditto.
2496         io/backspace.c: Ditto.
2497         io/close.c: Ditto.
2498         io/endfile.c: Ditto.
2499         io/format.c: Ditto.
2500         io/inquire.c: Ditto.
2501         io/io.h: Ditto.
2502         io/list_read.c: Ditto.
2503         io/lock.c: Ditto.
2504         io/open.c: Ditto.
2505         io/read.c: Ditto.
2506         io/rewind.c: Ditto.
2507         io/transfer.c: Ditto.
2508         io/unit.c: Ditto.
2509         io/unix.c: Ditto.
2510         io/write.c: Ditto.
2511         m4/all.m4: Ditto.
2512         m4/any.m4: Ditto.
2513         m4/cexp.m4: Ditto.
2514         m4/chyp.m4: Ditto.
2515         m4/count.m4: Ditto.
2516         m4/cshift1.m4: Ditto.
2517         m4/ctrig.m4: Ditto.
2518         m4/dotprod.m4: Ditto.
2519         m4/dotprodc.m4: Ditto.
2520         m4/dotprodl.m4: Ditto.
2521         m4/eoshift1.m4: Ditto.
2522         m4/eoshift3.m4: Ditto.
2523         m4/exponent.m4: Ditto.
2524         m4/fraction.m4: Ditto.
2525         m4/head.m4: Ditto.
2526         m4/iforeach.m4: Ditto.
2527         m4/ifunction.m4: Ditto.
2528         m4/in_pack.m4: Ditto.
2529         m4/in_unpack.m4: Ditto.
2530         m4/iparm.m4: Ditto.
2531         m4/matmul.m4: Ditto.
2532         m4/matmull.m4: Ditto.
2533         m4/maxloc0.m4: Ditto.
2534         m4/maxloc1.m4: Ditto.
2535         m4/maxval.m4: Ditto.
2536         m4/minloc0.m4: Ditto.
2537         m4/minloc1.m4: Ditto.
2538         m4/minval.m4: Ditto.
2539         m4/mtype.m4: Ditto.
2540         m4/nearest.m4: Ditto.
2541         m4/pow.m4: Ditto.
2542         m4/product.m4: Ditto.
2543         m4/reshape.m4: Ditto.
2544         m4/set_exponent.m4: Ditto.
2545         m4/shape.m4: Ditto.
2546         m4/specific.m4: Ditto.
2547         m4/specific2.m4: Ditto.
2548         m4/sum.m4: Ditto.
2549         m4/transpose.m4: Ditto.
2550         m4/types.m4: Ditto.
2551         runtime/environ.c: Ditto.
2552         runtime/error.c: Ditto.
2553         runtime/in_pack_generic.c: Ditto.
2554         runtime/in_unpack_generic.c: Ditto.
2555         runtime/main.c: Ditto.
2556         runtime/memory.c: Ditto.
2557         runtime/normalize.c: Ditto.
2558         runtime/pause.c: Ditto.
2559         runtime/select.c: Ditto.
2560         runtime/stop.c: Ditto.
2561         runtime/string.c: Ditto.
2562         generated/_abs_c4.f90: Regenerated.
2563         generated/_abs_c8.f90: Regenerated.
2564         generated/_abs_i4.f90: Regenerated.
2565         generated/_abs_i8.f90: Regenerated.
2566         generated/_abs_r4.f90: Regenerated.
2567         generated/_abs_r8.f90: Regenerated.
2568         generated/_acos_r4.f90: Regenerated.
2569         generated/_acos_r8.f90: Regenerated.
2570         generated/_aint_r4.f90: Regenerated.
2571         generated/_aint_r8.f90: Regenerated.
2572         generated/_anint_r4.f90: Regenerated.
2573         generated/_anint_r8.f90: Regenerated.
2574         generated/_asin_r4.f90: Regenerated.
2575         generated/_asin_r8.f90: Regenerated.
2576         generated/_atan2_r4.f90: Regenerated.
2577         generated/_atan2_r8.f90: Regenerated.
2578         generated/_atan_r4.f90: Regenerated.
2579         generated/_atan_r8.f90: Regenerated.
2580         generated/_conjg_c4.f90: Regenerated.
2581         generated/_conjg_c8.f90: Regenerated.
2582         generated/_cos_c4.f90: Regenerated.
2583         generated/_cos_c8.f90: Regenerated.
2584         generated/_cos_r4.f90: Regenerated.
2585         generated/_cos_r8.f90: Regenerated.
2586         generated/_cosh_r4.f90: Regenerated.
2587         generated/_cosh_r8.f90: Regenerated.
2588         generated/_dim_i4.f90: Regenerated.
2589         generated/_dim_i8.f90: Regenerated.
2590         generated/_dim_r4.f90: Regenerated.
2591         generated/_dim_r8.f90: Regenerated.
2592         generated/_exp_c4.f90: Regenerated.
2593         generated/_exp_c8.f90: Regenerated.
2594         generated/_exp_r4.f90: Regenerated.
2595         generated/_exp_r8.f90: Regenerated.
2596         generated/_log10_r4.f90: Regenerated.
2597         generated/_log10_r8.f90: Regenerated.
2598         generated/_log_c4.f90: Regenerated.
2599         generated/_log_c8.f90: Regenerated.
2600         generated/_log_r4.f90: Regenerated.
2601         generated/_log_r8.f90: Regenerated.
2602         generated/_mod_i4.f90: Regenerated.
2603         generated/_mod_i8.f90: Regenerated.
2604         generated/_mod_r4.f90: Regenerated.
2605         generated/_mod_r8.f90: Regenerated.
2606         generated/_sign_i4.f90: Regenerated.
2607         generated/_sign_i8.f90: Regenerated.
2608         generated/_sign_r4.f90: Regenerated.
2609         generated/_sign_r8.f90: Regenerated.
2610         generated/_sin_c4.f90: Regenerated.
2611         generated/_sin_c8.f90: Regenerated.
2612         generated/_sin_r4.f90: Regenerated.
2613         generated/_sin_r8.f90: Regenerated.
2614         generated/_sinh_r4.f90: Regenerated.
2615         generated/_sinh_r8.f90: Regenerated.
2616         generated/_sqrt_c4.f90: Regenerated.
2617         generated/_sqrt_c8.f90: Regenerated.
2618         generated/_sqrt_r4.f90: Regenerated.
2619         generated/_sqrt_r8.f90: Regenerated.
2620         generated/_tan_r4.f90: Regenerated.
2621         generated/_tan_r8.f90: Regenerated.
2622         generated/_tanh_r4.f90: Regenerated.
2623         generated/_tanh_r8.f90: Regenerated.
2624         generated/all_l4.c: Regenerated.
2625         generated/all_l8.c: Regenerated.
2626         generated/any_l4.c: Regenerated.
2627         generated/any_l8.c: Regenerated.
2628         generated/count_4_l4.c: Regenerated.
2629         generated/count_4_l8.c: Regenerated.
2630         generated/count_8_l4.c: Regenerated.
2631         generated/count_8_l8.c: Regenerated.
2632         generated/cshift1_4.c: Regenerated.
2633         generated/cshift1_8.c: Regenerated.
2634         generated/dotprod_c4.c: Regenerated.
2635         generated/dotprod_c8.c: Regenerated.
2636         generated/dotprod_i4.c: Regenerated.
2637         generated/dotprod_i8.c: Regenerated.
2638         generated/dotprod_l4.c: Regenerated.
2639         generated/dotprod_l8.c: Regenerated.
2640         generated/dotprod_r4.c: Regenerated.
2641         generated/dotprod_r8.c: Regenerated.
2642         generated/eoshift1_4.c: Regenerated.
2643         generated/eoshift1_8.c: Regenerated.
2644         generated/eoshift3_4.c: Regenerated.
2645         generated/eoshift3_8.c: Regenerated.
2646         generated/exp_c4.c: Regenerated.
2647         generated/exp_c8.c: Regenerated.
2648         generated/exponent_r4.c: Regenerated.
2649         generated/exponent_r8.c: Regenerated.
2650         generated/fraction_r4.c: Regenerated.
2651         generated/fraction_r8.c: Regenerated.
2652         generated/hyp_c4.c: Regenerated.
2653         generated/hyp_c8.c: Regenerated.
2654         generated/in_pack_i4.c: Regenerated.
2655         generated/in_pack_i8.c: Regenerated.
2656         generated/in_unpack_i4.c: Regenerated.
2657         generated/in_unpack_i8.c: Regenerated.
2658         generated/matmul_c4.c: Regenerated.
2659         generated/matmul_c8.c: Regenerated.
2660         generated/matmul_i4.c: Regenerated.
2661         generated/matmul_i8.c: Regenerated.
2662         generated/matmul_l4.c: Regenerated.
2663         generated/matmul_l8.c: Regenerated.
2664         generated/matmul_r4.c: Regenerated.
2665         generated/matmul_r8.c: Regenerated.
2666         generated/maxloc0_4_i4.c: Regenerated.
2667         generated/maxloc0_4_i8.c: Regenerated.
2668         generated/maxloc0_4_r4.c: Regenerated.
2669         generated/maxloc0_4_r8.c: Regenerated.
2670         generated/maxloc0_8_i4.c: Regenerated.
2671         generated/maxloc0_8_i8.c: Regenerated.
2672         generated/maxloc0_8_r4.c: Regenerated.
2673         generated/maxloc0_8_r8.c: Regenerated.
2674         generated/maxloc1_4_i4.c: Regenerated.
2675         generated/maxloc1_4_i8.c: Regenerated.
2676         generated/maxloc1_4_r4.c: Regenerated.
2677         generated/maxloc1_4_r8.c: Regenerated.
2678         generated/maxloc1_8_i4.c: Regenerated.
2679         generated/maxloc1_8_i8.c: Regenerated.
2680         generated/maxloc1_8_r4.c: Regenerated.
2681         generated/maxloc1_8_r8.c: Regenerated.
2682         generated/maxval_i4.c: Regenerated.
2683         generated/maxval_i8.c: Regenerated.
2684         generated/maxval_r4.c: Regenerated.
2685         generated/maxval_r8.c: Regenerated.
2686         generated/minloc0_4_i4.c: Regenerated.
2687         generated/minloc0_4_i8.c: Regenerated.
2688         generated/minloc0_4_r4.c: Regenerated.
2689         generated/minloc0_4_r8.c: Regenerated.
2690         generated/minloc0_8_i4.c: Regenerated.
2691         generated/minloc0_8_i8.c: Regenerated.
2692         generated/minloc0_8_r4.c: Regenerated.
2693         generated/minloc0_8_r8.c: Regenerated.
2694         generated/minloc1_4_i4.c: Regenerated.
2695         generated/minloc1_4_i8.c: Regenerated.
2696         generated/minloc1_4_r4.c: Regenerated.
2697         generated/minloc1_4_r8.c: Regenerated.
2698         generated/minloc1_8_i4.c: Regenerated.
2699         generated/minloc1_8_i8.c: Regenerated.
2700         generated/minloc1_8_r4.c: Regenerated.
2701         generated/minloc1_8_r8.c: Regenerated.
2702         generated/minval_i4.c: Regenerated.
2703         generated/minval_i8.c: Regenerated.
2704         generated/minval_r4.c: Regenerated.
2705         generated/minval_r8.c: Regenerated.
2706         generated/nearest_r4.c: Regenerated.
2707         generated/nearest_r8.c: Regenerated.
2708         generated/pow_c4_i4.c: Regenerated.
2709         generated/pow_c4_i8.c: Regenerated.
2710         generated/pow_c8_i4.c: Regenerated.
2711         generated/pow_c8_i8.c: Regenerated.
2712         generated/pow_i4_i4.c: Regenerated.
2713         generated/pow_i4_i8.c: Regenerated.
2714         generated/pow_i8_i4.c: Regenerated.
2715         generated/pow_i8_i8.c: Regenerated.
2716         generated/pow_r4_i4.c: Regenerated.
2717         generated/pow_r4_i8.c: Regenerated.
2718         generated/pow_r8_i4.c: Regenerated.
2719         generated/pow_r8_i8.c: Regenerated.
2720         generated/product_c4.c: Regenerated.
2721         generated/product_c8.c: Regenerated.
2722         generated/product_i4.c: Regenerated.
2723         generated/product_i8.c: Regenerated.
2724         generated/product_r4.c: Regenerated.
2725         generated/product_r8.c: Regenerated.
2726         generated/reshape_i4.c: Regenerated.
2727         generated/reshape_i8.c: Regenerated.
2728         generated/set_exponent_r4.c: Regenerated.
2729         generated/set_exponent_r8.c: Regenerated.
2730         generated/shape_i4.c: Regenerated.
2731         generated/shape_i8.c: Regenerated.
2732         generated/sum_c4.c: Regenerated.
2733         generated/sum_c8.c: Regenerated.
2734         generated/sum_i4.c: Regenerated.
2735         generated/sum_i8.c: Regenerated.
2736         generated/sum_r4.c: Regenerated.
2737         generated/sum_r8.c: Regenerated.
2738         generated/transpose_i4.c: Regenerated.
2739         generated/transpose_i8.c: Regenerated.
2740         generated/trig_c4.c: Regenerated.
2741         generated/trig_c8.c: Regenerated.
2742
2743 2005-01-07  Bud Davis  <bdavis9659@comcast.net>
2744
2745         PR fortran/18398
2746         * transfer.c (next_record_r): always skip the
2747         eol search if it was found during sf_read.
2748
2749 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2750
2751         * libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
2752         Define.
2753         * intrinsics/ishftc.c: Update copyright years.
2754         (ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
2755         * intrinsics/mvbits.c: Correct non-ASCII character in my name.
2756         Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.
2757
2758 2004-12-23  Bud Davis  <bdavis9659@comcast.net>
2759
2760         PR fortran/19071
2761         * io/tranfer.c (formatted_transfer): moved check for
2762         format reversion inside the processing loop.
2763
2764 2004-12-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2765
2766         PR libfortran/19074
2767         * libgfortran.h (itoa): Rename to gfc_itoa.
2768         * io/write.c (itoa): Same.
2769         * runtime/environ.c (itoa): Same.
2770         * runtime/error.c (itoa): Same.
2771
2772 2004-12-15  Bud Davis  <bdavis9659@comcast.net>
2773             Steven G. Kargl  <kargls@comcast.net>
2774
2775         PR fortran/17597
2776         * io/list_read.c (read_real): do not push back a comma when
2777         it delimits a real value without a decimal point
2778
2779 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
2780
2781         * libgfortran/io/transfer.c (us_read): Use memcpy/memset
2782         instead of assignment to fill unaligned buffer.
2783         (us_write): Ditto.
2784         (next_record_w): Ditto.
2785
2786 2004-12-14  Steven G. Kargl  <kargls@comcast.net>
2787
2788         PR libfortran/18966
2789         * gfortran.h: typedef GFC_INTEGER_1 and GFC_INTEGER_2
2790         * intrinsics/cshift0.c (cshift0_1,cshift0_2): New functions.
2791         * intrinsics/eoshift0.c (eoshift0_1,eoshift0_2): New functions.
2792         * intrinsics/eoshift2.c (eoshift2_1,eoshift2_2): New functions.
2793
2794 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
2795
2796         * io/transfer.c (read_sf): Change bitwise "and" to logical "and".
2797
2798 2004-12-12  Richard Henderson  <rth@redhat.com>
2799
2800         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
2801         intrinsics/pack_generic.c, intrinsics/reshape_generic.c,
2802         intrinsics/spread_generic.c, intrinsics/transpose_generic.c,
2803         intrinsics/unpack_generic.c, m4/cshift1.m4, m4/dotprod.m4,
2804         m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
2805         m4/iforeach.m4, m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4,
2806         m4/reshape.m4, m4/shape.m4, m4/transpose.m4: Use standard prefix
2807         instead of "__".
2808         * generated/*: Rebuild.
2809
2810 2004-12-12  Richard Henderson  <rth@redhat.com>
2811
2812         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
2813         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
2814         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
2815         * configure.ac: Use them.
2816         * configure, config.h.in, aclocal.m4: Rebuild.
2817         * libgfortran.h (prefix): Remove.
2818         (PREFIX, IPREFIX): New.
2819         (sym_rename, sym_rename1, sym_rename2): New.
2820         (internal_proto, export_proto, export_proto_np): New.
2821         (iexport_proto, iexport): New.
2822         (iexport_data_proto, iexport_data): New.
2823         * intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
2824         intrinsics/cpu_time.c, intrinsics/cshift0.c,
2825         intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
2826         intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
2827         intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
2828         intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
2829         intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
2830         intrinsics/reshape_generic.c, intrinsics/size.c,
2831         intrinsics/spread_generic.c, intrinsics/stat.c,
2832         intrinsics/string_intrinsics.c, intrinsics/system.c,
2833         intrinsics/system_clock.c, intrinsics/transpose_generic.c,
2834         intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
2835         io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
2836         io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
2837         m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
2838         m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
2839         m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
2840         m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
2841         m4/transpose.m4, runtime/environ.c, runtime/error.c,
2842         runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
2843         runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
2844         runtime/stop.c: Use them to mark symbols internal or external.
2845         * generated/*: Rebuild.
2846
2847 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
2848
2849         PR bootstrap/18895
2850         Revert 2004-12-07 change.
2851         * Makefile.am (AM_MAKEFLAGS): Delete.
2852         * Makefile.in: Regenerate.
2853
2854 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
2855
2856         * libgfortran/Makefile.am (AM_MAKEFLAGS): New.
2857         * libgfortran/Makefile.in: Regenerate
2858
2859 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
2860
2861         * io/io.h (open_external): Change prototype.
2862         * io/unix.c (regular_file): Change prototype and set flags->action if
2863         needed.
2864         (open_external): Ditto.
2865         * io/open.c (new_unit): Let open_external set flags->action.
2866
2867 2004-12-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2868
2869         * configure.ac: Check for ieeefp.h.  Check for fabsf in libm.
2870         * configure: Regenerate.
2871         * config.h.in: Likewise.
2872         * c99_protos.h: New file.
2873         * libgfortran.h: Include c99_protos.h and conditionally ieeefp.h.
2874         * intrinsics/c99_functions.c (fabsf): New function.
2875
2876 2004-12-06  Richard Henderson  <rth@redhat.com>
2877
2878         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
2879         intrinsics/pack_generic.c, intrinsics/string_intrinsics.c,
2880         intrinsics/transpose_generic.c, m4/ifunction.m4, m4/matmul.m4,
2881         m4/matmull.m4, m4/transpose.m4: Use internal_malloc_size instead
2882         of internal_malloc.
2883         * generated/*: Rebuild.
2884
2885 2004-12-06  Richard Henderson  <rth@redhat.com>
2886
2887         * intrinsics/c99_functions.c, intrinsics/eoshift0.c,
2888         intrinsics/eoshift2.c, intrinsics/exit.c, intrinsics/flush.c,
2889         intrinsics/ishftc.c, intrinsics/mvbits.c, intrinsics/pack_generic.c,
2890         intrinsics/random.c, intrinsics/reshape_generic.c, intrinsics/size.c,
2891         intrinsics/spread_generic.c, intrinsics/stat.c,
2892         intrinsics/string_intrinsics.c, intrinsics/system_clock.c,
2893         intrinsics/transpose_generic.c, intrinsics/unlink.c,
2894         intrinsics/unpack_generic.c, io/backspace.c, io/format.c,
2895         io/list_read.c, io/lock.c, io/open.c, io/transfer.c, io/unix.c,
2896         io/write.c, runtime/environ.c, runtime/error.c,
2897         runtime/in_pack_generic.c, runtime/in_unpack_generic.c, runtime/main.c,
2898         runtime/memory.c, runtime/pause.c, runtime/stop.c,
2899         runtime/string.c: Whitespace fixes.
2900
2901 2004-12-06  Richard Henderson  <rth@redhat.com>
2902
2903         * Makefile.am: Generate all m4 output under $(srcdir).
2904         * Makefile.in: Regenerate.
2905
2906 2004-12-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2907
2908         PR fortran/18710
2909         * io/transfer.c (unformatted_read, unformatted_write): width of
2910         a COMPLEX is twice its kind.
2911
2912 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2913
2914         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2915         * configure, aclocal.m4, Makefile.in: Regenerate.
2916
2917 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
2918
2919         PR libfortran/18284
2920         * io/unix.c (fd_alloc_w_at): Update file_length when extending.
2921         * io/backspace.c (formatted_backspace): Reset endfile after backspace.
2922
2923 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
2924
2925         * io/inquire.c (inquire_via_unit): do not allow a direct access
2926         file to be opened for sequential I/O.
2927
2928 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
2929         Paul Brook  <paul@codesourcery.com>
2930
2931         * intrinsics/flush.c: New file.
2932         * intrinsics/fnum.c: ditto
2933         * intrinsics/stat.c: ditto
2934         * io/io.h (unit_to_fd): Add prototype.
2935         * io/unix.c (unit_to_fd): New function.
2936         * configure.ac: Add test for members of struct stat.  Check for
2937         sys/types.h and sys/stat.h
2938         * Makefile.am: Add intrinsics/{flush.c,fnum.c,stat.c}
2939         * configure.in: Regenerate.
2940         * config.h.in: Regenerate.
2941         * Makefile.in: Regenerate.
2942
2943 2004-12-01  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2944
2945         * Makefile.am (AM_CPPFLAGS): Use -iquote instead of -I.
2946
2947 2004-11-28  Bud Davis  <bdavis9659@comcast.net>
2948
2949         * io/unix.c (mmap_alloc_w_a): check for a write to a location
2950         less than the mapped area.
2951
2952 2004-11-27  Bud Davis  <bdavis9659@comcast.net>
2953
2954         PR fortran/18364
2955         *  io/endfile.c (st_endfile): flush the stream before truncating.
2956
2957 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2958
2959         * configure: Regenerate for libtool change.
2960
2961 2004-11-22  Steven Bosscher  <stevenb@suse.de>
2962
2963         PR libfortran/15960
2964         * configure.ac: Check for finite in libm.
2965         * libgfortran.h: Define isfinite macro if not defined.
2966         * intrinsics/c99_functions.c: Use defined(fpclassify) instead of
2967         HAVE_FPCLASSIFY.
2968         * io/write.c (write_float): Use isfinite instead of finite.
2969         * configure, config.h.in: Rebuilt.
2970
2971 2004-11-20  Roger Sayle  <roger@eyesopen.com>
2972
2973         * io/write.c (write_float, list_formatted_write): Fix indentation.
2974
2975 2004-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2976
2977         PR target/16135
2978         * acinclude.m4 (LIBGFOR_TARGET_ILP32): New check.
2979         * configure.ac: Include LIBGFOR_TARGET_ILP32.
2980         * configure: Regenerate.
2981         * config.h.in: Likewise.
2982         * libgfortran.h: Provide default definitions for C99 types
2983         on ILP32 targets that don't have them.
2984
2985         PR target/17999
2986         * configure.ac: Check for snprintf.
2987         * configure: Regenerate.
2988         * config.h.in: Likewise.
2989         * intrinsics/date_and_time.c (date_and_time): Do not
2990         use snprinf if it is not available.
2991         * io/write.c (output_float): Likewise.
2992
2993 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
2994
2995         * Makefile.am: Add intrinsics/{umask.c,unlink.c,exit.c}
2996         * Makefile.in: Regenerated
2997         * intrinsics/umask.c: New file
2998         * intrinsics/unlink.c: ditto
2999         * intrinsics/exit.c: ditto
3000
3001 2004-11-18  Victor Leikehman  <lei@il.ibm.com>
3002
3003         * m4/matmul.m4: Loops reordered to improve cache behavior.
3004         * generated/matmul_??.c: Regenerated.
3005
3006 2004-11-10  Paul Brook  <paul@codesourcery.com>
3007
3008         PR fortran/18218
3009         * configure.ac: Check for strtof.
3010         * configure: Regenerate.
3011         * config.h.in: Regenerate.
3012         * io/read.c (convert_real): Use strtof if available.
3013         (convert_precision_real): Remove.
3014         (read_f): Avoid poor exponentiation algorithm.
3015
3016 2004-11-05  Andreas Schwab  <schwab@suse.de>
3017
3018         * configure.ac: Use AC_PROG_FC, FC and FCFLAGS instead of
3019         AC_PROG_F77, F77 and FFLAGS.
3020         * Makefile.am (selected_int_kind.inc, selected_real_kind.inc): Use
3021         FCCOMPILE instead of F77COMPILE.
3022         * configure, Makefile.in: Regenerate.
3023
3024 2004-11-05  Kelley Cook  <kcook@gcc.gnu.org>
3025
3026         * acinclude.m4: Properly quote AC_CACHE_CHECK.
3027         * Makefile.am: Add in ACLOCAL_AMFLAGS.
3028         * aclocal.m4, configure, Makefile.in: Regenerate.
3029
3030 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3031
3032         * config.h.in: Regenerate.
3033         * configure: Regenerate.
3034         * configure.ac (AC_CHECK_FUNCS): Add mkstemp.
3035         * io/unix.c (S_IRGRP): Define if undefined.
3036         (S_IWGRP): Same.
3037         (S_IROTH): Same.
3038         (S_IWOTH): Same.
3039         (tempfile): Use mktemp if mkstemp missing, fix typos.
3040
3041 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3042
3043         *  intrinsics/system.c ("libgfortran.h"): Move after system headers.
3044
3045 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
3046
3047         * intrinsics/rand.c (irand): Handle NULL argument.
3048
3049 2004-10-07  Paul Brook  <paul@codesourcery.com>
3050
3051         * io/transfer.c (finalize_transfer): Free internal streams.
3052         * io/unix.c (mem_close): Free stream object.
3053
3054 2004-10-07  Paul Brook  <paul@codesourcery.com>
3055
3056         * intrinsics/string_intrinsics.c (string_verify): Fix off by one
3057         error.
3058
3059 2004-10-06  Paul Brook  <paul@codesourcery.com>
3060
3061         PR libfortran/17709
3062         * io/transfer.c (data_transfer_init): Reset sf_seen_eor.
3063
3064 2004-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
3065
3066         * intrinsics/mvbits.c: Commit the file.
3067
3068 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3069
3070         PR fortran/17283
3071         * intrinsics/pack_generic.c (__pack): Allocate memory for return array
3072         if not done by caller.
3073         (__pack_s): New function.
3074         * runtime/memory.c (internal_malloc, internal_malloc64): Allow
3075         allocating zero memory.
3076
3077         PR fortran/17631
3078         * Makefile.am (gfor_helper_src): Add intrinsics/mvbits.h.
3079         * Makefile.in: Regenerate.
3080         * intrinsics/mvbits.h: New file.
3081
3082         PR fortran/17776
3083         * intrinsics/system.c: New file.
3084         * Makefile.am: Add dependency for the new file.
3085         * Makefile.in: Regenerate.
3086
3087 2004-10-04  Paul Brook  <paul@codesourcery.com>
3088         Bud Davis  <bdavis9659@comcast.net>
3089
3090         PR fortran/17706
3091         PR fortran/16434
3092         * io/format.c (parse_format_list): Set repeat count for S, SP, SS,
3093         BN and BZ formats.
3094         * io/write.c (output_float): Don't output minus zero.
3095
3096 2004-10-03  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3097
3098         * intrinsics/abort.c ("libgfortran.h"): Move.
3099         * intrinsics/date_and_time.c ("libgfortran.h"): Same.
3100         * intrinsics/write.c ("libgfortran.h"): Same.
3101
3102 2004-09-26  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
3103
3104         PR libfortran/16137
3105         * config.h.in (HAVE_POWF): Undefine.
3106         * configure.ac: Check for 'powf' in library.
3107         * configure: Regenerate.
3108         * intrinsics/c99_functions.c (powf): New function.
3109
3110 2004-09-24  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
3111
3112         * intrinsics/etime.c (etime_): New function.
3113
3114 2004-09-21  Steven G. Kargl  <kargls@comcast.net>
3115
3116         * libgfortran.h: define gfc_alloca()
3117         * intrinsics/env.c (getenv, get_environment_variable_i4): Use it.
3118
3119 2004-09-21  Bud Davis  <bdavis9659@comcast.net>
3120
3121         PR fortran/17286
3122         * io/list_read.c (namelist_read): ignore spaces after
3123         the '=' for namelist reads.
3124
3125 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3126
3127         * config.h.in: Regenerate.
3128         * configure: Regenerate.
3129         * configure.ac (AC_CHECK_HEADERS): Check for sys/mman.h.
3130         * unix.c: Include stdio.h.
3131         (HAVE_SYS_MMAN_H): Check.
3132         (PROT_READ, PROT_WRITE): Provide default definitions.
3133
3134 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
3135
3136         * intrincics/getcwd.c: New file.
3137         * Makefile.am: Add getcwd.c.
3138         * Makefile.in: Regenerated.
3139
3140 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
3141         Paul Brook  <paul@codesourcery.com>
3142
3143         * intrinsics/env.c (getenv, get_environmental_variable): Remove
3144         trailing white space.  Use alloca.  Honour trim_name.
3145
3146 2004-09-13  Bud Davis  <bdavis9659@comcast.net>
3147
3148         PR fortran/17090
3149
3150         * io/list_read.c (list_formatted_read): Handle trailing spaces
3151         at end of line.
3152
3153 2004-09-06  Steven G. Kargl  <kargls@comcast.net>
3154
3155         * io/write.c (output_float): Typo in comment.  Remove debugging
3156         printf.  Fix format for FP of form 1e10.
3157
3158 2004-09-03  Richard Henderson  <rth@redhat.com>
3159
3160         * intrinsics/cshift0.c (DEF_COPY_LOOP, copy_loop_int, copy_loop_long,
3161         copy_loop_double, copy_loop_ldouble): New.
3162         (__cshift0): Make shift type ssize_t.  Use % operator instead of
3163         div.  Use specialized versions of copy loop depending on the shape.
3164
3165 2004-09-02  Paul Brook  <paul@codesourcery.com>
3166
3167         * io/format.c (parse_format_list): Set repeat count for P descriptors.
3168         * write.c (output_float): Fix condition.  Correctly handle nonzero
3169         scale factor.
3170
3171 2004-09-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3172
3173         * mk-sik-inc.sh: Use a temporary string instead of 'echo -n'.
3174         * mk-srk-inc.sh: Likewise.
3175
3176 2004-09-01  Paul Brook  <paul@codesourcery.com>
3177
3178         * runtime/error.c (generate_error): Set both iostat and
3179         library_return.
3180
3181 2004-08-31  Paul Brook  <paul@codesourcery.com>
3182
3183         PR libfortran/16805
3184         * io/list_read.c (next_char): Don't signal EOF for internal files.
3185         * io/unix.c (mem_alloc_r_at): Don't return NULL for incomplete reads.
3186
3187 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3188
3189         * io/unit.c: Separate copyright years by ','.
3190         (compare, insert_unit, delete_unit, is_internal_unit, close_units):
3191         Remove blank line in beginning of function.
3192         (get_unit): Simplify code.
3193
3194 2004-08-31  Paul Brook  <paul@codesourcery.com>
3195
3196         * io/unit.c (get_unit): Remove superfluous if.
3197
3198 2004-08-31  Paul Brook  <paul@codesourcery.com>
3199
3200         * io/transfer.c (read_sf): Rename uinty to readlen.  Detect EOF.
3201         (finalize_transfer): Move setjmp after namlist IO.
3202         * io/unix.c (mem_alloc_r_at): Calculate remaining length correctly.
3203
3204 2004-08-31  Paul Brook  <paul@codesourcery.com>
3205
3206         * list_read.c (eat_separator): Set at_eo when a '/' is seen.
3207
3208 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3209
3210         * libgfortran.h: Replace 'gfc_strlen_type' by
3211         'gfc_charlen_type'. Update comment accordingly.
3212         * intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
3213         Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.
3214
3215 2004-08-31  Paul Brook  <paul@codesourcery.com>
3216
3217         * libgfortran.h: Add comments.
3218
3219 2004-08-30  Richard Henderson  <rth@redhat.com>
3220
3221         * Makefile.am (gfor_helper_src): Split selected_kind.f90.
3222         (gfor_built_src): Add selected_int_kind.inc selected_real_kind.inc.
3223         (selected_int_kind.inc selected_real_kind.inc): New rules.
3224         * Makefile.in: Regenerate.
3225         * mk-sik-inc.sh, mk-srk-inc.sh: New files.
3226         * intrinsics/selected_int_kind.f90: Split from selected_kind.f90,
3227         include table of detected kinds.
3228         * intrinsics/selected_real_kind.f90: Similarly.
3229
3230 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
3231         Paul Brook  <paul@codesourcery.com>
3232
3233         * intrinsics/bessel.c: New file.
3234         * intrinsics/erf.c: New file.
3235         * Makefie.am: Add intrinsics/bessel.c and intrinsics/erf.c.
3236         * configure.ac: Test for C99 Bessel and Error functions.
3237         * Makefile.in: Regenerate.
3238         * config.h.in: Regenerate.
3239         * configure: Regenerate.
3240
3241 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
3242         Paul Brook  <paul@codesourcery.com>
3243
3244         * Makefile.am: Add intrinsics/getXid.c.
3245         * configure.ac: Add tests for get{g,p,u}id.
3246         * config.h.in: Regenerate.
3247         * Makefile.in: Regenerate.
3248         * configure: Regenerate.
3249
3250 2004-08-28  Paul Brook  <paul@codesourcery.com>
3251
3252         PR libfortran/17195
3253         * libgfortran.h (rtoa): Remove prototype.
3254         * runtime/error.c (rtoa): Remove.
3255         * io/write.c (calculate_G_format): Don't add blanks if E format is
3256         used.  Add correct number of blanks when exponent width is specified.
3257         (output_float): Rewrite.
3258
3259 2004-08-27  Paul Brook  <paul@codesourcery.com>
3260
3261         * io/rewind.c (st_rewind): Reset unit to read mode.
3262
3263 2004-08-27  Bud Davis  <bdavis9659@comcast.net>
3264
3265         PR fortran/16597
3266         * io/io.h: created typedef for unit_mode.
3267         * io/io.h (gfc_unit): added mode to unit structure.
3268         * io/transfer.c (data_transfer_init): flush if a write then
3269         read is done on a unit (direct access files).
3270         * io/rewind.c (st_rewind): Used unit mode instead of global.
3271
3272 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
3273
3274         PR fortran/17143
3275         * runtime/error.c (itoa): keep from overflowing during
3276         mod operation by using unsigned variable.
3277
3278 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
3279
3280         PR fortran/17164
3281         * runtime/string_intrinsics.c (string_index):check for
3282         substring longer than string.
3283
3284 2004-08-24  David Edelsohn  <edelsohn@gnu.org>
3285
3286         * Makefile.am (libgfortran_la_LDFLAGS): Add -lm.
3287         * Makefile.in: Rebuilt.
3288
3289 2004-08-23  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3290
3291         * io/io.h, io/list_read.c, io/open.c, io/transfer.c, io/write.c:
3292         Fix formatting issues, update copyright years.
3293
3294 2004-08-21  Bud Davis  <bdavis9659@comcast.net>
3295
3296         PR 16908
3297         * io/transfer.c (next_record_w): Do not blank pad.
3298         * io/transfer.c (next_record): Take into account partial records.
3299
3300 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
3301
3302         PR fortran/13278
3303         * io/transfer.c (st_set_nml_var)
3304         * io/write.c (namelist_write): Allow var_name and var_name_len to be
3305         null. For strings, use string_length field instead of len.
3306         * io/io.h (struct namelist_type): New field string_length.
3307         (st_set_nml_var_char): New argument string_length.
3308
3309 2004-08-13  Bud Davis  <bdavis9659@comcast.net>
3310
3311         PR gfortran/16935
3312         * io/open.c (st_open): use flags instead of the unit structure.
3313
3314 2004-08-10  Victor Leikehman  <lei@il.ibm.com>
3315
3316         * io/list_read.c (namelist_read): Convert variable names
3317         to lower case, so that mixed-case names are recognized.
3318         Don't read beyond terminating slash.
3319
3320 2004-08-09  Richard Henderson  <rth@redhat.com>
3321             Roger Sayle  <roger@eyesopen.com>
3322
3323         * intrinsics/c99_functions.c (nextafterf): New implementation that
3324         works correctly with denormalized numbers.
3325
3326 2004-08-09  Victor Leikehman  <lei@il.ibm.com>
3327
3328         * m4/matmul.m4, m4/matmull.m4, intrinsics/eoshift0.c,
3329         intrinsics/eoshift2.c, intrinsics/transpose_generic.c:
3330         Allocate space if return value has NULL in its data field.
3331         * generated/*.c: Regenerate.
3332
3333 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3334
3335         * intrinsics/env.c: New file.
3336         * Makefile.am: Add env.c to build.
3337         * Makefile.in: Regenerate.
3338
3339 2004-08-05  Victor Leikehman  <lei@il.ibm.com>
3340
3341         PR libgfortran/16704
3342         * io/read.c (read_radix): Understand letters f and F as hex digits.
3343
3344 2004-08-04  Victor Leikehman  <lei@il.ibm.com>
3345
3346         * libgfortran.h (array_t, size0) New declarations.
3347         * m4/ifunction.m4, m4/transpose.m4, intrinsics/cshift0.c: Allocate
3348         space if return value descriptor has NULL in its data field,
3349         and initialize bounds and stride.
3350         * intrinsics/size.c (array_t, size0): Declarations moved to
3351         libgfortran.h.
3352         * generated/*.c: Regenerate.
3353
3354 2004-08-03  Roger Sayle  <roger@eyesopen.com>
3355
3356         PR libgfortran/16137
3357         * configure.ac: Add tests for acosf, asinf, atan2f, atanf, ceilf,
3358         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
3359         scalbnf, sinf, sinhf, sqrtf, tanf and tanhf in libm.
3360         * config.h.in: Regenerate.
3361         * configure: Regenerate.
3362
3363         * instrinsics/c99_functions.c (acosf, asinf, atan2f, atanf, ceilf,
3364         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
3365         nextafterf, scalbnf, sinf, sinhf, sqrtf, tanf, tanhf): New stub
3366         implementations for targets that don't support C99 float functions.
3367
3368 2004-08-01  Roger Sayle  <roger@eyesopen.com>
3369
3370         * io/write.c (write_float): Use the slightly more portable isnan
3371         in preference to isinf.
3372
3373 2004-07-18  Bud Davis  <bdavis9659@comcast.net>
3374
3375         * configure.ac: Add check for LFS support.
3376         * configure: Regenerate
3377
3378 2004-07-11  Paul Brook  <paul@codesourcery.com>
3379
3380         PR fortran/16303
3381         * m4/cexp.m4 (carg): Return -pi to pi.
3382         * generated/exp_c?.c: Regenerate.
3383
3384 2004-07-08  Andreas Krebbel  <krebbel1@de.ibm.com>
3385
3386         PR fortran/16291
3387         * libgfortran/io/write.c: (write_float): Added length check.
3388         Remove pointless memset calls.
3389
3390 2004-07-04  Bud Davis  <bdavis9659@comcast.net>
3391             Paul Brook  <paul@codesourcery.com>
3392
3393         PR fortran/15472
3394         * io/transfer.c(us_write): set recl for seq unform writes to max size.
3395         * io/transfer.c(data_transfer_init): handle un-opened seq unform unit.
3396         * io/unix.c(fd_alloc_w_at): handle requests at start, fd_flush at
3397         right time.
3398         * io/unix.c(is_seekable): set based upon the file/device, not the
3399         method being used to access it (fd or mmap).
3400         * io/unix.c(fd_flush): don't set file_size if !seekable.
3401         * io/unix.c(fd_truncate: ditto.
3402
3403 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3404         Paul Brook  <paul@codesourcery.com>
3405
3406         PR fortran/15280
3407         PR fortran/15665
3408         * libgfortran.h (gfc_strlen_type): Define.
3409         * intrinsics/args.c (getarg): Rename ...
3410         (getarg_i4): ... to this.
3411         (getarg_i8, get_command_argument_i4, get_command_argument_i8,
3412         get_command_i4, get_command_i8): New functions.
3413
3414 2004-07-04  Matthias Klose  <doko@debian.org>
3415
3416         * libtool-version: New.
3417         * Makefile.am (libgfortran_la_LDFLAGS): Use -version-info for soname.
3418         * Makefile.in: Regenerate.
3419         * configure.ac: Remove libtool_VERSION macro
3420         * configure: Regenerate
3421
3422 2004-06-30  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3423             Steven Bosscher  <stevenb@suse.de>
3424
3425         * intrinsics/rand.c (rand): Wrap the irand() call from the previous
3426         commit in prefix.
3427
3428 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3429         Paul Brook  <paul@codesourcery.com>
3430
3431         * runtime/normalize.c (normalize_r4_i4, normalize_r8_i8): Fix
3432         comments.
3433         * intrinsics/rand.c (rand): Call irand() in call to normalize_r4_i4.
3434
3435 2004-06-27  Bud Davis  <bdavis9659@comcast.net>
3436
3437         PR gfortran/12839
3438         * io/write.c (write_float): check signbit for Infinity.
3439
3440 2004-06-26  Bud Davis  <bdavis9659@comcast.net>
3441
3442         PR gfortran/16196
3443         * unix.c(regular_file): create file if it does not exist.
3444
3445 2004-06-24  Andrew Pinski  <apinski@apple.com>
3446
3447         * configure.ac: Remove check for libmx.
3448         * configure: Regenerate.
3449
3450 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3451
3452         PR fortran/15750
3453         * inquire.c (st_inquire): Add comment
3454         * io.h (st_parameter): Add iolength.
3455         (st_iolength, st_iolength_done): Declare.
3456         * transfer.c (iolength_transfer, iolength_transfer_init,
3457         st_iolength, st_iolength_done): New functions.
3458
3459 2004-06-21  Steven G. Kargl  <kargls@comcast.net>
3460
3461         * etime.c (etime_sub): Remove array rank check;
3462         Add check for sufficient space.
3463
3464 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
3465
3466         PR gfortran/16080
3467         * io/list_read.c(set_value): fixed spelling.
3468
3469 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
3470
3471         PR gfortran/16080
3472         * io/list_read.c(set_value): don't copy if the string is null.
3473
3474 2004-06-14  Bud Davis  <bdavis9659@comcast.net>
3475
3476         PR gfortran/15292
3477         * intrinsics/c99_functions.c: Use fpclassify if it exists.
3478
3479 2004-06-13  Paul Brook  <paul@codesourcery.com>
3480
3481         * Makefile.am (gfor_helper_src): Add runtime/normalize.f90.
3482         * configure.ac: Add checks for nextafter and nextafterf.
3483         * Makefile.in, config.h.in, configure: Regenerate.
3484         * libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare.
3485         * intrinsics/rand.c (rand): Use normalize_r4_i4.
3486         * intrinsics/random.c (random_r4): Use normalize_r4_i4.
3487         (random_r8): Use normalize_r8_i8.
3488         * runtime/normalize.c: New file.
3489
3490 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
3491             Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3492
3493         * random.c: Fix several spelling and formatting mistakes in
3494         comments.
3495         (random_r8): Fix loop to make random numbers range in [0,1(.
3496
3497
3498 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
3499
3500         * random.c (random_r4): Burn a random number.
3501         (random_r8): fix infinite loop.
3502
3503 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3504             Steve Kargl  <sgk@troutmask.apl.washington.edu>
3505
3506         PR gfortran/15292
3507         * intrinsics/c99_functions.c: New file.
3508         * Makefile.am: Add new file.
3509         * configure.ac: Added test for round/roundf.
3510         * Makefile.in: Regenerate.
3511         * configure: Regenerate.
3512         * configure.h.in: Regenerate.
3513
3514 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
3515
3516         * Makefile.am: Add rand.c and etime.c
3517         * Makefile.in: Regenerated.
3518         * aclocal.in: Regenerated.
3519         * cpu_time.c (second_sub, second): New functions.
3520         * rand.c (irand, rand, srand): New file.
3521         * etime.c (etime_sub, etime): New file.
3522
3523 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3524             Steven Bosscher  <stevenb@suse.de>
3525
3526         PR fortran/14923
3527         * intrinsics/date_and_time.c: New file.
3528         * Makefile.am (gfor_helper_src): Add intrinsics/date_and_time.c.
3529         * Makefile.in, aclocal.m4: Regenerate.
3530         * libgfortran.h: Prototype date_and_time().
3531
3532 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3533
3534         PR fortran/15665
3535         * intrinsics/args.c: Implement GETARG and IARGC.
3536         * Makefile.am: Add it.
3537         * Makefile.in: Regenerate.
3538
3539 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
3540
3541         PR gfortran/12839
3542         * io/write.c(write_float): Format inf and nan IAW F2003.
3543
3544 2004-06-09  Bud Davis  <bdavis9659@comcaste.net>
3545
3546         PR gfortran/14897
3547         * io/transfer.c (formatted_transfer): position is unique
3548          for T and TL edit descriptors.
3549         (data_transfer_init): set record length to size of internal
3550          file.
3551
3552 2004-06-09  Bud Davis  <bdavis9659@comcast.net>
3553
3554         PR gfortran/15755
3555         * io/backspace.c(st_backspace): call correct routine for
3556         formatted and un-formatted units.
3557
3558 2004-05-30  Andreas Jaeger  <aj@suse.de>, Steven Bosscher <stevenb@suse.de>
3559
3560         PR gfortran/11800
3561         * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
3562         (lib_LTLIBRARIES): Rename to ...
3563         (toolexeclib_LTLIBRARIES): this for multilib support.
3564         * configure.in: Rename to ...
3565         * configure.ac: this.  Update to modern autoconf style, enable
3566         multilibs, support --enable-version-specific-runtime-libs.
3567         * Makefile.in: Regenerated.
3568         * configure: Regenerated.
3569         * aclocal.m4: Regenerated.
3570
3571 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
3572
3573         * libgfortran.h (random_seed): Update prototype.
3574         * intrinsics/random.c: Disable old implementation and add new one.
3575
3576 2004-05-30  Andreas Jaeger  <aj@suse.de>
3577
3578         * intrinsics/random.c: Include unistd.h for close and read
3579         prototypes, remove unneeded inclusion of assert.h.
3580
3581         * intrinsics/abort.c: Include stdlib.h for abort prototype, remove
3582         unneeded inclusion of assert.h.
3583
3584 2004-05-27  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
3585
3586         PR fortran/15234
3587         * intrinsics/associated.c: Remove enum.
3588         (associated): Replace TRUE/FALSE by 1/0.
3589
3590 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
3591
3592         * random.c (random_seed): Use correct variable.
3593
3594 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3595
3596         * intrinsics/system_clock: New file.
3597         * Makefile.am: Add intrinsics/system_clock.c.
3598         * Makefile.in: Regenerate.
3599
3600 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3601
3602         * io/format.c (parse_format_list): Allow the comma after a string
3603         literal to be optional.
3604
3605 2004-05-18  Paul Brook  <paul@codesourcery.com>
3606         Feng Wang  <fengwang@nudt.edu.cn>
3607
3608         * Makefile.am (i_pow_c): Set it. Add build rule.
3609         (gfor_built_src): Use it.
3610         (m4_files): add m4/pow.m4.
3611         * Makefile.in: Regenerate.
3612         * m4/pow.m4: New file.
3613         * generated/pow_*.c: Regenerate.
3614
3615 2004-05-18  Paul Brook  <paul@codesourcery.com>
3616
3617         * Makefile.am: Remove references to types.m4.
3618         * m4/iparm.m4: Merge with types.m4.
3619         * m4/types.m4: Remove.
3620         * m4/cshift1.m4, m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4,
3621         m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4, m4/ifunction.m4,
3622         m4/in_pack.m4, m4/in_unpack.m4, m4/iparm.m4, m4/matmul.m4,
3623         m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4, m4/maxval.m4,
3624         m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/reshape.m4,
3625         m4/shape.m4, m4/specific.m4, m4/specific2.m4, m4/transpose.m4):
3626         Update to use new iparm.m4.
3627         * generated/*.c: Regenerate.
3628
3629 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3630
3631         PR fortran/15235
3632         * gfortran.h (offset_t): Rename to ...
3633         (gfc_offset): ... this.
3634         * io/backspace.c (formatted_backspace, unformatted_backspace),
3635         io/io.h (stream, gfc_unit, global_t, file_length, file_position),
3636         transfer.c (us_read, us_write, next_record_r, next_record_w),
3637         io/unit.c (init_units), unix.c (unix_stream, fd_alloc,
3638         fd_alloc_r_at, fd_alloc_w_at, fd_seek, mmap_alloc,
3639         mmap_alloc_r_at, mmap_alloc_w_at, mmap_seek, mem_alloc_r_at,
3640         mem_alloc_w_at, mem_seek, file_length, file_position): Replace all
3641         occurences of offset_t by gfc_offset.
3642
3643 2004-05-16  Paul Brook  <paul@codesourcery.com>
3644
3645         * io/format.c (write_real): Don't include padding in format.
3646
3647 2004-05-16  Paul Brook  <paul@codesourcery.com>
3648
3649         * io/format.c (format_lex): Make c an int.
3650
3651 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3652         Paul Brook  <paul@codesourcery.com>
3653
3654         * io/write.c (write_logical): Don't print extra blank.
3655         (write_integer): Base field width on kind.
3656         (list_formatted_write): Output initial blank.
3657
3658 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3659
3660         * io/io.h (flush): Add prototype.
3661         * io/transfer.c (finalize_transfer): Flush partial records.
3662         * io/unix.c (flush): New function.
3663
3664 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3665
3666         PR fortran/15234
3667         * io/io.h (unit_t): Rename to ...
3668         (gfc_unit) ... this.
3669         (unit_root, current_unit, find_file, find_unit, get_unit): Now
3670         of type gfc_unit.
3671         (delete_file, insert_unit, close_unit): Argument now of type
3672         gfc_unit.
3673         * backspace.c (st_backspace), close.c (st_close), endfile.c
3674         (st_endfile), inquire.c (inquire_via_unit, st_inquire), open.c
3675         (test_endfile, edit_modes, new_unit, already_open, st_open),
3676         rewind.c (st_rewind), transfer.c (current_unit), unit.c
3677         (internal_unit, unit_cache, rotate_left, rotate_right, insert,
3678         insert_unit, delete_root, delete_treap, delete_unit, find_unit,
3679         get_unit, init_units, close_unit), unix.c (find_file0,
3680         find_file, delete_file): Replace all occurences of unit_t by
3681         gfc_unit.
3682
3683 2004-05-15  Bud Davis  <bdavis9659@comcast.net>
3684
3685         PR fortran/15311
3686         * io/write.c (write_a): right justify A edit output.
3687
3688 2004-05-14  Bud Davis  <bdavis9659@comcast.net>
3689
3690         PR fortran/15149
3691         * libgfortan.h,intrinsics/random.c: Made random_seed visible.
3692         * runtime/main.c(init): Call random_seed as part of MAIN init.
3693
3694 2004-05-13  Tobias Schlter  <tobias.schlueter@physik.uni-muenchen.de>
3695
3696         * io/format.c: (parse_format_list): No comma is required after
3697         P descriptor.
3698
3699 2004-05-13  Bud Davis  <bdavis9659@comcast.net>
3700
3701         PR fortran/15204
3702         * io/intrinsic/string_intrinsics.c (adjustr): rework logic.
3703
3704 2004-05-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3705             Steven Bosscher  <stevenb@suse.de>
3706
3707         PR libfortran/15234
3708         * libgfortran.h: Include <inttypes.h> if available.
3709
3710 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3711
3712         * io/unix.c (MAP_FAILED): Define if missing.
3713         (mmap_alloc): Cast MAP_FAILED to char *.
3714         (mmap_open): Likewise.
3715
3716 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
3717
3718         * generated/_abs_i8.f90: New file.
3719         * generated/_abs_c4.f90: New file.
3720         * generated/_abs_c8.f90: New file.
3721         * Makefile.am: Add them.
3722         * Makefile.in: Regenerate.
3723 `
3724 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
3725
3726         PR fortran/14056
3727         * generated/_abs_i4.f90: New file.
3728         * Makefile.am: Add it.
3729         * Makefile.in: Regenerate.
3730
3731 2004-04-25  Bud Davis  <bdavis9659@comcast.net>
3732
3733         PR fortran/14942
3734         * io/list_read.c(list_formatted_read): finish consuming the
3735         spaces and seperators at eoln to get ready for next item.
3736
3737 2004-04-23  Bud Davis  <bdavis9659@comcast.net>
3738
3739         PR fortran/15113
3740         * io/read.c(read_a): Handle field width > destination and no field width.
3741
3742 2004-04-22  Bud Davis  <bdavis9659@comcast.net>
3743
3744         PR fortran/14906
3745         * io/format.c (format_item): gracefully handle a ')'
3746         when it is the first character encountered in the string.
3747
3748 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3749
3750         PR fortran/14904
3751         * io/transfer.c (next_record): Update last_record when
3752         more than one record is written to a direct access file
3753         with one write statement.
3754
3755 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3756
3757         PR fortran/14901
3758         * io/transfer.c (next_record_w) : No '\n' if internal.
3759         * io/unix.c (empty_internal_buffer) : Init to spaces, not '\n'.
3760
3761 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3762
3763         * io.h (ioparm): Interface from FE is 32 bit, irregardless of offset_t.
3764         Will need to change this later to support direct access files > 2gb.
3765
3766 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3767
3768         PR gfortran/14762
3769         * io/transfer.c (next_record_r) : Skip to next record.
3770
3771 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3772
3773         PR gfortran/14836
3774         * io/transfer.c (next_record): Update last_record for DIRECT
3775
3776 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3777
3778         PR gfortran/14837
3779         * io/unix.c (find_file0): Use fd field of struct
3780
3781 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
3782
3783         PR 14831
3784         * io/inquire.c (inquire_via_unit): Changed return string for
3785         BLANK=NULL. Use correct variable for ACTION.
3786
3787 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
3788
3789         PR 14746
3790         * io/read.c (read_f): Allow a decimal without a leading digit.
3791         * io/write.c (output_float): remove a leading '0' to keep from
3792         overflowing the field (F edit descriptor).
3793
3794 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
3795
3796         PR gfortran/14565
3797         * io/open.c (new_unit),
3798         * io/io.h : new_unit is now visible
3799         * io/transfer.c (data_transfer_init): open unit if no OPEN statement.
3800         * io/transfer.c (data_transfer_init): remove compile warnings.
3801         * io/rewind.c (st_rewind): ftruncate if writing.
3802
3803 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3804
3805         * write.c (write_l): Use extract_int for 'L' edit descriptor.
3806
3807 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3808
3809         PR 13919
3810         * io/io.h (global_t):
3811         * io/list_read.c (next_char,list_formatted_read,ist_formatted_read):
3812           Move eof_jmp to a global structure.
3813         * io/transfer.c(finalize_transfer) : Set up eof_jump for callers.
3814
3815 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3816
3817         * m4/cexp.m4 (csqrt): Actually use the passed value.
3818         * generated/exp_c?.c: Regenerate.
3819
3820 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3821
3822         PR 12921
3823         * io.h, transfer.c, open.c : recl_in changed from ptr to variable.
3824         * open.c (new_unit): Moved test for positioned direct access error.
3825         (init_units): Corrected calculation of max records.
3826
3827 2004-02-06  Feng Wang  <fengwang@nudt.edu.cn>
3828
3829         * Makefile.am: Add m4/dotprodc.m4. And fix spelling.
3830         * Makefile.in: Regenerate.
3831         * m4/dotprodc.m4: New file. Implement complex dot_product.
3832         * m4/dotprod.m4: Delete the complex implementation.
3833         * generated/dotprod_*: Update.
3834
3835 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
3836
3837         * transfer.c (write_constant_string): Do not delete H's in hollerith
3838         formats.
3839
3840 2004-01-05  Andrew Pinski  <apinski@apple.com>
3841
3842         * configure.in: Check for csin in -lmx also.
3843         * configure: Regenerate.
3844
3845 2004-01-01  Paul Brook  <paul@codesourcery.com>
3846
3847         * io/list_read.c (find_nml_node): Make static.
3848         (match_namelist_name): Ditto.
3849         * io/read.c (convert_precision_real): Make static, fix spelling.
3850         * io/transfer.c (extract_real): Remove unused prototype.
3851         (st_set_nml_var): Make static.
3852         * io/write.c (extract_real): Make static.
3853
3854 2003-12-12  Huang Chun <chunhuang73@hotmal.com>
3855
3856         * intrinsics/string_intrinsics.c (string_index): Fix logics thinko.
3857
3858 2003-12-05  Melvin Hadasht  <melvin.hadasht@free.fr>
3859
3860         * io/transfer.c (data_transfer_init): Give a runtime error for list
3861         formatted reads and writes from/to files opened for unformatted IO.
3862
3863 2003-11-30  Paul Brook  <paul@nowt.org>
3864
3865         * runtime/memory.c (push_context): Remove.
3866         (pop_context): Remove.
3867         * libgfortran.h: Remove prototypes.
3868
3869 2003-11-27  Paul Brook  <paul@nowt.org>
3870
3871         * runtime/memory.c (deallocate): Nullify pointer after freeing.
3872
3873 2003-11-27  Paul Brook  <paul@nowt.org>
3874
3875         * intrinsics/string_intrinsics.c: Use new memory allocation interface.
3876         * libgfortran.h: Ditto.
3877         * m4/in_pack.m4: Ditto.
3878         * runtime/in_pack_generic.c: Ditto.
3879         * runtime/memory.c: Ditto.
3880
3881 2003-11-26  Richard Henderson  <rth@redhat.com>
3882
3883         * m4/exponent.m4, m4/fraction.m4: New.
3884         * m4/nearest.m4, m4/set_exponent.m4: New.
3885         * generated/*: Update.
3886         * Makefile.am: Add them.
3887         (AM_CFLAGS): New.  Use -std=gnu99.
3888         * Makefile.in: Regenerate.
3889
3890 2003-11-08  Paul Brook  <paul@nowt.org>
3891
3892         PR fortran/12704
3893         * m4/maxloc0.m4: Use default value of 1. Handle zero sized arrays.
3894         * m4/maxloc1.m4: Ditto.
3895         * m4/minloc0.m4: Ditto.
3896         * m4/minloc1.m4: Ditto.
3897         * m4/ifunction.m4: Set return value for zero sized arrays.
3898         * m4/iforeach.m4: Ditto.
3899         * m4/all.m4, m4/any.m4, m4/count.m4, m4/maxloc1.m4, m4/minloc1.m4,
3900         m4/mxaval.m4, m4/minval.m4, m4/product.m4, m4/sum.m4: Ditto.
3901         * generated/*: Update.
3902
3903 2003-10-30  Toon Moene  <toon@moene.indiv.nluug.nl>
3904
3905         PR fortran/12702
3906         * io/list_read.c (eat_spaces): Treat tab as space.
3907
3908 2003-10-30  Lars Segerlund  <Lars.Segerlund@comsys.se>
3909
3910         * intrinsics/random.c: Add reference to paper containing algorithm.
3911         (random_seed): Extra error checking and proper handling of arrays.
3912         (arandom_r4, arandom_r8): Implement.
3913
3914 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
3915
3916         PR fortran/12703
3917         * runtime/memory.c (allocate_size): Allow allocation
3918         of zero-sized objects.
3919
3920 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
3921
3922         PR fortran/12701
3923         * open.c (new_unit): Open without a file name opens
3924         a file with name fort.<unit>.
3925
3926 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
3927
3928         * intrinsics/cshift0.c: New file.
3929         * m4/cshift1.m4: New file
3930         * generated/cshift*.c: New files.
3931         * Makefile.am: Add them.
3932         * Makefile.in: Regenerate.
3933
3934 2003-10-12  XiaoQiang Zhang  <zhangapache@yahoo.com>
3935
3936         * io/list_read.c (read_character): Remove unwanted call to free_saved.
3937
3938 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
3939
3940         * intrinsics/string_intrinsics.c (string_trim): New function.
3941         (string_repeat): New function.
3942
3943 2003-10-11  Paul Brook  <paul@nowt.org>
3944
3945         * intrinsics/dprod_r8.f90: New file.
3946         * Makefile.am (gfor_specific_src): Add it.
3947         (gfor_built_specific_src): Rename from gfor_build_specific_c.
3948         Add new intrinsics.
3949         (gfor_specific2_src): Rename from gfor_built_specific2_c.
3950         Add new intrinsics.
3951         * Makefile.in: Regenerate.
3952         * generated/_aint_*.f90: New files.
3953         * generated/_anint*.f90: New files.
3954         * generated/_atan2*.f90: New files.
3955         * generated/_mod*.f90: New files.
3956
3957 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3958
3959         * intrinsics/selected_kind.f90: New file.
3960         * Makefile.am: Add it.
3961         * Makefile.in: regenerate.
3962
3963 2003-09-19  Lars Segerlund  <Lars.Segerlund@comsys.se>
3964         Paul Brook  <paul@nowt.org>
3965
3966         * intrinsics/random.c: New file.
3967         * Makefile.am (gfor_hemper_src): Add it.
3968         (gfor_specific_c): Fix typo.
3969
3970 2003-09-19  Paul Brook  <paul@nowt.org>
3971
3972         * All: rename g95->gfc.
3973
3974 2003-09-18  XiaoQiang Zhang  <zhangapache@yahoo.com>
3975
3976         * io/write.c (output_float): Fix bug of FMT_E, Add comments.
3977
3978 2003-09-09  XiaoQiang Zhang  <zhangapache@yahoo.com>
3979
3980         * io/write.c (write_float): Dectection of positive infinite number,
3981         Not a Number(NaN) and negative infinite number.
3982         (ioutput_float): Bug fix for FMT_E and FMT_D processing to
3983         output a very_very small number ( < 0.1e-100 ).
3984
3985 2003-09-07  XiaoQiang Zhang  <zhangapache@yahoo.com>
3986
3987         * libgfortran.h (xtoa, itoa): Parameter modified.
3988         * io/io.h (namelist_info): Declaration to support namelist I/O
3989         (st_parameter): Add namelist related component
3990         (ionml, empty_internal_buffer, st_set_nml_var_int,
3991         st_set_nml_var_float, st_set_nml_var_char, st_set_nml_var_complex,
3992         st_set_nml_var_log): Declaration
3993         (set_integer, set_integer): Parameter changed
3994         * io/format.c (free_nodes): Fix annoying bug of lefting "deallocated"
3995          fnodes
3996         (parse_format_list): Fix bug about FMT_SLASH
3997         * io/list_read.c (push_char): Totally clear old saved_string, zeroize
3998         newly allocated saved_string
3999         (next_char): Add detection of End_Of_Line support
4000         (convert_integer): Now can process 64 bits interger
4001         (read_real): Bug fixed
4002         (init_at_eol, find_nml_node, match_namelist_name): Add new functions
4003         (match_namelist_name): New implemention
4004         * io/lock.c (ionml): New global variable
4005         (library_end): Free memory in ionml
4006         * io/open.c (st_open): Variable initializtion
4007         * io/read.c (max_value): 64 bits interger support
4008         (convert_precsion_real): New procedure to replace "strtod" with more
4009          features
4010         (read_f, read_radix): Input bug fix
4011         * io/transfer.c: (sf_seen_eor): New static variable
4012         (read_sf): Zeroize base buffer; fix bugs: single read statement can
4013         not get input in mutli line when read from stdin
4014         (formatted_transfer): Fix bug of FMT_O, FMT_B, FMT_Z for INTEGER type
4015          request
4016         (data_transfer_init): Clear internal buffer for Internel File I/O.
4017         Internal File now worked. Detect some error condition for namelist.
4018         Some minor bug fix
4019         (next_record_w): Internal file and Namelist I/O support.
4020         (st_set_nml_var, st_set_nml_var_float, st_set_nml_var_char,
4021         st_set_nml_var_complex, st_set_nml_var_log): Implemention.
4022         * io/unit.c (implicit_unit): Deletion
4023         (get_unit): Now cannot open a unit implicitly.
4024         * io/unix.c (mmap_alloc): Fix fatal error in calculating the length of
4025         mapped buffer.
4026         (mem_alloc_r_at): Internal file I/O support added
4027         (empty_internal_buffer): New function
4028         * io/write.c (extract_int): Support 64 bits interger processing
4029         (output_float): Varibale initialization
4030         (write_float): Infinite real number detection.
4031         (write_int): 64 bits integer I/O support
4032         (write_decimal): New function to output decimal number
4033         (otoa, btoa): Better implemention and 64 bits interger support
4034         (namelist_write): New function
4035         * runtime/error.c (itoa, xtoa): Better implemention and 64 bits
4036         interger support
4037
4038 2003-08-15  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4039
4040         * libgfortran.h (os_error, runtime_error,internal_error, sys_exit,
4041         get_mem ): Add attribute.
4042         * intrinsics/spread_generic.c (__spread): Fix spelling.
4043         * io/inquire.c (inquire_via_filename): Add const.
4044         * io/io.h (sys_exit): Add attribute.
4045         * io/io.h (move_pos_offset): Add move_pos_offset.
4046         * io/io.h (compare_file_filename, inquire_sequential, inquire_direct,
4047         inquire_formatted, inquire_unformatted, inquire_read, inquire_write,
4048         inquire_readwrite, convert_real, write_a, write_b, write_d, write_e,
4049         write_en, write_es, write_f, write_i, write_l, write_o, write_x,
4050         write_z): Add const.
4051         * io/read.c (convert_real): Add const.
4052         * io/transfer.c (type_name): Add const.
4053         * io/unix.c (unpack_filename, compare_file_filename,inquire_sequential,
4054         inquire_direct, inquire_formatted, inquire_unformatted, inquire_access,
4055         inquire_read, inquire_write, inquire_readwrite): Add const.
4056         * io/write.c (output_float): Remove unused variable.
4057         * io/write.c (write_a, extract_int, extract_real, output_float,
4058         write_float, write_int, write_i, write_b, write_o, write_z, write_d,
4059         write_e, write_f, write_en, write_es, write_logical, write_integer,
4060         write_character, write_real, write_complex): Add const.
4061         * runtime/error.c (rtoa): Remove unused variable.
4062         * runtime/select.c (select_string): Add const.
4063         * runtime/stop.c (stop_string): Add const.
4064
4065 2003-08-10  Paul Brook  <paul@nowt.org>
4066
4067         * Makefile.am (gfor_helper_src): Add intrinsics/abort.c.
4068         (FFLAGS): Add -fno-underscoring.
4069         * Makefile.in: Regenerate.
4070         * intrinsics/abort.c: New file.
4071
4072 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
4073
4074         * fmain.c (main): Do not call init and cleanup; call set_args instead.
4075         * libgfortran.h (init, cleanup): Remove declarations.
4076         (set_args): Add declaration.
4077         * runtime/main.c (init, cleanup): Make them static, and give them
4078         the constructor and destructor attributes.
4079         (set_args): New function.
4080
4081 2003-08-10  Paul Brook  <paul@nowt.org>
4082
4083         * intrinsics/strinf_intrinsics.c (compare_string): Return value based
4084         on which string is longest.
4085
4086 2003-08-10  Paul Brook  <paul@nowt.org>
4087
4088         * Makefile.am (EXTRA_DIST): Remove old files.
4089         * Makefile.in: Regenerate.
4090
4091 2003-07-26  Paul Brook  <paul@nowt.org>
4092
4093         Rename library to libgfortran.
4094         * libgfortran.h: Change prefix to _libgfortran_.
4095
4096 2003-07-24  Paul Brook  <paul@nowt.org>
4097
4098         * configure.in: Don't pull in system libtool.  Use toplevel
4099         auxiliary files.
4100
4101 2003-07-22  Paul Brook  <paul@nowt.org>
4102
4103         Regenerate all configury files.
4104
4105 2003-07-09  Chun Huang  <compiler@sohu.com>
4106
4107         * intrinsics/string_intrinsic.c (string_scan): New function.
4108         (string_verify): New function.
4109
4110 2003-06-25  Paul Brook  <paul@nowt.org>
4111
4112         * io/unix.c (mem_alloc_r_at, mem_alloc_w_at): Advance logical_offset.
4113         (mem_seek): Don't bother setting physical_offset.
4114
4115 2003-06-20  Paul Brook  <paul@nowt.org>
4116
4117         * libgfor.h (stop_numeric): Declare.
4118         * runtime/pause.c: New file.
4119         * Makefile.am: Add it.
4120
4121 2003-06-08  Paul Brook  <paul@nowt.org>
4122
4123         * m4/cexp.m4 (cabs): Use correct typed version.
4124         (csqrt): New function.
4125
4126 2003-06-07  Canqun Yang  <canqun@yahoo.com.cn>
4127
4128         Spotted by Benjamin and Tobias:
4129         * io/list_read.c: Add Separator '\t'.
4130         (parse_real, read_real): Accept real values starting with an optional
4131         sign follows a decimal point.
4132
4133 2003-06-06  Steven Bosscher  <steven@gcc.gnu.org>
4134
4135         * Makefile.am: Don't put cmath objects in subdir.
4136         * configure.in: Rename MATHOBJ to MATH_OBJ.
4137
4138 2003-06-02  Kejia Zhao  <Kejia_zh@yahoo.com.cn>
4139
4140         * intrinsics/associated.c: New file.
4141         * Makefile.am: Add it. Regenerate Makefile.in.
4142         * libgfor.h: Define g95_array_void, G95_DESCRIPTOR_DATA, and
4143         G95_DESCRIPTOR_DTYPE.
4144
4145 2003-06-01  Canqun Yang  <canqun@yahoo.com.cn>
4146
4147         * io/write.c (calcuate_exp): Rewrite it to avoid overflow.
4148         (calculate_G_format): Rewrite it to eliminate an infinte loop and set
4149         the scale_factor to 0 for F editing.
4150
4151 2003-05-11  Tobias Schlter  <innenminister@gmx.de>
4152
4153         * libgfor.h: Only include stdint.h if it exists.
4154
4155 2003-05-07  Paul Brook  <paul@nowt.org>
4156
4157         * libgfor.h: Use stdint.h types.
4158         * intrinsics/ishift.c: Ditto.
4159         * runtime/memory.c (malloc_t): Reorder fields for better alignment.
4160
4161 2003-05-05  Steven Bosscher  <steven@gcc.gnu.org>
4162
4163         * libgfor.h (offsetof): Define if nobody else does.
4164         * runtime/memory.c (HEADER_SIZE): Use it.
4165
4166 2003-05-01  Tobias Schlter  <innenminister@gmx.de>
4167
4168         * configure.in: Require autoconf 2.54.
4169
4170 2003-04-28  Tobias Schlter  <innenminister@gmx.de>
4171         Paul Brook  <paul@nowt.org>
4172
4173         * intrinsics/reshape_generic.c: Copy the whole element, not just the
4174         first byte.
4175         * m4/transpose.m4: New file.
4176         * Makefile.am: Add them.
4177         Regenerate generated files.
4178
4179 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
4180
4181         * io/format.c (parse_format_list): Allow 'X' without integer
4182         prefix.  This is an extension.  Interpretation is '1X'.
4183
4184 2003-04-18  Tobias Schlter  <Tobias.Schlueter@physik.uni-muenchen.de>
4185
4186         * io/format.c (parse_format_list): Allow '0P'.
4187
4188 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
4189
4190         * Makefile.in: Re-regenerate for automake 1.7.3.
4191
4192 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
4193
4194         Port implementation for CHARACTER SELECT from Andy's tree.
4195         * runtime/select.c: New file
4196         * Makefile.am: Add it.
4197         * Makefile.in: Regenerate.
4198
4199 2003-04-17  Xiaoqiang Zhang <zhangapache@yahoo.com>
4200
4201         * io/transfer.c (formatted_transfer): Modified
4202         * io/unix.c (move_pos_offset): New Function.
4203         * io/format.c (parse_format_list): Modified.
4204
4205 2003-04-15  Xiaoqiang Zhang <zhangapache@yahoo.com>
4206
4207         * io/write.c (write_float,write_real): New implemention of
4208         FMT_G and default float editing.
4209         (calculate_exp,calculate_G_format,output_float): New Function.
4210         (write_float,write_real,write_logical): Modified
4211         * libgfor.h (default_rtoa): Remove Declaration.
4212         * runtime/error.c (default_rtoa): Remove Function.
4213
4214 2003-04-15  Steven Bosscher  <steven@gcc.gnu.org>
4215
4216         Spotted by Yang:
4217         * io/write.c (extract_real): Add missing break statement.
4218
4219 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
4220
4221         * cpu_time.c: Make sure we have a definition of HZ.  Don't
4222         rely on CLOCKS_PER_SEC, it is always 1000000, on any system.
4223
4224 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
4225             Paul Brook  <paul@nowt.org>
4226
4227         * configure.in: Check for process time headers and GETTIMEOFDAY.
4228         * makefile.am: Add intrinsics/cpu_time.c.
4229         * acinclude.m4: New file.
4230         * intrinsics/cpu_time.c: New file.
4231         * m4/dotprodl.m4: Fix typo.
4232         Regenerate generated files.
4233
4234 2003-04-11  Xiaoqiang Zhang <zhangapache@yahoo.com>
4235
4236         * io/write.c (extract_real): Ouput floating point value.
4237         (write_float): New Function.
4238         (write_e, write_f, write_en, write_es): Modified
4239         * io/transfer.c (formatted_transfer): Modified.
4240         * libgfor.h (default_rtoa): Declaration.
4241         (rtoa): Declaration.
4242         * runtime/error.c (default_rtoa): New Function.
4243         (rtoa): New Function.
4244
4245 2003-04-05  Paul Brook  <paul@nowt.org>
4246
4247         * intrinsics/spread_generic.c: New file.
4248         * Makefile.am: Add it. Regenerate Makefile.in.
4249
4250 2003-03-29  Paul Brook  <paul@nowt.org>
4251
4252         * intrinsics/pack_generic.c: New file.
4253         * intrinsics/unpack_generic.c: New file.
4254         * Makefile.am: Add them. Regenerate Makefile.in.
4255
4256 2003-03-25  Paul Brook  <paul@nowt.org>
4257
4258         * intrinsics/eoshift0.c: New file.
4259         * intrinsics/eoshift2.c: New file.
4260         * m4/eoshift1.m4: New file.
4261         * m4/eoshift3.m4: New file.
4262         * Makefile.am: Add them.
4263         * in_unpack_generic.c: Initialize src.
4264         Regenerate generated files.
4265
4266 2003-03-14  Paul Brook  <paul@nowt.org>
4267
4268         * m4/shape.m4: Work properly with array temporaries.
4269         * m4/in_pack.m4: Skip redundant checks for array temporaries.
4270         * runtime/in_pack_generic.c: Ditto.
4271
4272 2003-03-12  Paul Brook  <paul@nowt.org>
4273
4274         * m4/shape.m4: Work properly with noncontiguous arrays.
4275
4276 2003-03-08  Paul Brook  <paul@nowt.org>
4277
4278         * m4/in_pack.m4: Correctly handle zero sized and assumed size arrays.
4279         * runtime/in_pack_generic.c: Ditto.
4280
4281 2003-02-08  Paul Brook  <paul@nowt.org>
4282
4283         * intrinsics/reshape_generic.c: Use runtime_error to report errors.
4284         * io/close.c (st_close): Return void.
4285         * io/open.c (st_open): Return void.
4286         * libgfor.h (g95_array_char): Declare.
4287         (internal_malloc_size): Ditto.
4288         (internal_pack*, internal_unpack*): Ditto.
4289         * m4/in_pack.m4: Allocate storage if neccessary.  Fix logic for packed
4290         arrays.
4291         * m4/in_unpack.m4: Include file fixes.
4292         * m4/reshape.m4: Increment the correct source pointer.
4293         * Makefile.am (maxloc): Fix typo.
4294         * runtime/in_pack_generic.c: Call optimized functions. Allocate
4295         storage if neccessary. Fix logic for packed arrays.
4296         * runtime/in_unpack_generic.c: Call optimized functions.
4297         * runtime/main.c: Use runtime_error to report errors.
4298         * memory.c (internal_malloc_size): Make non-static.
4299
4300 2003-02-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4301
4302         * reshape_packed.c, lock.c: Add #include <string.h>.
4303         * libgfor.h, format.c, inquire.c, io.h, transfer.c, unix.c,
4304         environ.c, error.c, memory.c, string.c: Add const.
4305         * error.c (show_locus): Add void.
4306
4307 2003-02-21  Paul Brook  <paul@nowt.org>
4308
4309         * m4/in_pack.m4: Avoid returning const * parameter.
4310         * Makefile.am: Only regenerate files in maintainer mode.
4311
4312 2003-02-20  Paul Brook  <paul@nowt.org>
4313
4314         Add array repacking support functions.
4315         * m4/in_pack.m4, m4/in_unpack.m4: New files.
4316         * runtime/in_pack_generic.c, runtime/in_unpack_generic.c: New files.
4317         * Makefile.am: Build them.  Regenerate configury files.
4318         * generated/: New directory for generated files (need to move
4319         everything else there).
4320
4321 2003-02-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4322
4323         * m4/cexp.m4: Fix typo.
4324
4325 2003-01-26  Paul Brook  <paul@nowt.org>
4326
4327         * intrinsics/: Add missing generated files.
4328
4329 2003-01-26  Paul Brook  <paul@nowt.org>
4330
4331         * Makefile.am: Put -I before the filename.
4332
4333 2003-01-24  Paul Brook  <paul@nowt.org>
4334
4335         * configure.in: Add AM_MAINTAINER_MODE.
4336
4337 2003-01-23  Paul Brook  <paul@nowt.org>
4338
4339         * configure.in, Makefile.am: Modify to work with unmodified autoconf
4340         and auotmake.
4341         Also regenerate other configury files.
4342
4343 2003-01-21  Paul Brook  <paul@nowt.org>
4344
4345         * io/read.c: Don't use stdint.h, it doesn't exist on cygwin.
4346
4347 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4348
4349         * io/read.c (read_f): Don't use alloca, but safe get_mem instead.
4350         Don't include "alloca.h".
4351
4352 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4353
4354         * intrinsics/string.c: Rename to intrinsics/string_intrinsics.c.
4355         * Makefile.am: Adjust file name.
4356         * Makefile.in: Regenerate.
4357         * gfortypes.h: Kill, include everything in...
4358         * libgfor.h: ...here.  Include config.h
4359         * fmain.c, intrinsics/ishftc.c, intrinsic/reshape_generic.c,
4360         intrinsics/reshape_i4.c, intrinsics/reshape_i8.c,
4361         intrinsics/reshape_packed.c, intrinsics/size.c,
4362         m4/reshape.m4, runtime/main.c, runtime/memory.c: Use macro
4363         for prefix for all functions instead of hardcoded.
4364
4365 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4366
4367         * io/lock.c (library_end): Propagate library return
4368         code.
4369
4370 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4371
4372         Port fixes from Andy's tree:
4373         * io/read.c (read_decimal): Reverse sense of overflow
4374         comparison during integer reads.
4375         * io/format.c (revert): Fix comment.
4376         (next_format): Fix format revision.
4377         * io/unix.c: Fix and simplify mmap version of stream
4378         functions.
4379
4380 2003-01-11  Paul Brook  <paul@nowt.org>
4381
4382         * configure, Makefile.in: Regenerate.
4383
4384 2003-01-11  Paul Brook  <paul@nowt.org>
4385
4386         * runtime/stop.c: Rewrite.
4387
4388 2003-01-08  Paul Brook  <paul@nowt.org>
4389
4390         * configure, Makefile.in: Regenerate.
4391
4392 2003-01-05  Paul Brook  <paul@nowt.org>
4393
4394         * (*.m4) Move to m4/.
4395         * intrinsics/string.c (_gfor_string_index): New Function.
4396
4397 2002-12-29  Paul Brook  <paul@nowt.org>
4398
4399         * intrinsics/reshape.*: New files.
4400         * gcc_config.patch: Update to new GCC configure system.
4401
4402 2002-10-10  Paul Brook  <paul@nowt.org>
4403
4404         * intrinsics/size.c: New file.
4405         * intrinsics/shape.m4: New file.
4406         * Makefile.am: Add above files.
4407
4408 2002-10-02  Paul Brook  <paul@nowt.org>
4409
4410         * fmain.c (main): Move here.
4411         * libgfor.c: From here.
4412         * libgfor.h (gfor_init, gfor_runtime_cleanup): Declare.
4413         * Makefile.am: Build libgforbegin.
4414         * gcc_config.patch: Remove stray -march=athlon.
4415         * dotprodl.m4: Fix use of L8_TO_L4 macro.
4416         * ifunction.m4: Move variable declarations to allow compilation with
4417         gcc < 3.0
4418         * specific.m4, specific4.m4: Fix typo typecode->type_code.
4419         * README: Document use of patch -p1.
4420
4421 2002-09-12  Paul Brook  <paul@nowt.org>
4422
4423         * math/*: Add complex math library functions.
4424         * intrinsics/specific(2).m4: Generate Specific intrinsic functions.
4425         * Makefile.am: Add details for above.
4426         * configure.in: Use AC_PROG_F95.  Test for the presence of csin.
4427
4428 2002-09-09  Paul Brook  <paul@nowt.org>
4429
4430         * libgfor.c (determine_endianness): Use an array rather than a struct.
4431         * intrinsics/dotprod*, matmul*: Implement DOT_PRODUCT and MATMUL.
4432
4433 2002-09-09  Steven Bosscher  <s.bosscher@student.tudelft.nl>
4434
4435         * libgfor.c: Add fatal signal handler.
4436         Romove superfluous abort() calls.
4437
4438 2002-09-07  Paul Brook <paul@nowt.org>
4439
4440         * Makefile.am, intrinsics: Major rewrite.
4441
4442 2002-09-02  Paul Brook <paul@nowt.org>
4443
4444         * Makefile.am: Added -I$(srcdir) to m4 rule.
4445
4446 2002-08-30  Paul Brook <paul@nowt.org>
4447
4448         * io/*: Integrated libgforio.
4449         * Makefile.am, configure.in: Make compatable with GCC. Build code for
4450         intrinsics in the intrisics directory.
4451         * intrinsics/intrinsics.m4: Move here. Strip directories from the
4452         filename. Add 'and' and 'all' intrinsics.
4453
4454 2002-08-17  Paul Brook <paul@nowt.org>
4455
4456         * ALL: First release as more than just a single file