OSDN Git Service

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