1 2006-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4 *io/io.h (st_parameter_dt): Change *size and *iolength type to
6 *io/transfer.c (finalize_transfer): Cast dtp->u.p.size_used to
7 GFC_IO_INT. (iolength_transfer): Cast size * nelems to GFC_IO_INT.
9 2006-12-17 Tobias Burnus <burnus@net-b.de>
11 * intrinsics/associated.c: Check for associated(NULL,NULL).
13 2006-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
16 * io/transfer.c (transfer_array): Check for negative extent.
18 2006-12-13 Richard Guenther <rguenther@suse.de>
21 * runtime/memory.c (allocate_size): Change interface to
22 void *()(size_t, GFC_INTEGER_4 *).
24 (allocate64): Likewise.
25 (allocate_array): Change interface to
26 void *()(void *, size_t, GFC_INTEGER_4 *).
27 (allocate64_array): Likewise.
28 (deallocate): Change interface to
29 void ()(void *, GFC_INTEGER_4 *).
31 2006-12-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
34 * intrinsics/c99_functions.c (fmodf, fmodl, floorl): New functions.
35 * c99_protos.h (fmodf, fmodl, floorl): New prototypes.
36 * configure.ac: Check for fmodf, fmod and fmodl.
37 * configure: Regenerate.
38 * config.h.in: Regenerate.
40 2006-12-06 Thomas Koenig <Thomas.Koenig@online.de>
44 * libgfortran.h: Add ERROR_CORRUPT_FILE to error_codes.
45 * runtime/error.c (translate_error): Add handling for
47 * io/transfer.c (read_block_direct): Add comment about
49 Remove test for no bytes left for direct access files.
50 Generate an ERROR_SHORT_RECORD if the read was short.
51 For unformatted sequential files: Check endfile condition.
52 Remove test for no bytes left. End of file here means
53 that the file structure has been corrupted. Pre-position
54 the file for the next record in case of error.
55 (write_buf): Whitespace fix. Subtract the number of bytes
56 written from bytes_left.
58 2006-12-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
61 * io/open.c: Add errno.h include.
62 (new_unit): Add new error messages with file name for file open.
64 2006-12-01 Thomas Koenig <Thomas.Koenig@online.de>
67 * libgfortran/libgfortran.h (compile_options_t): Add
68 record_marker. (top level): Define GFC_MAX_SUBRECORD_LENGTH.
69 * runtime/compile_options.c (set_record_marker): Change
70 default to four-byte record marker.
71 (set_max_subrecord_length): New function.
72 * runtime/error.c (translate_error): Change error message
73 for short record on unformatted read.
74 * io/io.h (gfc_unit): Add recl_subrecord, bytes_left_subrecord
76 * io/file_pos.c (unformatted_backspace): Change default of record
77 marker size to four bytes. Loop over subrecords.
78 * io/open.c: Default recl is max_offset. If
79 compile_options.max_subrecord_length has been set, set set
80 u->recl_subrecord to its value, to the maximum value otherwise.
81 * io/transfer.c (top level): Add prototypes for us_read, us_write,
82 next_record_r_unf and next_record_w_unf.
83 (read_block_direct): Separate codepaths for unformatted direct
84 and unformatted sequential. If a recl has been set by the
85 user, use the number of bytes left for the record if it is smaller
86 than the read request. Loop over subrecords. Set an error if the
87 user has set a recl and the read was short.
88 (write_buf): Separate codepaths for unformatted direct and
89 unformatted sequential. If a recl has been set by the
90 user, use the number of bytes left for the record if it is smaller
91 than the read request. Loop over subrecords. Set an error if the
92 user has set a recl and the read was short.
93 (us_read): Add parameter continued (to indicate that bytes_left
94 should not be intialized). Change default of record marker size
95 to four bytes. Use subrecord. If the subrecord length is smaller than
96 zero, this indicates a continuation.
97 (us_write): Add parameter continued (to indicate that the continued
98 flag should be set). Use subrecord.
99 (pre_position): Use 0 for continued on us_write and us_read calls.
100 (skip_record): New function.
101 (next_record_r_unf): New function.
102 (next_record_r): Use next_record_r_unf.
103 (write_us_marker): Default size for record markers is four bytes.
104 (next_record_w_unf): New function.
105 (next_record_w): Use next_record_w_unf.
107 2006-11-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
109 * Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c.
110 * Makefile.in: Regenerate.
111 * intrinsics/erf.c: Remove.
112 * intrinsics/bessel.c: Remove.
113 * c99_protos.h: Add prototypes for bessel and error functions.
114 * intrinsics/c99_functions.c: Move content for intrinsics/erf.c
115 and intrinsics/bessel.c here.
117 2006-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
119 * io/io.h (unit_flags): Add new flag has_recl.
120 * io.open.c (new_unit): Set flag if RECL= was specified.
121 * io/transfer.c (us_write): If flag set, leave recl as initialized by
124 2006-11-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
126 * io/open.c (new_unit): Format %d expects an int variable.
127 * runtime/error.c (show_locus): Format %d expects an int variable.
129 2006-11-08 Steven G. Kargl <kargl@gcc.gnu.org>
131 * io/read.c (max_value): Hide "int n" in an #ifdef.
133 2006-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
136 * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO.
138 2006-11-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
140 * io/transfer.c (next_record_w): Fix indentation.
142 2006-11-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
145 * io/transfer.c (write_block): Cleanup code paths between
146 stream and non-stream I/O.
147 (write_buf): Cleanup.
148 (read_block): Cleanup.
149 (finalize_transfer): Call next_record for '$' edit descriptor handling
150 of internal unit. Cleanup code for readability.
152 2006-11-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
155 * intrinsics/reshape_generic.c (reshape_internal): Fix so that it
156 works correctly for zero-sized arrays.
157 * m4/reshape.m4: Likewise.
158 * generated/reshape_r16.c: Regenerate.
159 * generated/reshape_c4.c: Regenerate.
160 * generated/reshape_i4.c: Regenerate.
161 * generated/reshape_c16.c: Regenerate.
162 * generated/reshape_r10.c: Regenerate.
163 * generated/reshape_r8.c: Regenerate.
164 * generated/reshape_c10.c: Regenerate.
165 * generated/reshape_c8.c: Regenerate.
166 * generated/reshape_i8.c: Regenerate.
167 * generated/reshape_i16.c: Regenerate.
168 * generated/reshape_r4.c: Regenerate.
170 2006-10-31 Thomas Koenig <Thomas.Koenig@online.de>
173 * libgfortran.h: Add ERROR_SHORT_RECORD
174 * runtime/error.c (translate_error): Add case
175 for ERROR_SHORT_RECORD.
176 * io/transfer.c (read_block_direct): Separate codepaths
177 for stream and record unformatted I/O. Remove unneeded
178 tests for standard input, padding and formatted I/O.
179 If the record is short, read in as much data as possible,
180 then raise the error.
182 2006-10-30 Tobias Burnus <burnus@net-b.de>
185 * runtime/string.c (compare0): Check whether string lengths match.
187 2006-10-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
189 * configure: Regenerate.
190 * Makefile.in: Regenerate.
191 * aclocal.m4: Regenerate.
193 2006-10-28 Tobias Burnus <burnus@net-b.de>
196 * io/transfer.c (formatted_transfer_scalar): Allow binary edit
197 descriptors for real variables; give error for BOZ edit
198 descriptor for non-integers when using -std=f*.
200 2006-10-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
203 * io/list_read.c (next_char): Fix an error in previous commit.
205 2006-10-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
208 * io/io.h (st_parameter_dt): Add new flag at_eof.
209 * io/list_read.c (next_char): Set flag when EOF and return '\n' to
210 signal EOR. Check flag on next call and jump out.
211 * io/unit.c (get_internal_unit): Initialize new flag.
213 2006-10-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
216 * m4/matmul.m4: Add possible call to gemm routine.
217 * generated/matmul_r8.c: Regenerate.
218 * generated/matmul_r16.c: Regenerate.
219 * generated/matmul_c8.c: Regenerate.
220 * generated/matmul_i8.c: Regenerate.
221 * generated/matmul_c16.c: Regenerate.
222 * generated/matmul_r10.c: Regenerate.
223 * generated/matmul_r4.c: Regenerate.
224 * generated/matmul_c10.c: Regenerate.
225 * generated/matmul_c4.c: Regenerate.
226 * generated/matmul_i4.c: Regenerate.
227 * generated/matmul_i16.c: Regenerate.
229 2006-10-21 Steven G. Kargl <kargl@gcc.gnu.org>
231 * runtime/error.c: Add errno.h
232 (generate_error): Set iostat to errno on OS error.
233 * libgfortran.h: Set ERROR_OS to 5000
235 2006-10-20 Francois-Xavier Coudert <coudert@clipper.ens.fr>
237 * generated/minval_r8.c: Regenerate.
238 * generated/maxloc1_4_r8.c: Regenerate.
239 * generated/minloc1_16_r16.c: Regenerate.
240 * generated/sum_i8.c: Regenerate.
241 * generated/eoshift3_4.c: Regenerate.
242 * generated/any_l16.c: Regenerate.
243 * generated/eoshift1_8.c: Regenerate.
244 * generated/reshape_r16.c: Regenerate.
245 * generated/product_r4.c: Regenerate.
246 * generated/maxloc1_8_i4.c: Regenerate.
247 * generated/maxloc0_4_r4.c: Regenerate.
248 * generated/in_unpack_i8.c: Regenerate.
249 * generated/minloc0_4_r16.c: Regenerate.
250 * generated/reshape_c4.c: Regenerate.
251 * generated/maxloc0_4_r16.c: Regenerate.
252 * generated/minloc1_8_r16.c: Regenerate.
253 * generated/maxloc1_8_r16.c: Regenerate.
254 * generated/in_unpack_i16.c: Regenerate.
255 * generated/maxloc0_8_i8.c: Regenerate.
256 * generated/sum_r16.c: Regenerate.
257 * generated/minloc1_4_r8.c: Regenerate.
258 * generated/maxloc1_16_r16.c: Regenerate.
259 * generated/minloc1_16_i4.c: Regenerate.
260 * generated/maxloc1_16_i4.c: Regenerate.
261 * generated/minloc0_16_i8.c: Regenerate.
262 * generated/maxloc0_16_i8.c: Regenerate.
263 * generated/maxval_r16.c: Regenerate.
264 * generated/count_16_l16.c: Regenerate.
265 * generated/count_8_l8.c: Regenerate.
266 * generated/product_c10.c: Regenerate.
267 * generated/minloc1_8_i4.c: Regenerate.
268 * generated/minloc0_16_i16.c: Regenerate.
269 * generated/eoshift1_16.c: Regenerate.
270 * generated/minloc0_4_r4.c: Regenerate.
271 * generated/product_c4.c: Regenerate.
272 * generated/sum_r4.c: Regenerate.
273 * generated/in_pack_c16.c: Regenerate.
274 * generated/reshape_i4.c: Regenerate.
275 * generated/minloc0_8_i8.c: Regenerate.
276 * generated/minloc1_16_r10.c: Regenerate.
277 * generated/in_pack_c4.c: Regenerate.
278 * generated/all_l16.c: Regenerate.
279 * generated/reshape_c16.c: Regenerate.
280 * generated/maxloc1_8_r8.c: Regenerate.
281 * generated/minval_i16.c: Regenerate.
282 * generated/reshape_r10.c: Regenerate.
283 * generated/maxval_i4.c: Regenerate.
284 * generated/any_l4.c: Regenerate.
285 * generated/minval_i8.c: Regenerate.
286 * generated/maxloc1_4_i8.c: Regenerate.
287 * generated/maxloc0_16_i16.c: Regenerate.
288 * generated/maxloc0_8_r4.c: Regenerate.
289 * generated/minloc1_4_i16.c: Regenerate.
290 * generated/minloc0_4_r10.c: Regenerate.
291 * generated/maxloc1_4_i16.c: Regenerate.
292 * generated/minloc0_8_i16.c: Regenerate.
293 * generated/maxloc0_4_r10.c: Regenerate.
294 * generated/maxloc0_8_i16.c: Regenerate.
295 * generated/minloc1_8_r10.c: Regenerate.
296 * generated/product_i4.c: Regenerate.
297 * generated/minloc0_16_r4.c: Regenerate.
298 * generated/sum_c16.c: Regenerate.
299 * generated/maxloc1_8_r10.c: Regenerate.
300 * generated/maxloc0_16_r4.c: Regenerate.
301 * generated/minloc1_16_r8.c: Regenerate.
302 * generated/maxloc0_4_i4.c: Regenerate.
303 * generated/maxloc1_16_r8.c: Regenerate.
304 * generated/cshift1_4.c: Regenerate.
305 * generated/sum_r10.c: Regenerate.
306 * generated/sum_c4.c: Regenerate.
307 * generated/maxloc1_16_r10.c: Regenerate.
308 * generated/count_4_l16.c: Regenerate.
309 * generated/in_pack_i4.c: Regenerate.
310 * generated/minloc1_8_r8.c: Regenerate.
311 * generated/count_4_l4.c: Regenerate.
312 * generated/maxval_r10.c: Regenerate.
313 * generated/minloc1_4_i8.c: Regenerate.
314 * generated/in_unpack_c4.c: Regenerate.
315 * generated/minloc0_8_r4.c: Regenerate.
316 * generated/product_i16.c: Regenerate.
317 * generated/minloc0_16_r16.c: Regenerate.
318 * generated/reshape_r8.c: Regenerate.
319 * generated/all_l4.c: Regenerate.
320 * generated/in_pack_c10.c: Regenerate.
321 * generated/minloc0_4_i4.c: Regenerate.
322 * generated/reshape_c10.c: Regenerate.
323 * generated/minval_r4.c: Regenerate.
324 * generated/maxloc1_4_r4.c: Regenerate.
325 * generated/sum_i4.c: Regenerate.
326 * generated/count_16_l8.c: Regenerate.
327 * generated/maxval_r8.c: Regenerate.
328 * generated/eoshift1_4.c: Regenerate.
329 * generated/eoshift3_8.c: Regenerate.
330 * generated/minval_r16.c: Regenerate.
331 * generated/product_r8.c: Regenerate.
332 * generated/maxloc1_8_i8.c: Regenerate.
333 * generated/maxloc0_4_r8.c: Regenerate.
334 * generated/maxloc0_16_r16.c: Regenerate.
335 * generated/in_unpack_i4.c: Regenerate.
336 * generated/sum_c10.c: Regenerate.
337 * generated/minloc1_4_r16.c: Regenerate.
338 * generated/maxloc1_4_r16.c: Regenerate.
339 * generated/in_unpack_c16.c: Regenerate.
340 * generated/minloc0_8_r16.c: Regenerate.
341 * generated/reshape_c8.c: Regenerate.
342 * generated/maxloc0_8_r16.c: Regenerate.
343 * generated/maxloc0_8_i4.c: Regenerate.
344 * generated/minloc1_4_r4.c: Regenerate.
345 * generated/minloc0_16_i4.c: Regenerate.
346 * generated/maxloc0_16_i4.c: Regenerate.
347 * generated/minloc1_16_i8.c: Regenerate.
348 * generated/maxloc1_16_i8.c: Regenerate.
349 * generated/count_8_l4.c: Regenerate.
350 * generated/minloc0_16_r10.c: Regenerate.
351 * generated/minloc1_8_i8.c: Regenerate.
352 * generated/minloc0_4_r8.c: Regenerate.
353 * generated/product_r16.c: Regenerate.
354 * generated/product_c8.c: Regenerate.
355 * generated/sum_r8.c: Regenerate.
356 * generated/in_pack_i16.c: Regenerate.
357 * generated/minloc0_8_i4.c: Regenerate.
358 * generated/minloc1_16_i16.c: Regenerate.
359 * generated/reshape_i8.c: Regenerate.
360 * generated/in_pack_c8.c: Regenerate.
361 * generated/maxloc1_8_r4.c: Regenerate.
362 * generated/reshape_i16.c: Regenerate.
363 * generated/minval_r10.c: Regenerate.
364 * generated/minval_i4.c: Regenerate.
365 * generated/maxloc1_4_i4.c: Regenerate.
366 * generated/maxval_i8.c: Regenerate.
367 * generated/eoshift3_16.c: Regenerate.
368 * generated/any_l8.c: Regenerate.
369 * generated/maxloc0_16_r10.c: Regenerate.
370 * generated/minloc0_4_i16.c: Regenerate.
371 * generated/maxloc0_8_r8.c: Regenerate.
372 * generated/maxloc0_4_i16.c: Regenerate.
373 * generated/minloc1_4_r10.c: Regenerate.
374 * generated/minloc1_8_i16.c: Regenerate.
375 * generated/maxloc1_4_r10.c: Regenerate.
376 * generated/minloc0_8_r10.c: Regenerate.
377 * generated/maxloc1_8_i16.c: Regenerate.
378 * generated/in_unpack_c10.c: Regenerate.
379 * generated/maxloc0_8_r10.c: Regenerate.
380 * generated/minloc1_16_r4.c: Regenerate.
381 * generated/maxloc1_16_r4.c: Regenerate.
382 * generated/minloc0_16_r8.c: Regenerate.
383 * generated/product_i8.c: Regenerate.
384 * generated/maxloc0_16_r8.c: Regenerate.
385 * generated/sum_i16.c: Regenerate.
386 * generated/maxloc0_4_i8.c: Regenerate.
387 * generated/cshift1_8.c: Regenerate.
388 * generated/maxloc1_16_i16.c: Regenerate.
389 * generated/minloc1_8_r4.c: Regenerate.
390 * generated/sum_c8.c: Regenerate.
391 * generated/count_8_l16.c: Regenerate.
392 * generated/in_pack_i8.c: Regenerate.
393 * generated/maxval_i16.c: Regenerate.
394 * generated/count_4_l8.c: Regenerate.
395 * generated/minloc1_4_i4.c: Regenerate.
396 * generated/product_c16.c: Regenerate.
397 * generated/reshape_r4.c: Regenerate.
398 * generated/minloc0_8_r8.c: Regenerate.
399 * generated/in_unpack_c8.c: Regenerate.
400 * generated/product_r10.c: Regenerate.
401 * generated/cshift1_16.c: Regenerate.
402 * generated/all_l8.c: Regenerate.
403 * generated/minloc0_4_i8.c: Regenerate.
404 * generated/maxval_r4.c: Regenerate.
405 * generated/count_16_l4.c: Regenerate.
407 2006-10-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
410 * intrinsics/cshift0.c: Special cases for zero-sized arrays.
411 * intrinsics/pack_generic.c: Likewise.
412 * intrinsics/spread_generic.c: Likewise.
414 2006-10-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
417 * io/write.c (write_a): Add conversion of LF to CR-LF for systems with
420 2006-10-18 Tobias Burnus <burnus@net-b.de>
422 * m4/in_pack.m4: Fixed a typo.
423 * m4/iforeach.m4: Fixed a typo.
424 * m4/eoshift1.m4: Fixed a typo.
425 * m4/eoshift3.m4: Fixed a typo.
426 * m4/cshift1.m4: Fixed a typo.
427 * m4/in_unpack.m4: Fixed a typo.
428 * m4/reshape.m4: Fixed a typo.
429 * m4/ifunction.m4: Fixed a typo.
430 * runtime/environ.c: Fixed a typo.
431 * runtime/in_pack_generic.c: Fixed a typo.
432 * runtime/in_unpack_generic.c: Fixed a typo.
433 * runtime/memory.c: Fixed a typo.
434 * intrinsics/cshift0.c: Fixed a typo.
435 * intrinsics/cpu_time.c: Fixed a typo.
436 * intrinsics/pack_generic.c: Fixed a typo.
437 * intrinsics/unpack_generic.c: Fixed a typo.
438 * intrinsics/eoshift0.c: Fixed a typo.
439 * intrinsics/eoshift2.c: Fixed a typo.
440 * intrinsics/reshape_generic.c: Fixed a typo.
441 * io/open.c: Fixed a typo.
442 * io/list_read.c: Fixed a typo.
443 * io/io.h: Fixed a typo.
444 * io/transfer.c: Fixed a typo.
445 * io/write.c: Fixed a typo.
447 2006-10-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
450 * io/list_read.c (next_char): Update strm_pos.
451 (eat_separator): Delete extra call to unget_char.
452 * io/transfer.c (read_block): Use read_sf for formatted stream I/O.
453 (next_record_r): Update strm_pos for formatted stream I/O and handle
454 end-of-record correctly.
455 (next_record_w): Ditto.
456 (next_record): Enable next record (r/w) functions and update strm_pos.
457 (finalize_transfer): Call next_record to finish the record.
459 2006-10-13 Steven G. Kargl <kargl@gcc.gnu.org>
461 * m4/spacing.m4: Use scalbn[f,l] if ldexp[f,l] is unavailable.
462 * m4/rrspacing.m4: Ditto.
463 * generated/spacing_r4.c: Regenerated.
464 * generated/spacing_r8.c: Ditto.
465 * generated/spacing_r10.c: Ditto.
466 * generated/spacing_r16.c: Ditto.
467 * generated/rrspacing_r4.c: Ditto.
468 * generated/rrspacing_r8.c: Ditto.
469 * generated/rrspacing_r10.c: Ditto.
470 * generated/rrspacing_r16.c: Ditto.
472 2006-10-06 Steven G. Kargl <kargl@gcc.gnu.org>
476 * configure.ac: Add HAVE_LDEXPF, HAVE_LDEXP, and HAVE_LDEXPL
477 * m4/spacing.m4: New file. Use new HAVE_* defines.
478 * m4/rrspacing.m4: Ditto.
479 * Makefile.am: Handle new files.
480 * configure: Regenerated.
481 * Makefile.in: Ditto.
482 * config.h.in: Ditto.
483 * generated/spacing_r4.c: Generated.
484 * generated/spacing_r8.c: Ditto.
485 * generated/spacing_r10.c: Ditto.
486 * generated/spacing_r16.c: Ditto.
487 * generated/rrspacing_r4.c: Ditto.
488 * generated/rrspacing_r8.c: Ditto.
489 * generated/rrspacing_r10.c: Ditto.
490 * generated/rrspacing_r16.c: Ditto.
492 2006-10-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
494 * intrinsics/hyper.c: Remove file.
495 * intrinsics/c99_functions.c: Add fallback functions asinhf,
497 * Makefile.am: Remove file intrinsics/hyper.c.
498 * Makefile.in: Regenerate.
500 2006-10-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
502 * c99_protos.h: Correctly protect definitions of prototypes for
503 asinhf, acoshf and atanhf to be the same as in intrinsics/hyper.c.
505 2006-10-08 Paul Thomas <pault@gcc.gnu.org>
506 Erik Edelmann <edelmann@gcc.gnu.org>
509 * Makefile.in : Add move_alloc.
510 * intrinsics/move_alloc.c: New function.
511 * Makefile.am : Add move_alloc.
513 2006-10-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
516 * intrinsics/signal.c (signal_sub, signal_sub_int): Use intptr_t
517 if available to cast function pointers to int and back.
518 * configure.ac: Check for intptr_t.
519 * config.h.in: Regenerate.
520 * configure: Regenerate.
522 2006-10-01 Francois-Xavier Coudert <coudert@clipper.ens.fr>
526 * libgfortran/Makefile.am: Add the new files to the build
527 process, and rules to build them.
528 * libgfortran/Makefile.in: Regenerate.
529 * libgfortran/m4/misc_specifics.m4: New file.
530 * libgfortran/m4/specific.m4: Add new special cases for function
531 with complex argument and real result, like abs_c* and aimag_c*.
532 * libgfortran/intrinsics/f2c_specifics.F90: Add specifics for
533 AIMAG, ASINH, ACOSH and ATANH.
534 * libgfortran/generated/_aimag_c4.F90: New file.
535 * libgfortran/generated/_aimag_c8.F90: New file.
536 * libgfortran/generated/_asinh_r10.F90: New file.
537 * libgfortran/generated/_acosh_r16.F90: New file.
538 * libgfortran/generated/_aimag_c10.F90: New file.
539 * libgfortran/generated/_atanh_r16.F90: New file.
540 * libgfortran/generated/_acosh_r4.F90: New file.
541 * libgfortran/generated/_acosh_r8.F90: New file.
542 * libgfortran/generated/_asinh_r4.F90: New file.
543 * libgfortran/generated/_asinh_r8.F90: New file.
544 * libgfortran/generated/_asinh_r16.F90: New file.
545 * libgfortran/generated/_atanh_r4.F90: New file.
546 * libgfortran/generated/_atanh_r8.F90: New file.
547 * libgfortran/generated/_acosh_r10.F90: New file.
548 * libgfortran/generated/misc_specifics.F90: New file.
549 * libgfortran/generated/_aimag_c16.F90: New file.
550 * libgfortran/generated/_atanh_r10.F90: New file.
552 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
554 * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__
556 * configure: Regenerate.
558 2006-10-05 Steven G. Kargl <kargl@gcc.gnu.org>
560 * Makefile.am: Use $(M4) instead of m4.
561 * Makefile.in: Regenerated.
563 2006-10-01 Francois-Xavier Coudert <coudert@clipper.ens.fr>
565 * libgfortran.h: Add prototype for internal_unpack_c16.
567 2006-09-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
570 * m4/specific.m4: Special-case cabs so that its return type is
571 real. Special-case conjg so that their suffices are _4, _8, _10 and
572 _16 instead of _c4, _c8, _c10 and _c16.
573 * intrinsics/f2c_specifics.F90: Special-case conjg functions so
574 that their suffices are _4 and _8 instead of _c4 and _c8.
575 * generated/_conjg_c4.F90: Regenerate.
576 * generated/_conjg_c8.F90: Regenerate.
577 * generated/_conjg_c10.F90: Regenerate.
578 * generated/_conjg_c16.F90: Regenerate.
579 * generated/_abs_c4.F90: Regenerate.
580 * generated/_abs_c8.F90: Regenerate.
581 * generated/_abs_c10.F90: Regenerate.
582 * generated/_abs_c16.F90: Regenerate.
584 2006-09-29 Steven G. Kargl <kargl@gcc.gnu.org>
586 * intrinsics/cpu_time.c: Add cpu_time_10 and cpu_time_16 routines.
588 2006-09-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
590 * Makefile.am: Install libgfortranbegin inside compiler libraries
591 directory instead of system libraries directory.
592 * Makefile.in: Regenerate.
594 2006-09-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
596 * Makefile.am: Remove dependency on gfortypes.h.
597 * Makefile.in: Regenerate.
599 2006-09-22 Danny Smith <dannysmith@users.sourceforge.net>
602 * configure.ac: Check for setmode() function.
603 * configure: Regenerate.
604 * config.h.in: Regenerate.
605 * io/unix.c (output_stream): Force stdout to binary mode.
606 (error_stream): Force stderr to binary mode.
608 2006-09-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
611 * intrinsics/date_and_time.c (secnds): Fix case of zero time.
613 2006-09-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
616 * io.h (gfc_unit): Add variable, strm_pos, to track
617 STREAM I/O file position.
618 * file_pos.c (st_rewind): Set strm_pos to beginning.
619 * open.c (new_unit): Initialize strm_pos.
620 * read.c (read_x): Bump strm_pos.
621 * inquire.c (inquire_via_unit): Return strm_pos value.
622 * transfer.c (read_block),(read_block_direct),(write_block)
623 (write_buf): Seek to strm_pos - 1. Update strm_pos when done.
624 (pre_position): Initialize strm_pos.
625 (data_transfer_init): Set strm_pos if DT_HAS_REC.
626 (finalize_transfer): Flush file, no need to update strm_pos.
628 2006-09-10 Paul Thomas <pault@gcc.gnu.org>
631 * m4/matmul.m4: For the case where the second input argument is
632 transposed, ensure that the case with rank (a) == 1 is
633 correctly calculated.
634 * generated/matmul_r4.c: Regenerate.
635 * generated/matmul_r8.c: Regenerate.
636 * generated/matmul_r10.c: Regenerate.
637 * generated/matmul_r16.c: Regenerate.
638 * generated/matmul_c4.c: Regenerate.
639 * generated/matmul_c8.c: Regenerate.
640 * generated/matmul_c10.c: Regenerate.
641 * generated/matmul_c16.c: Regenerate.
642 * generated/matmul_i4.c: Regenerate.
643 * generated/matmul_i8.c: Regenerate.
644 * generated/matmul_i16.c: Regenerate.
646 2006-08-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
649 * io/write.c: Check for special case of zero precision in format
650 and pre-round the real value.
652 2006-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
655 * libgfortran.h: Rename GFC_LARGE_IO_INT to GFC_IO_INT.
656 * io/file_pos.c (st_backspace): Ignore if access=STREAM.
657 (st_rewind): Handle case of access=STREAM.
658 * io/open.c (access_opt): Add STREAM_ACCESS.
659 (edit_modes): Set current_record to zero only if not STREAM.
660 (new_unit): Initialize maxrec, recl, and last_record for STREAM.
661 * io/read.c (read_x): Advance file position for STREAM.
662 * io/io.h (enum unit_access): Align IOPARM flags with frontend.
663 Add ACCESS_STREAM. Add prototype for is_stream_io () function.
665 * io/inquire.c (inquire_via_unit): Add text for access = "STREAM".
666 * io/unit.c (is_stream_io): New function to return true if access =
668 * io/transfer.c (file_mode): Add modes for unformatted stream and
669 formatted stream. (current_mode): Return appropriate file mode based
671 (read_block): Handle formatted stream reads.
672 (read_block_direct): Handle unformatted stream reads.
673 (write_block): Handle formatted stream writes.
674 (write_buf): Handle unformatted stream writes.
675 (unformatted_read): Fix up, use temporary for size.
676 (pre_position): Position file for STREAM access.
677 (data_transfer_init): Initialize for stream access, skip irrelevent
679 (next_record_r),(next_record_w), and (next_record): Do nothing for
681 (finalize_transfer): Flush when all done if stream I/O.
683 2006-08-12 Francois-Xavier Coudert <coudert@clipper.ens.fr>
685 * intrinsics/bessel.c: Add prototypes for all functions.
687 2006-08-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
689 * intrinsics/access.c (access_func): Remove export directive.
691 2006-08-02 Thomas Koenig <Thomas.Koenig@online.de>
693 * Makefile.in: Regenerate using automake 1.9.6.
694 * aclocal.m4: Revert to previous version.
696 2006-08-01 Thomas Koenig <Thomas.Koenig@online.de>
699 * Makefile.am: Remove normalize.c.
700 * aclocal.m4: Regenerate using aclocal 1.9.3.
701 * Makefile.in: Regenerate using automake 1.9.3.
702 * libgfortran.h: #include <float.h>.
703 Define GFC_REAL_*_DIGITS and GFC_REAL_*_RADIX.
704 Remove prototypes for normalize_r4_i4 and normalize_r8_i8.
705 * intrinsics/random.c (top level): Add prototypes for
706 random_r10, arandom_r10, random_r16 and arandom_r16.
707 (rnumber_4): New static function.
708 (rnumber_8): New static function.
709 (rnumber_10): New static function.
710 (rnumber_16): New static function.
711 (top level): Set to kiss_size to 12 if we have
712 REAL(KIND=16), to 8 otherwise.
713 Define KISS_DEFAULT_SEED_1, KISS_DEFAULT_SEED_2 and
715 (kiss_random_kernel): Take argument to differentiate
716 between different random number generators.
717 (random_r4): Add argument to call to kiss_random_kernel,
719 (random_r8): Likewise.
720 (random_r10): New function.
721 (random_r16): New function.
722 (arandom_r4): Add argument to call to kiss_random_kernel,
724 (arandom_r8): Likewise.
725 (arandom_r10): New function.
726 (arandom_r16): New function.
727 * intrinsics/rand.c (rand): Use shift and mask.
728 * runtime/normalize.c: Remove.
730 2006-07-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
733 * file_position.c (st_flush): Add clearer error when UNIT does not
734 exist. Add reference to standard in comment.
736 2006-07-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
739 * close.c (st_close): Revert previous patch and add comment.
740 * file_position.c (st_flush): Revert previous patch and add comment.
742 2006-07-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
744 * intrinsics/date_and_time.c: Add functions for GMTIME and LTIME.
745 * intrinsics/access.c: New file.
746 * intrinsics/chmod.c: New file.
747 * configure.ac: Add checks for <sys/wait.h>, access, fork,execl
749 * Makefile.am: Add new files intrinsics/access.c and
751 * configure: Regenerate.
752 * config.h.in: Regenerate.
753 * Makefile.in: Regenerate.
755 2006-07-30 Janne Blomqvist <jb@gcc.gnu.org>
757 * io/transfer.c (transfer_array): Remove stride0 fix.
759 2006-07-26 Francois-Xavier Coudert <coudert@clipper.ens.fr>
761 * configure.ac: Check for function clock.
762 * Makefile.am: Compile new file intrinsics/clock.c.
763 * intrinsics/clock.c: New file.
764 * Makefile.in: Regenerate.
765 * configure: Regenerate.
766 * config.h.in: Regenerate.
767 * intrinsics/stat.c: Rename the old stat_i?_sub functions to
768 helper functions stat_i?_sub_0, and use them for both STAT and
771 2006-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
774 * close.c (st_close): Add error when UNIT does not exist.
775 * file_position.c (st_flush): Add error when UNIT does not exist.
777 2006-07-25 Paolo Bonzini <bonzini@gnu.org>
780 * configure: Regenerate.
782 2006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
785 * libgfortran.h: Add conditional definition of GFC_LARGE_IO_INT type.
786 * io/io.h (st_parameter_dt): Define rec as type GFC_LARGE_IO_INT.
788 2006-07-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
791 * io/transfer.c (next_record_w): Use next_array_record result to set
792 END_FILE. (write_block): Test for END_FILE before the next write occurs.
793 * io/unit.c (get_internal_unit): Initialize iunit->endfile for internal
796 2006-07-19 Janne Blomqvist <jb@gcc.gnu.org>
799 * m4/dotprodc.m4: Remove.
800 * m4/dotprodl.m4: Remove.
801 * m4/dotprod.m4: Remove.
802 * generated/dotprod_*.c: Remove.
803 * Makefile.am: Remove any references to dot_product
805 * Makefile.in: Regenerated.
807 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
809 * configure: Regenerate.
811 2006-07-15 Steven G. Kargl <kargls@comcast.net>
813 * intrinsics/etime.c: Remove etime_
814 * libtool-version: Bump from libgfortran.so.1 to libgfortran.so.2
816 2006-07-12 Francois-Xavier Coudert <coudert@clipper.ens.fr>
819 * intrinsics/string_intrinsics.c (copy_string): Remove function.
821 2006-07-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
823 * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
824 idate_i4,idate_i8): New functions.
826 2006-07-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
829 * runtime/error.c (notify_std): Pass common flags into function. Use
830 flags to show locus of error or warning.
831 * libgfortran.h: Add enum try. Add prototype for notify_std.
832 * io/open.c (edit_modes): Allow status="old" and add extension to
833 allow status="scratch"
834 *io/list_read.c (nml_read_obj): Update call to notify_std.
835 *io/io.h: Remove enum try and prototype for notify_std.
836 *io/transfer.c (read_sf): Update call to notify_std.
837 *io/format.c (parse_format_list): Update call to notify_std.
839 2006-06-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
841 * io/io.h: Move proto for unit_to_fd...
842 * libgfortran.h: ...here.
844 2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
846 * intrinsics/ierrno.c: Don't include "io/io.h".
847 * intrinsics/sleep.c: Likewise.
848 * intrinsics/perror.c: Likewise.
849 * intrinsics/stat.c: Likewise.
850 * intrinsics/kill.c: Likewise.
851 * intrinsics/time.c: Likewise.
852 * intrinsics/fnum.c: Likewise.
853 * intrinsics/rename.c: Likewise.
854 * intrinsics/symlnk.c: Likewise.
855 * intrinsics/chdir.c: Likewise.
856 * intrinsics/link.c: Likewise.
857 * intrinsics/random.c: Don't include "io/io.h". Include <gthr.h>.
858 * intrinsics/rand.c: Likewise.
860 2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
863 * Makefile.am: Add _mod_r10.F90 and _mod_r16.F90.
864 * Makefile.in: Regenerate.
865 * generated/_mod_r10.F90: New file.
866 * generated/_mod_r16.F90: New file.
868 2006-06-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
871 * Makefile.am: Add r4 and r8 versions of reshape and transpose.
872 * Makefile.in: Regenerate.
873 * generated/reshape_r4.c: New file.
874 * generated/reshape_r8.c: New file.
875 * generated/transpose_r4.c: New file.
876 * generated/transpose_r8.c: New file.
878 2006-06-20 Paul Thomas <pault@gcc.gnu.org>
881 * m4/matmul.m4: aystride = 1 does not uniquely detect the
882 presence of a temporary transpose; an array element in the
883 first dimension produces the same signature. Detect this
884 using the rank of a and add specific code.
885 * generated/matmul_r4.c: Regenerate.
886 * generated/matmul_r8.c: Regenerate.
887 * generated/matmul_r10.c: Regenerate.
888 * generated/matmul_r16.c: Regenerate.
889 * generated/matmul_c4.c: Regenerate.
890 * generated/matmul_c8.c: Regenerate.
891 * generated/matmul_c10.c: Regenerate.
892 * generated/matmul_c16.c: Regenerate.
893 * generated/matmul_i4.c: Regenerate.
894 * generated/matmul_i8.c: Regenerate.
895 * generated/matmul_i16.c: Regenerate.
897 2006-06-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
900 * io/unit.c (get_internal_unit): Initialize and lock thread mutex
903 2006-06-06 Janne Blomqvist <jb@gcc.gnu.org>
905 * m4/in_pack.m4: Add TODO comment about detecting temporaries,
906 remove test for stride 0, update copyright year.
907 * m4/transpose.m4: Remove test for stride 0, update copyright
909 * m4/iforeach.m4: Likewise.
910 * m4/shape.m4: Likewise.
911 * m4/in_unpack.m4: Likewise.
912 * m4/reshape.m4: Likewise.
913 * m4/ifunction.m4: Likewise.
914 * m4/matmul.m4: Likewise.
915 * m4/matmull.m4: Likewise.
916 * intrinsics/etime.c: Likewise.
917 * intrinsics/transpose_generic.c: Likewise.
918 * intrinsics/spread_generic.c: Likewise.
919 * intrinsics/stat.c: Likewise.
920 * intrinsics/reshape_generic.c: Likewise.
921 * intrinsics/random.c: Likewise.
922 * generated/*: Regenerated from above changed m4 files.
924 2006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
927 * io/unix.c (fd_seek): Set active to zero.
929 2006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
932 * io/format.c (parse_format_list): Allow missing period in format only
935 2006-05-28 Thomas Koenig <Thomas.Koenig@online.de>
937 * intrinsics/string_intrinsics.c (compare_string):
938 Use memcmp instead of strncmp to avoid tripping over
941 2006-05-27 Janne Blomqvist <jb@gcc.gnu.org>
943 * io/io.h (find_or_create_unit): Correct export declaration.
945 2006-05-27 Janne Blomqvist <jb@gcc.gnu.org>
947 * intrinsics/abort.c (abort_): Remove.
949 2006-05-26 Janne Blomqvist <jb@gcc.gnu.org>
951 * configure.ac: Remove AC_FUNC_MMAP.
952 * configure: Regenerated.
953 * Makefile.in: Regenerated.
954 * config.h.in: Regenerated.
955 * aclocal.m4: Regenerated.
957 2006-05-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
959 * intrinsics/associated.c (associated): Zero-sized arrays should
960 not be reported as ASSOCIATED.
962 2006-05-24 Carlos O'Donell <carlos@codesourcery.com>
964 * Makefile.am: Add install-html target. Add install-html to .PHONY
965 * Makefile.in: Regenerate.
966 * aclocal.m4: Regenerate.
968 2006-05-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
971 * io/list_read.c (nml_parse_qualifier): Leave loop spec end value
972 at default value unless -std=f95 or if an array section
973 is specified in namelist input. Warn if -pedantic.
974 * io/io.h (st_parameter_dt): Add expanded_read flag.
976 2006-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
979 * io/transfer.c (read_block): Return NULL instead of nothing.
981 2006-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
984 * io/transfer.c (read_block): Add check for end file condition.
985 (read_block_direct): Add check for end file condition.
987 2006-05-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
990 * m4/matmul.m4: Correct the condition for the memset call,
991 and remove the unneeded call to size0.
992 * generated/matmul_r4.c: Regenerate.
993 * generated/matmul_r8.c: Regenerate.
994 * generated/matmul_r10.c: Regenerate.
995 * generated/matmul_r16.c: Regenerate.
996 * generated/matmul_c4.c: Regenerate.
997 * generated/matmul_c8.c: Regenerate.
998 * generated/matmul_c10.c: Regenerate.
999 * generated/matmul_c16.c: Regenerate.
1000 * generated/matmul_i4.c: Regenerate.
1001 * generated/matmul_i8.c: Regenerate.
1002 * generated/matmul_i16.c: Regenerate.
1004 2006-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1006 PR libgfortran/27360
1007 * io/list_read.c (read_logical): Free line_buffer and free saved.
1009 2006-04-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1011 PR libgfortran/27304
1012 * io/transfer.c (formatted_transfer_scalar): Generate error if data
1013 descriptors are exhausted.
1014 * io/format.c (next_format0): Fix comment.
1016 2006-04-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1018 PR libgfortran/20257
1019 * io/io.h: Add prototypes for get_internal_unit and free_internal_unit.
1020 * io/unit.c (get_internal_unit): Initialize unit number, not zero.
1021 (free_internal_unit): New function to consolidate freeing memory.
1022 (get_unit): Initialize internal_unit_desc to NULL when unit is
1024 * io/unix.c (mem_close): Check for not NULL before freeing memory.
1025 * io/transfer.c (read_block): Reset bytes_left and skip error if unit
1026 is preconnected and default record length is reached.
1027 (read_block_direct): Ditto.
1028 (write_block): Ditto.
1030 (data_transfer_init): Only flush if not internal unit.
1031 (finalize_transfer): Ditto and delete code to free memory used by
1033 (st_read_done): Use new function - free_internal_unit.
1034 (st_write_done): Use new function - free_internal unit.
1036 2006-04-22 Jakub Jelinek <jakub@redhat.com>
1039 * Makefile.am (i_transpose_c): Add generated/transpose_r16.c.
1040 (i_reshape_c): Add generated/reshape_r16.c.
1041 * Makefile.in: Regenerated.
1042 * generated/transpose_r16.c: Generated new file.
1043 * generated/redhape_r16.c: Generated new file.
1045 2006-04-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1047 PR libgfortran/27138
1048 * io/list_read.c (eat_line): New function.
1049 (parse_repeat): Use new function and free_saved.
1050 (read_logical): Same.
1051 (read_integer): Use new function.
1052 (parse_real): Use nml_bad_return and new function.
1053 (read_complex): Use new function and free_saved.
1056 2006-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1058 PR libgfortran/26766
1059 * io/io.h: Add bit to identify associated unit as internal.
1060 * io/unit.c (get_external_unit): Renamed the find_unit_1 function to
1061 reflect the external unit functionality vs internal unit.
1062 (get_internal_unit): New function to allocate and initialize an internal
1064 (get_unit): Use get_internal_unit and get_external_unit.
1065 (is_internal_unit): Revised to use new bit added in io.h.
1066 * io/transfer.c (data_transfer_init): Fix line width.
1067 (st_read_done): Free memory allocated for internal unit.
1068 (st_write_done): Add test to only flush and truncate when not an
1069 internal unit. Free memory allocated for internal unit.
1071 2006-04-11 Jakub Jelinek <jakub@redhat.com>
1073 * io/io.h (st_parameter_dt): Revert 2005-12-10 change to
1075 (check_st_parameter_dt): New compile time assert.
1077 2006-04-10 Jakub Jelinek <jakub@redhat.com>
1079 PR libgfortran/24685
1080 * io/write.c (MIN_FIELD_WIDTH, STR, STR1): Define.
1081 (output_float): Increase buffer sizes for IEEE quad and IBM extended
1083 (write_real): Output REAL(16) as 1PG43.34E4 rather than 1PG40.31E4.
1085 2006-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1087 PR libgfortran/26890
1088 * io/io.h: Revert change to pad size made on 2006-03-30.
1089 Add comment explaining dependency with fortran/trans-io.c.
1091 2006-04-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1093 * io/write.c (output_float): Update condition to not error when
1094 decimal precision in format specifier is zero.
1096 2006-04-01 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1098 * config/fpu-387.h: Use previously added SSE code in all
1099 cases, as it really is the right thing to do.
1101 2006-03-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1103 PR libgfortran/26890
1104 * io/io.h: Add size_used to st_parameter_dt, adjust pad size.
1105 *io/transfer.c (data_transfer_init): Initialize size_used to zero.
1106 (read_sf): Use size_used.
1107 (read_block): Likewise.
1108 (read_block_direct): Likewise.
1109 (write_block): Likewise.
1110 (write_buf): Likewise and eliminate erroneous FAILURE return.
1111 (finalize_transfer): Assign value of size_used to *dtp->size.
1113 2006-03-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1116 * config/fpu-387.h: Add special case for handling of SSE
1117 control bit on i386-darwin.
1119 2006-03-30 Thomas Koenig <Thomas.Koenig@online.de>
1122 * runtime/memory.c (allocate_array): If stat is present and
1123 the variable is already allocated, free the variable, do
1124 the allocation and set stat.
1125 (allocate_array_64): Likewise. Whitespace fix.
1127 2006-03-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1129 PR libgfortran/26880
1130 * io/file_pos.c (st_rewind): Clear read_bad flag.
1132 2006-03-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1134 PR libgfortran/26661
1135 * io/io.h: Add read_sf so it can be used by read_x.
1136 * io/transfer.c (read_sf): Pass no_error flag to read_sf. Use it to
1137 break out rather than error on EOF or EOR conditions.
1138 (read_block): Update call to read_sf.
1139 (read_block_direct): Ditto.
1140 * io/read.c (read_x): Use the modified read_sf instead of read_block.
1142 2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
1145 * io/transfer.c (data_transfer_init): Set u_flags.convert
1146 on an unopened unit if specified by environment variable
1147 (via get_unformatted_convert) or by compile-time option.
1149 2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
1152 * Makefile.am: Add transpose_r10.c and reshape_r10.c.
1153 * aclocal.m4: Regenerate using aclocal 1.9.3.
1154 * Makefile.in: Regenerate using automake 1.9.3.
1155 * m4/iparm.m4 (rtype_ccode): If rtype_letter is `i',
1156 evaluate to rtype_kind, otherwise to rtype_code.
1157 * generated/transpose_r10.c: Add.
1158 * generated/reshape_r10.c: Add.
1160 2006-03-22 Thomas Koenig <Thomas.Koenig@online.de>
1163 * libgfortran.h (compile_options_t): Add record_marker.
1164 * runtime/compile_options.c (set_record_marker):
1166 * io/open.c: If we have four-byte record markers, use
1167 GFC_INTEGER_4_HUGE as default record length.
1168 * io/file_pos.c (unformatted_backspace): Handle
1169 different size record markers.
1170 * io/transfer.c (us_read): Likewise.
1171 (us_write): Likewise.
1172 (next_record_r): Likewise.
1173 (write_us_marker): Likewise.
1174 (next_record_w): Likewise.
1176 2006-03-20 Thomas Koenig <Thomas.Koenig@online.de>
1179 * m4/iforeach.m4: Add SCALAR_FOREACH_FUNCTION macro.
1180 * m4/ifunction.m4: Add SCALAR_ARRAY_FUNCTION macro.
1181 * m4/minloc0.m4: Use SCALAR_FOREACH_FUNCTION.
1182 * m4/minloc1.m4: Use SCALAR_ARRAY_FUNCTION.
1183 * m4/maxloc0.m4: Use SCALAR_FOREACH_FUNCTION.
1184 * m4/maxloc1.m4: Use SCALAR_ARRAY_FUNCTION.
1185 * m4/minval.m4: Likewise.
1186 * m4/maxval.m4: Likewise.
1187 * m4/product.m4: Likewise.
1188 * m4/sum.m4: Likewise.
1189 * minloc0_16_i16.c : Regenerated.
1190 * minloc0_16_i4.c : Regenerated.
1191 * minloc0_16_i8.c : Regenerated.
1192 * minloc0_16_r10.c : Regenerated.
1193 * minloc0_16_r16.c : Regenerated.
1194 * minloc0_16_r4.c : Regenerated.
1195 * minloc0_16_r8.c : Regenerated.
1196 * minloc0_4_i16.c : Regenerated.
1197 * minloc0_4_i4.c : Regenerated.
1198 * minloc0_4_i8.c : Regenerated.
1199 * minloc0_4_r10.c : Regenerated.
1200 * minloc0_4_r16.c : Regenerated.
1201 * minloc0_4_r4.c : Regenerated.
1202 * minloc0_4_r8.c : Regenerated.
1203 * minloc0_8_i16.c : Regenerated.
1204 * minloc0_8_i4.c : Regenerated.
1205 * minloc0_8_i8.c : Regenerated.
1206 * minloc0_8_r10.c : Regenerated.
1207 * minloc0_8_r16.c : Regenerated.
1208 * minloc0_8_r4.c : Regenerated.
1209 * minloc0_8_r8.c : Regenerated.
1210 * minloc1_16_i16.c : Regenerated.
1211 * minloc1_16_i4.c : Regenerated.
1212 * minloc1_16_i8.c : Regenerated.
1213 * minloc1_16_r10.c : Regenerated.
1214 * minloc1_16_r16.c : Regenerated.
1215 * minloc1_16_r4.c : Regenerated.
1216 * minloc1_16_r8.c : Regenerated.
1217 * minloc1_4_i16.c : Regenerated.
1218 * minloc1_4_i4.c : Regenerated.
1219 * minloc1_4_i8.c : Regenerated.
1220 * minloc1_4_r10.c : Regenerated.
1221 * minloc1_4_r16.c : Regenerated.
1222 * minloc1_4_r4.c : Regenerated.
1223 * minloc1_4_r8.c : Regenerated.
1224 * minloc1_8_i16.c : Regenerated.
1225 * minloc1_8_i4.c : Regenerated.
1226 * minloc1_8_i8.c : Regenerated.
1227 * minloc1_8_r10.c : Regenerated.
1228 * minloc1_8_r16.c : Regenerated.
1229 * minloc1_8_r4.c : Regenerated.
1230 * minloc1_8_r8.c : Regenerated.
1231 * maxloc0_16_i16.c : Regenerated.
1232 * maxloc0_16_i4.c : Regenerated.
1233 * maxloc0_16_i8.c : Regenerated.
1234 * maxloc0_16_r10.c : Regenerated.
1235 * maxloc0_16_r16.c : Regenerated.
1236 * maxloc0_16_r4.c : Regenerated.
1237 * maxloc0_16_r8.c : Regenerated.
1238 * maxloc0_4_i16.c : Regenerated.
1239 * maxloc0_4_i4.c : Regenerated.
1240 * maxloc0_4_i8.c : Regenerated.
1241 * maxloc0_4_r10.c : Regenerated.
1242 * maxloc0_4_r16.c : Regenerated.
1243 * maxloc0_4_r4.c : Regenerated.
1244 * maxloc0_4_r8.c : Regenerated.
1245 * maxloc0_8_i16.c : Regenerated.
1246 * maxloc0_8_i4.c : Regenerated.
1247 * maxloc0_8_i8.c : Regenerated.
1248 * maxloc0_8_r10.c : Regenerated.
1249 * maxloc0_8_r16.c : Regenerated.
1250 * maxloc0_8_r4.c : Regenerated.
1251 * maxloc0_8_r8.c : Regenerated.
1252 * maxloc1_16_i16.c : Regenerated.
1253 * maxloc1_16_i4.c : Regenerated.
1254 * maxloc1_16_i8.c : Regenerated.
1255 * maxloc1_16_r10.c : Regenerated.
1256 * maxloc1_16_r16.c : Regenerated.
1257 * maxloc1_16_r4.c : Regenerated.
1258 * maxloc1_16_r8.c : Regenerated.
1259 * maxloc1_4_i16.c : Regenerated.
1260 * maxloc1_4_i4.c : Regenerated.
1261 * maxloc1_4_i8.c : Regenerated.
1262 * maxloc1_4_r10.c : Regenerated.
1263 * maxloc1_4_r16.c : Regenerated.
1264 * maxloc1_4_r4.c : Regenerated.
1265 * maxloc1_4_r8.c : Regenerated.
1266 * maxloc1_8_i16.c : Regenerated.
1267 * maxloc1_8_i4.c : Regenerated.
1268 * maxloc1_8_i8.c : Regenerated.
1269 * maxloc1_8_r10.c : Regenerated.
1270 * maxloc1_8_r16.c : Regenerated.
1271 * maxloc1_8_r4.c : Regenerated.
1272 * maxloc1_8_r8.c : Regenerated.
1273 * maxval_i16.c : Regenerated.
1274 * maxval_i4.c : Regenerated.
1275 * maxval_i8.c : Regenerated.
1276 * maxval_r10.c : Regenerated.
1277 * maxval_r16.c : Regenerated.
1278 * maxval_r4.c : Regenerated.
1279 * maxval_r8.c : Regenerated.
1280 * minval_i16.c : Regenerated.
1281 * minval_i4.c : Regenerated.
1282 * minval_i8.c : Regenerated.
1283 * minval_r10.c : Regenerated.
1284 * minval_r16.c : Regenerated.
1285 * minval_r4.c : Regenerated.
1286 * minval_r8.c : Regenerated.
1287 * sum_c10.c : Regenerated.
1288 * sum_c16.c : Regenerated.
1289 * sum_c4.c : Regenerated.
1290 * sum_c8.c : Regenerated.
1291 * sum_i16.c : Regenerated.
1292 * sum_i4.c : Regenerated.
1293 * sum_i8.c : Regenerated.
1294 * sum_r10.c : Regenerated.
1295 * sum_r16.c : Regenerated.
1296 * sum_r4.c : Regenerated.
1297 * sum_r8.c : Regenerated.
1298 * product_c10.c : Regenerated.
1299 * product_c16.c : Regenerated.
1300 * product_c4.c : Regenerated.
1301 * product_c8.c : Regenerated.
1302 * product_i16.c : Regenerated.
1303 * product_i4.c : Regenerated.
1304 * product_i8.c : Regenerated.
1305 * product_r10.c : Regenerated.
1306 * product_r16.c : Regenerated.
1307 * product_r4.c : Regenerated.
1308 * product_r8.c : Regenerated.
1310 2006-03-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1312 PR libgfortran/26509
1313 * libgfortran.h: Add ERROR_DIRECT_EOR.
1314 * runtime/error.c (translate_error): Add translation for new error.
1315 * io/transfer.c (write_buf): Add check for EOR when mode is
1318 2006-03-13 Paul Thomas <pault@gcc.gnu.org>
1321 * libgfortran/m4/minloc1.m4: Set the initial position to zero and
1322 modify the condition for updating it, to implement the F2003
1323 requirement for all(mask).eq.false.
1324 * libgfortran/m4/maxloc1.m4: The same.
1325 * libgfortran/m4/iforeach.m4: The same.
1326 * libgfortran/m4/minloc0.m4: The same.
1327 * libgfortran/m4/maxloc0.m4: The same.
1328 * libgfortran/generated/maxloc0_16_i16.c: Regenerated, together
1330 * libgfortran/generated/minloc0_16_i16.c: Regenerated, together
1333 2006-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1335 PR libgfortran/26499
1336 * io/file_pos (st_rewind): Flush always.
1337 * io/unix.c (fd_truncate): Return SUCCESS rather than FAILURE for
1338 special files like /dev/null.
1339 * io/transfer.c (st_write_done): Remove broken logic that
1340 prevented calling fd_truncate.
1342 2006-03-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1344 PR libgfortran/26554
1345 * io/list_read.c (read_logical): Return the value if not in namelist
1348 2006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
1351 * runtime/memory.c: Adjust copyright years.
1352 (allocate_array): New function.
1353 (allocate64_array): New function.
1354 * libgfortran.h (error_codes): Add ERROR_ALLOCATION.
1356 2006-02-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1358 PR libgfortran/26136
1359 * io/io.h: Add flag for reading from line_buffer.
1360 * io/list_read.c (l_push_char): New function to save namelist
1361 input when reading logicals.
1362 (free_line): New function to free line_buffer memory.
1363 (next_char): Added feature to read from line_buffer.
1364 (read_logical): Use new functions to test for '=' after reading a
1365 logical value, checking for possible variable name.
1366 (namelist_read): Use free_line when all done.
1368 2006-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1370 PR libgfortran/26464
1371 * io/file_pos.c (st_backspace): Flush and truncate file
1372 when in AFTER_ENDFILE condition.
1373 * io/transfer.c (st_read_done): Remove flush, no longer needed.
1375 2006-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1377 PR libgfortran/26423
1378 * io/unix.c (fd_seek): Revert change from 25949.
1382 2006-02-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1384 * io/open.c (edit_modes): Correct abusive copy-pasting.
1386 2006-02-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1389 * m4/dotprodc.m4: Use __builtin_conj instead of assigning real
1390 and imaginary parts separately.
1391 * generated/dotprod_c4.c: Regenerated.
1392 * generated/dotprod_c8.c: Regenerated.
1393 * generated/dotprod_c10.c: Regenerated.
1394 * generated/dotprod_c16.c: Regenerated.
1396 2006-02-12 Janne Blomqvist <jb@gcc.gnu.org>
1398 PR libgfortran/25949
1399 * io/io.h: Add set function pointer to struct stream.
1400 * io/unix.c (fd_seek): Only update offset, don't seek.
1401 (fd_sset): New function.
1402 (fd_read): Call lseek directly if necessary.
1403 (fd_write): Likewise.
1404 (fd_open): Set pointer to fd_sset.
1405 (mem_set): New function.
1406 (open_internal): Set pointer to mem_set.
1407 * io/transfer.c (write_block_direct): Rename to write_buf, add
1408 error return, non-pointer length argument.
1409 (unformatted_write): Update to use write_buf.
1410 (us_write): Simplify by using swrite instead of salloc_w.
1411 (write_us_marker): New function.
1412 (new_record_w): Use sset instead of memset, use write_us_marker,
1413 simplify by using swrite instead of salloc_w.
1415 2006-02-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1418 * libgfortran.h: Add pedantic field to compile_options struct.
1419 * io/write.c (calculate_G_format): Depending on the standard,
1420 choose E or F format for list-directed output of 0.0.
1421 * runtime/error.c (notify_std): Make warning and error dependent
1423 * runtime/compile_options.c (set_std): Use new pedantic argument.
1425 2006-02-07 Dale Ranta <dir@lanl.gov>
1428 * intrinsics/mvbits.c: Shift '(TYPE)1' type when building 'lenmask'.
1430 2006-02-07 Rainer Emrich <r.emrich@de.tecosim.com>
1432 * intrinsics/c99_functions.c: Work around incompatible
1433 declarations of cabs{,f,l} on pre-C99 IRIX systems.
1435 2005-02-06 Thomas Koenig <Thomas.Koenig@online.de>
1438 * runtime/environ.c (init_unformatted): Add GFORTRAN_CONVERT_UNIT
1439 environment variable.
1440 (top level): Add defines, type and static variables for
1441 GFORTRAN_CONVERT_UNIT handling.
1442 (search_unit): New function.
1443 (match_word): New function.
1444 (match_integer): New function.
1445 (next_token): New function.
1446 (push_token): New function.
1447 (mark_single): New function.
1448 (mark_range): New funciton.
1449 (do_parse): New function.
1450 (init_unformatted): New function.
1451 (get_unformatted_convert): New function.
1452 * runtime/compile_options.c: Add set_convert().
1453 * libgfortran.h: Add convert to compile_options_t.
1454 * io/open.c (st_open): Call get_unformatted_convert to get
1455 unit default; if CONVERT_NONE is returned, check for
1456 the presence of a CONVERT specifier and use it.
1457 As default, use compile_options.convert.
1458 * io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
1459 "nothing has been set".
1460 (top level): Add prototype for get_unformatted_convert.
1462 2006-02-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1465 * io/write.c (write_real): Widen the default format for real(10)
1468 2006-01-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1470 PR libgfortran/25835
1471 * io/transfer.c (st_read_done): Flush buffers when read is done.
1473 2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1475 PR libgfortran/25697
1476 * io/transfer.c (us_read): Detect end of file condition from previous
1477 operations and bail out (no need to pre-position).
1479 2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1481 PR libgfortran/25631
1482 * io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
1483 skips so that TL works correctly when no bytes_used yet.
1485 2006-01-16 Roger Sayle <roger@eyesopen.com>
1487 * configure.ac (CFLAGS): Update to include -std=gnu99 so that
1488 the configure tests will be run with the same environment as
1489 used to compile the libgfortran source code.
1490 * configure: Regenerate.
1492 2006-01-12 Roger Sayle <roger@eyesopen.com>
1494 * intrinsics/c99_functions.c: Add function prototypes to avoid
1495 warnings from -Wstrict-prototypes -Wmissing-prototypes. On Tru64
1496 work around a brain-dead libm by redirecting calls to cabs{,f,l}
1497 to a local __gfc_cabs{,f,l}.
1499 2006-01-07 Janne Blomqvist <jb@gcc.gnu.org>
1501 * configure.ac: Remove check for sys/mman.h.
1502 * configure: Regenerated.
1503 * Makefile.in: Regenerated.
1504 * config.h.in: Regenerated.
1505 * aclocal.m4: Regenerated.
1507 2006-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1509 PR libgfortran/25598
1510 * io/file_pos.c (unformatted_backspace): Assure the new file position
1511 to seek is not less than zero.
1512 (st_backspace): Set unit bytes_left to zero.
1513 * io/transfer.c (next_record_r): Fix line lengths, no functional change.
1515 2006-01-02 Paolo Bonzini <bonzini@gnu.org>
1518 * configure.ac: Use GCC_HEADER_STDINT.
1519 * libgfortran.h: Include gstdint.h.
1520 * aclocal.m4: Regenerate.
1521 * configure: Regenerate.
1523 2006-01-01 Steven G. Kargl <kargls@comcast.net>
1525 * ChangeLog: Split into years ...
1526 * ChangeLog-2002: here.
1527 * ChangeLog-2003: here.
1528 * ChangeLog-2004: here.
1529 * ChangeLog-2005: here.