OSDN Git Service

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