xref: /netbsd-src/external/gpl3/gcc/dist/libgfortran/ChangeLog-2020 (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1*b1e83836Smrg2020-12-05  Iain Sandoe  <iain@sandoe.co.uk>
2*b1e83836Smrg
3*b1e83836Smrg	PR target/97865
4*b1e83836Smrg	* configure: Regenerate.
5*b1e83836Smrg
6*b1e83836Smrg2020-11-29  John David Anglin  <danglin@gcc.gnu.org>
7*b1e83836Smrg
8*b1e83836Smrg	* configure: Regenerate.
9*b1e83836Smrg
10*b1e83836Smrg2020-11-26  Maciej W. Rozycki  <macro@linux-mips.org>
11*b1e83836Smrg
12*b1e83836Smrg	* io/io.h [HAVE_NEWLOCALE]: Also check for HAVE_FREELOCALE and
13*b1e83836Smrg	HAVE_USELOCALE.
14*b1e83836Smrg	[HAVE_FREELOCALE && HAVE_NEWLOCALE && HAVE_USELOCALE]
15*b1e83836Smrg	(HAVE_POSIX_2008_LOCALE): New macro.
16*b1e83836Smrg	(st_parameter_dt) [HAVE_NEWLOCALE]: Check for
17*b1e83836Smrg	HAVE_POSIX_2008_LOCALE instead.
18*b1e83836Smrg	* io/transfer.c (data_transfer_init_worker, finalize_transfer)
19*b1e83836Smrg	[HAVE_USELOCALE]: Check for HAVE_POSIX_2008_LOCALE instead.
20*b1e83836Smrg	* io/unit.c [HAVE_NEWLOCALE]: Likewise.
21*b1e83836Smrg	(init_units) [HAVE_NEWLOCALE]: Likewise.
22*b1e83836Smrg	(close_units) [HAVE_FREELOCALE]: Likewise.
23*b1e83836Smrg	* runtime/error.c (gf_strerror) [HAVE_USELOCALE]: Likewise.
24*b1e83836Smrg
25*b1e83836Smrg2020-11-26  Maciej W. Rozycki  <macro@linux-mips.org>
26*b1e83836Smrg
27*b1e83836Smrg	* libgfortran.h: Use #if rather than #ifdef with
28*b1e83836Smrg	__FLT_HAS_INFINITY__, __DBL_HAS_INFINITY__,
29*b1e83836Smrg	__LDBL_HAS_INFINITY__, __FLT_HAS_QUIET_NAN__,
30*b1e83836Smrg	__DBL_HAS_QUIET_NAN__, and __LDBL_HAS_QUIET_NAN__.
31*b1e83836Smrg
32*b1e83836Smrg2020-11-21  Iain Sandoe  <iain@sandoe.co.uk>
33*b1e83836Smrg
34*b1e83836Smrg	* intrinsics/execute_command_line.c (environ): Use
35*b1e83836Smrg	_NSGetEnviron to get the environment pointer on Darwin.
36*b1e83836Smrg
37*b1e83836Smrg2020-10-30  Harald Anlauf  <anlauf@gmx.de>
38*b1e83836Smrg
39*b1e83836Smrg	* intrinsics/random.c (SZ_IN_INT_4): Define size of state in int32_t.
40*b1e83836Smrg	(SZ_IN_INT_8): Define size of state in int64_t.
41*b1e83836Smrg	(SZ): Remove.
42*b1e83836Smrg	(random_seed_i4): Use size SZ_IN_INT_4 instead of SZ.
43*b1e83836Smrg	(random_seed_i8): Use size SZ_IN_INT_8 instead of SZ.
44*b1e83836Smrg
45*b1e83836Smrg2020-10-18  Harald Anlauf  <anlauf@gmx.de>
46*b1e83836Smrg
47*b1e83836Smrg	* m4/matmul_internal.m4: Move check for rank-1 times rank-2 before
48*b1e83836Smrg	checks on strides for rank-2 times rank-2.
49*b1e83836Smrg	* generated/matmul_c10.c: Regenerated.
50*b1e83836Smrg	* generated/matmul_c16.c: Likewise.
51*b1e83836Smrg	* generated/matmul_c4.c: Likewise.
52*b1e83836Smrg	* generated/matmul_c8.c: Likewise.
53*b1e83836Smrg	* generated/matmul_i1.c: Likewise.
54*b1e83836Smrg	* generated/matmul_i16.c: Likewise.
55*b1e83836Smrg	* generated/matmul_i2.c: Likewise.
56*b1e83836Smrg	* generated/matmul_i4.c: Likewise.
57*b1e83836Smrg	* generated/matmul_i8.c: Likewise.
58*b1e83836Smrg	* generated/matmul_r10.c: Likewise.
59*b1e83836Smrg	* generated/matmul_r16.c: Likewise.
60*b1e83836Smrg	* generated/matmul_r4.c: Likewise.
61*b1e83836Smrg	* generated/matmul_r8.c: Likewise.
62*b1e83836Smrg	* generated/matmulavx128_c10.c: Likewise.
63*b1e83836Smrg	* generated/matmulavx128_c16.c: Likewise.
64*b1e83836Smrg	* generated/matmulavx128_c4.c: Likewise.
65*b1e83836Smrg	* generated/matmulavx128_c8.c: Likewise.
66*b1e83836Smrg	* generated/matmulavx128_i1.c: Likewise.
67*b1e83836Smrg	* generated/matmulavx128_i16.c: Likewise.
68*b1e83836Smrg	* generated/matmulavx128_i2.c: Likewise.
69*b1e83836Smrg	* generated/matmulavx128_i4.c: Likewise.
70*b1e83836Smrg	* generated/matmulavx128_i8.c: Likewise.
71*b1e83836Smrg	* generated/matmulavx128_r10.c: Likewise.
72*b1e83836Smrg	* generated/matmulavx128_r16.c: Likewise.
73*b1e83836Smrg	* generated/matmulavx128_r4.c: Likewise.
74*b1e83836Smrg	* generated/matmulavx128_r8.c: Likewise.
75*b1e83836Smrg
76*b1e83836Smrg2020-09-28  Tobias Burnus  <tobias@codesourcery.com>
77*b1e83836Smrg
78*b1e83836Smrg	* m4/unpack.m4 (unpack0_'rtype_code`,
79*b1e83836Smrg	unpack1_'rtype_code`): Move 'rstride[0]' initialization outside
80*b1e83836Smrg	conditional branch to silence -Wmaybe-uninitialized.
81*b1e83836Smrg	* generated/unpack_c10.c: Regenerate.
82*b1e83836Smrg	* generated/unpack_c16.c: Regenerate.
83*b1e83836Smrg	* generated/unpack_c4.c: Regenerate.
84*b1e83836Smrg	* generated/unpack_c8.c: Regenerate.
85*b1e83836Smrg	* generated/unpack_i1.c: Regenerate.
86*b1e83836Smrg	* generated/unpack_i16.c: Regenerate.
87*b1e83836Smrg	* generated/unpack_i2.c: Regenerate.
88*b1e83836Smrg	* generated/unpack_i4.c: Regenerate.
89*b1e83836Smrg	* generated/unpack_i8.c: Regenerate.
90*b1e83836Smrg	* generated/unpack_r10.c: Regenerate.
91*b1e83836Smrg	* generated/unpack_r16.c: Regenerate.
92*b1e83836Smrg	* generated/unpack_r4.c: Regenerate.
93*b1e83836Smrg	* generated/unpack_r8.c: Regenerate.
94*b1e83836Smrg
95*b1e83836Smrg2020-09-27  Clement Chigot  <clement.chigot@atos.net>
96*b1e83836Smrg
97*b1e83836Smrg	* config/t-aix: Use $(AR) without -X32_64.
98*b1e83836Smrg
99*b1e83836Smrg2020-09-03  Harald Anlauf  <anlauf@gmx.de>
100*b1e83836Smrg
101*b1e83836Smrg	* m4/iall.m4: Initial value for result should be -1.
102*b1e83836Smrg	* generated/iall_i1.c (miall_i1): Generated.
103*b1e83836Smrg	* generated/iall_i16.c (miall_i16): Likewise.
104*b1e83836Smrg	* generated/iall_i2.c (miall_i2): Likewise.
105*b1e83836Smrg	* generated/iall_i4.c (miall_i4): Likewise.
106*b1e83836Smrg	* generated/iall_i8.c (miall_i8): Likewise.
107*b1e83836Smrg
108*b1e83836Smrg2020-08-24  Mark Eggleston  <markeggleston@gcc.gnu.org>
109*b1e83836Smrg
110*b1e83836Smrg	PR fortran/96486
111*b1e83836Smrg	* intrinsics/env.c: If value_len is > 0 blank the string.
112*b1e83836Smrg	Copy the result only if its length is > 0.
113*b1e83836Smrg
114*b1e83836Smrg2020-08-20  Mark Eggleston  <markeggleston@gcc.gnu.org>
115*b1e83836Smrg
116*b1e83836Smrg	PR fortran/96436
117*b1e83836Smrg	* io/format.c (parse_format_list):  Add new local variable
118*b1e83836Smrg	"standard" to hold the required standard to check. If the
119*b1e83836Smrg	format width is zero select standard depending on descriptor.
120*b1e83836Smrg	Call notification_std using the new standard variable.
121*b1e83836Smrg
122*b1e83836Smrg2020-08-17  David Edelsohn  <dje.gcc@gmail.com>
123*b1e83836Smrg	    Clement Chigot  <clement.chigot@atos.net>
124*b1e83836Smrg
125*b1e83836Smrg	* config/t-aix: Add complementary mode object file to libcaf_single.a.
126*b1e83836Smrg
127*b1e83836Smrg2020-08-03  Tobias Burnus  <tobias@codesourcery.com>
128*b1e83836Smrg
129*b1e83836Smrg	* caf/single.c (_gfortran_caf_lock): Fix typo.
130*b1e83836Smrg
131*b1e83836Smrg2020-07-26  Tobias Burnus  <tobias@codesourcery.com>
132*b1e83836Smrg
133*b1e83836Smrg	PR target/96306
134*b1e83836Smrg	* configure.ac: Add LIBGOMP_CHECKED_INT_KINDS and
135*b1e83836Smrg	LIBGOMP_CHECKED_REAL_KINDS and use it for to skip
136*b1e83836Smrg	integer kind=16 checks for amdgcn.
137*b1e83836Smrg	* Makefile.am (kinds.h, selected_int_kind.inc,
138*b1e83836Smrg	selected_real_kind.inc): Pass them on.
139*b1e83836Smrg	* mk-kinds-h.sh: Takes to-be-check kinds as argument.
140*b1e83836Smrg	* mk-sik-inc.sh: Likewise.
141*b1e83836Smrg	* mk-srk-inc.sh: Likewise.
142*b1e83836Smrg	* Makefile.in: Regenerate.
143*b1e83836Smrg	* configure: Regenerate.
144*b1e83836Smrg
145*b1e83836Smrg2020-07-24  Dominique d'Humieres  <dhumieres.dominique@free.fr>
146*b1e83836Smrg
147*b1e83836Smrg	PR fortran/93567
148*b1e83836Smrg	* io/write_float.def (determine_en_precision): Fix switch between
149*b1e83836Smrg	FMT_E and FMT_F.
150*b1e83836Smrg
151*b1e83836Smrg2020-07-24  Dominique d'Humieres  <dhumieres.dominique@free.fr>
152*b1e83836Smrg
153*b1e83836Smrg	PR fortran/93592
154*b1e83836Smrg	* io/write_float.def (build_float_string): Do not reset
155*b1e83836Smrg	  nbefore for FMT_F and FMT_EN.
156*b1e83836Smrg
157*b1e83836Smrg2020-07-14  David Edelsohn  <dje.gcc@gmail.com>
158*b1e83836Smrg
159*b1e83836Smrg	* config/t-aix: Set BITS from compiler cpp macro.
160*b1e83836Smrg
161*b1e83836Smrg2020-06-22  David Edelsohn  <dje.gcc@gmail.com>
162*b1e83836Smrg
163*b1e83836Smrg	* Makefile.am: Use -include.
164*b1e83836Smrg	* Makefile.in: Regenerate.
165*b1e83836Smrg
166*b1e83836Smrg2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
167*b1e83836Smrg
168*b1e83836Smrg	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
169*b1e83836Smrg	* Makefile.in: Regenerate.
170*b1e83836Smrg	* configure.ac (tmake_file): Substitute.
171*b1e83836Smrg	* configure: Regenerate.
172*b1e83836Smrg	* configure.host: Add system configury stanza. Define tmake_file.
173*b1e83836Smrg	* config/t-aix: New file.
174*b1e83836Smrg
175*b1e83836Smrg2020-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
176*b1e83836Smrg
177*b1e83836Smrg	PR libfortran/95313
178*b1e83836Smrg	* io/write.c (ztoa_big): Disable -Wstringop-overflow for one
179*b1e83836Smrg	line.
180*b1e83836Smrg
181*b1e83836Smrg2020-06-08  Harald Anlauf  <anlauf@gmx.de>
182*b1e83836Smrg
183*b1e83836Smrg	PR fortran/95091
184*b1e83836Smrg	* io/transfer.c (finalize_transfer): Fix type in error message.
185*b1e83836Smrg
186*b1e83836Smrg2020-06-01  Uroš Bizjak  <ubizjak@gmail.com>
187*b1e83836Smrg
188*b1e83836Smrg	PR libfortran/95418
189*b1e83836Smrg	* config/fpu-387.h (struct fenv): Add __attribute__ ((gcc_struct)).
190*b1e83836Smrg
191*b1e83836Smrg2020-05-29  H.J. Lu  <hjl.tools@gmail.com>
192*b1e83836Smrg
193*b1e83836Smrg	PR bootstrap/95413
194*b1e83836Smrg	* configure: Regenerated.
195*b1e83836Smrg
196*b1e83836Smrg2020-05-29  Jakub Jelinek  <jakub@redhat.com>
197*b1e83836Smrg
198*b1e83836Smrg	PR libfortran/95390
199*b1e83836Smrg	* Makefile.am (i_findloc0_c): Add findloc0_i10.c.
200*b1e83836Smrg	(i_findloc1_c): Add findloc1_i10.c.
201*b1e83836Smrg	* gfortran.map (GFORTRAN_10.2): New symbol version, export
202*b1e83836Smrg	_gfortran_{,m,s}findloc{0,1}_c10 symbols.
203*b1e83836Smrg	* Makefile.in: Regenerated.
204*b1e83836Smrg	* generated/findloc0_c10.c: Generated.
205*b1e83836Smrg	* generated/findloc1_c10.c: Generated.
206*b1e83836Smrg
207*b1e83836Smrg2020-05-28  Harald Anlauf  <anlauf@gmx.de>
208*b1e83836Smrg
209*b1e83836Smrg	PR libfortran/95104
210*b1e83836Smrg	* io/unit.c (unlock_unit): Guard by check for NULL pointer.
211*b1e83836Smrg
212*b1e83836Smrg2020-05-26  Harald Anlauf  <anlauf@gmx.de>
213*b1e83836Smrg	    Steven G. Kargl   <kargl@gcc.gnu.org>
214*b1e83836Smrg
215*b1e83836Smrg	PR libfortran/95104
216*b1e83836Smrg	* io/transfer.c (st_wait_async): Do not dereference NULL pointer.
217*b1e83836Smrg
218*b1e83836Smrg2020-05-26  Harald Anlauf  <anlauf@gmx.de>
219*b1e83836Smrg
220*b1e83836Smrg	PR fortran/95195
221*b1e83836Smrg	* io/transfer.c (finalize_transfer): Generate runtime error for
222*b1e83836Smrg	namelist input/output to unformatted file.
223*b1e83836Smrg
224*b1e83836Smrg2020-05-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
225*b1e83836Smrg
226*b1e83836Smrg	PR libfortran/95191
227*b1e83836Smrg	* io/async.c (async_wait_id): Generate error if ID is higher
228*b1e83836Smrg	than the highest current ID.
229*b1e83836Smrg	* runtime/error.c (translate_error): Handle LIBERROR_BAD_WAIT_ID.
230*b1e83836Smrg
231*b1e83836Smrg2020-05-21  H.J. Lu  <hongjiu.lu@intel.com>
232*b1e83836Smrg
233*b1e83836Smrg	* m4/matmul.m4: Don't include <config/i386/cpuinfo.h>.  Use
234*b1e83836Smrg	__builtin_cpu_is/__builtin_cpu_supports
235*b1e83836Smrg	* generated/matmul_c10.c: Regenerated.
236*b1e83836Smrg	* generated/matmul_c16.c: Likewise.
237*b1e83836Smrg	* generated/matmul_c4.c: Likewise.
238*b1e83836Smrg	* generated/matmul_c8.c: Likewise.
239*b1e83836Smrg	* generated/matmul_i1.c: Likewise.
240*b1e83836Smrg	* generated/matmul_i16.c: Likewise.
241*b1e83836Smrg	* generated/matmul_i2.c: Likewise.
242*b1e83836Smrg	* generated/matmul_i4.c: Likewise.
243*b1e83836Smrg	* generated/matmul_i8.c: Likewise.
244*b1e83836Smrg	* generated/matmul_r10.c: Likewise.
245*b1e83836Smrg	* generated/matmul_r16.c: Likewise.
246*b1e83836Smrg	* generated/matmul_r4.c: Likewise.
247*b1e83836Smrg	* generated/matmul_r8.c: Likewise.
248*b1e83836Smrg
249*b1e83836Smrg2020-05-15  H.J. Lu  <hongjiu.lu@intel.com>
250*b1e83836Smrg
251*b1e83836Smrg	PR bootstrap/95147
252*b1e83836Smrg	* configure: Regenerated.
253*b1e83836Smrg
254*b1e83836Smrg2020-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
255*b1e83836Smrg
256*b1e83836Smrg	PR libfortran/95119
257*b1e83836Smrg	* io/close.c (close_status): Add CLOSE_INVALID.
258*b1e83836Smrg	(st_close): Return early on invalid STATUS parameter.
259*b1e83836Smrg
260*b1e83836Smrg2020-05-14  H.J. Lu  <hongjiu.lu@intel.com>
261*b1e83836Smrg
262*b1e83836Smrg	* configure: Regenerated.
263*b1e83836Smrg
264*b1e83836Smrg2020-05-06  Uroš Bizjak  <ubizjak@gmail.com>
265*b1e83836Smrg
266*b1e83836Smrg	* config/fpu-387.h (__math_force_eval): Remove.
267*b1e83836Smrg	(__math_force_eval_div): New define.
268*b1e83836Smrg	(local_feraiseexcept): Use __math_force_eval_div to use
269*b1e83836Smrg	generic division to generate INVALID, DIVZERO and INEXACT
270*b1e83836Smrg	exceptions.
271*b1e83836Smrg	(struct fenv): Define named struct instead of typedef.
272*b1e83836Smrg
273*b1e83836Smrg2020-05-01  Uroš Bizjak  <ubizjak@gmail.com>
274*b1e83836Smrg
275*b1e83836Smrg	* config/fpu-387.h (__math_force_eval): New define.
276*b1e83836Smrg	(local_feraiseexcept): Use __math_force_eval to evaluate
277*b1e83836Smrg	generic division to generate INVALID and DIVZERO exceptions.
278*b1e83836Smrg
279*b1e83836Smrg2020-04-22  Fritz Reese  <foreese@gcc.gnu.org>
280*b1e83836Smrg
281*b1e83836Smrg	* intrinsics/trigd.c, intrinsics/trigd_lib.inc, intrinsics/trigd.inc:
282*b1e83836Smrg	Guard against unavailable math functions.
283*b1e83836Smrg	Use suffixes from kinds.h based on the REAL kind.
284*b1e83836Smrg
285*b1e83836Smrg2020-04-22  Jakub Jelinek  <jakub@redhat.com>
286*b1e83836Smrg
287*b1e83836Smrg	PR libfortran/94694
288*b1e83836Smrg	PR libfortran/94586
289*b1e83836Smrg	* configure.ac: Add math func checks for fmaf, fma and fmal.  Add
290*b1e83836Smrg	HAVE_INLINE_BUILTIN_COPYSIGN check.
291*b1e83836Smrg	* c99_protos.h (copysign, fmaf, fma, fmal): Provide fallback
292*b1e83836Smrg	prototypes.
293*b1e83836Smrg	(HAVE_COPYSIGN, HAVE_FMAF, HAVE_FMA, HAVE_FMAL): Define if not
294*b1e83836Smrg	defined and fallback version is provided.
295*b1e83836Smrg	* intrinsics/c99_functions.c (copysign, fmaf, fma, fmal): Provide
296*b1e83836Smrg	fallback implementations if possible
297*b1e83836Smrg	* configure: Regenerated.
298*b1e83836Smrg	* config.h.in: Regenerated.
299*b1e83836Smrg
300*b1e83836Smrg2020-04-19  Uroš Bizjak  <ubizjak@gmail.com>
301*b1e83836Smrg
302*b1e83836Smrg	* config/fpu-387.h (local_feraiseexcept) [__SSE_MATH__]:
303*b1e83836Smrg	Remove unneeded assignments to volatile memory.
304*b1e83836Smrg
305*b1e83836Smrg2020-04-01  Fritz Reese  <foreese@gcc.gnu.org>
306*b1e83836Smrg	    Steven G. Kargl  <kargl@gcc.gnu.org>
307*b1e83836Smrg
308*b1e83836Smrg	PR fortran/93871
309*b1e83836Smrg	* Makefile.am, Makefile.in: New make rule for intrinsics/trigd.c.
310*b1e83836Smrg	* gfortran.map: New routines for {sind, cosd, tand}X{r4, r8, r10, r16}.
311*b1e83836Smrg	* intrinsics/trigd.c, intrinsics/trigd_lib.inc, intrinsics/trigd.inc:
312*b1e83836Smrg	New files. Defines native degree-valued trig functions.
313*b1e83836Smrg
314*b1e83836Smrg2020-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
315*b1e83836Smrg
316*b1e83836Smrg	PR fortran/93599
317*b1e83836Smrg	* io/async.c (destroy_adv_cond): Do not destroy lock.
318*b1e83836Smrg	(async_io): Make sure au->lock is locked for finishing of thread.
319*b1e83836Smrg	Do not lock/unlock around signalling emptysignal. Unlock au->lock
320*b1e83836Smrg	before return.
321*b1e83836Smrg	(init_adv_cond): Do not initialize lock.
322*b1e83836Smrg	(enqueue_transfer): Unlock after signal.
323*b1e83836Smrg	(enqueue_done_id): Likewise.
324*b1e83836Smrg	(enqueue_done): Likewise.
325*b1e83836Smrg	(enqueue_close): Likewise.
326*b1e83836Smrg	(enqueue_data_transfer): Likewise.
327*b1e83836Smrg	(async_wait_id): Do not lock/unlock around signalling au->work.
328*b1e83836Smrg	(async_wait): Unlock after signal.
329*b1e83836Smrg	* io/async.h (SIGNAL): Add comment about needed au->lock.
330*b1e83836Smrg	Remove locking/unlocking of advcond->lock.
331*b1e83836Smrg	(WAIT_SIGNAL_MUTEX): Add comment. Remove locking/unlocking of
332*b1e83836Smrg	advcond->lock.  Unlock mutex only at the end.  Loop on
333*b1e83836Smrg	__ghread_cond_wait returning zero.
334*b1e83836Smrg	(REVOKE_SIGNAL): Add comment. Remove locking/unlocking of
335*b1e83836Smrg	advcond->lock.
336*b1e83836Smrg	(struct adv_cond): Remove mutex from struct.
337*b1e83836Smrg
338*b1e83836Smrg2020-02-12  Sandra Loosemore  <sandra@codesourcery.com>
339*b1e83836Smrg
340*b1e83836Smrg	PR libstdc++/79193
341*b1e83836Smrg	PR libstdc++/88999
342*b1e83836Smrg
343*b1e83836Smrg	* configure: Regenerated.
344*b1e83836Smrg
345*b1e83836Smrg2020-01-24  Maciej W. Rozycki  <macro@wdc.com>
346*b1e83836Smrg
347*b1e83836Smrg	* configure.ac: Handle `--with-toolexeclibdir='.
348*b1e83836Smrg	* Makefile.in: Regenerate.
349*b1e83836Smrg	* aclocal.m4: Regenerate.
350*b1e83836Smrg	* configure: Regenerate.
351*b1e83836Smrg
352*b1e83836Smrg2020-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
353*b1e83836Smrg
354*b1e83836Smrg	PR libfortran/93234
355*b1e83836Smrg	* io/unit.c (set_internal_unit): Set round and sign flags
356*b1e83836Smrg	correctly.
357*b1e83836Smrg
358*b1e83836Smrg2020-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
359*b1e83836Smrg
360*b1e83836Smrg	PR libfortran/90374
361*b1e83836Smrg	* io/format.c (parse_format_list): Zero width not allowed with
362*b1e83836Smrg	FMT_D.
363*b1e83836Smrg	* io/write_float.def (build_float_string): Include range of
364*b1e83836Smrg	higher exponent values that require wider width.
365*b1e83836Smrg
366*b1e83836Smrg2020-01-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
367*b1e83836Smrg
368*b1e83836Smrg	PR libfortran/90374
369*b1e83836Smrg	* io/format.c (parse_format_list): Implement the E0 exponent
370*b1e83836Smrg	width to provide smallest possible width for exponent fields.
371*b1e83836Smrg	Refactor code for correct parsing and better readability of the
372*b1e83836Smrg	code.
373*b1e83836Smrg	* io/io.h (write_real_w0): Change interface to pass in pointer
374*b1e83836Smrg	to fnode.
375*b1e83836Smrg	* io/transfer.c: Update all calls to write_real_w0 to use the
376*b1e83836Smrg	new interface.
377*b1e83836Smrg	* io/write.c ((write_real_w0): Use the new interface with fnode
378*b1e83836Smrg	to access both the decimal precision and exponent widths used in
379*b1e83836Smrg	build_float_string.
380*b1e83836Smrg	* io/write_float.def (build_float_string): Use the passed in
381*b1e83836Smrg	exponent width to calculate the used width in the case of E0.
382*b1e83836Smrg
383*b1e83836Smrg2020-01-01  Jakub Jelinek  <jakub@redhat.com>
384*b1e83836Smrg
385*b1e83836Smrg	Update copyright years.
386*b1e83836Smrg
387*b1e83836SmrgCopyright (C) 2020 Free Software Foundation, Inc.
388*b1e83836Smrg
389*b1e83836SmrgCopying and distribution of this file, with or without modification,
390*b1e83836Smrgare permitted in any medium without royalty provided the copyright
391*b1e83836Smrgnotice and this notice are preserved.
392