re PR libfortran/48030 (Implement read_x using fbuf_getc)
[gcc.git] / libgfortran / ChangeLog
1 2011-03-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2
3 PR libgfortran/48030
4 * io/read.c (read_x): Re-implement using fbuf_getc.
5
6 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7
8 PR bootstrap/48135
9 * configure.ac (gfortran_use_symver): Handle --disable-symvers.
10 * configure: Regenerate.
11
12 2011-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13
14 PR fortran/35667
15 * io/io.h (convert_infnan): Declare.
16 * io/read.c (convert_infnan): New.
17 (read_f): Use convert_infnan to convert INFs and NANs.
18 * list_read.c (parse_real, read_real): Likewise.
19
20 2011-03-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
21
22 PR libfortran/47439
23 * io/unix.c (tempfile): Work around poor mktemp() implementations.
24
25 2011-03-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
26
27 PR libfortran/47883
28 * acinclude.m4: Don't use AC_TRY_ macros.
29 * configure.ac: Likewise.
30 * configure: Regenerate.
31
32 2011-03-12 Thomas Koenig <tkoenig@gcc.gnu.org>
33
34 PR libfortran/48066
35 * m4/ifunction.m4: If return array is empty, return.
36 * m4/ifunction_logical.m4: Likewise.
37 * generated/all_l16.c: Regenerated.
38 * generated/all_l1.c: Regenerated.
39 * generated/all_l2.c: Regenerated.
40 * generated/all_l4.c: Regenerated.
41 * generated/all_l8.c: Regenerated.
42 * generated/any_l16.c: Regenerated.
43 * generated/any_l1.c: Regenerated.
44 * generated/any_l2.c: Regenerated.
45 * generated/any_l4.c: Regenerated.
46 * generated/any_l8.c: Regenerated.
47 * generated/count_16_l.c: Regenerated.
48 * generated/count_1_l.c: Regenerated.
49 * generated/count_2_l.c: Regenerated.
50 * generated/count_4_l.c: Regenerated.
51 * generated/count_8_l.c: Regenerated.
52 * generated/maxloc1_16_i16.c: Regenerated.
53 * generated/maxloc1_16_i1.c: Regenerated.
54 * generated/maxloc1_16_i2.c: Regenerated.
55 * generated/maxloc1_16_i4.c: Regenerated.
56 * generated/maxloc1_16_i8.c: Regenerated.
57 * generated/maxloc1_16_r10.c: Regenerated.
58 * generated/maxloc1_16_r16.c: Regenerated.
59 * generated/maxloc1_16_r4.c: Regenerated.
60 * generated/maxloc1_16_r8.c: Regenerated.
61 * generated/maxloc1_4_i16.c: Regenerated.
62 * generated/maxloc1_4_i1.c: Regenerated.
63 * generated/maxloc1_4_i2.c: Regenerated.
64 * generated/maxloc1_4_i4.c: Regenerated.
65 * generated/maxloc1_4_i8.c: Regenerated.
66 * generated/maxloc1_4_r10.c: Regenerated.
67 * generated/maxloc1_4_r16.c: Regenerated.
68 * generated/maxloc1_4_r4.c: Regenerated.
69 * generated/maxloc1_4_r8.c: Regenerated.
70 * generated/maxloc1_8_i16.c: Regenerated.
71 * generated/maxloc1_8_i1.c: Regenerated.
72 * generated/maxloc1_8_i2.c: Regenerated.
73 * generated/maxloc1_8_i4.c: Regenerated.
74 * generated/maxloc1_8_i8.c: Regenerated.
75 * generated/maxloc1_8_r10.c: Regenerated.
76 * generated/maxloc1_8_r16.c: Regenerated.
77 * generated/maxloc1_8_r4.c: Regenerated.
78 * generated/maxloc1_8_r8.c: Regenerated.
79 * generated/maxval_i16.c: Regenerated.
80 * generated/maxval_i1.c: Regenerated.
81 * generated/maxval_i2.c: Regenerated.
82 * generated/maxval_i4.c: Regenerated.
83 * generated/maxval_i8.c: Regenerated.
84 * generated/maxval_r10.c: Regenerated.
85 * generated/maxval_r16.c: Regenerated.
86 * generated/maxval_r4.c: Regenerated.
87 * generated/maxval_r8.c: Regenerated.
88 * generated/minloc1_16_i16.c: Regenerated.
89 * generated/minloc1_16_i1.c: Regenerated.
90 * generated/minloc1_16_i2.c: Regenerated.
91 * generated/minloc1_16_i4.c: Regenerated.
92 * generated/minloc1_16_i8.c: Regenerated.
93 * generated/minloc1_16_r10.c: Regenerated.
94 * generated/minloc1_16_r16.c: Regenerated.
95 * generated/minloc1_16_r4.c: Regenerated.
96 * generated/minloc1_16_r8.c: Regenerated.
97 * generated/minloc1_4_i16.c: Regenerated.
98 * generated/minloc1_4_i1.c: Regenerated.
99 * generated/minloc1_4_i2.c: Regenerated.
100 * generated/minloc1_4_i4.c: Regenerated.
101 * generated/minloc1_4_i8.c: Regenerated.
102 * generated/minloc1_4_r10.c: Regenerated.
103 * generated/minloc1_4_r16.c: Regenerated.
104 * generated/minloc1_4_r4.c: Regenerated.
105 * generated/minloc1_4_r8.c: Regenerated.
106 * generated/minloc1_8_i16.c: Regenerated.
107 * generated/minloc1_8_i1.c: Regenerated.
108 * generated/minloc1_8_i2.c: Regenerated.
109 * generated/minloc1_8_i4.c: Regenerated.
110 * generated/minloc1_8_i8.c: Regenerated.
111 * generated/minloc1_8_r10.c: Regenerated.
112 * generated/minloc1_8_r16.c: Regenerated.
113 * generated/minloc1_8_r4.c: Regenerated.
114 * generated/minloc1_8_r8.c: Regenerated.
115 * generated/minval_i16.c: Regenerated.
116 * generated/minval_i1.c: Regenerated.
117 * generated/minval_i2.c: Regenerated.
118 * generated/minval_i4.c: Regenerated.
119 * generated/minval_i8.c: Regenerated.
120 * generated/minval_r10.c: Regenerated.
121 * generated/minval_r16.c: Regenerated.
122 * generated/minval_r4.c: Regenerated.
123 * generated/minval_r8.c: Regenerated.
124 * generated/product_c10.c: Regenerated.
125 * generated/product_c16.c: Regenerated.
126 * generated/product_c4.c: Regenerated.
127 * generated/product_c8.c: Regenerated.
128 * generated/product_i16.c: Regenerated.
129 * generated/product_i1.c: Regenerated.
130 * generated/product_i2.c: Regenerated.
131 * generated/product_i4.c: Regenerated.
132 * generated/product_i8.c: Regenerated.
133 * generated/product_r10.c: Regenerated.
134 * generated/product_r16.c: Regenerated.
135 * generated/product_r4.c: Regenerated.
136 * generated/product_r8.c: Regenerated.
137 * generated/sum_c10.c: Regenerated.
138 * generated/sum_c16.c: Regenerated.
139 * generated/sum_c4.c: Regenerated.
140 * generated/sum_c8.c: Regenerated.
141 * generated/sum_i16.c: Regenerated.
142 * generated/sum_i1.c: Regenerated.
143 * generated/sum_i2.c: Regenerated.
144 * generated/sum_i4.c: Regenerated.
145 * generated/sum_i8.c: Regenerated.
146 * generated/sum_r10.c: Regenerated.
147 * generated/sum_r16.c: Regenerated.
148 * generated/sum_r4.c: Regenerated.
149 * generated/sum_r8.c: Regenerated.
150
151 2011-03-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
152
153 PR libgfortran/48047
154 * io/write_float.def (write_float): Change MIN_FIELD_WIDTH to 48.
155
156 2011-03-04 Janne Blomqvist <jb@gcc.gnu.org>
157
158 PR libfortran/47802
159 * intrinsics/ctime.c (strctime): Use builtins to check localtime_r
160 return type.
161
162 2011-03-04 Janne Blomqvist <jb@gcc.gnu.org>
163
164 PR libfortran/47802
165 * intrinsics/ctime.c (strctime): Don't use return value of
166 localtime_r.
167
168 2011-02-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
169
170 PR libgfortran/47567
171 * io/write_float.def (output_float): Move handling of w = 0 to after
172 output rounding. Check for zero and set zero_flag accordingly. Set
173 width according to zero_flag. Add better comments.
174
175 2011-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
176
177 PR libgfortran/47778
178 * io/list_read.c (namelist_read): Intialize the error string buffere.
179 If pprev_nl was used during the previous namelist read and the rank
180 was zero, reset the pointer to NULL for the next namelist read.
181
182 2011-02-26 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
183
184 PR libfortran/45165
185 * unix.c (fallback_access): Fix file descriptor leaks.
186
187 2011-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
188
189 * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): Set shell variable
190 tested in configure.host.
191 * configure: Regenerate.
192
193 2011-02-24 Janne Blomqvist <jb@gcc.gnu.org>
194
195 PR libfortran/47802
196 * config.h.in: Regenerated.
197 * configure: Regenerated.
198 * configure.ac: Remove checks for ctime and ctime_r, add check for
199 strftime.
200 * intrinsics/date_and_time.c (localtime_r): Move fallback
201 implementation to time_1.h.
202 * intrinsics/time_1.h (localtime_r): Fallback implementation.
203 * intrinsics/ctime.c: Include time_1.h.
204 (ctime_r): Remove fallback implementation.
205 (strctime): New function.
206 (fdate): Use strctime instead of ctime_r.
207 (fdate_sub): Likewise.
208 (ctime): Likewise.
209 (ctime_sub): Likewise.
210
211 2011-02-24 Jakub Jelinek <jakub@redhat.com>
212
213 PR fortran/47878
214 * io/transfer.c (read_sf): Call fbuf_getptr only at the end,
215 and subtract n, dtp->u.p.sf_seen_eor and seen_comma from it.
216
217 2011-02-24 Janne Blomqvist <jb@gcc.gnu.org>
218
219 PR libfortran/47802
220 * configure.ac: Add test for POSIX getpwuid_r.
221 * intrinsics/getlog.c (getlog): CPP test for
222 HAVE_POSIX_GETPWUID_R.
223 * config.h.in: Regenerated.
224 * configure: Regenerated.
225
226 2011-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
227
228 PR libgfortran/47567
229 * io/write_float.def (output_float): Remove special case handling of
230 zero with width 1.
231
232 2011-02-23 Janne Blomqvist <jb@gcc.gnu.org>
233 Jerry DeLisle <jvdelisle@gcc.gnu.org>
234
235 PR libfortran/47694
236 * io/fbuf.h (fbuf_getptr): New inline function.
237 * io/transfer.c (read_sf): Use fbuf_getptr and fbuf_getc to scan
238 through the string instead of fbuf_read.
239
240 2011-02-22 Tobias Burnus <burnus@net-b.de>
241 Kai-Uwe Eckhardt <kuehro@gmx.de>
242
243 PR libfortran/47830
244 * intrinsics/c99_functions.c (roundl): Make C valid for
245 HAVE_NEXTAFTERL.
246
247 2011-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
248
249 PR libgfortran/47567
250 * io/write_float.def (output_float): Adjust width for F0.d to
251 allow space for negative signs on zero.
252
253 2011-02-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
254
255 PR libgfortran/47667
256 * io/list_read.c (read_logical): Check for end of line before calling
257 eat_line. (read_integer): Likewise. (parse_real): Don't unget the
258 separator. Check for end of line before calling eat_line.
259 (read_complex): Allow line-end before and after parenthesis and comma.
260 Check for end of line before calling eat_line. (read_real): Check for
261 end of line before calling eat_line.
262
263 2011-02-16 Jakub Jelinek <jakub@redhat.com>
264
265 PR libfortran/47757
266 * gfortran.map (GFORTRAN_1.4): Export
267 _gfortran_{m,s}i{all,any,parity}_i{1,2,4,8,16} and
268 _gfortran_{cshift0,eoshift{0,2}}_16_char4.
269
270 2011-02-15 Tobias Burnus <burnus@net-b.de>
271
272 PR fortran/47716
273 PR fortran/47648
274 * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from
275 libquadmath, which uses more features.
276 * configure: Regenerate.
277
278 2011-02-14 Jakub Jelinek <jakub@redhat.com>
279
280 PR fortran/47642
281 * io/write_float.def (DTOAQ): Use quadmath_snprintf instead of
282 quadmath_flt128tostr.
283 * io/transfer128.c (tmp2): Initialize to quadmath_snprintf instead
284 of quadmath_flt128tostr.
285
286 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
287
288 * Makefile.in: Regenerate.
289 * aclocal.m4: Likewise.
290 * configure: Likewise.
291
292 2011-02-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
293
294 PR libgfortran/47567
295 * io/write_float.def (output_float): Eliminate some redundant code.
296 Adjust width for case of F0.X for values of zero and all other values.
297 Expand cases where '*' is set to give cleaner results.
298
299 2011-02-05 Janne Blomqvist <jb@gcc.gnu.org>
300
301 PR libfortran/47571
302 * intrinsics/time_1.h (GF_CLOCK_MONOTONIC): Move to system_clock.c.
303 (weak_gettime): Likewise.
304 (gf_gettime): Change API, move weak_gettime() usage to
305 system_clock.c
306 * intrinsics/system_clock.c (GTHREAD_USE_WEAK): Define.
307 (gf_gettime_mono): New function.
308 (system_clock_4): Use gf_gettime_mono().
309 (system_clock_8): Likewise.
310 * intrinsics/date_and_time.c (date_and_time): Update gf_gettime()
311 usage.
312
313 2011-02-02 Janne Blomqvist <jb@gcc.gnu.org>
314
315 PR libfortran/47571
316 * configure: Regenerated.
317 * configure.ac: Don't add librt to LIBS.
318 * intrinsics/time_1.h (weak_gettime): Weakref trickery for
319 clock_gettime().
320 (gf_gettime): Use weak_gettime() instead of clock_gettime().
321
322 2011-02-01 Janne Blomqvist <jb@gcc.gnu.org>
323
324 * intrinsics/time_1.h: Include errno.h needed by fallbacks.
325
326 2011-01-31 Janne Blomqvist <jb@gcc.gnu.org>
327
328 * intrinsics/time_1.h: Fix definition of GF_CLOCK_MONOTONIC macro.
329
330 2011-01-31 Janne Blomqvist <jb@gcc.gnu.org>
331
332 * configure.ac: Check for clock_gettime().
333 * configure: Regenerated.
334 * config.h.in: Regenerated.
335 * intrinsics/time_1.h (__time_1): Rename to gf_cputime, add
336 times() fallback.
337 (gf_gettime): New function.
338 * intrinsics/cpu_time.c (__cpu_time_1): Update to call gf_cputime.
339 * intrinsics/date_and_time.c (date_and_time): Use gf_gettime.
340 * intrinsics/dtime.c (dtime_sub): Use gf_cputime.
341 * intrinsics/etime.c (etime_sub): Use gf_cputime.
342 * intrinsics/system_clock.c (system_clock_4): Use gf_gettime.
343 (system_clock_8): Use gf_gettime, increase count rate to allow
344 nanosecond precision, remove overflow prone branch.
345
346 2011-01-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
347
348 PR libgfortran/47434
349 * io/write_float.def (write_infnan): Use calculate_sign to determine
350 if the sign should be given and check field widths accordingly.
351
352 2011-01-29 Kai Tietz <kai.tietz@onevision.com>
353
354 * intrinsics/ctime.c (ctime_r): Improve implementation.
355
356 2011-01-27 Janne Blomqvist <jb@gcc.gnu.org>
357
358 PR libfortran/47431
359 * config.h.in: Regenerated.
360 * configure: Regenerated.
361 * configure.ac: Add check for ctime_r().
362 * intrinsics/ctime.c (ctime_r): Fallback implementation.
363 (fdate): Use ctime_r() instead of ctime().
364 (fdate_sub): Likewise.
365 (ctime): Likewise.
366 (ctime_sub): Likewise.
367
368 2011-01-27 Janne Blomqvist <jb@gcc.gnu.org>
369
370 PR libfortran/47432
371 * config.h.in: Regenerated.
372 * configure: Regenerated.
373 * configure.ac: Add check for ttyname_r.
374 * io/unix.h: Add TTY_NAME_MAX, change stream_ttyname prototype.
375 * io/unix.c (stream_ttyname): Use ttyname_r if available, conform
376 to new prototype.
377 * io/inquire.c (inquire_via_unit): Use changed stream_ttyname.
378 * io/intrinsics.c (ttynam_sub): Likewise.
379 (ttynam): Likewise.
380
381 2011-01-27 Janne Blomqvist <jb@gcc.gnu.org>
382
383 PR libfortran/47491
384 * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS to enable common
385 extensions.
386 * config.h.in: Regenerate.
387 * configure: Regenerate.
388
389 2011-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
390
391 PR libgfortran/47285
392 * io/write_float.def (write_infnan): Adjust processor selected width
393 to 3 if NaN.
394
395 2011-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
396
397 PR libgfortran/47285
398 * io/write_float.def (output_float): Return SUCCESS or FAILURE and use
399 the result to set the padding.
400
401 2011-01-26 Kai Tietz <kai.tietz@onevision.com>
402
403 * intrinsics/getlog.c (getlog): Fix label/statement issue.
404
405 2011-01-25 Janne Blomqvist <jb@gcc.gnu.org>
406
407 PR libfortran/47375
408 * config.h.in: Regenerated.
409 * configure: Regenerated.
410 * configure.ac: Add check for getpwuid_r.
411 * intrinsics/getlog.c (getlog): Use getpwuid_r() if available.
412
413 2011-01-22 Janne Blomqvist <jb@gcc.gnu.org>
414
415 PR libfortran/46267
416 * config.h.in: Regenerated.
417 * configure: Regenerated.
418 * configure.ac: Check presence of strerror_r.
419 * intrinsics/gerror.c (gerror): Use gf_strerror, modify logic.
420 * io/unix.c (get_oserror): Remove.
421 * libgfortran.h (gf_strerror): Add prototype.
422 (get_oserror): Remove prototype.
423 * runtime/error.c (gf_strerror): New function.
424 (os_error): Use gf_strerror instead of get_oserror.
425 (generate_errror): Likewise.
426
427 2011-01-17 Janne Blomqvist <jb@gcc.gnu.org>
428
429 PR libfortran/47296
430 * io/unix.c (tempfile): Set opp->file and opp->file_len also if an
431 error occurs.
432
433 2011-01-16 Jakub Jelinek <jakub@redhat.com>
434
435 PR fortran/46625
436 * io/write_float.def (DTOAQ): Use quadmath_flt128tostr
437 instead of quadmath_dtoa.
438 * io/transfer128.c (tmp1, tmp2): New variables, bring in
439 strtoflt128 and quadmath_flt128tostr.
440 (transfer_real128, transfer_real128_write, transfer_complex128,
441 transfer_complex128_write): Remove tmp1/tmp2 variables.
442 * io/read.c (convert_real): Use strtoflt128 instead of
443 quadmath_strtopQ, adjust for the changed arguments and return
444 value.
445
446 2011-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
447
448 PR libgfortran/47296
449 * io/unix.c (unpack_filename): Return non-zero if the filename passed
450 in is NULL.
451
452 2011-01-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
453
454 PR libgfortran/47154
455 * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the
456 duplicate calls via next_record.
457
458 \f
459 Copyright (C) 2011 Free Software Foundation, Inc.
460
461 Copying and distribution of this file, with or without modification,
462 are permitted in any medium without royalty provided the copyright
463 notice and this notice are preserved.