OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libgfortran/] [ChangeLog] - Blame information for rev 14

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.