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