OSDN Git Service

Fix bug that causes testsuite failure in namelist_13.f90 on some systems.
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2005-04-18 Paul Thomas <pault@gcc.gnu.org>
2            Jerry DeLisle <jvdelisle@verizon.net> 
3
4         * io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
5         * io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
6         call for ext_name.  These fix the bug reported by Jerry DeLisle to
7         the fortran list and are based on his suggested fix.
8
9
10 2005-04-22  Thomas Koenig  <Thomas.Koenig@online.de>
11
12         PR libfortran/20074
13         PR libfortran/20436
14         PR libfortran/21108
15         * m4/reshape.m4 (reshape_`'rtype_kind):  rs, rex:  New
16         variables, to be used in calculation of return array sizes.
17         Populate return array descriptor if ret->data is NULL.
18         Fix condition for early return (it used to test something
19         undefined if order was used).
20         Remove duplicate check wether pad is used.
21         * intrinsics/reshape_generic.c (reshape_generic): Likewise.
22         Fix a few places where the wrong variables were set.
23         * generated/reshape_i4.c: Regenerated.
24         * generated/reshape_i8.c: Regenerated.
25
26 2005-04-18 Paul Thomas <pault@gcc.gnu.org>
27
28         * io/list_read.c (nml_touch_nodes, nml_read_obj,
29         nml_get_obj_data): Fix memory leaks in code for derived types.
30
31 2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
32
33         PR libfortran/20950
34         * io/inquire.c (inquire_via_unit): Check for the gfc_unit being
35         NULL when setting ioparm.sequential.
36
37 2005-04-17  Thomas Koenig  <Thomas.Koenig@online.de>
38
39         PR libfortran/21075
40         * m4/reshape.m4 (reshape_`'rtype_kind):  Change dimension
41         of auxiliary arrays from GFC_MAX_DIMENSIONS - 1 to
42         GFC_MAX_DIMENSIONS.
43         * intrinsics/reshape_generic.c (reshape_generic):  Likewise.
44         * generated/reshape_i4.c:  Regenerated.
45         * generated/reshape_i8.c:  Regenerated.
46
47 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
48
49         * io/list_read.c (eat_separator): at_eol = 1 replaced
50         (zapped at some time?).
51
52 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
53
54         PR libgfortran/12884
55         PR libgfortran/17285
56         PR libgfortran/18122
57         PR libgfortran/18210
58         PR libgfortran/18392
59         PR libgfortran/18591
60         PR libgfortran/18879
61         * io/io.h (nml_ls): Declare.
62         (namelist_info): Modify for arrays.
63         * io/list_read.c (namelist_read): Reduced to call to new functions.
64         (match_namelist_name): Simplified.
65         (nml_query): Handles stdin queries ? and =?. New function.
66         (nml_get_obj_data): Parses object name. New function.
67         (touch_nml_nodes): Marks objects for read. New function.
68         (untouch_nml_nodes): Resets objects. New function.
69         (parse_qualifier): Parses and checks qualifiers. New function
70         (nml_read_object): Reads and stores object data. New function.
71         (eat_separator): No new_record on '/' in namelist.
72         (finish_separator): No new_record on '/' in namelist.
73         (read_logical): Error return for namelist.
74         (read_integer): Error return for namelist.
75         (read_complex): Error return for namelist.
76         (read_real): Error return for namelist.
77         * io/lock.c (library_end): Free extended namelist_info types.
78         * io/transfer.c (st_set_nml_var): Modified for arrays.
79         (st_set_nml_var_dim): Dimension descriptors. New function.
80         * io/write.c (namelist_write): Reduced to call to new functions.
81         (nml_write_obj): Writes output for object. New function.
82         (write_integer): Suppress leading blanks for repeat counts.
83         (write_int): Suppress leading blanks for repeat counts.
84         (write_float): Suppress leading blanks for repeat counts.
85         (output_float): Suppress leading blanks for repeat counts.
86
87 2005-04-15  Thomas Koenig  <Thomas.Koenig@online.de>
88
89         PR libfortran/18495
90         * intrinsics/spread_generic.c (spread):  Remove const from
91         return array descriptor.
92         New variables: rrank (rank of return array),  rs (for
93         calculating the size of the return array), srank (rank
94         of the source array).
95         Generate runtime error if the dim= argument is larger than
96         the rank of the return array.
97         Generate runtime error if the needed rank of the return
98         array is larger than 7.
99         If ret->data is null, populate the return array descriptor
100         and initialize the variables for the actual operation.
101         Otherwise, set ret->dim[0].stride to one if it is zero.
102         Change second, independent use of variable dim to srank.
103
104 2005-04-12  Mike Stump  <mrs@apple.com>
105
106         * configure: Regenerate.
107
108 2005-04-13  Thomas Koenig  <Thomas.Koenig@online.de>
109
110         PR libfortran/19106
111         * m4/iforeach.c (name`'rtype_qual`_'atype_code):  Add TODO
112         that setting correct strides is a front end job.
113         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
114         a lowest stride of 0, adjust to 1.
115         * m4/ifunction.c (name`'rtype_qual`_'atype_code):  Add TODO
116         that setting correct strides is a front end job.
117         (`m'name`'rtype_qual`_'atype_code):  Likewise.  If mask has
118         a lowest stride of 0, adjust to 1.
119         * maxloc0_4_i4.c: Regenerated
120         * maxloc0_4_i8.c: Regenerated
121         * maxloc0_4_r4.c: Regenerated
122         * maxloc0_4_r8.c: Regenerated
123         * maxloc0_8_i4.c: Regenerated
124         * maxloc0_8_i8.c: Regenerated
125         * maxloc0_8_r4.c: Regenerated
126         * maxloc0_8_r8.c: Regenerated
127         * maxloc1_4_i4.c: Regenerated
128         * maxloc1_4_i8.c: Regenerated
129         * maxloc1_4_r4.c: Regenerated
130         * maxloc1_4_r8.c: Regenerated
131         * maxloc1_8_i4.c: Regenerated
132         * maxloc1_8_i8.c: Regenerated
133         * maxloc1_8_r4.c: Regenerated
134         * maxloc1_8_r8.c: Regenerated
135         * maxval_i4.c: Regenerated
136         * maxval_i8.c: Regenerated
137         * maxval_r4.c: Regenerated
138         * maxval_r8.c: Regenerated
139         * minloc0_4_i4.c: Regenerated
140         * minloc0_4_i8.c: Regenerated
141         * minloc0_4_r4.c: Regenerated
142         * minloc0_4_r8.c: Regenerated
143         * minloc0_8_i4.c: Regenerated
144         * minloc0_8_i8.c: Regenerated
145         * minloc0_8_r4.c: Regenerated
146         * minloc0_8_r8.c: Regenerated
147         * minloc1_4_i4.c: Regenerated
148         * minloc1_4_i8.c: Regenerated
149         * minloc1_4_r4.c: Regenerated
150         * minloc1_4_r8.c: Regenerated
151         * minloc1_8_i4.c: Regenerated
152         * minloc1_8_i8.c: Regenerated
153         * minloc1_8_r4.c: Regenerated
154         * minloc1_8_r8.c: Regenerated
155         * minval_i4.c: Regenerated
156         * minval_i8.c: Regenerated
157         * minval_r4.c: Regenerated
158         * minval_r8.c: Regenerated
159         * product_c4.c: Regenerated
160         * product_c8.c: Regenerated
161         * product_i4.c: Regenerated
162         * product_i8.c: Regenerated
163         * product_r4.c: Regenerated
164         * product_r8.c: Regenerated
165         * sum_c4.c: Regenerated
166         * sum_c8.c: Regenerated
167         * sum_i4.c: Regenerated
168         * sum_i8.c: Regenerated
169         * sum_r4.c: Regenerated
170         * sum_r8.c: Regenerated
171
172 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
173
174         PR libfortran/20788
175         * runtime/environ.c (init_unsigned_integer): Function for
176         environment variables we want to be positive.
177         (init_integer): Function to allow negative environment
178         variables (e.g. for GFORTRAN_STDIN_UNIT).
179         
180 2005-04-10  Thomas Koenig <Thomas.Koenig@online.de>
181
182         PR libfortran/17992
183         PR libfortran/19568
184         PR libfortran/19595
185         PR libfortran/20005
186         PR libfortran/20092
187         PR libfortran/20131
188         PR libfortran/20661
189         PR libfortran/20744
190         * io/transfer.c (top level): eor_condition: New static variable.
191         (read_sf): Remove unnecessary zeroing of buffer (there is enough
192         information in its length).
193         Return a string of length 0 (to be padded by caller) if EOR was
194         seen previously.
195         Remove erroneous special casing of EOR for standard input.
196         Set eor_condition for non-advancing I/O if an end of line was
197         detected.
198         Increment ioparm.size if necessary.
199         (formatted_transfer):  Skip the function if there is an EOR condition.
200         (data_transfer_init):  Initialize eor_condition to zero (false).
201         (next_record_r):  Clear sf_seen_eor if a \n has been seen already.
202         (finalize_transfer):  If there is an EOR condition, raise the error.
203
204 2005-04-09  Bud Davis  <bdavis@gfortran.org>
205             Steven G. Kargl <kargls@comcast.net>
206
207         PR fortran/19872
208         * io/transfer.c (data_transfer_init): truncate an existing
209         file on the first write.
210
211 2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
212
213         PR libfortran/19106
214         PR libfortran/19014
215         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
216         If retarray->data is NULL (i.e. the front end does not
217         know the rank and dimenson of the array), fill in its
218         properties and allocate memory.
219         Change the assertions about rank and dimension of retarray into
220         runtime errors and only check them for retarray->data != NULL.
221         Do the same for correcting the stride from 0 to 1 in retarray.
222         (`m'name`'rtype_qual`_'atype_code): Likewise.
223         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
224         Change assertion about rank of array to runtime error.
225         (`m'name`'rtype_qual`_'atype_code): Likewise.
226         * generated/all_l4.c: Regenerated.
227         * generated/all_l8.c: Regenerated.
228         * generated/any_l4.c: Regenerated.
229         * generated/any_l8.c: Regenerated.
230         * generated/count_4_l4.c: Regenerated.
231         * generated/count_4_l8.c: Regenerated.
232         * generated/count_8_l4.c: Regenerated.
233         * generated/count_8_l8.c: Regenerated.
234         * generated/maxloc0_4_i4.c: Regenerated.
235         * generated/maxloc0_4_i8.c: Regenerated.
236         * generated/maxloc0_4_r4.c: Regenerated.
237         * generated/maxloc0_4_r8.c: Regenerated.
238         * generated/maxloc0_8_i4.c: Regenerated.
239         * generated/maxloc0_8_i8.c: Regenerated.
240         * generated/maxloc0_8_r4.c: Regenerated.
241         * generated/maxloc0_8_r8.c: Regenerated.
242         * generated/maxloc1_4_i4.c: Regenerated.
243         * generated/maxloc1_4_i8.c: Regenerated.
244         * generated/maxloc1_4_r4.c: Regenerated.
245         * generated/maxloc1_4_r8.c: Regenerated.
246         * generated/maxloc1_8_i4.c: Regenerated.
247         * generated/maxloc1_8_i8.c: Regenerated.
248         * generated/maxloc1_8_r4.c: Regenerated.
249         * generated/maxloc1_8_r8.c: Regenerated.
250         * generated/maxval_i4.c: Regenerated.
251         * generated/maxval_i8.c: Regenerated.
252         * generated/maxval_r4.c: Regenerated.
253         * generated/maxval_r8.c: Regenerated.
254         * generated/minloc0_4_i4.c: Regenerated.
255         * generated/minloc0_4_i8.c: Regenerated.
256         * generated/minloc0_4_r4.c: Regenerated.
257         * generated/minloc0_4_r8.c: Regenerated.
258         * generated/minloc0_8_i4.c: Regenerated.
259         * generated/minloc0_8_i8.c: Regenerated.
260         * generated/minloc0_8_r4.c: Regenerated.
261         * generated/minloc0_8_r8.c: Regenerated.
262         * generated/minloc1_4_i4.c: Regenerated.
263         * generated/minloc1_4_i8.c: Regenerated.
264         * generated/minloc1_4_r4.c: Regenerated.
265         * generated/minloc1_4_r8.c: Regenerated.
266         * generated/minloc1_8_i4.c: Regenerated.
267         * generated/minloc1_8_i8.c: Regenerated.
268         * generated/minloc1_8_r4.c: Regenerated.
269         * generated/minloc1_8_r8.c: Regenerated.
270         * generated/minval_i4.c: Regenerated.
271         * generated/minval_i8.c: Regenerated.
272         * generated/minval_r4.c: Regenerated.
273         * generated/minval_r8.c: Regenerated.
274         * generated/product_c4.c: Regenerated.
275         * generated/product_c8.c: Regenerated.
276         * generated/product_i4.c: Regenerated.
277         * generated/product_i8.c: Regenerated.
278         * generated/product_r4.c: Regenerated.
279         * generated/product_r8.c: Regenerated.
280         * generated/sum_c4.c: Regenerated.
281         * generated/sum_c8.c: Regenerated.
282         * generated/sum_i4.c: Regenerated.
283         * generated/sum_i8.c: Regenerated.
284         * generated/sum_r4.c: Regenerated.
285         * generated/sum_r8.c: Regenerated.
286
287 2005-04-09  Thomas Koenig <Thomas.Koenig@online.de>
288
289         PR libfortran/20163
290         * runtime/string.c (compare0): Use fstrlen() to 
291         strip trailing blanks from option string.
292
293 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
294
295         PR fortran/13257
296         * format.c (parse_format_list): Allow an optional comma
297         between descriptors.
298
299 2005-04-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
300
301         * io/backspace.c (unformatted_backspace): Do not dereference
302         the pointer to the stream.
303
304 2005-04-07  Andrew Pinski  <pinskia@physics.uc.edu>
305
306         PR libfortran/20766
307         * configure.ac (extra_ldflags_libgfortran): Set for *-darwin* to
308         "-Wl,-single_module".
309         * configure: Regenerate.
310         * Makefile.am (libgfortran_la_LDFLAGS): Add extra_ldflags_libgfortran.
311         * Makefile.in: Regenerate.
312
313 2005-04-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
314
315         PR libfortran/20755
316         * write.c (write_float): A G edit descriptor may locally change
317         the scale factor, but it needs to be restored afterwards.
318
319 2005-04-03  Dale Ranta  <dir@lanl.gov>
320             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
321
322         PR libfortran/20068
323         PR libfortran/20125
324         PR libfortran/20156
325         PR libfortran/20471
326         * io/backspace.c (unformatted_backspace): Fix error in arithmetic.
327         (st_backspace): When in WRITING mode, we flush and falling back
328         into READING mode. In all cases, correctly position the stream.
329
330 2005-03-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
331
332         PR libfortran/20660
333         * io/inquire.c (inquire_via_unit): Non-opened units should still be
334         reported by an INQUIRE statement as existing.
335         * io/transfer.c (data_transfer_init): Never accept negative units.
336
337 2005-03-29  Dale Ranta  <dir@lanl.gov>
338             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
339
340         PR libfortran/20163
341         * io/open.c (st_open): call library_end() before returning even if
342         an error arises.
343
344 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
345
346         PR libfortran/19678
347         * list_read.c (next_char, eat_separator, finish_separator, read_real)
348         (namelist_read): Add support for '\r' as well as '\n' as EOL
349         character.
350
351         PR libfortran/19679
352         * list_read.c (read_sf): Add a '\r' in a test to support DOS
353         line-endings when line length is exceeded.
354
355 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
356
357         PR libfortran/15332
358         * io/format.c (parse_format_list): format node for colon edit
359         descriptor needs a repeat counter set to 1.
360
361 2005-02-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
362
363         * config.h.in: Regenerate.
364
365 2005-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
366
367         PR libfortran/18025
368         * write.c (output_float): Handling the "F0.d" format similarly as
369         commercial compilers.
370
371 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
372
373         * Makefile.am: Added new files.
374         * Makefile.in: Regenerate.
375         * aclocal.m4: Regenerate.
376         * configure.ac: add checks for signal.h headers file, as well as
377         following functions: chdir, strerror, getlogin, gethostname, kill,
378         link, symlink, perror, sleep, time.
379         * configure: Regenerate.
380         * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
381         intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
382         intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
383         intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
384         implementend g77 intrinsics.
385
386 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
387
388         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
389         In all substitutions, leave gcc_version to be expanded by the Makefile.
390         * aclocal.m4, configure: Regenerate.
391         * Makefile.am: Set gcc_version.
392         * Makefile.in: Regenerate.
393
394 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
395
396         PR libfortran/20257
397         * open.c (new_unit): set record length to max_offset rather than
398           using a hard-coded limit (which was too low).
399
400 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
401
402         PR libfortran/20480
403         * write.c (output_float): special check when writing 0.0 with
404           EN and ES formats.
405
406 2005-03-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
407
408         PR libfortran/20124
409         * write.c (output_float): Adds a nzero_real variable to store
410         the number of leading zeros whatever the format width is. Corrects
411         the rounding of numbers less than 10^(-width). Fixes typo in an
412         error message. Updates copyright years
413
414 2005-02-27  Toon Moene  <toon@moene.indiv.nluug.nl>
415
416         * runtime/environ.c: Update copyright years.
417
418 2005-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
419
420         * io/write.c: Update copyright years.
421
422 2005-02-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
423
424         PR libfortran/20101
425         * io/write.c (output_float): Added special check for value 0.0 in
426         PE format.
427
428 2004-02-27  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
429
430         * io/write.c (output_float): Fix typo in condition.
431
432 2005-02-25  Peter O'Gorman  <peter@pogma.com>
433             Toon Moene  <toon@moene.indiv.nluug.nl>
434
435         PR libgfortran/17748
436         * runtime/environ.c: Remove references to environ.
437         (show_variables): remove GFORTRAN_UNBUFFERED_* and
438         GFORTRAN_NAME_* because they require environ.
439         (pattern_scan): Remove function.
440
441 2004-02-22  Paul Thomas <paulthomas2@wannado.fr>
442             Bud Davis  <bdavis@gfortran.org>
443
444         * io/list_read.c (read_real): Handle separators properly
445         in list directed read.
446
447 2004-02-21  Bud Davis  <bdavis@gfortran.org>
448
449         PR fortran/20086
450         * io/transfer.c (write_constant_string): accept an 'h' as
451         the start of a hollerith format string.
452
453 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
454
455         PR libfortran/19302
456         * intrinsics/c99_functions.c (nextafterf): Special-case infinite
457         numbers.
458
459 2005-02-21  Steven G. Kargl  <kargls@comcast.net>
460
461         * io/write.c (output_float):  Typo in error meesage.
462
463 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
464
465         PR 20085
466         * intrinsic/args.c (iargc): Off by 1.
467
468 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
469
470       *  intrinsic/date_and_time.c: Fix conformance problems.
471
472 2005-02-01  Paul Thomas <paulthomas2@wanadoo.fr>
473
474         PR libgfortran/19363
475         PR libgfortran/19691
476         * libgfortran.h (isfinite): Work around broken isfinite(x) in Cygwin.
477
478 2005-01-30  Bud Davis  <bdavis@gfortran.org>
479
480         PR fortran/19647
481         * io/inquire.c (inquire_via_unit): Use correct variable for
482         pad.
483
484 2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
485
486         PR libfortran/19595
487         * io/transfer.c (data_transfer_init): eor requires advance="NO".
488
489 2005-01-25  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
490
491         PR libfortran/19524
492         * io/read.c (read_f): Don't free uninitialized pointer.
493
494 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
495         Paul Brook  <paul@codesourcery.com>
496
497         PR fortran/19294
498         * Makefile.am: Add transpose_c4.c and transpose_c8.c.
499         * intrinsics/cshift0.c: Use separate optimized loops for complex types.
500         * m4/transpose.m4: Include type letter in function name.
501         * Makefile.in: Regenerate.
502         * generated/transpose_*.c: Regenerate.
503
504 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
505
506         PR libfortran/19451
507         * io/transfer.c (finalize_transfer):  Don't do anything if
508         there is an error condition.
509
510 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
511
512         PR libgfortran/19052
513         * libgfortran.h (options_t): Add stderr_unit.
514         * io/io.h (error_stream): Declare.
515         * io/open.c (new_unit): Do not terminate abnormally if opening
516         file preconnected to stdin, stdout, or stderr.
517         * io/unit.c (init_units): Initialize stderr_unit.
518         * io/unix.c (error_stream): New function.
519         * runtime/environ.c (GFORTRAN_STDERR_UNIT): New environment variable.
520
521 2005-01-22  Thomas Koenig  <Thomas.Koenig@online.de>
522
523         PR libfortran/18982
524         * io/unix.c (regular_file):  No need to change flags->action
525         if an error occurs.  Document this.
526         No need to call stat() for STATUS_OLD, open() will
527         fail anyway.
528         For ACTION_UNSPECIFIED, try open for read-write, then for
529         read-only if open fails with EACCES, then for write-only
530         if that fails with EACCES again.
531         * io/unix.c (open_external): Document changed behavior of
532         regular_file.
533
534 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
535
536         PR fortran/19194
537         * io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
538         use CHARACTER macro for definition of string valued paramters.
539
540 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
541
542         PR fortran/19314
543         * io/inquire.c(inquire_via_unit): implement POSITION=.
544         * io/transfer.c(next_record): update position for
545         INQUIRE.
546         * io/rewind.c(st_rewind): update position for
547         INQUIRE.
548
549 2005-01-16  Bud Davis  <bdavis9659@comcast.net>
550
551         PR fortran/18778
552         * io/transfer.c (us_read): no bytes available is not a
553         runtime error.
554
555 2005-01-15  Bud Davis  <bdavis9659@comcast.net>
556
557         PR fortran/18983
558         * io/transfer.c (st_write_done): only truncate when it
559         is required.
560
561 2005-01-12  Toon Moene  <toon@moene.indiv.nluug.nl>
562
563         PR libfortran/19280
564         c99_protos.h: License changed to GPL+exception.
565         libgfortran.h: Ditto.
566         intrinsics/abort.c: Ditto.
567         intrinsics/args.c: Ditto.
568         intrinsics/associated.c: Ditto.
569         intrinsics/bessel.c: Ditto.
570         intrinsics/c99_functions.c: Ditto.
571         intrinsics/cpu_time.c: Ditto.
572         intrinsics/cshift0.c: Ditto.
573         intrinsics/date_and_time.c: Ditto.
574         intrinsics/env.c: Ditto.
575         intrinsics/eoshift0.c: Ditto.
576         intrinsics/eoshift2.c: Ditto.
577         intrinsics/erf.c: Ditto.
578         intrinsics/etime.c: Ditto.
579         intrinsics/exit.c: Ditto.
580         intrinsics/flush.c: Ditto.
581         intrinsics/fnum.c: Ditto.
582         intrinsics/getXid.c: Ditto.
583         intrinsics/getcwd.c: Ditto.
584         intrinsics/ishftc.c: Ditto.
585         intrinsics/mvbits.c: Ditto.
586         intrinsics/pack_generic.c: Ditto.
587         intrinsics/rand.c: Ditto.
588         intrinsics/random.c: Ditto.
589         intrinsics/reshape_generic.c: Ditto.
590         intrinsics/reshape_packed.c: Ditto.
591         intrinsics/size.c: Ditto.
592         intrinsics/spread_generic.c: Ditto.
593         intrinsics/stat.c: Ditto.
594         intrinsics/string_intrinsics.c: Ditto.
595         intrinsics/system.c: Ditto.
596         intrinsics/system_clock.c: Ditto.
597         intrinsics/transpose_generic.c: Ditto.
598         intrinsics/umask.c: Ditto.
599         intrinsics/unlink.c: Ditto.
600         intrinsics/unpack_generic.c: Ditto.
601         io/backspace.c: Ditto.
602         io/close.c: Ditto.
603         io/endfile.c: Ditto.
604         io/format.c: Ditto.
605         io/inquire.c: Ditto.
606         io/io.h: Ditto.
607         io/list_read.c: Ditto.
608         io/lock.c: Ditto.
609         io/open.c: Ditto.
610         io/read.c: Ditto.
611         io/rewind.c: Ditto.
612         io/transfer.c: Ditto.
613         io/unit.c: Ditto.
614         io/unix.c: Ditto.
615         io/write.c: Ditto.
616         m4/all.m4: Ditto.
617         m4/any.m4: Ditto.
618         m4/cexp.m4: Ditto.
619         m4/chyp.m4: Ditto.
620         m4/count.m4: Ditto.
621         m4/cshift1.m4: Ditto.
622         m4/ctrig.m4: Ditto.
623         m4/dotprod.m4: Ditto.
624         m4/dotprodc.m4: Ditto.
625         m4/dotprodl.m4: Ditto.
626         m4/eoshift1.m4: Ditto.
627         m4/eoshift3.m4: Ditto.
628         m4/exponent.m4: Ditto.
629         m4/fraction.m4: Ditto.
630         m4/head.m4: Ditto.
631         m4/iforeach.m4: Ditto.
632         m4/ifunction.m4: Ditto.
633         m4/in_pack.m4: Ditto.
634         m4/in_unpack.m4: Ditto.
635         m4/iparm.m4: Ditto.
636         m4/matmul.m4: Ditto.
637         m4/matmull.m4: Ditto.
638         m4/maxloc0.m4: Ditto.
639         m4/maxloc1.m4: Ditto.
640         m4/maxval.m4: Ditto.
641         m4/minloc0.m4: Ditto.
642         m4/minloc1.m4: Ditto.
643         m4/minval.m4: Ditto.
644         m4/mtype.m4: Ditto.
645         m4/nearest.m4: Ditto.
646         m4/pow.m4: Ditto.
647         m4/product.m4: Ditto.
648         m4/reshape.m4: Ditto.
649         m4/set_exponent.m4: Ditto.
650         m4/shape.m4: Ditto.
651         m4/specific.m4: Ditto.
652         m4/specific2.m4: Ditto.
653         m4/sum.m4: Ditto.
654         m4/transpose.m4: Ditto.
655         m4/types.m4: Ditto.
656         runtime/environ.c: Ditto.
657         runtime/error.c: Ditto.
658         runtime/in_pack_generic.c: Ditto.
659         runtime/in_unpack_generic.c: Ditto.
660         runtime/main.c: Ditto.
661         runtime/memory.c: Ditto.
662         runtime/normalize.c: Ditto.
663         runtime/pause.c: Ditto.
664         runtime/select.c: Ditto.
665         runtime/stop.c: Ditto.
666         runtime/string.c: Ditto.
667         generated/_abs_c4.f90: Regenerated.
668         generated/_abs_c8.f90: Regenerated.
669         generated/_abs_i4.f90: Regenerated.
670         generated/_abs_i8.f90: Regenerated.
671         generated/_abs_r4.f90: Regenerated.
672         generated/_abs_r8.f90: Regenerated.
673         generated/_acos_r4.f90: Regenerated.
674         generated/_acos_r8.f90: Regenerated.
675         generated/_aint_r4.f90: Regenerated.
676         generated/_aint_r8.f90: Regenerated.
677         generated/_anint_r4.f90: Regenerated.
678         generated/_anint_r8.f90: Regenerated.
679         generated/_asin_r4.f90: Regenerated.
680         generated/_asin_r8.f90: Regenerated.
681         generated/_atan2_r4.f90: Regenerated.
682         generated/_atan2_r8.f90: Regenerated.
683         generated/_atan_r4.f90: Regenerated.
684         generated/_atan_r8.f90: Regenerated.
685         generated/_conjg_c4.f90: Regenerated.
686         generated/_conjg_c8.f90: Regenerated.
687         generated/_cos_c4.f90: Regenerated.
688         generated/_cos_c8.f90: Regenerated.
689         generated/_cos_r4.f90: Regenerated.
690         generated/_cos_r8.f90: Regenerated.
691         generated/_cosh_r4.f90: Regenerated.
692         generated/_cosh_r8.f90: Regenerated.
693         generated/_dim_i4.f90: Regenerated.
694         generated/_dim_i8.f90: Regenerated.
695         generated/_dim_r4.f90: Regenerated.
696         generated/_dim_r8.f90: Regenerated.
697         generated/_exp_c4.f90: Regenerated.
698         generated/_exp_c8.f90: Regenerated.
699         generated/_exp_r4.f90: Regenerated.
700         generated/_exp_r8.f90: Regenerated.
701         generated/_log10_r4.f90: Regenerated.
702         generated/_log10_r8.f90: Regenerated.
703         generated/_log_c4.f90: Regenerated.
704         generated/_log_c8.f90: Regenerated.
705         generated/_log_r4.f90: Regenerated.
706         generated/_log_r8.f90: Regenerated.
707         generated/_mod_i4.f90: Regenerated.
708         generated/_mod_i8.f90: Regenerated.
709         generated/_mod_r4.f90: Regenerated.
710         generated/_mod_r8.f90: Regenerated.
711         generated/_sign_i4.f90: Regenerated.
712         generated/_sign_i8.f90: Regenerated.
713         generated/_sign_r4.f90: Regenerated.
714         generated/_sign_r8.f90: Regenerated.
715         generated/_sin_c4.f90: Regenerated.
716         generated/_sin_c8.f90: Regenerated.
717         generated/_sin_r4.f90: Regenerated.
718         generated/_sin_r8.f90: Regenerated.
719         generated/_sinh_r4.f90: Regenerated.
720         generated/_sinh_r8.f90: Regenerated.
721         generated/_sqrt_c4.f90: Regenerated.
722         generated/_sqrt_c8.f90: Regenerated.
723         generated/_sqrt_r4.f90: Regenerated.
724         generated/_sqrt_r8.f90: Regenerated.
725         generated/_tan_r4.f90: Regenerated.
726         generated/_tan_r8.f90: Regenerated.
727         generated/_tanh_r4.f90: Regenerated.
728         generated/_tanh_r8.f90: Regenerated.
729         generated/all_l4.c: Regenerated.
730         generated/all_l8.c: Regenerated.
731         generated/any_l4.c: Regenerated.
732         generated/any_l8.c: Regenerated.
733         generated/count_4_l4.c: Regenerated.
734         generated/count_4_l8.c: Regenerated.
735         generated/count_8_l4.c: Regenerated.
736         generated/count_8_l8.c: Regenerated.
737         generated/cshift1_4.c: Regenerated.
738         generated/cshift1_8.c: Regenerated.
739         generated/dotprod_c4.c: Regenerated.
740         generated/dotprod_c8.c: Regenerated.
741         generated/dotprod_i4.c: Regenerated.
742         generated/dotprod_i8.c: Regenerated.
743         generated/dotprod_l4.c: Regenerated.
744         generated/dotprod_l8.c: Regenerated.
745         generated/dotprod_r4.c: Regenerated.
746         generated/dotprod_r8.c: Regenerated.
747         generated/eoshift1_4.c: Regenerated.
748         generated/eoshift1_8.c: Regenerated.
749         generated/eoshift3_4.c: Regenerated.
750         generated/eoshift3_8.c: Regenerated.
751         generated/exp_c4.c: Regenerated.
752         generated/exp_c8.c: Regenerated.
753         generated/exponent_r4.c: Regenerated.
754         generated/exponent_r8.c: Regenerated.
755         generated/fraction_r4.c: Regenerated.
756         generated/fraction_r8.c: Regenerated.
757         generated/hyp_c4.c: Regenerated.
758         generated/hyp_c8.c: Regenerated.
759         generated/in_pack_i4.c: Regenerated.
760         generated/in_pack_i8.c: Regenerated.
761         generated/in_unpack_i4.c: Regenerated.
762         generated/in_unpack_i8.c: Regenerated.
763         generated/matmul_c4.c: Regenerated.
764         generated/matmul_c8.c: Regenerated.
765         generated/matmul_i4.c: Regenerated.
766         generated/matmul_i8.c: Regenerated.
767         generated/matmul_l4.c: Regenerated.
768         generated/matmul_l8.c: Regenerated.
769         generated/matmul_r4.c: Regenerated.
770         generated/matmul_r8.c: Regenerated.
771         generated/maxloc0_4_i4.c: Regenerated.
772         generated/maxloc0_4_i8.c: Regenerated.
773         generated/maxloc0_4_r4.c: Regenerated.
774         generated/maxloc0_4_r8.c: Regenerated.
775         generated/maxloc0_8_i4.c: Regenerated.
776         generated/maxloc0_8_i8.c: Regenerated.
777         generated/maxloc0_8_r4.c: Regenerated.
778         generated/maxloc0_8_r8.c: Regenerated.
779         generated/maxloc1_4_i4.c: Regenerated.
780         generated/maxloc1_4_i8.c: Regenerated.
781         generated/maxloc1_4_r4.c: Regenerated.
782         generated/maxloc1_4_r8.c: Regenerated.
783         generated/maxloc1_8_i4.c: Regenerated.
784         generated/maxloc1_8_i8.c: Regenerated.
785         generated/maxloc1_8_r4.c: Regenerated.
786         generated/maxloc1_8_r8.c: Regenerated.
787         generated/maxval_i4.c: Regenerated.
788         generated/maxval_i8.c: Regenerated.
789         generated/maxval_r4.c: Regenerated.
790         generated/maxval_r8.c: Regenerated.
791         generated/minloc0_4_i4.c: Regenerated.
792         generated/minloc0_4_i8.c: Regenerated.
793         generated/minloc0_4_r4.c: Regenerated.
794         generated/minloc0_4_r8.c: Regenerated.
795         generated/minloc0_8_i4.c: Regenerated.
796         generated/minloc0_8_i8.c: Regenerated.
797         generated/minloc0_8_r4.c: Regenerated.
798         generated/minloc0_8_r8.c: Regenerated.
799         generated/minloc1_4_i4.c: Regenerated.
800         generated/minloc1_4_i8.c: Regenerated.
801         generated/minloc1_4_r4.c: Regenerated.
802         generated/minloc1_4_r8.c: Regenerated.
803         generated/minloc1_8_i4.c: Regenerated.
804         generated/minloc1_8_i8.c: Regenerated.
805         generated/minloc1_8_r4.c: Regenerated.
806         generated/minloc1_8_r8.c: Regenerated.
807         generated/minval_i4.c: Regenerated.
808         generated/minval_i8.c: Regenerated.
809         generated/minval_r4.c: Regenerated.
810         generated/minval_r8.c: Regenerated.
811         generated/nearest_r4.c: Regenerated.
812         generated/nearest_r8.c: Regenerated.
813         generated/pow_c4_i4.c: Regenerated.
814         generated/pow_c4_i8.c: Regenerated.
815         generated/pow_c8_i4.c: Regenerated.
816         generated/pow_c8_i8.c: Regenerated.
817         generated/pow_i4_i4.c: Regenerated.
818         generated/pow_i4_i8.c: Regenerated.
819         generated/pow_i8_i4.c: Regenerated.
820         generated/pow_i8_i8.c: Regenerated.
821         generated/pow_r4_i4.c: Regenerated.
822         generated/pow_r4_i8.c: Regenerated.
823         generated/pow_r8_i4.c: Regenerated.
824         generated/pow_r8_i8.c: Regenerated.
825         generated/product_c4.c: Regenerated.
826         generated/product_c8.c: Regenerated.
827         generated/product_i4.c: Regenerated.
828         generated/product_i8.c: Regenerated.
829         generated/product_r4.c: Regenerated.
830         generated/product_r8.c: Regenerated.
831         generated/reshape_i4.c: Regenerated.
832         generated/reshape_i8.c: Regenerated.
833         generated/set_exponent_r4.c: Regenerated.
834         generated/set_exponent_r8.c: Regenerated.
835         generated/shape_i4.c: Regenerated.
836         generated/shape_i8.c: Regenerated.
837         generated/sum_c4.c: Regenerated.
838         generated/sum_c8.c: Regenerated.
839         generated/sum_i4.c: Regenerated.
840         generated/sum_i8.c: Regenerated.
841         generated/sum_r4.c: Regenerated.
842         generated/sum_r8.c: Regenerated.
843         generated/transpose_i4.c: Regenerated.
844         generated/transpose_i8.c: Regenerated.
845         generated/trig_c4.c: Regenerated.
846         generated/trig_c8.c: Regenerated.
847
848 2005-01-07  Bud Davis  <bdavis9659@comcast.net>
849
850         PR fortran/18398
851         * transfer.c (next_record_r): always skip the
852         eol search if it was found during sf_read.
853
854 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
855
856         * libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
857         Define.
858         * intrinsics/ishftc.c: Update copyright years.
859         (ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
860         * intrinsics/mvbits.c: Correct non-ASCII character in my name.
861         Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.
862
863 2004-12-23  Bud Davis  <bdavis9659@comcast.net>
864
865         PR fortran/19071
866         * io/tranfer.c (formatted_transfer): moved check for
867         format reversion inside the processing loop.
868
869 2004-12-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
870
871         PR libfortran/19074
872         * libgfortran.h (itoa): Rename to gfc_itoa.
873         * io/write.c (itoa): Same.
874         * runtime/environ.c (itoa): Same.
875         * runtime/error.c (itoa): Same.
876
877 2004-12-15  Bud Davis  <bdavis9659@comcast.net>
878             Steven G. Kargl  <kargls@comcast.net>
879
880         PR fortran/17597
881         * io/list_read.c (read_real): do not push back a comma when
882         it delimits a real value without a decimal point
883
884 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
885
886         * libgfortran/io/transfer.c (us_read): Use memcpy/memset
887         instead of assignment to fill unaligned buffer.
888         (us_write): Ditto.
889         (next_record_w): Ditto.
890
891 2004-12-14  Steven G. Kargl  <kargls@comcast.net>
892
893         PR libfortran/18966
894         * gfortran.h: typedef GFC_INTEGER_1 and GFC_INTEGER_2
895         * intrinsics/cshift0.c (cshift0_1,cshift0_2): New functions.
896         * intrinsics/eoshift0.c (eoshift0_1,eoshift0_2): New functions.
897         * intrinsics/eoshift2.c (eoshift2_1,eoshift2_2): New functions.
898
899 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
900
901         * io/transfer.c (read_sf): Change bitwise "and" to logical "and".
902
903 2004-12-12  Richard Henderson  <rth@redhat.com>
904
905         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
906         intrinsics/pack_generic.c, intrinsics/reshape_generic.c,
907         intrinsics/spread_generic.c, intrinsics/transpose_generic.c,
908         intrinsics/unpack_generic.c, m4/cshift1.m4, m4/dotprod.m4,
909         m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
910         m4/iforeach.m4, m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4,
911         m4/reshape.m4, m4/shape.m4, m4/transpose.m4: Use standard prefix
912         instead of "__".
913         * generated/*: Rebuild.
914
915 2004-12-12  Richard Henderson  <rth@redhat.com>
916
917         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
918         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
919         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
920         * configure.ac: Use them.
921         * configure, config.h.in, aclocal.m4: Rebuild.
922         * libgfortran.h (prefix): Remove.
923         (PREFIX, IPREFIX): New.
924         (sym_rename, sym_rename1, sym_rename2): New.
925         (internal_proto, export_proto, export_proto_np): New.
926         (iexport_proto, iexport): New.
927         (iexport_data_proto, iexport_data): New.
928         * intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
929         intrinsics/cpu_time.c, intrinsics/cshift0.c,
930         intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
931         intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
932         intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
933         intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
934         intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
935         intrinsics/reshape_generic.c, intrinsics/size.c,
936         intrinsics/spread_generic.c, intrinsics/stat.c,
937         intrinsics/string_intrinsics.c, intrinsics/system.c,
938         intrinsics/system_clock.c, intrinsics/transpose_generic.c,
939         intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
940         io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
941         io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
942         m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
943         m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
944         m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
945         m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
946         m4/transpose.m4, runtime/environ.c, runtime/error.c,
947         runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
948         runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
949         runtime/stop.c: Use them to mark symbols internal or external.
950         * generated/*: Rebuild.
951
952 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
953
954         PR bootstrap/18895
955         Revert 2004-12-07 change.
956         * Makefile.am (AM_MAKEFLAGS): Delete.
957         * Makefile.in: Regenerate.
958
959 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
960
961         * libgfortran/Makefile.am (AM_MAKEFLAGS): New.
962         * libgfortran/Makefile.in: Regenerate
963
964 2004-12-07  Steve Ellcey  <sje@cup.hp.com>
965
966         * io/io.h (open_external): Change prototype.
967         * io/unix.c (regular_file): Change prototype and set flags->action if
968         needed.
969         (open_external): Ditto.
970         * io/open.c (new_unit): Let open_external set flags->action.
971
972 2004-12-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
973
974         * configure.ac: Check for ieeefp.h.  Check for fabsf in libm.
975         * configure: Regenerate.
976         * config.h.in: Likewise.
977         * c99_protos.h: New file.
978         * libgfortran.h: Include c99_protos.h and conditionally ieeefp.h.
979         * intrinsics/c99_functions.c (fabsf): New function.
980
981 2004-12-06  Richard Henderson  <rth@redhat.com>
982
983         * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
984         intrinsics/pack_generic.c, intrinsics/string_intrinsics.c,
985         intrinsics/transpose_generic.c, m4/ifunction.m4, m4/matmul.m4,
986         m4/matmull.m4, m4/transpose.m4: Use internal_malloc_size instead
987         of internal_malloc.
988         * generated/*: Rebuild.
989
990 2004-12-06  Richard Henderson  <rth@redhat.com>
991
992         * intrinsics/c99_functions.c, intrinsics/eoshift0.c,
993         intrinsics/eoshift2.c, intrinsics/exit.c, intrinsics/flush.c,
994         intrinsics/ishftc.c, intrinsics/mvbits.c, intrinsics/pack_generic.c,
995         intrinsics/random.c, intrinsics/reshape_generic.c, intrinsics/size.c,
996         intrinsics/spread_generic.c, intrinsics/stat.c,
997         intrinsics/string_intrinsics.c, intrinsics/system_clock.c,
998         intrinsics/transpose_generic.c, intrinsics/unlink.c,
999         intrinsics/unpack_generic.c, io/backspace.c, io/format.c,
1000         io/list_read.c, io/lock.c, io/open.c, io/transfer.c, io/unix.c,
1001         io/write.c, runtime/environ.c, runtime/error.c,
1002         runtime/in_pack_generic.c, runtime/in_unpack_generic.c, runtime/main.c,
1003         runtime/memory.c, runtime/pause.c, runtime/stop.c,
1004         runtime/string.c: Whitespace fixes.
1005
1006 2004-12-06  Richard Henderson  <rth@redhat.com>
1007
1008         * Makefile.am: Generate all m4 output under $(srcdir).
1009         * Makefile.in: Regenerate.
1010
1011 2004-12-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1012
1013         PR fortran/18710
1014         * io/transfer.c (unformatted_read, unformatted_write): width of
1015         a COMPLEX is twice its kind.
1016
1017 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
1018
1019         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1020         * configure, aclocal.m4, Makefile.in: Regenerate.
1021
1022 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
1023
1024         PR libfortran/18284
1025         * io/unix.c (fd_alloc_w_at): Update file_length when extending.
1026         * io/backspace.c (formatted_backspace): Reset endfile after backspace.
1027
1028 2004-12-02  Bud Davis  <bdavis9659@comcast.net>
1029
1030         * io/inquire.c (inquire_via_unit): do not allow a direct access
1031         file to be opened for sequential I/O.
1032
1033 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1034         Paul Brook  <paul@codesourcery.com>
1035
1036         * intrinsics/flush.c: New file.
1037         * intrinsics/fnum.c: ditto
1038         * intrinsics/stat.c: ditto
1039         * io/io.h (unit_to_fd): Add prototype.
1040         * io/unix.c (unit_to_fd): New function.
1041         * configure.ac: Add test for members of struct stat.  Check for
1042         sys/types.h and sys/stat.h
1043         * Makefile.am: Add intrinsics/{flush.c,fnum.c,stat.c}
1044         * configure.in: Regenerate.
1045         * config.h.in: Regenerate.
1046         * Makefile.in: Regenerate.
1047
1048 2004-12-01  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1049
1050         * Makefile.am (AM_CPPFLAGS): Use -iquote instead of -I.
1051
1052 2004-11-28  Bud Davis  <bdavis9659@comcast.net>
1053
1054         * io/unix.c (mmap_alloc_w_a): check for a write to a location
1055         less than the mapped area.
1056
1057 2004-11-27  Bud Davis  <bdavis9659@comcast.net>
1058
1059         PR fortran/18364
1060         *  io/endfile.c (st_endfile): flush the stream before truncating.
1061
1062 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
1063
1064         * configure: Regenerate for libtool change.
1065
1066 2004-11-22  Steven Bosscher  <stevenb@suse.de>
1067
1068         PR libfortran/15960
1069         * configure.ac: Check for finite in libm.
1070         * libgfortran.h: Define isfinite macro if not defined.
1071         * intrinsics/c99_functions.c: Use defined(fpclassify) instead of
1072         HAVE_FPCLASSIFY.
1073         * io/write.c (write_float): Use isfinite instead of finite.
1074         * configure, config.h.in: Rebuilt.
1075
1076 2004-11-20  Roger Sayle  <roger@eyesopen.com>
1077
1078         * io/write.c (write_float, list_formatted_write): Fix indentation.
1079
1080 2004-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1081
1082         PR target/16135
1083         * acinclude.m4 (LIBGFOR_TARGET_ILP32): New check.
1084         * configure.ac: Include LIBGFOR_TARGET_ILP32.
1085         * configure: Regenerate.
1086         * config.h.in: Likewise.
1087         * libgfortran.h: Provide default definitions for C99 types
1088         on ILP32 targets that don't have them.
1089
1090         PR target/17999
1091         * configure.ac: Check for snprintf.
1092         * configure: Regenerate.
1093         * config.h.in: Likewise.
1094         * intrinsics/date_and_time.c (date_and_time): Do not
1095         use snprinf if it is not available.
1096         * io/write.c (output_float): Likewise.
1097
1098 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1099
1100         * Makefile.am: Add intrinsics/{umask.c,unlink.c,exit.c}
1101         * Makefile.in: Regenerated
1102         * intrinsics/umask.c: New file
1103         * intrinsics/unlink.c: ditto
1104         * intrinsics/exit.c: ditto
1105
1106 2004-11-18  Victor Leikehman  <lei@il.ibm.com>
1107
1108         * m4/matmul.m4: Loops reordered to improve cache behavior.
1109         * generated/matmul_??.c: Regenerated.
1110
1111 2004-11-10  Paul Brook  <paul@codesourcery.com>
1112
1113         PR fortran/18218
1114         * configure.ac: Check for strtof.
1115         * configure: Regenerate.
1116         * config.h.in: Regenerate.
1117         * io/read.c (convert_real): Use strtof if available.
1118         (convert_precision_real): Remove.
1119         (read_f): Avoid poor exponentiation algorithm.
1120
1121 2004-11-05  Andreas Schwab  <schwab@suse.de>
1122
1123         * configure.ac: Use AC_PROG_FC, FC and FCFLAGS instead of
1124         AC_PROG_F77, F77 and FFLAGS.
1125         * Makefile.am (selected_int_kind.inc, selected_real_kind.inc): Use
1126         FCCOMPILE instead of F77COMPILE.
1127         * configure, Makefile.in: Regenerate.
1128
1129 2004-11-05  Kelley Cook  <kcook@gcc.gnu.org>
1130
1131         * acinclude.m4: Properly quote AC_CACHE_CHECK.
1132         * Makefile.am: Add in ACLOCAL_AMFLAGS.
1133         * aclocal.m4, configure, Makefile.in: Regenerate.
1134
1135 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1136
1137         * config.h.in: Regenerate.
1138         * configure: Regenerate.
1139         * configure.ac (AC_CHECK_FUNCS): Add mkstemp.
1140         * io/unix.c (S_IRGRP): Define if undefined.
1141         (S_IWGRP): Same.
1142         (S_IROTH): Same.
1143         (S_IWOTH): Same.
1144         (tempfile): Use mktemp if mkstemp missing, fix typos.
1145
1146 2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1147
1148         *  intrinsics/system.c ("libgfortran.h"): Move after system headers.
1149
1150 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1151
1152         * intrinsics/rand.c (irand): Handle NULL argument.
1153
1154 2004-10-07  Paul Brook  <paul@codesourcery.com>
1155
1156         * io/transfer.c (finalize_transfer): Free internal streams.
1157         * io/unix.c (mem_close): Free stream object.
1158
1159 2004-10-07  Paul Brook  <paul@codesourcery.com>
1160
1161         * intrinsics/string_intrinsics.c (string_verify): Fix off by one
1162         error.
1163
1164 2004-10-06  Paul Brook  <paul@codesourcery.com>
1165
1166         PR libfortran/17709
1167         * io/transfer.c (data_transfer_init): Reset sf_seen_eor.
1168
1169 2004-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1170
1171         * intrinsics/mvbits.c: Commit the file.
1172
1173 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1174
1175         PR fortran/17283
1176         * intrinsics/pack_generic.c (__pack): Allocate memory for return array
1177         if not done by caller.
1178         (__pack_s): New function.
1179         * runtime/memory.c (internal_malloc, internal_malloc64): Allow
1180         allocating zero memory.
1181
1182         PR fortran/17631
1183         * Makefile.am (gfor_helper_src): Add intrinsics/mvbits.h.
1184         * Makefile.in: Regenerate.
1185         * intrinsics/mvbits.h: New file.
1186
1187         PR fortran/17776
1188         * intrinsics/system.c: New file.
1189         * Makefile.am: Add dependency for the new file.
1190         * Makefile.in: Regenerate.
1191
1192 2004-10-04  Paul Brook  <paul@codesourcery.com>
1193         Bud Davis  <bdavis9659@comcast.net>
1194
1195         PR fortran/17706
1196         PR fortran/16434
1197         * io/format.c (parse_format_list): Set repeat count for S, SP, SS,
1198         BN and BZ formats.
1199         * io/write.c (output_float): Don't output minus zero.
1200
1201 2004-10-03  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1202
1203         * intrinsics/abort.c ("libgfortran.h"): Move.
1204         * intrinsics/date_and_time.c ("libgfortran.h"): Same.
1205         * intrinsics/write.c ("libgfortran.h"): Same.
1206
1207 2004-09-26  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
1208
1209         PR libfortran/16137
1210         * config.h.in (HAVE_POWF): Undefine.
1211         * configure.ac: Check for 'powf' in library.
1212         * configure: Regenerate.
1213         * intrinsics/c99_functions.c (powf): New function.
1214
1215 2004-09-24  Tobias Schlueter  <tobis.schlueter@physik.uni-muenchen.de>
1216
1217         * intrinsics/etime.c (etime_): New function.
1218
1219 2004-09-21  Steven G. Kargl  <kargls@comcast.net>
1220
1221         * libgfortran.h: define gfc_alloca()
1222         * intrinsics/env.c (getenv, get_environment_variable_i4): Use it.
1223
1224 2004-09-21  Bud Davis  <bdavis9659@comcast.net>
1225
1226         PR fortran/17286
1227         * io/list_read.c (namelist_read): ignore spaces after
1228         the '=' for namelist reads.
1229
1230 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1231
1232         * config.h.in: Regenerate.
1233         * configure: Regenerate.
1234         * configure.ac (AC_CHECK_HEADERS): Check for sys/mman.h.
1235         * unix.c: Include stdio.h.
1236         (HAVE_SYS_MMAN_H): Check.
1237         (PROT_READ, PROT_WRITE): Provide default definitions.
1238
1239 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
1240
1241         * intrincics/getcwd.c: New file.
1242         * Makefile.am: Add getcwd.c.
1243         * Makefile.in: Regenerated.
1244
1245 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
1246         Paul Brook  <paul@codesourcery.com>
1247
1248         * intrinsics/env.c (getenv, get_environmental_variable): Remove
1249         trailing white space.  Use alloca.  Honour trim_name.
1250
1251 2004-09-13  Bud Davis  <bdavis9659@comcast.net>
1252
1253         PR fortran/17090
1254
1255         * io/list_read.c (list_formatted_read): Handle trailing spaces
1256         at end of line.
1257
1258 2004-09-06  Steven G. Kargl  <kargls@comcast.net>
1259
1260         * io/write.c (output_float): Typo in comment.  Remove debugging
1261         printf.  Fix format for FP of form 1e10.
1262
1263 2004-09-03  Richard Henderson  <rth@redhat.com>
1264
1265         * intrinsics/cshift0.c (DEF_COPY_LOOP, copy_loop_int, copy_loop_long,
1266         copy_loop_double, copy_loop_ldouble): New.
1267         (__cshift0): Make shift type ssize_t.  Use % operator instead of
1268         div.  Use specialized versions of copy loop depending on the shape.
1269
1270 2004-09-02  Paul Brook  <paul@codesourcery.com>
1271
1272         * io/format.c (parse_format_list): Set repeat count for P descriptors.
1273         * write.c (output_float): Fix condition.  Correctly handle nonzero
1274         scale factor.
1275
1276 2004-09-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1277
1278         * mk-sik-inc.sh: Use a temporary string instead of 'echo -n'.
1279         * mk-srk-inc.sh: Likewise.
1280
1281 2004-09-01  Paul Brook  <paul@codesourcery.com>
1282
1283         * runtime/error.c (generate_error): Set both iostat and
1284         library_return.
1285
1286 2004-08-31  Paul Brook  <paul@codesourcery.com>
1287
1288         PR libfortran/16805
1289         * io/list_read.c (next_char): Don't signal EOF for internal files.
1290         * io/unix.c (mem_alloc_r_at): Don't return NULL for incomplete reads.
1291
1292 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1293
1294         * io/unit.c: Separate copyright years by ','.
1295         (compare, insert_unit, delete_unit, is_internal_unit, close_units):
1296         Remove blank line in beginning of function.
1297         (get_unit): Simplify code.
1298
1299 2004-08-31  Paul Brook  <paul@codesourcery.com>
1300
1301         * io/unit.c (get_unit): Remove superfluous if.
1302
1303 2004-08-31  Paul Brook  <paul@codesourcery.com>
1304
1305         * io/transfer.c (read_sf): Rename uinty to readlen.  Detect EOF.
1306         (finalize_transfer): Move setjmp after namlist IO.
1307         * io/unix.c (mem_alloc_r_at): Calculate remaining length correctly.
1308
1309 2004-08-31  Paul Brook  <paul@codesourcery.com>
1310
1311         * list_read.c (eat_separator): Set at_eo when a '/' is seen.
1312
1313 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1314
1315         * libgfortran.h: Replace 'gfc_strlen_type' by
1316         'gfc_charlen_type'. Update comment accordingly.
1317         * intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
1318         Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.
1319
1320 2004-08-31  Paul Brook  <paul@codesourcery.com>
1321
1322         * libgfortran.h: Add comments.
1323
1324 2004-08-30  Richard Henderson  <rth@redhat.com>
1325
1326         * Makefile.am (gfor_helper_src): Split selected_kind.f90.
1327         (gfor_built_src): Add selected_int_kind.inc selected_real_kind.inc.
1328         (selected_int_kind.inc selected_real_kind.inc): New rules.
1329         * Makefile.in: Regenerate.
1330         * mk-sik-inc.sh, mk-srk-inc.sh: New files.
1331         * intrinsics/selected_int_kind.f90: Split from selected_kind.f90,
1332         include table of detected kinds.
1333         * intrinsics/selected_real_kind.f90: Similarly.
1334
1335 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1336         Paul Brook  <paul@codesourcery.com>
1337
1338         * intrinsics/bessel.c: New file.
1339         * intrinsics/erf.c: New file.
1340         * Makefie.am: Add intrinsics/bessel.c and intrinsics/erf.c.
1341         * configure.ac: Test for C99 Bessel and Error functions.
1342         * Makefile.in: Regenerate.
1343         * config.h.in: Regenerate.
1344         * configure: Regenerate.
1345
1346 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1347         Paul Brook  <paul@codesourcery.com>
1348
1349         * Makefile.am: Add intrinsics/getXid.c.
1350         * configure.ac: Add tests for get{g,p,u}id.
1351         * config.h.in: Regenerate.
1352         * Makefile.in: Regenerate.
1353         * configure: Regenerate.
1354
1355 2004-08-28  Paul Brook  <paul@codesourcery.com>
1356
1357         PR libfortran/17195
1358         * libgfortran.h (rtoa): Remove prototype.
1359         * runtime/error.c (rtoa): Remove.
1360         * io/write.c (calculate_G_format): Don't add blanks if E format is
1361         used.  Add correct number of blanks when exponent width is specified.
1362         (output_float): Rewrite.
1363
1364 2004-08-27  Paul Brook  <paul@codesourcery.com>
1365
1366         * io/rewind.c (st_rewind): Reset unit to read mode.
1367
1368 2004-08-27  Bud Davis  <bdavis9659@comcast.net>
1369
1370         PR fortran/16597
1371         * io/io.h: created typedef for unit_mode.
1372         * io/io.h (gfc_unit): added mode to unit structure.
1373         * io/transfer.c (data_transfer_init): flush if a write then
1374         read is done on a unit (direct access files).
1375         * io/rewind.c (st_rewind): Used unit mode instead of global.
1376
1377 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
1378
1379         PR fortran/17143
1380         * runtime/error.c (itoa): keep from overflowing during
1381         mod operation by using unsigned variable.
1382
1383 2004-08-24  Bud Davis  <bdavis9659@comcast.net>
1384
1385         PR fortran/17164
1386         * runtime/string_intrinsics.c (string_index):check for
1387         substring longer than string.
1388
1389 2004-08-24  David Edelsohn  <edelsohn@gnu.org>
1390
1391         * Makefile.am (libgfortran_la_LDFLAGS): Add -lm.
1392         * Makefile.in: Rebuilt.
1393
1394 2004-08-23  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1395
1396         * io/io.h, io/list_read.c, io/open.c, io/transfer.c, io/write.c:
1397         Fix formatting issues, update copyright years.
1398
1399 2004-08-21  Bud Davis  <bdavis9659@comcast.net>
1400
1401         PR 16908
1402         * io/transfer.c (next_record_w): Do not blank pad.
1403         * io/transfer.c (next_record): Take into account partial records.
1404
1405 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
1406
1407         PR fortran/13278
1408         * io/transfer.c (st_set_nml_var)
1409         * io/write.c (namelist_write): Allow var_name and var_name_len to be
1410         null. For strings, use string_length field instead of len.
1411         * io/io.h (struct namelist_type): New field string_length.
1412         (st_set_nml_var_char): New argument string_length.
1413
1414 2004-08-13  Bud Davis  <bdavis9659@comcast.net>
1415
1416         PR gfortran/16935
1417         * io/open.c (st_open): use flags instead of the unit structure.
1418
1419 2004-08-10  Victor Leikehman  <lei@il.ibm.com>
1420
1421         * io/list_read.c (namelist_read): Convert variable names
1422         to lower case, so that mixed-case names are recognized.
1423         Don't read beyond terminating slash.
1424
1425 2004-08-09  Richard Henderson  <rth@redhat.com>
1426             Roger Sayle  <roger@eyesopen.com>
1427
1428         * intrinsics/c99_functions.c (nextafterf): New implementation that
1429         works correctly with denormalized numbers.
1430
1431 2004-08-09  Victor Leikehman  <lei@il.ibm.com>
1432
1433         * m4/matmul.m4, m4/matmull.m4, intrinsics/eoshift0.c,
1434         intrinsics/eoshift2.c, intrinsics/transpose_generic.c:
1435         Allocate space if return value has NULL in its data field.
1436         * generated/*.c: Regenerate.
1437
1438 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1439
1440         * intrinsics/env.c: New file.
1441         * Makefile.am: Add env.c to build.
1442         * Makefile.in: Regenerate.
1443
1444 2004-08-05  Victor Leikehman  <lei@il.ibm.com>
1445
1446         PR libgfortran/16704
1447         * io/read.c (read_radix): Understand letters f and F as hex digits.
1448
1449 2004-08-04  Victor Leikehman  <lei@il.ibm.com>
1450
1451         * libgfortran.h (array_t, size0) New declarations.
1452         * m4/ifunction.m4, m4/transpose.m4, intrinsics/cshift0.c: Allocate
1453         space if return value descriptor has NULL in its data field,
1454         and initialize bounds and stride.
1455         * intrinsics/size.c (array_t, size0): Declarations moved to
1456         libgfortran.h.
1457         * generated/*.c: Regenerate.
1458
1459 2004-08-03  Roger Sayle  <roger@eyesopen.com>
1460
1461         PR libgfortran/16137
1462         * configure.ac: Add tests for acosf, asinf, atan2f, atanf, ceilf,
1463         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
1464         scalbnf, sinf, sinhf, sqrtf, tanf and tanhf in libm.
1465         * config.h.in: Regenerate.
1466         * configure: Regenerate.
1467
1468         * instrinsics/c99_functions.c (acosf, asinf, atan2f, atanf, ceilf,
1469         copysignf, cosf, coshf, expf, floorf, frexpf, hypotf, logf, log10f,
1470         nextafterf, scalbnf, sinf, sinhf, sqrtf, tanf, tanhf): New stub
1471         implementations for targets that don't support C99 float functions.
1472
1473 2004-08-01  Roger Sayle  <roger@eyesopen.com>
1474
1475         * io/write.c (write_float): Use the slightly more portable isnan
1476         in preference to isinf.
1477
1478 2004-07-18  Bud Davis  <bdavis9659@comcast.net>
1479
1480         * configure.ac: Add check for LFS support.
1481         * configure: Regenerate
1482
1483 2004-07-11  Paul Brook  <paul@codesourcery.com>
1484
1485         PR fortran/16303
1486         * m4/cexp.m4 (carg): Return -pi to pi.
1487         * generated/exp_c?.c: Regenerate.
1488
1489 2004-07-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1490
1491         PR fortran/16291
1492         * libgfortran/io/write.c: (write_float): Added length check.
1493         Remove pointless memset calls.
1494
1495 2004-07-04  Bud Davis  <bdavis9659@comcast.net>
1496             Paul Brook  <paul@codesourcery.com>
1497
1498         PR fortran/15472
1499         * io/transfer.c(us_write): set recl for seq unform writes to max size.
1500         * io/transfer.c(data_transfer_init): handle un-opened seq unform unit.
1501         * io/unix.c(fd_alloc_w_at): handle requests at start, fd_flush at
1502         right time.
1503         * io/unix.c(is_seekable): set based upon the file/device, not the
1504         method being used to access it (fd or mmap).
1505         * io/unix.c(fd_flush): don't set file_size if !seekable.
1506         * io/unix.c(fd_truncate: ditto.
1507
1508 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1509         Paul Brook  <paul@codesourcery.com>
1510
1511         PR fortran/15280
1512         PR fortran/15665
1513         * libgfortran.h (gfc_strlen_type): Define.
1514         * intrinsics/args.c (getarg): Rename ...
1515         (getarg_i4): ... to this.
1516         (getarg_i8, get_command_argument_i4, get_command_argument_i8,
1517         get_command_i4, get_command_i8): New functions.
1518
1519 2004-07-04  Matthias Klose  <doko@debian.org>
1520
1521         * libtool-version: New.
1522         * Makefile.am (libgfortran_la_LDFLAGS): Use -version-info for soname.
1523         * Makefile.in: Regenerate.
1524         * configure.ac: Remove libtool_VERSION macro
1525         * configure: Regenerate
1526
1527 2004-06-30  Steve Kargl  <sgk@troutmask.apl.washington.edu>
1528             Steven Bosscher  <stevenb@suse.de>
1529
1530         * intrinsics/rand.c (rand): Wrap the irand() call from the previous
1531         commit in prefix.
1532
1533 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1534         Paul Brook  <paul@codesourcery.com>
1535
1536         * runtime/normalize.c (normalize_r4_i4, normalize_r8_i8): Fix
1537         comments.
1538         * intrinsics/rand.c (rand): Call irand() in call to normalize_r4_i4.
1539
1540 2004-06-27  Bud Davis  <bdavis9659@comcast.net>
1541
1542         PR gfortran/12839
1543         * io/write.c (write_float): check signbit for Infinity.
1544
1545 2004-06-26  Bud Davis  <bdavis9659@comcast.net>
1546
1547         PR gfortran/16196
1548         * unix.c(regular_file): create file if it does not exist.
1549
1550 2004-06-24  Andrew Pinski  <apinski@apple.com>
1551
1552         * configure.ac: Remove check for libmx.
1553         * configure: Regenerate.
1554
1555 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1556
1557         PR fortran/15750
1558         * inquire.c (st_inquire): Add comment
1559         * io.h (st_parameter): Add iolength.
1560         (st_iolength, st_iolength_done): Declare.
1561         * transfer.c (iolength_transfer, iolength_transfer_init,
1562         st_iolength, st_iolength_done): New functions.
1563
1564 2004-06-21  Steven G. Kargl  <kargls@comcast.net>
1565
1566         * etime.c (etime_sub): Remove array rank check;
1567         Add check for sufficient space.
1568
1569 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
1570
1571         PR gfortran/16080
1572         * io/list_read.c(set_value): fixed spelling.
1573
1574 2004-06-19  Bud Davis  <bdavis9659@comcast.net>
1575
1576         PR gfortran/16080
1577         * io/list_read.c(set_value): don't copy if the string is null.
1578
1579 2004-06-14  Bud Davis  <bdavis9659@comcast.net>
1580
1581         PR gfortran/15292
1582         * intrinsics/c99_functions.c: Use fpclassify if it exists.
1583
1584 2004-06-13  Paul Brook  <paul@codesourcery.com>
1585
1586         * Makefile.am (gfor_helper_src): Add runtime/normalize.f90.
1587         * configure.ac: Add checks for nextafter and nextafterf.
1588         * Makefile.in, config.h.in, configure: Regenerate.
1589         * libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare.
1590         * intrinsics/rand.c (rand): Use normalize_r4_i4.
1591         * intrinsics/random.c (random_r4): Use normalize_r4_i4.
1592         (random_r8): Use normalize_r8_i8.
1593         * runtime/normalize.c: New file.
1594
1595 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
1596             Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1597
1598         * random.c: Fix several spelling and formatting mistakes in
1599         comments.
1600         (random_r8): Fix loop to make random numbers range in [0,1(.
1601
1602
1603 2004-06-13  Steven G. Kargl  <kargls@comcast.net>
1604
1605         * random.c (random_r4): Burn a random number.
1606         (random_r8): fix infinite loop.
1607
1608 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
1609       Steve Kargl  <sgk@troutmask.apl.washington.edu>
1610
1611         PR gfortran/15292
1612         * intrinsics/c99_functions.c: New file.
1613         * Makefile.am: Add new file.
1614         * configure.ac: Added test for round/roundf.
1615         * Makefile.in: Regenerate.
1616         * configure: Regenerate.
1617         * configure.h.in: Regenerate.
1618
1619 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
1620
1621         * Makefile.am: Add rand.c and etime.c
1622         * Makefile.in: Regenerated.
1623         * aclocal.in: Regenerated.
1624         * cpu_time.c (second_sub, second): New functions.
1625         * rand.c (irand, rand, srand): New file.
1626         * etime.c (etime_sub, etime): New file.
1627
1628 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1629             Steven Bosscher  <stevenb@suse.de>
1630
1631         PR fortran/14923
1632         * intrinsics/date_and_time.c: New file.
1633         * Makefile.am (gfor_helper_src): Add intrinsics/date_and_time.c.
1634         * Makefile.in, aclocal.m4: Regenerate.
1635         * libgfortran.h: Prototype date_and_time().
1636
1637 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
1638
1639         PR fortran/15665
1640         * intrinsics/args.c: Implement GETARG and IARGC.
1641         * Makefile.am: Add it.
1642         * Makefile.in: Regenerate.
1643
1644 2004-06-12  Bud Davis  <bdavis9659@comcast.net>
1645
1646         PR gfortran/12839
1647         * io/write.c(write_float): Format inf and nan IAW F2003.
1648
1649 2004-06-09  Bud Davis  <bdavis9659@comcaste.net>
1650
1651         PR gfortran/14897
1652         * io/transfer.c (formatted_transfer): position is unique
1653          for T and TL edit descriptors.
1654         (data_transfer_init): set record length to size of internal
1655          file.
1656
1657 2004-06-09  Bud Davis  <bdavis9659@comcast.net>
1658
1659         PR gfortran/15755
1660         * io/backspace.c(st_backspace): call correct routine for
1661         formatted and un-formatted units.
1662
1663 2004-05-30  Andreas Jaeger  <aj@suse.de>, Steven Bosscher <stevenb@suse.de>
1664
1665         PR gfortran/11800
1666         * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
1667         (lib_LTLIBRARIES): Rename to ...
1668         (toolexeclib_LTLIBRARIES): this for multilib support.
1669         * configure.in: Rename to ...
1670         * configure.ac: this.  Update to modern autoconf style, enable
1671         multilibs, support --enable-version-specific-runtime-libs.
1672         * Makefile.in: Regenerated.
1673         * configure: Regenerated.
1674         * aclocal.m4: Regenerated.
1675
1676 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
1677
1678         * libgfortran.h (random_seed): Update prototype.
1679         * intrinsics/random.c: Disable old implementation and add new one.
1680
1681 2004-05-30  Andreas Jaeger  <aj@suse.de>
1682
1683         * intrinsics/random.c: Include unistd.h for close and read
1684         prototypes, remove unneeded inclusion of assert.h.
1685
1686         * intrinsics/abort.c: Include stdlib.h for abort prototype, remove
1687         unneeded inclusion of assert.h.
1688
1689 2004-05-27  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
1690
1691         PR fortran/15234
1692         * intrinsics/associated.c: Remove enum.
1693         (associated): Replace TRUE/FALSE by 1/0.
1694
1695 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
1696
1697         * random.c (random_seed): Use correct variable.
1698
1699 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
1700
1701         * intrinsics/system_clock: New file.
1702         * Makefile.am: Add intrinsics/system_clock.c.
1703         * Makefile.in: Regenerate.
1704
1705 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1706
1707         * io/format.c (parse_format_list): Allow the comma after a string
1708         literal to be optional.
1709
1710 2004-05-18  Paul Brook  <paul@codesourcery.com>
1711         Feng Wang  <fengwang@nudt.edu.cn>
1712
1713         * Makefile.am (i_pow_c): Set it. Add build rule.
1714         (gfor_built_src): Use it.
1715         (m4_files): add m4/pow.m4.
1716         * Makefile.in: Regenerate.
1717         * m4/pow.m4: New file.
1718         * generated/pow_*.c: Regenerate.
1719
1720 2004-05-18  Paul Brook  <paul@codesourcery.com>
1721
1722         * Makefile.am: Remove references to types.m4.
1723         * m4/iparm.m4: Merge with types.m4.
1724         * m4/types.m4: Remove.
1725         * m4/cshift1.m4, m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4,
1726         m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4, m4/ifunction.m4,
1727         m4/in_pack.m4, m4/in_unpack.m4, m4/iparm.m4, m4/matmul.m4,
1728         m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4, m4/maxval.m4,
1729         m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/reshape.m4,
1730         m4/shape.m4, m4/specific.m4, m4/specific2.m4, m4/transpose.m4):
1731         Update to use new iparm.m4.
1732         * generated/*.c: Regenerate.
1733
1734 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1735
1736         PR fortran/15235
1737         * gfortran.h (offset_t): Rename to ...
1738         (gfc_offset): ... this.
1739         * io/backspace.c (formatted_backspace, unformatted_backspace),
1740         io/io.h (stream, gfc_unit, global_t, file_length, file_position),
1741         transfer.c (us_read, us_write, next_record_r, next_record_w),
1742         io/unit.c (init_units), unix.c (unix_stream, fd_alloc,
1743         fd_alloc_r_at, fd_alloc_w_at, fd_seek, mmap_alloc,
1744         mmap_alloc_r_at, mmap_alloc_w_at, mmap_seek, mem_alloc_r_at,
1745         mem_alloc_w_at, mem_seek, file_length, file_position): Replace all
1746         occurences of offset_t by gfc_offset.
1747
1748 2004-05-16  Paul Brook  <paul@codesourcery.com>
1749
1750         * io/format.c (write_real): Don't include padding in format.
1751
1752 2004-05-16  Paul Brook  <paul@codesourcery.com>
1753
1754         * io/format.c (format_lex): Make c an int.
1755
1756 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1757         Paul Brook  <paul@codesourcery.com>
1758
1759         * io/write.c (write_logical): Don't print extra blank.
1760         (write_integer): Base field width on kind.
1761         (list_formatted_write): Output initial blank.
1762
1763 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1764
1765         * io/io.h (flush): Add prototype.
1766         * io/transfer.c (finalize_transfer): Flush partial records.
1767         * io/unix.c (flush): New function.
1768
1769 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1770
1771         PR fortran/15234
1772         * io/io.h (unit_t): Rename to ...
1773         (gfc_unit) ... this.
1774         (unit_root, current_unit, find_file, find_unit, get_unit): Now
1775         of type gfc_unit.
1776         (delete_file, insert_unit, close_unit): Argument now of type
1777         gfc_unit.
1778         * backspace.c (st_backspace), close.c (st_close), endfile.c
1779         (st_endfile), inquire.c (inquire_via_unit, st_inquire), open.c
1780         (test_endfile, edit_modes, new_unit, already_open, st_open),
1781         rewind.c (st_rewind), transfer.c (current_unit), unit.c
1782         (internal_unit, unit_cache, rotate_left, rotate_right, insert,
1783         insert_unit, delete_root, delete_treap, delete_unit, find_unit,
1784         get_unit, init_units, close_unit), unix.c (find_file0,
1785         find_file, delete_file): Replace all occurences of unit_t by
1786         gfc_unit.
1787
1788 2004-05-15  Bud Davis  <bdavis9659@comcast.net>
1789
1790         PR fortran/15311
1791         * io/write.c (write_a): right justify A edit output.
1792
1793 2004-05-14  Bud Davis  <bdavis9659@comcast.net>
1794
1795         PR fortran/15149
1796         * libgfortan.h,intrinsics/random.c: Made random_seed visible.
1797         * runtime/main.c(init): Call random_seed as part of MAIN init.
1798
1799 2004-05-13  Tobias Schlter  <tobias.schlueter@physik.uni-muenchen.de>
1800
1801         * io/format.c: (parse_format_list): No comma is required after
1802         P descriptor.
1803
1804 2004-05-13  Bud Davis  <bdavis9659@comcast.net>
1805
1806         PR fortran/15204
1807         * io/intrinsic/string_intrinsics.c (adjustr): rework logic.
1808
1809 2004-05-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1810             Steven Bosscher  <stevenb@suse.de>
1811
1812         PR libfortran/15234
1813         * libgfortran.h: Include <inttypes.h> if available.
1814
1815 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1816
1817         * io/unix.c (MAP_FAILED): Define if missing.
1818         (mmap_alloc): Cast MAP_FAILED to char *.
1819         (mmap_open): Likewise.
1820
1821 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
1822
1823         * generated/_abs_i8.f90: New file.
1824         * generated/_abs_c4.f90: New file.
1825         * generated/_abs_c8.f90: New file.
1826         * Makefile.am: Add them.
1827         * Makefile.in: Regenerate.
1828 `
1829 2004-04-26  Bud Davis  <bdavis9659@comcast.net>
1830
1831         PR fortran/14056
1832         * generated/_abs_i4.f90: New file.
1833         * Makefile.am: Add it.
1834         * Makefile.in: Regenerate.
1835
1836 2004-04-25  Bud Davis  <bdavis9659@comcast.net>
1837
1838         PR fortran/14942
1839         * io/list_read.c(list_formatted_read): finish consuming the
1840         spaces and seperators at eoln to get ready for next item.
1841
1842 2004-04-23  Bud Davis  <bdavis9659@comcast.net>
1843
1844         PR fortran/15113
1845         * io/read.c(read_a): Handle field width > destination and no field width.
1846
1847 2004-04-22  Bud Davis  <bdavis9659@comcast.net>
1848
1849         PR fortran/14906
1850         * io/format.c (format_item): gracefully handle a ')'
1851         when it is the first character encountered in the string.
1852
1853 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
1854
1855         PR fortran/14904
1856         * io/transfer.c (next_record): Update last_record when
1857         more than one record is written to a direct access file
1858         with one write statement.
1859
1860 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
1861
1862         PR fortran/14901
1863         * io/transfer.c (next_record_w) : No '\n' if internal.
1864         * io/unix.c (empty_internal_buffer) : Init to spaces, not '\n'.
1865
1866 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
1867
1868         * io.h (ioparm): Interface from FE is 32 bit, irregardless of offset_t.
1869         Will need to change this later to support direct access files > 2gb.
1870
1871 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
1872
1873         PR gfortran/14762
1874         * io/transfer.c (next_record_r) : Skip to next record.
1875
1876 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
1877
1878         PR gfortran/14836
1879         * io/transfer.c (next_record): Update last_record for DIRECT
1880
1881 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
1882
1883         PR gfortran/14837
1884         * io/unix.c (find_file0): Use fd field of struct
1885
1886 2004-04-03  Bud Davis  <bdavis9659@comcast.net>
1887
1888         PR 14831
1889         * io/inquire.c (inquire_via_unit): Changed return string for
1890         BLANK=NULL. Use correct variable for ACTION.
1891
1892 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
1893
1894         PR 14746
1895         * io/read.c (read_f): Allow a decimal without a leading digit.
1896         * io/write.c (output_float): remove a leading '0' to keep from
1897         overflowing the field (F edit descriptor).
1898
1899 2004-04-01  Bud Davis  <bdavis9659@comcast.net>
1900
1901         PR gfortran/14565
1902         * io/open.c (new_unit),
1903         * io/io.h : new_unit is now visible
1904         * io/transfer.c (data_transfer_init): open unit if no OPEN statement.
1905         * io/transfer.c (data_transfer_init): remove compile warnings.
1906         * io/rewind.c (st_rewind): ftruncate if writing.
1907
1908 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1909
1910         * write.c (write_l): Use extract_int for 'L' edit descriptor.
1911
1912 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1913
1914         PR 13919
1915         * io/io.h (global_t):
1916         * io/list_read.c (next_char,list_formatted_read,ist_formatted_read):
1917           Move eof_jmp to a global structure.
1918         * io/transfer.c(finalize_transfer) : Set up eof_jump for callers.
1919
1920 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1921
1922         * m4/cexp.m4 (csqrt): Actually use the passed value.
1923         * generated/exp_c?.c: Regenerate.
1924
1925 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1926
1927         PR 12921
1928         * io.h, transfer.c, open.c : recl_in changed from ptr to variable.
1929         * open.c (new_unit): Moved test for positioned direct access error.
1930         (init_units): Corrected calculation of max records.
1931
1932 2004-02-06  Feng Wang  <fengwang@nudt.edu.cn>
1933
1934         * Makefile.am: Add m4/dotprodc.m4. And fix spelling.
1935         * Makefile.in: Regenerate.
1936         * m4/dotprodc.m4: New file. Implement complex dot_product.
1937         * m4/dotprod.m4: Delete the complex implementation.
1938         * generated/dotprod_*: Update.
1939
1940 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
1941
1942         * transfer.c (write_constant_string): Do not delete H's in hollerith
1943         formats.
1944
1945 2004-01-05  Andrew Pinski  <apinski@apple.com>
1946
1947         * configure.in: Check for csin in -lmx also.
1948         * configure: Regenerate.
1949
1950 2004-01-01  Paul Brook  <paul@codesourcery.com>
1951
1952         * io/list_read.c (find_nml_node): Make static.
1953         (match_namelist_name): Ditto.
1954         * io/read.c (convert_precision_real): Make static, fix spelling.
1955         * io/transfer.c (extract_real): Remove unused prototype.
1956         (st_set_nml_var): Make static.
1957         * io/write.c (extract_real): Make static.
1958
1959 2003-12-12  Huang Chun <chunhuang73@hotmal.com>
1960
1961         * intrinsics/string_intrinsics.c (string_index): Fix logics thinko.
1962
1963 2003-12-05  Melvin Hadasht  <melvin.hadasht@free.fr>
1964
1965         * io/transfer.c (data_transfer_init): Give a runtime error for list
1966         formatted reads and writes from/to files opened for unformatted IO.
1967
1968 2003-11-30  Paul Brook  <paul@nowt.org>
1969
1970         * runtime/memory.c (push_context): Remove.
1971         (pop_context): Remove.
1972         * libgfortran.h: Remove prototypes.
1973
1974 2003-11-27  Paul Brook  <paul@nowt.org>
1975
1976         * runtime/memory.c (deallocate): Nullify pointer after freeing.
1977
1978 2003-11-27  Paul Brook  <paul@nowt.org>
1979
1980         * intrinsics/string_intrinsics.c: Use new memory allocation interface.
1981         * libgfortran.h: Ditto.
1982         * m4/in_pack.m4: Ditto.
1983         * runtime/in_pack_generic.c: Ditto.
1984         * runtime/memory.c: Ditto.
1985
1986 2003-11-26  Richard Henderson  <rth@redhat.com>
1987
1988         * m4/exponent.m4, m4/fraction.m4: New.
1989         * m4/nearest.m4, m4/set_exponent.m4: New.
1990         * generated/*: Update.
1991         * Makefile.am: Add them.
1992         (AM_CFLAGS): New.  Use -std=gnu99.
1993         * Makefile.in: Regenerate.
1994
1995 2003-11-08  Paul Brook  <paul@nowt.org>
1996
1997         PR fortran/12704
1998         * m4/maxloc0.m4: Use default value of 1. Handle zero sized arrays.
1999         * m4/maxloc1.m4: Ditto.
2000         * m4/minloc0.m4: Ditto.
2001         * m4/minloc1.m4: Ditto.
2002         * m4/ifunction.m4: Set return value for zero sized arrays.
2003         * m4/iforeach.m4: Ditto.
2004         * m4/all.m4, m4/any.m4, m4/count.m4, m4/maxloc1.m4, m4/minloc1.m4,
2005         m4/mxaval.m4, m4/minval.m4, m4/product.m4, m4/sum.m4: Ditto.
2006         * generated/*: Update.
2007
2008 2003-10-30  Toon Moene  <toon@moene.indiv.nluug.nl>
2009
2010         PR fortran/12702
2011         * io/list_read.c (eat_spaces): Treat tab as space.
2012
2013 2003-10-30  Lars Segerlund  <Lars.Segerlund@comsys.se>
2014
2015         * intrinsics/random.c: Add reference to paper containing algorithm.
2016         (random_seed): Extra error checking and proper handling of arrays.
2017         (arandom_r4, arandom_r8): Implement.
2018
2019 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
2020
2021         PR fortran/12703
2022         * runtime/memory.c (allocate_size): Allow allocation
2023         of zero-sized objects.
2024
2025 2003-10-29  Toon Moene  <toon@moene.indiv.nluug.nl>
2026
2027         PR fortran/12701
2028         * open.c (new_unit): Open without a file name opens
2029         a file with name fort.<unit>.
2030
2031 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
2032
2033         * intrinsics/cshift0.c: New file.
2034         * m4/cshift1.m4: New file
2035         * generated/cshift*.c: New files.
2036         * Makefile.am: Add them.
2037         * Makefile.in: Regenerate.
2038
2039 2003-10-12  XiaoQiang Zhang  <zhangapache@yahoo.com>
2040
2041         * io/list_read.c (read_character): Remove unwanted call to free_saved.
2042
2043 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
2044
2045         * intrinsics/string_intrinsics.c (string_trim): New function.
2046         (string_repeat): New function.
2047
2048 2003-10-11  Paul Brook  <paul@nowt.org>
2049
2050         * intrinsics/dprod_r8.f90: New file.
2051         * Makefile.am (gfor_specific_src): Add it.
2052         (gfor_built_specific_src): Rename from gfor_build_specific_c.
2053         Add new intrinsics.
2054         (gfor_specific2_src): Rename from gfor_built_specific2_c.
2055         Add new intrinsics.
2056         * Makefile.in: Regenerate.
2057         * generated/_aint_*.f90: New files.
2058         * generated/_anint*.f90: New files.
2059         * generated/_atan2*.f90: New files.
2060         * generated/_mod*.f90: New files.
2061
2062 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2063
2064         * intrinsics/selected_kind.f90: New file.
2065         * Makefile.am: Add it.
2066         * Makefile.in: regenerate.
2067
2068 2003-09-19  Lars Segerlund  <Lars.Segerlund@comsys.se>
2069         Paul Brook  <paul@nowt.org>
2070
2071         * intrinsics/random.c: New file.
2072         * Makefile.am (gfor_hemper_src): Add it.
2073         (gfor_specific_c): Fix typo.
2074
2075 2003-09-19  Paul Brook  <paul@nowt.org>
2076
2077         * All: rename g95->gfc.
2078
2079 2003-09-18  XiaoQiang Zhang  <zhangapache@yahoo.com>
2080
2081         * io/write.c (output_float): Fix bug of FMT_E, Add comments.
2082
2083 2003-09-09  XiaoQiang Zhang  <zhangapache@yahoo.com>
2084
2085         * io/write.c (write_float): Dectection of positive infinite number,
2086         Not a Number(NaN) and negative infinite number.
2087         (ioutput_float): Bug fix for FMT_E and FMT_D processing to
2088         output a very_very small number ( < 0.1e-100 ).
2089
2090 2003-09-07  XiaoQiang Zhang  <zhangapache@yahoo.com>
2091
2092         * libgfortran.h (xtoa, itoa): Parameter modified.
2093         * io/io.h (namelist_info): Declaration to support namelist I/O
2094         (st_parameter): Add namelist related component
2095         (ionml, empty_internal_buffer, st_set_nml_var_int,
2096         st_set_nml_var_float, st_set_nml_var_char, st_set_nml_var_complex,
2097         st_set_nml_var_log): Declaration
2098         (set_integer, set_integer): Parameter changed
2099         * io/format.c (free_nodes): Fix annoying bug of lefting "deallocated"
2100          fnodes
2101         (parse_format_list): Fix bug about FMT_SLASH
2102         * io/list_read.c (push_char): Totally clear old saved_string, zeroize
2103         newly allocated saved_string
2104         (next_char): Add detection of End_Of_Line support
2105         (convert_integer): Now can process 64 bits interger
2106         (read_real): Bug fixed
2107         (init_at_eol, find_nml_node, match_namelist_name): Add new functions
2108         (match_namelist_name): New implemention
2109         * io/lock.c (ionml): New global variable
2110         (library_end): Free memory in ionml
2111         * io/open.c (st_open): Variable initializtion
2112         * io/read.c (max_value): 64 bits interger support
2113         (convert_precsion_real): New procedure to replace "strtod" with more
2114          features
2115         (read_f, read_radix): Input bug fix
2116         * io/transfer.c: (sf_seen_eor): New static variable
2117         (read_sf): Zeroize base buffer; fix bugs: single read statement can
2118         not get input in mutli line when read from stdin
2119         (formatted_transfer): Fix bug of FMT_O, FMT_B, FMT_Z for INTEGER type
2120          request
2121         (data_transfer_init): Clear internal buffer for Internel File I/O.
2122         Internal File now worked. Detect some error condition for namelist.
2123         Some minor bug fix
2124         (next_record_w): Internal file and Namelist I/O support.
2125         (st_set_nml_var, st_set_nml_var_float, st_set_nml_var_char,
2126         st_set_nml_var_complex, st_set_nml_var_log): Implemention.
2127         * io/unit.c (implicit_unit): Deletion
2128         (get_unit): Now cannot open a unit implicitly.
2129         * io/unix.c (mmap_alloc): Fix fatal error in calculating the length of
2130         mapped buffer.
2131         (mem_alloc_r_at): Internal file I/O support added
2132         (empty_internal_buffer): New function
2133         * io/write.c (extract_int): Support 64 bits interger processing
2134         (output_float): Varibale initialization
2135         (write_float): Infinite real number detection.
2136         (write_int): 64 bits integer I/O support
2137         (write_decimal): New function to output decimal number
2138         (otoa, btoa): Better implemention and 64 bits interger support
2139         (namelist_write): New function
2140         * runtime/error.c (itoa, xtoa): Better implemention and 64 bits
2141         interger support
2142
2143 2003-08-15  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2144
2145         * libgfortran.h (os_error, runtime_error,internal_error, sys_exit,
2146         get_mem ): Add attribute.
2147         * intrinsics/spread_generic.c (__spread): Fix spelling.
2148         * io/inquire.c (inquire_via_filename): Add const.
2149         * io/io.h (sys_exit): Add attribute.
2150         * io/io.h (move_pos_offset): Add move_pos_offset.
2151         * io/io.h (compare_file_filename, inquire_sequential, inquire_direct,
2152         inquire_formatted, inquire_unformatted, inquire_read, inquire_write,
2153         inquire_readwrite, convert_real, write_a, write_b, write_d, write_e,
2154         write_en, write_es, write_f, write_i, write_l, write_o, write_x,
2155         write_z): Add const.
2156         * io/read.c (convert_real): Add const.
2157         * io/transfer.c (type_name): Add const.
2158         * io/unix.c (unpack_filename, compare_file_filename,inquire_sequential,
2159         inquire_direct, inquire_formatted, inquire_unformatted, inquire_access,
2160         inquire_read, inquire_write, inquire_readwrite): Add const.
2161         * io/write.c (output_float): Remove unused variable.
2162         * io/write.c (write_a, extract_int, extract_real, output_float,
2163         write_float, write_int, write_i, write_b, write_o, write_z, write_d,
2164         write_e, write_f, write_en, write_es, write_logical, write_integer,
2165         write_character, write_real, write_complex): Add const.
2166         * runtime/error.c (rtoa): Remove unused variable.
2167         * runtime/select.c (select_string): Add const.
2168         * runtime/stop.c (stop_string): Add const.
2169
2170 2003-08-10  Paul Brook  <paul@nowt.org>
2171
2172         * Makefile.am (gfor_helper_src): Add intrinsics/abort.c.
2173         (FFLAGS): Add -fno-underscoring.
2174         * Makefile.in: Regenerate.
2175         * intrinsics/abort.c: New file.
2176
2177 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
2178
2179         * fmain.c (main): Do not call init and cleanup; call set_args instead.
2180         * libgfortran.h (init, cleanup): Remove declarations.
2181         (set_args): Add declaration.
2182         * runtime/main.c (init, cleanup): Make them static, and give them
2183         the constructor and destructor attributes.
2184         (set_args): New function.
2185
2186 2003-08-10  Paul Brook  <paul@nowt.org>
2187
2188         * intrinsics/strinf_intrinsics.c (compare_string): Return value based
2189         on which string is longest.
2190
2191 2003-08-10  Paul Brook  <paul@nowt.org>
2192
2193         * Makefile.am (EXTRA_DIST): Remove old files.
2194         * Makefile.in: Regenerate.
2195
2196 2003-07-26  Paul Brook  <paul@nowt.org>
2197
2198         Rename library to libgfortran.
2199         * libgfortran.h: Change prefix to _libgfortran_.
2200
2201 2003-07-24  Paul Brook  <paul@nowt.org>
2202
2203         * configure.in: Don't pull in system libtool.  Use toplevel
2204         auxiliary files.
2205
2206 2003-07-22  Paul Brook  <paul@nowt.org>
2207
2208         Regenerate all configury files.
2209
2210 2003-07-09  Chun Huang  <compiler@sohu.com>
2211
2212         * intrinsics/string_intrinsic.c (string_scan): New function.
2213         (string_verify): New function.
2214
2215 2003-06-25  Paul Brook  <paul@nowt.org>
2216
2217         * io/unix.c (mem_alloc_r_at, mem_alloc_w_at): Advance logical_offset.
2218         (mem_seek): Don't bother setting physical_offset.
2219
2220 2003-06-20  Paul Brook  <paul@nowt.org>
2221
2222         * libgfor.h (stop_numeric): Declare.
2223         * runtime/pause.c: New file.
2224         * Makefile.am: Add it.
2225
2226 2003-06-08  Paul Brook  <paul@nowt.org>
2227
2228         * m4/cexp.m4 (cabs): Use correct typed version.
2229         (csqrt): New function.
2230
2231 2003-06-07  Canqun Yang  <canqun@yahoo.com.cn>
2232
2233         Spotted by Benjamin and Tobias:
2234         * io/list_read.c: Add Separator '\t'.
2235         (parse_real, read_real): Accept real values starting with an optional
2236         sign follows a decimal point.
2237
2238 2003-06-06  Steven Bosscher  <steven@gcc.gnu.org>
2239
2240         * Makefile.am: Don't put cmath objects in subdir.
2241         * configure.in: Rename MATHOBJ to MATH_OBJ.
2242
2243 2003-06-02  Kejia Zhao  <Kejia_zh@yahoo.com.cn>
2244
2245         * intrinsics/associated.c: New file.
2246         * Makefile.am: Add it. Regenerate Makefile.in.
2247         * libgfor.h: Define g95_array_void, G95_DESCRIPTOR_DATA, and
2248         G95_DESCRIPTOR_DTYPE.
2249
2250 2003-06-01  Canqun Yang  <canqun@yahoo.com.cn>
2251
2252         * io/write.c (calcuate_exp): Rewrite it to avoid overflow.
2253         (calculate_G_format): Rewrite it to eliminate an infinte loop and set
2254         the scale_factor to 0 for F editing.
2255
2256 2003-05-11  Tobias Schlter  <innenminister@gmx.de>
2257
2258         * libgfor.h: Only include stdint.h if it exists.
2259
2260 2003-05-07  Paul Brook  <paul@nowt.org>
2261
2262         * libgfor.h: Use stdint.h types.
2263         * intrinsics/ishift.c: Ditto.
2264         * runtime/memory.c (malloc_t): Reorder fields for better alignment.
2265
2266 2003-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2267
2268         * libgfor.h (offsetof): Define if nobody else does.
2269         * runtime/memory.c (HEADER_SIZE): Use it.
2270
2271 2003-05-01  Tobias Schlter  <innenminister@gmx.de>
2272
2273         * configure.in: Require autoconf 2.54.
2274
2275 2003-04-28  Tobias Schlter  <innenminister@gmx.de>
2276         Paul Brook  <paul@nowt.org>
2277
2278         * intrinsics/reshape_generic.c: Copy the whole element, not just the
2279         first byte.
2280         * m4/transpose.m4: New file.
2281         * Makefile.am: Add them.
2282         Regenerate generated files.
2283
2284 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
2285
2286         * io/format.c (parse_format_list): Allow 'X' without integer
2287         prefix.  This is an extension.  Interpretation is '1X'.
2288
2289 2003-04-18  Tobias Schlter  <Tobias.Schlueter@physik.uni-muenchen.de>
2290
2291         * io/format.c (parse_format_list): Allow '0P'.
2292
2293 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
2294
2295         * Makefile.in: Re-regenerate for automake 1.7.3.
2296
2297 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
2298
2299         Port implementation for CHARACTER SELECT from Andy's tree.
2300         * runtime/select.c: New file
2301         * Makefile.am: Add it.
2302         * Makefile.in: Regenerate.
2303
2304 2003-04-17  Xiaoqiang Zhang <zhangapache@yahoo.com>
2305
2306         * io/transfer.c (formatted_transfer): Modified
2307         * io/unix.c (move_pos_offset): New Function.
2308         * io/format.c (parse_format_list): Modified.
2309
2310 2003-04-15  Xiaoqiang Zhang <zhangapache@yahoo.com>
2311
2312         * io/write.c (write_float,write_real): New implemention of
2313         FMT_G and default float editing.
2314         (calculate_exp,calculate_G_format,output_float): New Function.
2315         (write_float,write_real,write_logical): Modified
2316         * libgfor.h (default_rtoa): Remove Declaration.
2317         * runtime/error.c (default_rtoa): Remove Function.
2318
2319 2003-04-15  Steven Bosscher  <steven@gcc.gnu.org>
2320
2321         Spotted by Yang:
2322         * io/write.c (extract_real): Add missing break statement.
2323
2324 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
2325
2326         * cpu_time.c: Make sure we have a definition of HZ.  Don't
2327         rely on CLOCKS_PER_SEC, it is always 1000000, on any system.
2328
2329 2003-04-13  Steven Bosscher  <steven@gcc.gnu.org>
2330             Paul Brook  <paul@nowt.org>
2331
2332         * configure.in: Check for process time headers and GETTIMEOFDAY.
2333         * makefile.am: Add intrinsics/cpu_time.c.
2334         * acinclude.m4: New file.
2335         * intrinsics/cpu_time.c: New file.
2336         * m4/dotprodl.m4: Fix typo.
2337         Regenerate generated files.
2338
2339 2003-04-11  Xiaoqiang Zhang <zhangapache@yahoo.com>
2340
2341         * io/write.c (extract_real): Ouput floating point value.
2342         (write_float): New Function.
2343         (write_e, write_f, write_en, write_es): Modified
2344         * io/transfer.c (formatted_transfer): Modified.
2345         * libgfor.h (default_rtoa): Declaration.
2346         (rtoa): Declaration.
2347         * runtime/error.c (default_rtoa): New Function.
2348         (rtoa): New Function.
2349
2350 2003-04-05  Paul Brook  <paul@nowt.org>
2351
2352         * intrinsics/spread_generic.c: New file.
2353         * Makefile.am: Add it. Regenerate Makefile.in.
2354
2355 2003-03-29  Paul Brook  <paul@nowt.org>
2356
2357         * intrinsics/pack_generic.c: New file.
2358         * intrinsics/unpack_generic.c: New file.
2359         * Makefile.am: Add them. Regenerate Makefile.in.
2360
2361 2003-03-25  Paul Brook  <paul@nowt.org>
2362
2363         * intrinsics/eoshift0.c: New file.
2364         * intrinsics/eoshift2.c: New file.
2365         * m4/eoshift1.m4: New file.
2366         * m4/eoshift3.m4: New file.
2367         * Makefile.am: Add them.
2368         * in_unpack_generic.c: Initialize src.
2369         Regenerate generated files.
2370
2371 2003-03-14  Paul Brook  <paul@nowt.org>
2372
2373         * m4/shape.m4: Work properly with array temporaries.
2374         * m4/in_pack.m4: Skip redundant checks for array temporaries.
2375         * runtime/in_pack_generic.c: Ditto.
2376
2377 2003-03-12  Paul Brook  <paul@nowt.org>
2378
2379         * m4/shape.m4: Work properly with noncontiguous arrays.
2380
2381 2003-03-08  Paul Brook  <paul@nowt.org>
2382
2383         * m4/in_pack.m4: Correctly handle zero sized and assumed size arrays.
2384         * runtime/in_pack_generic.c: Ditto.
2385
2386 2003-02-08  Paul Brook  <paul@nowt.org>
2387
2388         * intrinsics/reshape_generic.c: Use runtime_error to report errors.
2389         * io/close.c (st_close): Return void.
2390         * io/open.c (st_open): Return void.
2391         * libgfor.h (g95_array_char): Declare.
2392         (internal_malloc_size): Ditto.
2393         (internal_pack*, internal_unpack*): Ditto.
2394         * m4/in_pack.m4: Allocate storage if neccessary.  Fix logic for packed
2395         arrays.
2396         * m4/in_unpack.m4: Include file fixes.
2397         * m4/reshape.m4: Increment the correct source pointer.
2398         * Makefile.am (maxloc): Fix typo.
2399         * runtime/in_pack_generic.c: Call optimized functions. Allocate
2400         storage if neccessary. Fix logic for packed arrays.
2401         * runtime/in_unpack_generic.c: Call optimized functions.
2402         * runtime/main.c: Use runtime_error to report errors.
2403         * memory.c (internal_malloc_size): Make non-static.
2404
2405 2003-02-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2406
2407         * reshape_packed.c, lock.c: Add #include <string.h>.
2408         * libgfor.h, format.c, inquire.c, io.h, transfer.c, unix.c,
2409         environ.c, error.c, memory.c, string.c: Add const.
2410         * error.c (show_locus): Add void.
2411
2412 2003-02-21  Paul Brook  <paul@nowt.org>
2413
2414         * m4/in_pack.m4: Avoid returning const * parameter.
2415         * Makefile.am: Only regenerate files in maintainer mode.
2416
2417 2003-02-20  Paul Brook  <paul@nowt.org>
2418
2419         Add array repacking support functions.
2420         * m4/in_pack.m4, m4/in_unpack.m4: New files.
2421         * runtime/in_pack_generic.c, runtime/in_unpack_generic.c: New files.
2422         * Makefile.am: Build them.  Regenerate configury files.
2423         * generated/: New directory for generated files (need to move
2424         everything else there).
2425
2426 2003-02-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2427
2428         * m4/cexp.m4: Fix typo.
2429
2430 2003-01-26  Paul Brook  <paul@nowt.org>
2431
2432         * intrinsics/: Add missing generated files.
2433
2434 2003-01-26  Paul Brook  <paul@nowt.org>
2435
2436         * Makefile.am: Put -I before the filename.
2437
2438 2003-01-24  Paul Brook  <paul@nowt.org>
2439
2440         * configure.in: Add AM_MAINTAINER_MODE.
2441
2442 2003-01-23  Paul Brook  <paul@nowt.org>
2443
2444         * configure.in, Makefile.am: Modify to work with unmodified autoconf
2445         and auotmake.
2446         Also regenerate other configury files.
2447
2448 2003-01-21  Paul Brook  <paul@nowt.org>
2449
2450         * io/read.c: Don't use stdint.h, it doesn't exist on cygwin.
2451
2452 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2453
2454         * io/read.c (read_f): Don't use alloca, but safe get_mem instead.
2455         Don't include "alloca.h".
2456
2457 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2458
2459         * intrinsics/string.c: Rename to intrinsics/string_intrinsics.c.
2460         * Makefile.am: Adjust file name.
2461         * Makefile.in: Regenerate.
2462         * gfortypes.h: Kill, include everything in...
2463         * libgfor.h: ...here.  Include config.h
2464         * fmain.c, intrinsics/ishftc.c, intrinsic/reshape_generic.c,
2465         intrinsics/reshape_i4.c, intrinsics/reshape_i8.c,
2466         intrinsics/reshape_packed.c, intrinsics/size.c,
2467         m4/reshape.m4, runtime/main.c, runtime/memory.c: Use macro
2468         for prefix for all functions instead of hardcoded.
2469
2470 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2471
2472         * io/lock.c (library_end): Propagate library return
2473         code.
2474
2475 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2476
2477         Port fixes from Andy's tree:
2478         * io/read.c (read_decimal): Reverse sense of overflow
2479         comparison during integer reads.
2480         * io/format.c (revert): Fix comment.
2481         (next_format): Fix format revision.
2482         * io/unix.c: Fix and simplify mmap version of stream
2483         functions.
2484
2485 2003-01-11  Paul Brook  <paul@nowt.org>
2486
2487         * configure, Makefile.in: Regenerate.
2488
2489 2003-01-11  Paul Brook  <paul@nowt.org>
2490
2491         * runtime/stop.c: Rewrite.
2492
2493 2003-01-08  Paul Brook  <paul@nowt.org>
2494
2495         * configure, Makefile.in: Regenerate.
2496
2497 2003-01-05  Paul Brook  <paul@nowt.org>
2498
2499         * (*.m4) Move to m4/.
2500         * intrinsics/string.c (_gfor_string_index): New Function.
2501
2502 2002-12-29  Paul Brook  <paul@nowt.org>
2503
2504         * intrinsics/reshape.*: New files.
2505         * gcc_config.patch: Update to new GCC configure system.
2506
2507 2002-10-10  Paul Brook  <paul@nowt.org>
2508
2509         * intrinsics/size.c: New file.
2510         * intrinsics/shape.m4: New file.
2511         * Makefile.am: Add above files.
2512
2513 2002-10-02  Paul Brook  <paul@nowt.org>
2514
2515         * fmain.c (main): Move here.
2516         * libgfor.c: From here.
2517         * libgfor.h (gfor_init, gfor_runtime_cleanup): Declare.
2518         * Makefile.am: Build libgforbegin.
2519         * gcc_config.patch: Remove stray -march=athlon.
2520         * dotprodl.m4: Fix use of L8_TO_L4 macro.
2521         * ifunction.m4: Move variable declarations to allow compilation with
2522         gcc < 3.0
2523         * specific.m4, specific4.m4: Fix typo typecode->type_code.
2524         * README: Document use of patch -p1.
2525
2526 2002-09-12  Paul Brook  <paul@nowt.org>
2527
2528         * math/*: Add complex math library functions.
2529         * intrinsics/specific(2).m4: Generate Specific intrinsic functions.
2530         * Makefile.am: Add details for above.
2531         * configure.in: Use AC_PROG_F95.  Test for the presence of csin.
2532
2533 2002-09-09  Paul Brook  <paul@nowt.org>
2534
2535         * libgfor.c (determine_endianness): Use an array rather than a struct.
2536         * intrinsics/dotprod*, matmul*: Implement DOT_PRODUCT and MATMUL.
2537
2538 2002-09-09  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2539
2540         * libgfor.c: Add fatal signal handler.
2541         Romove superfluous abort() calls.
2542
2543 2002-09-07  Paul Brook <paul@nowt.org>
2544
2545         * Makefile.am, intrinsics: Major rewrite.
2546
2547 2002-09-02  Paul Brook <paul@nowt.org>
2548
2549         * Makefile.am: Added -I$(srcdir) to m4 rule.
2550
2551 2002-08-30  Paul Brook <paul@nowt.org>
2552
2553         * io/*: Integrated libgforio.
2554         * Makefile.am, configure.in: Make compatable with GCC. Build code for
2555         intrinsics in the intrisics directory.
2556         * intrinsics/intrinsics.m4: Move here. Strip directories from the
2557         filename. Add 'and' and 'all' intrinsics.
2558
2559 2002-08-17  Paul Brook <paul@nowt.org>
2560
2561         * ALL: First release as more than just a single file