xref: /netbsd-src/external/gpl3/gcc/dist/libgfortran/ChangeLog-2014 (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
1*181254a7Smrg2014-11-28  Bernd Schmidt  <bernds@codesourcery.com>
2*181254a7Smrg
3*181254a7Smrg	* Makefile.am (AM_CFLAGS): Add -DLIBGFOR_MINIMAL if LIBGFOR_MINIMAL.
4*181254a7Smrg	(gfor_io_src, gfor_heper_src, gfor_src): Split into minimal and
5*181254a7Smrg	always included sources.
6*181254a7Smrg	* Makefile.in: Regenerate.
7*181254a7Smrg	* configure.ac (LIBGFOR_MINIMAL): New AM_CONDITIONAL.
8*181254a7Smrg	* configure: Regenerate.
9*181254a7Smrg	* caf/single.c (caf_runtime_error): Don't print messages if
10*181254a7Smrg	LIBGFOR_MINIMAL.
11*181254a7Smrg	* runtime/compile_options.c (fatal_error_in_progress,
12*181254a7Smrg	show_signal, backtrace_handler, maybe_find_addr2line): Guard with
13*181254a7Smrg	!defined LIBGFOR_MINIMAL.
14*181254a7Smrg	(set_options): Likewise for the backtrace code.
15*181254a7Smrg	* runtime/minimal.c: New file.
16*181254a7Smrg
17*181254a7Smrg2014-11-25  Uros Bizjak  <ubizjak@gmail.com>
18*181254a7Smrg
19*181254a7Smrg	* intrinsics/env.c (getenv): Remove unused variable res_len.
20*181254a7Smrg
21*181254a7Smrg2014-11-24  John David Anglin  <danglin@gcc.gnu.org>
22*181254a7Smrg
23*181254a7Smrg	* configure.ac: Guard include of <ieeefp.h>.
24*181254a7Smrg	* configure: Rebuilt.
25*181254a7Smrg
26*181254a7Smrg2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
27*181254a7Smrg
28*181254a7Smrg	PR bootstrap/63784
29*181254a7Smrg	* configure: Regenerated.
30*181254a7Smrg
31*181254a7Smrg2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>
32*181254a7Smrg
33*181254a7Smrg	PR libfortran/60324
34*181254a7Smrg	* intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
35*181254a7Smrg	macro instead of a variable.
36*181254a7Smrg	(random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
37*181254a7Smrg	related changes.
38*181254a7Smrg	(random_seed_i8): KISS_SIZE related changes.
39*181254a7Smrg
40*181254a7Smrg2014-11-13  Marek Polacek  <polacek@redhat.com>
41*181254a7Smrg
42*181254a7Smrg	* intrinsics/access.c: Include <stdlib.h>.
43*181254a7Smrg	* intrinsics/chdir.c: Likewise.
44*181254a7Smrg	* intrinsics/chmod.c: Likewise.
45*181254a7Smrg	* intrinsics/link.c: Likewise.
46*181254a7Smrg	* intrinsics/perror.c: Likewise.
47*181254a7Smrg	* intrinsics/rename.c: Likewise.
48*181254a7Smrg	* intrinsics/symlnk.c: Likewise.
49*181254a7Smrg	* intrinsics/unlink.c: Likewise.
50*181254a7Smrg
51*181254a7Smrg2014-11-13  Janne Blomqvist  <jb@gcc.gnu.org>
52*181254a7Smrg
53*181254a7Smrg	PR libfortran/60324
54*181254a7Smrg	* configure: Regenerated.
55*181254a7Smrg	* configure.ac (AM_CFLAGS): Add Werror=vla.
56*181254a7Smrg	* libgfortran.h (gfc_alloca): Remove macro.
57*181254a7Smrg	(fc_strdup_notrim): New prototype.
58*181254a7Smrg	* intrinsics/access.c (access_func): Use fc_strdup rather than
59*181254a7Smrg	stack allocation.
60*181254a7Smrg	* intrinsics/chdir.c (chdir_i4_sub): Likewise.
61*181254a7Smrg	(chdir_i8_sub): Likewise.
62*181254a7Smrg	* intrinsics/chmod.c (chmod_internal): New function, move logic
63*181254a7Smrg	here.
64*181254a7Smrg	(chmod_func): Call chmod_internal.
65*181254a7Smrg	* intrinsics/env.c (getenv): Use fc_strdup rather than stack
66*181254a7Smrg	allocation.
67*181254a7Smrg	(get_environment_variable_i4): Likewise.
68*181254a7Smrg	* intrinsics/execute_command_line.c (execute_command_line):
69*181254a7Smrg	Likewise.
70*181254a7Smrg	* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
71*181254a7Smrg	rather than VLA.
72*181254a7Smrg	(hostnm_i4_sub): Call hostnm_0.
73*181254a7Smrg	(hostnm_i8_sub): Likewise.
74*181254a7Smrg	(hostnm): Likewise.
75*181254a7Smrg	* intrinsics/link.c (link_internal): New function, use fc_strdup
76*181254a7Smrg	rather than stack allocation.
77*181254a7Smrg	(link_i4_sub): Call link_internal.
78*181254a7Smrg	(link_i8_sub): Likewise.
79*181254a7Smrg	(link_i4): Likewise.
80*181254a7Smrg	(link_i8): Likewise.
81*181254a7Smrg	* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
82*181254a7Smrg	stack allocation.
83*181254a7Smrg	* intrinsics/random.c (random_seed_i4): Use static buffer rather
84*181254a7Smrg	than VLA, use _Static_assert to make sure it's big enough.
85*181254a7Smrg	* intrinsics/rename.c (rename_internal): New function, use
86*181254a7Smrg	fc_strdup rather than stack allocation.
87*181254a7Smrg	(rename_i4_sub): Call rename_internal.
88*181254a7Smrg	(rename_i8_sub): Likewise.
89*181254a7Smrg	(rename_i4): Likewise.
90*181254a7Smrg	(rename_i8): Likewise.
91*181254a7Smrg	* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
92*181254a7Smrg	stack allocation.
93*181254a7Smrg	(stat_i8_sub_0): Likewise.
94*181254a7Smrg	* intrinsics/symlink.c (symlnk_internal): New function, use
95*181254a7Smrg	fc_strdup rather than stack allocation.
96*181254a7Smrg	(symlnk_i4_sub): Call symlnk_internal.
97*181254a7Smrg	(symlnk_i8_sub): Likewise.
98*181254a7Smrg	(symlnk_i4): Likewise.
99*181254a7Smrg	(symlnk_i8): Likewise.
100*181254a7Smrg	* intrinsics/system.c (system_sub): Use fc_strdup rather than
101*181254a7Smrg	stack allocation.
102*181254a7Smrg	* intrinsics/unlink.c (unlink_i4_sub): Likewise.
103*181254a7Smrg	* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
104*181254a7Smrg	* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
105*181254a7Smrg	back to xmalloc/free for large sizes.
106*181254a7Smrg	* io/read.c (read_f): Likewise.
107*181254a7Smrg	* io/transfer.c (MAX_READ): Make it a macro rather than variable.
108*181254a7Smrg	(WRITE_CHUNK): Likewise.
109*181254a7Smrg	* io/write_float.def (write_float): Use fixed stack buffer, fall
110*181254a7Smrg	back to xmalloc/free for large sizes.
111*181254a7Smrg	* runtime/string.c (fc_strdup_notrim): New function.
112*181254a7Smrg
113*181254a7Smrg2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
114*181254a7Smrg
115*181254a7Smrg	PR target/63610
116*181254a7Smrg	* configure: Regenerate.
117*181254a7Smrg
118*181254a7Smrg2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
119*181254a7Smrg
120*181254a7Smrg	PR libfortran/47007
121*181254a7Smrg	PR libfortran/61847
122*181254a7Smrg	* config.h.in: Regenerated.
123*181254a7Smrg	* configure: Regenerated.
124*181254a7Smrg	* configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
125*181254a7Smrg	(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
126*181254a7Smrg	strerror_l.
127*181254a7Smrg	* io/io.h (locale.h): Include.
128*181254a7Smrg	(xlocale.h): Include if present.
129*181254a7Smrg	(c_locale): New variable.
130*181254a7Smrg	(old_locale): New variable.
131*181254a7Smrg	(old_locale_ctr): New variable.
132*181254a7Smrg	(old_locale_lock): New variable.
133*181254a7Smrg	(st_parameter_dt): Add old_locale member.
134*181254a7Smrg	* io/transfer.c (data_transfer_init): Set locale to "C" if doing
135*181254a7Smrg	formatted transfer.
136*181254a7Smrg	(finalize_transfer): Reset locale to previous.
137*181254a7Smrg	* io/unit.c (c_locale): New variable.
138*181254a7Smrg	(old_locale): New variable.
139*181254a7Smrg	(old_locale_ctr): New variable.
140*181254a7Smrg	(old_locale_lock): New variable.
141*181254a7Smrg	(init_units): Init c_locale, init old_locale_lock.
142*181254a7Smrg	(close_units): Free c_locale.
143*181254a7Smrg	* runtime/error.c (locale.h): Include.
144*181254a7Smrg	(xlocale.h): Include if present.
145*181254a7Smrg	(gf_strerror): Use strerror_l if available. Reset locale to
146*181254a7Smrg	LC_GLOBAL_LOCALE for strerror_r branch.
147*181254a7Smrg
148*181254a7Smrg2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
149*181254a7Smrg
150*181254a7Smrg	PR libfortran/63589
151*181254a7Smrg	* configure.ac: Check for strtok_r.
152*181254a7Smrg	* runtime/main.c (gfstrtok_r): Fallback implementation of
153*181254a7Smrg	strtok_r.
154*181254a7Smrg	(find_addr2line): Use strtok_r to split PATH.
155*181254a7Smrg	* config.h.in: Regenerated.
156*181254a7Smrg	* configure: Regenerated.
157*181254a7Smrg
158*181254a7Smrg2014-10-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
159*181254a7Smrg
160*181254a7Smrg	* ieee/ieee_helper.c (ieee_is_finite_*, ieee_is_nan_*,
161*181254a7Smrg	ieee_is_negative_*, ieee_is_normal_*, ieee_copy_sign_*,
162*181254a7Smrg	ieee_unordered_*, ieee_logb_*, ieee_rint_*, ieee_scalb_*,
163*181254a7Smrg	ieee_rem_*, ieee_next_after_*): Remove functions.
164*181254a7Smrg	* gfortran.map (GFORTRAN_1.5): Remove corresponding symbols.
165*181254a7Smrg
166*181254a7Smrg2014-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
167*181254a7Smrg
168*181254a7Smrg	PR libgfortran/63460
169*181254a7Smrg	* io/unit.c (init_units): Initialize the DELIM flag to
170*181254a7Smrg	UNSPECIFIED for the STDIN unit so that the flag is
171*181254a7Smrg	correctly set later.
172*181254a7Smrg
173*181254a7Smrg2014-10-01  Janne Blomqvist  <jb@gcc.gnu.org>
174*181254a7Smrg
175*181254a7Smrg	* intrinsics/pack_generic.c (pack_s_internal): Fix
176*181254a7Smrg	-Wmaybe-uninitialized warning.
177*181254a7Smrg	* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
178*181254a7Smrg	(unpack1_'rtype_code`): Likewise.
179*181254a7Smrg	* generated/unpack_*.m4: Regenerated.
180*181254a7Smrg
181*181254a7Smrg2014-09-30  Janne Blomqvist  <jb@gcc.gnu.org>
182*181254a7Smrg
183*181254a7Smrg	* configure.ac (AM_CFLAGS): Add
184*181254a7Smrg	-Werror=implicit-function-declaration.
185*181254a7Smrg	* Makefile.in: Regenerated.
186*181254a7Smrg	* aclocal.m4: Regenerated.
187*181254a7Smrg	* configure: Regenerated.
188*181254a7Smrg
189*181254a7Smrg2014-09-25  Tobias Burnus  <burnus@net-b.de>
190*181254a7Smrg
191*181254a7Smrg	* caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
192*181254a7Smrg	* caf/single.c (_gfortran_caf_co_broadcast): New.
193*181254a7Smrg
194*181254a7Smrg2014-09-18  Janne Blomqvist  <jb@gcc.gnu.org>
195*181254a7Smrg
196*181254a7Smrg	PR libfortran/62768
197*181254a7Smrg	* io/inquire.c (inquire_via_unit): Use gfc_unit.filename also when
198*181254a7Smrg	HAVE_TTYNAME{_R} is not defined.
199*181254a7Smrg
200*181254a7Smrg2014-09-17  Janne Blomqvist  <jb@gcc.gnu.org>
201*181254a7Smrg
202*181254a7Smrg	PR libfortran/62768
203*181254a7Smrg	* io/io.h (gfc_unit): Store C string for the filename.
204*181254a7Smrg	* io/close.c (st_close): Use gfc_unit.filename.
205*181254a7Smrg	* io/inquire.c (inquire_via_unit): Likewise.
206*181254a7Smrg	* io/open.c (new_unit): Likewise.
207*181254a7Smrg	(already_open): Likewise, unlink file before freeing filename.
208*181254a7Smrg	* io/unit.c (init_units): Likewise.
209*181254a7Smrg	(close_unit_1): Likewise.
210*181254a7Smrg	(filename_from_unit): Likewise.
211*181254a7Smrg	* io/unix.c (compare_file_filename): Likewise.
212*181254a7Smrg	(find_file0): Likewise.
213*181254a7Smrg	(delete_file): Likewise.
214*181254a7Smrg
215*181254a7Smrg2014-09-10  Janne Blomqvist  <jb@gcc.gnu.org>
216*181254a7Smrg
217*181254a7Smrg	* io/transfer.c (read_block_form): Fix pad status check (found by
218*181254a7Smrg	Thomas Schwinge with -Wlogical-not-parentheses).
219*181254a7Smrg
220*181254a7Smrg2014-08-31  Tobias Burnus  <burnus@net-b.de>
221*181254a7Smrg
222*181254a7Smrg	* caf/libcaf.h (_gfortran_caf_send, _gfortran_caf_get,
223*181254a7Smrg	_gfortran_caf_sendget): Update prototype.
224*181254a7Smrg	* caf/single.c (_gfortran_caf_send, _gfortran_caf_get,
225*181254a7Smrg	_gfortran_caf_sendget): Handle may_require_tmp.
226*181254a7Smrg
227*181254a7Smrg2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>
228*181254a7Smrg
229*181254a7Smrg	PR libgfortran/62188
230*181254a7Smrg	* m4/bessel.m4: Avoid indexing off the end of an array.
231*181254a7Smrg	* generated/bessel_r10.c: Regenerated.
232*181254a7Smrg	* generated/bessel_r16.c: Ditto.
233*181254a7Smrg	* generated/bessel_r4.c: Ditto.
234*181254a7Smrg	* generated/bessel_r8.c: Ditto.
235*181254a7Smrg
236*181254a7Smrg2014-08-14  Tobias Burnus  <burnus@net-b.de>
237*181254a7Smrg
238*181254a7Smrg	* caf/libcaf.h (caf_register_t): Update for critical.
239*181254a7Smrg	(_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
240*181254a7Smrg	(_gfortran_caf_lock, _gfortran_caf_unlock): Add.
241*181254a7Smrg	* caf/single.c (_gfortran_caf_register): Handle locking
242*181254a7Smrg	variables.
243*181254a7Smrg	(_gfortran_caf_sendget): Re-name args for consistency.
244*181254a7Smrg	(_gfortran_caf_lock, _gfortran_caf_unlock): Add.
245*181254a7Smrg
246*181254a7Smrg2014-08-04  Jakub Jelinek  <jakub@redhat.com>
247*181254a7Smrg
248*181254a7Smrg	* runtime/memory.c (xmallocarray): Avoid division for the common case.
249*181254a7Smrg
250*181254a7Smrg2014-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
251*181254a7Smrg
252*181254a7Smrg	PR libgfortran/61632
253*181254a7Smrg	* io/format.c (format_error): Avoid invalid string pointer by
254*181254a7Smrg	using the fortran string length values to generate error string.
255*181254a7Smrg	(parse_format): Allocate the null terminator for the format
256*181254a7Smrg	string.
257*181254a7Smrg
258*181254a7Smrg2014-07-12  Tobias Burnus  <burnus@net-b.de>
259*181254a7Smrg
260*181254a7Smrg	* caf/libcaf.h (_gfortran_caf_atomic_define,
261*181254a7Smrg	_gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
262*181254a7Smrg	_gfortran_caf_atomic_cas): New prototypes.
263*181254a7Smrg	* caf/single.c (_gfortran_caf_atomic_define,
264*181254a7Smrg	_gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
265*181254a7Smrg	_gfortran_caf_atomic_cas): New functions.
266*181254a7Smrg
267*181254a7Smrg2014-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
268*181254a7Smrg
269*181254a7Smrg	* config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
270*181254a7Smrg	support_fpu_rounding_mode): Clean up, mark unreachable code as such.
271*181254a7Smrg
272*181254a7Smrg2014-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
273*181254a7Smrg
274*181254a7Smrg	* libgfortran.h (support_fpu_underflow_control,
275*181254a7Smrg	get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
276*181254a7Smrg	* config/fpu-*.h (support_fpu_underflow_control,
277*181254a7Smrg	get_fpu_underflow_mode, set_fpu_underflow_mode):
278*181254a7Smrg	New functions.
279*181254a7Smrg	* ieee/ieee_arithmetic.F90: Support underflow control.
280*181254a7Smrg
281*181254a7Smrg2014-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
282*181254a7Smrg
283*181254a7Smrg	* config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
284*181254a7Smrg	FP_RM, FP_RZ unconditionally.
285*181254a7Smrg	(set_fpu_rounding_mode): Likewise.
286*181254a7Smrg
287*181254a7Smrg2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
288*181254a7Smrg
289*181254a7Smrg	* libgfortran.h: Assume __GNUC__.
290*181254a7Smrg
291*181254a7Smrg2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
292*181254a7Smrg
293*181254a7Smrg	* runtime/stop.c: Use C11 _Noreturn.
294*181254a7Smrg	* libgfortran.h: Use C11 _Noreturn in prototypes.
295*181254a7Smrg	Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
296*181254a7Smrg	* intrinsics/c99_functions.c: ... here.
297*181254a7Smrg
298*181254a7Smrg2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
299*181254a7Smrg
300*181254a7Smrg	* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
301*181254a7Smrg	config/fpu-glibc.h: Use static assertions.
302*181254a7Smrg
303*181254a7Smrg2014-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
304*181254a7Smrg
305*181254a7Smrg	* configure, config.h.in: Regenerate.
306*181254a7Smrg	* config/fpu-sysv.h: Include <assert.h>.
307*181254a7Smrg
308*181254a7Smrg2014-07-02  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
309*181254a7Smrg
310*181254a7Smrg	* config/fpu-glibc.h: Fix comment about FE_DENORMAL.
311*181254a7Smrg
312*181254a7Smrg2014-07-02  Uros Bizjak  <ubizjak@gmail.com>
313*181254a7Smrg
314*181254a7Smrg	* configure.host (ieee_flags): Add -mieee for alpha*.
315*181254a7Smrg
316*181254a7Smrg	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
317*181254a7Smrg	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
318*181254a7Smrg	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
319*181254a7Smrg
320*181254a7Smrg2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
321*181254a7Smrg
322*181254a7Smrg	* config/fpu-387.h (my_fenv_t): Amend structure so it also works
323*181254a7Smrg	on mingw32.
324*181254a7Smrg
325*181254a7Smrg2014-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
326*181254a7Smrg
327*181254a7Smrg	PR libgfortran/61640
328*181254a7Smrg	* io/list_read.c (next_char_internal): Adjust the read length to
329*181254a7Smrg	a single wide character. (eat_spaces): Add missing paren.
330*181254a7Smrg	* io/unix.c (mem_read4): Use the correct mem_alloc function for
331*181254a7Smrg	wide character internal reads.
332*181254a7Smrg
333*181254a7Smrg2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
334*181254a7Smrg
335*181254a7Smrg	PR fortran/29383
336*181254a7Smrg	* configure.host: Add checks for IEEE support, rework priorities.
337*181254a7Smrg	* configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
338*181254a7Smrg	fpresetsticky.
339*181254a7Smrg	* configure: Regenerate.
340*181254a7Smrg	* Makefile.am: Build new ieee files, install IEEE_* modules.
341*181254a7Smrg	* Makefile.in: Regenerate.
342*181254a7Smrg	* gfortran.map (GFORTRAN_1.6): Add new symbols.
343*181254a7Smrg	* libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
344*181254a7Smrg	support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
345*181254a7Smrg	support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
346*181254a7Smrg	prototypes.
347*181254a7Smrg	* config/fpu-*.h (get_fpu_trap_exceptions,
348*181254a7Smrg	set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
349*181254a7Smrg	support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
350*181254a7Smrg	set_fpu_state): New functions.
351*181254a7Smrg	* ieee/ieee_features.F90: New file.
352*181254a7Smrg	* ieee/ieee_exceptions.F90: New file.
353*181254a7Smrg	* ieee/ieee_arithmetic.F90: New file.
354*181254a7Smrg	* ieee/ieee_helper.c: New file.
355*181254a7Smrg
356*181254a7Smrg2014-06-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
357*181254a7Smrg
358*181254a7Smrg	PR libgfortran/61499
359*181254a7Smrg	* io/list_read.c (eat_spaces): Use a 'for' loop instead of
360*181254a7Smrg	'while' loop to skip the loop if there are no bytes left in the
361*181254a7Smrg	string. Only seek if actual spaces can be skipped.
362*181254a7Smrg
363*181254a7Smrg2014-06-25  Tobias Burnus  <burnus@net-b.de>
364*181254a7Smrg
365*181254a7Smrg	* caf/single.c (assign_char4_from_char1, assign_char1_from_char4,
366*181254a7Smrg	convert_type): New static functions.
367*181254a7Smrg	(_gfortran_caf_get, _gfortran_caf_send): Use them.
368*181254a7Smrg
369*181254a7Smrg2014-06-19  Tobias Burnus  <burnus@net-b.de>
370*181254a7Smrg
371*181254a7Smrg	* caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
372*181254a7Smrg	_gfortran_caf_co_min): Fix stat setting.
373*181254a7Smrg
374*181254a7Smrg2014-06-17  Tobias Burnus  <burnus@net-b.de>
375*181254a7Smrg
376*181254a7Smrg	* caf/libcaf.h (gfc_descriptor_t): New typedef.
377*181254a7Smrg	(caf_vector_t): Update.
378*181254a7Smrg	(_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
379*181254a7Smrg	Remove vector-subscript argument.
380*181254a7Smrg	(_gfortran_caf_co_send, _gfortran_caf_co_get,
381*181254a7Smrg	_gfortran_caf_co_sendget): New.
382*181254a7Smrg	* caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
383*181254a7Smrg	_gfortran_caf_co_min): Remove vector-subscript argument.
384*181254a7Smrg	(_gfortran_caf_co_send, _gfortran_caf_co_get,
385*181254a7Smrg	_gfortran_caf_co_sendget): New.
386*181254a7Smrg
387*181254a7Smrg2014-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
388*181254a7Smrg
389*181254a7Smrg	* libgfortran.h (xmallocarray): New prototype.
390*181254a7Smrg	* runtime/memory.c (xmallocarray): New function.
391*181254a7Smrg	(xcalloc): Check for nonzero separately instead of multiplying.
392*181254a7Smrg	* generated/*.c: Regenerated.
393*181254a7Smrg	* intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
394*181254a7Smrg	xmalloc.
395*181254a7Smrg	* intrinsics/eoshift0.c (eoshift0): Likewise.
396*181254a7Smrg	* intrinsics/eoshift2.c (eoshift2): Likewise.
397*181254a7Smrg	* intrinsics/pack_generic.c (pack_internal): Likewise.
398*181254a7Smrg	(pack_s_internal): Likewise.
399*181254a7Smrg	* intrinsics/reshape_generic.c (reshape_internal): Likewise.
400*181254a7Smrg	* intrinsics/spread_generic.c (spread_internal): Likewise.
401*181254a7Smrg	(spread_internal_scalar): Likewise.
402*181254a7Smrg	* intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
403*181254a7Smrg	(string_minmax): Likewise.
404*181254a7Smrg	* intrinsics/transpose_generic.c (transpose_internal): Likewise.
405*181254a7Smrg	* intrinsics/unpack_generic.c (unpack_internal): Likewise.
406*181254a7Smrg	* io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
407*181254a7Smrg	* io/transfer.c (st_set_nml_var): Call xmallocarray instead of
408*181254a7Smrg	xmalloc.
409*181254a7Smrg	* io/unit.c (get_internal_unit): Likewise.
410*181254a7Smrg	(filename_from_unit): Don't cast xmalloc return value.
411*181254a7Smrg	* io/write.c (nml_write_obj): Likewise, formatting.
412*181254a7Smrg	* m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
413*181254a7Smrg	instead of xmalloc.
414*181254a7Smrg	(besse_yn_r'rtype_kind`): Likewise.
415*181254a7Smrg	* m4/cshift1.m4 (cshift1): Likewise.
416*181254a7Smrg	* m4/eoshift1.m4 (eoshift1): Likewise.
417*181254a7Smrg	* m4/eoshift3.m4 (eoshift3): Likewise.
418*181254a7Smrg	* m4/iforeach.m4: Likewise.
419*181254a7Smrg	* m4/ifunction.m4: Likewise.
420*181254a7Smrg	* m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
421*181254a7Smrg	Likewise.
422*181254a7Smrg	* m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
423*181254a7Smrg	* m4/matmul.m4 (matmul_'rtype_code`): Likewise.
424*181254a7Smrg	* m4/matmull.m4 (matmul_'rtype_code`): Likewise.
425*181254a7Smrg	* m4/pack.m4 (pack_'rtype_code`): Likewise.
426*181254a7Smrg	* m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
427*181254a7Smrg	* m4/shape.m4 (shape_'rtype_kind`): Likewise.
428*181254a7Smrg	* m4/spread.m4 (spread_'rtype_code`): Likewise.
429*181254a7Smrg	(spread_scalar_'rtype_code`): Likewise.
430*181254a7Smrg	* m4/transpose.m4 (transpose_'rtype_code`): Likewise.
431*181254a7Smrg	* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
432*181254a7Smrg	(unpack1_'rtype_code`): Likewise.
433*181254a7Smrg	* runtime/convert_char.c (convert_char1_to_char4): Likewise.
434*181254a7Smrg	(convert_char4_to_char1): Simplify.
435*181254a7Smrg	* runtime/environ.c (init_unformatted): Call xmallocarray instead
436*181254a7Smrg	of xmalloc.
437*181254a7Smrg	* runtime/in_pack_generic.c (internal_pack): Likewise.
438*181254a7Smrg
439*181254a7Smrg2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
440*181254a7Smrg
441*181254a7Smrg	PR libfortran/60468
442*181254a7Smrg	* configure.ac: Include <math.h> when checking for fp_except_t
443*181254a7Smrg	and fp_rnd_t types.
444*181254a7Smrg	* configure: Regenerate.
445*181254a7Smrg
446*181254a7Smrg2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>
447*181254a7Smrg
448*181254a7Smrg	PR libfortran/56981
449*181254a7Smrg	* io/unix.h (struct stream_vtable): Add new member function,
450*181254a7Smrg	markeor.
451*181254a7Smrg	(smarkeor): New inline function.
452*181254a7Smrg	(flush_if_unbuffered): Remove prototype.
453*181254a7Smrg	* io/unix.c (raw_markeor): New function.
454*181254a7Smrg	(raw_vtable): Initialize markeor member.
455*181254a7Smrg	(buf_markeor): New function.
456*181254a7Smrg	(buf_vtable): Initialize markeor member.
457*181254a7Smrg	(mem_vtable): Likewise.
458*181254a7Smrg	(mem4_vtable): Likewise.
459*181254a7Smrg	(flush_if_unbuffered): Remove function.
460*181254a7Smrg	* io/transfer.c (next_record): Call smarkeor instead of
461*181254a7Smrg	flush_if_unbuffered.
462*181254a7Smrg
463*181254a7Smrg2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
464*181254a7Smrg
465*181254a7Smrg	* intrinsics/getcwd.c: Include stdlib.h.
466*181254a7Smrg
467*181254a7Smrg2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
468*181254a7Smrg
469*181254a7Smrg	* libgfortran.h (xrealloc): New prototype.
470*181254a7Smrg	* runtime/memory.c (xrealloc): New function.
471*181254a7Smrg	* io/fbuf.c (fbuf_alloc): Use xrealloc.
472*181254a7Smrg	* io/list_read.c (push_char_default): Likewise.
473*181254a7Smrg	(push_char4): Likewise.
474*181254a7Smrg
475*181254a7Smrg2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
476*181254a7Smrg
477*181254a7Smrg	PR libfortran/61310
478*181254a7Smrg	* intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
479*181254a7Smrg	instead of strftime.
480*181254a7Smrg	(fdate): Use gf_ctime.
481*181254a7Smrg	(fdate_sub): Likewise.
482*181254a7Smrg	(ctime): Likewise.
483*181254a7Smrg	(ctime_sub): Likewise.
484*181254a7Smrg
485*181254a7Smrg2014-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
486*181254a7Smrg
487*181254a7Smrg	PR libgfortran/55117
488*181254a7Smrg	* io/list_read.c (extended_look_ahead): New helper function to
489*181254a7Smrg	scan the namelist name and look for matches with the new '+'
490*181254a7Smrg	extended type parent indicator.  (str_comp_extended): New
491*181254a7Smrg	helper function to compare the namelist name with the varname
492*181254a7Smrg	namelist. (find_nml_name): Use the new helper functions to match
493*181254a7Smrg	the extended type varnames.
494*181254a7Smrg
495*181254a7Smrg2014-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu>
496*181254a7Smrg
497*181254a7Smrg	PR libfortran/61173
498*181254a7Smrg	* io/list_read.c (eat_spaces): If the next character pointed to
499*181254a7Smrg	is a space, don't seek, must be at the end.
500*181254a7Smrg
501*181254a7Smrg2014-05-23  Hans-Peter Nilsson  <hp@axis.com>
502*181254a7Smrg
503*181254a7Smrg	* configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
504*181254a7Smrg	* configure: Regenerate.
505*181254a7Smrg
506*181254a7Smrg2014-05-23  Janne Blomqvist  <jb@gcc.gnu.org>
507*181254a7Smrg
508*181254a7Smrg	PR libfortran/60324
509*181254a7Smrg	* runtime/string.c: Include stdlib.h.
510*181254a7Smrg
511*181254a7Smrg2014-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
512*181254a7Smrg
513*181254a7Smrg	PR libfortran/60324
514*181254a7Smrg	* config.h.in: Regenerated.
515*181254a7Smrg	* configure: Regenerated.
516*181254a7Smrg	* configure.ac (AC_CHECK_FUNCS_ONCE): Check for strnlen and
517*181254a7Smrg	strndup.
518*181254a7Smrg	* libgfortran.h (fc_strdup): New prototype.
519*181254a7Smrg	* runtime/string.c (strnlen): New fallback function.
520*181254a7Smrg	(strndup): New fallback function.
521*181254a7Smrg	(fc_strdup): New function.
522*181254a7Smrg	* io/close.c (st_close): Use fc_strdup.
523*181254a7Smrg	* io/open.c (new_unit): Likewise.
524*181254a7Smrg	(already_open): Likewise.
525*181254a7Smrg	* io/unit.c (filename_from_unit): Likewise.
526*181254a7Smrg	* io/unix.c (unpack_filename): Remove function.
527*181254a7Smrg	(regular_file): Rename to regular_file2, add path argument.
528*181254a7Smrg	(regular_file): New function calling regular_file2.
529*181254a7Smrg	(compare_file_filename): Use fc_strdup.
530*181254a7Smrg	(find_file): Likewise.
531*181254a7Smrg	(delete_file): Likewise.
532*181254a7Smrg	(file_exists): Likewise.
533*181254a7Smrg	(file_size): Likewise.
534*181254a7Smrg	(inquire_sequential): Likewise.
535*181254a7Smrg	(inquire_direct): Likewise.
536*181254a7Smrg	(inquire_formatted): Likewise.
537*181254a7Smrg	(inquire_access): Likewise.
538*181254a7Smrg	* io/unix.h (unpack_filename): Remove prototype.
539*181254a7Smrg	* runtime/main.c (please_free_exe_path_when_done): Change type to
540*181254a7Smrg	bool.
541*181254a7Smrg	(store_exe_path): Use malloced buffer, grow as needed.
542*181254a7Smrg
543*181254a7Smrg2014-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
544*181254a7Smrg
545*181254a7Smrg	PR libfortran/52539
546*181254a7Smrg	* io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
547*181254a7Smrg	and *push_char_fn_ptr.
548*181254a7Smrg	*io/list_read.c (next_char): Create macro with this name to call
549*181254a7Smrg	the new function pointer. Split the original next_char function
550*181254a7Smrg	into three new functions. (next_char_default, next_char_internal,
551*181254a7Smrg	next_char_utf8): New functions. (push_char): Create macro with
552*181254a7Smrg	this name to call new function pointer. Split the original
553*181254a7Smrg	push_char into three new functions. (push_char_default,
554*181254a7Smrg	push_char_internal, push_char4): New functions. (set_workers):
555*181254a7Smrg	New function to initilize the function pointers depending on the
556*181254a7Smrg	type of IO to be performed. (list_formatted_read_scalar): Use
557*181254a7Smrg	set_workers function. (finish_list_read): Likewise.
558*181254a7Smrg	(namelist_read): Likewise.
559*181254a7Smrg	(nml_get_obj_data): Use push_char_default.
560*181254a7Smrg
561*181254a7Smrg2014-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
562*181254a7Smrg
563*181254a7Smrg	PR libfortran/61187
564*181254a7Smrg	* io/unix.c (raw_close): Check if s->fd is -1.
565*181254a7Smrg	(fd_to_stream): Check return value of fstat(), handle error.
566*181254a7Smrg
567*181254a7Smrg2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
568*181254a7Smrg
569*181254a7Smrg	PR libfortran/61035
570*181254a7Smrg	* intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
571*181254a7Smrg	stack allocation, avoid extra copying in the common case.
572*181254a7Smrg
573*181254a7Smrg2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
574*181254a7Smrg
575*181254a7Smrg	* configure.ac (AM_CFLAGS): Use -std=gnu11.
576*181254a7Smrg	(CFLAGS): Likewise.
577*181254a7Smrg	* configure: Regenerated.
578*181254a7Smrg
579*181254a7Smrg2014-05-11  Tobias Burnus  <burnus@net-b.de>
580*181254a7Smrg
581*181254a7Smrg	* caf/libcaf.h (_gfortran_caf_num_images): Change type of
582*181254a7Smrg	second argument to int.
583*181254a7Smrg	* caf/mpi.c (_gfortran_caf_num_images): Ditto.
584*181254a7Smrg	* caf/single.c (_gfortran_caf_num_images): Ditto.
585*181254a7Smrg
586*181254a7Smrg2014-05-08  Tobias Burnus  <burnus@net-b.de>
587*181254a7Smrg
588*181254a7Smrg	* caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
589*181254a7Smrg	_gfortran_caf_co_min, _gfortran_caf_co_max): Declare
590*181254a7Smrg	* caf/single.c
591*181254a7Smrg
592*181254a7Smrg2014-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu>
593*181254a7Smrg
594*181254a7Smrg	PR libfortran/61049
595*181254a7Smrg	* io/list_read.c (list_formatted_read_scalar): Use eat_separator
596*181254a7Smrg	and delete extraneous code.
597*181254a7Smrg
598*181254a7Smrg2014-04-30  Tobias Burnus  <burnus@net-b.de>
599*181254a7Smrg
600*181254a7Smrg	* caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
601*181254a7Smrg	New prototypes.
602*181254a7Smrg	(_gfortran_caf_init): Change prototype.
603*181254a7Smrg	(mpi_token_t): New typedef.
604*181254a7Smrg	(TOKEN): New define.
605*181254a7Smrg	* caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
606*181254a7Smrg	New functions.
607*181254a7Smrg	(_gfortran_caf_init): Update.
608*181254a7Smrg	(_gfortran_caf_finalize, _gfortran_caf_register,
609*181254a7Smrg	_gfortran_caf_deregister): Use mpi_token_t.
610*181254a7Smrg	* caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
611*181254a7Smrg	New functions.
612*181254a7Smrg	(_gfortran_caf_init): Update.
613*181254a7Smrg	(_gfortran_caf_finalize, _gfortran_caf_register,
614*181254a7Smrg	_gfortran_caf_deregister): Use mpi_token_t, simplify.
615*181254a7Smrg
616*181254a7Smrg2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>
617*181254a7Smrg
618*181254a7Smrg	PR libfortran/52539
619*181254a7Smrg	* io/list_read.c: Add uchar typedef. (push_char4): New function
620*181254a7Smrg	to save kind=4 character. (next_char_utf8): New function to read
621*181254a7Smrg	a single UTF-8 encoded character value. (read_chracter): Update
622*181254a7Smrg	to use the new functions for reading UTF-8 strings.
623*181254a7Smrg	(list_formatted_read_scalar): Update to handle list directed
624*181254a7Smrg	reads of UTF-8 strings. (nml_read_obj): Likewise update for
625*181254a7Smrg	UTF-8 strings in namelists.
626*181254a7Smrg	* io/write.c (nml_write_obj): Add kind=4 character support for
627*181254a7Smrg	namelist writes.
628*181254a7Smrg
629*181254a7Smrg2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
630*181254a7Smrg
631*181254a7Smrg	* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
632*181254a7Smrg	* configure: Regenerate.
633*181254a7Smrg
634*181254a7Smrg2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
635*181254a7Smrg
636*181254a7Smrg	* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
637*181254a7Smrg	check.
638*181254a7Smrg
639*181254a7Smrg2014-04-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
640*181254a7Smrg
641*181254a7Smrg	PR libfortran/60810
642*181254a7Smrg	io/unit.c (is_trim_ok): If internal unit is array, do not trim.
643*181254a7Smrg
644*181254a7Smrg2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu>
645*181254a7Smrg
646*181254a7Smrg	PR libfortran/60148
647*181254a7Smrg	* io/transfer.c (data_transfer_init): If std= was specified, set
648*181254a7Smrg	delim status to DELIM_NONE of no other was specified.
649*181254a7Smrg
650*181254a7Smrg2014-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
651*181254a7Smrg
652*181254a7Smrg	* configure.ac: Check for presence of fcntl.
653*181254a7Smrg	* configure: Regenerate.
654*181254a7Smrg	* config.h.in: Regenerate.
655*181254a7Smrg	* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
656*181254a7Smrg
657*181254a7Smrg2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
658*181254a7Smrg
659*181254a7Smrg	PR libfortran/48600
660*181254a7Smrg	* io/list_read.c (list_formatted_read_scalar): Do not use
661*181254a7Smrg	eat_separator. Explicitly set the comma and end-of-line flags.
662*181254a7Smrg	Check for END condition from finish_separator.
663*181254a7Smrg
664*181254a7Smrg2014-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu>
665*181254a7Smrg
666*181254a7Smrg	PR libfortran/58324
667*181254a7Smrg	* io/list_read.c (finish_list_read): Read one character to check
668*181254a7Smrg	for the end of the file.  If it is the end, then issue the file
669*181254a7Smrg	end error message.  If not, use eat_line to reach the end
670*181254a7Smrg	without giving error.  The next attempt to read will then
671*181254a7Smrg	issue the error as described above.
672*181254a7Smrg
673*181254a7Smrg2014-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu>
674*181254a7Smrg
675*181254a7Smrg	PR libfortran/38199
676*181254a7Smrg	* io/read.c (read_decimal): Quickly skip spaces to avoid calls
677*181254a7Smrg	to next_char.
678*181254a7Smrg	* io/unit.c (is_trim_ok): New helper function to check various
679*181254a7Smrg	conditions to see if its OK to trim the internal unit string.
680*181254a7Smrg	(get_internal_unit): Use LEN_TRIM to shorten selected internal
681*181254a7Smrg	unit strings for optimizing READ. Enable this optimization for
682*181254a7Smrg	formatted READ.
683*181254a7Smrg	* io/list_read.c (finish_list_read): Don't call eat_line for
684*181254a7Smrg	internal units.
685*181254a7Smrg
686*181254a7Smrg2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>
687*181254a7Smrg
688*181254a7Smrg	PR libfortran/38199
689*181254a7Smrg	* io/list_read.c (next_char): Mark unlikely error checks.
690*181254a7Smrg	(eat_spaces): For character array reading, skip ahead over
691*181254a7Smrg	spaces rather than call next_char multiple times.
692*181254a7Smrg
693*181254a7Smrg2014-03-08  Tobias Burnus  <burnus@net-b.de>
694*181254a7Smrg
695*181254a7Smrg	* libgfortran.h (unlikely, likely): Add usage comment.
696*181254a7Smrg
697*181254a7Smrg2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>
698*181254a7Smrg
699*181254a7Smrg	PR libgfortran/60128
700*181254a7Smrg	* io/write_float.def (output_float): Remove unused variable
701*181254a7Smrg	nzero_real. Replace a double space with a single one.
702*181254a7Smrg	(determine_en_precision): Fix wrong handling of the EN format.
703*181254a7Smrg
704*181254a7Smrg2014-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu>
705*181254a7Smrg
706*181254a7Smrg	PR libfortran/60148
707*181254a7Smrg	* io/inquire.c (inquire_via_unit): In the case of
708*181254a7Smrg	DELIM_UNSPECIFIED set inquire return string to "NONE".
709*181254a7Smrg	* io/list_read.c (read_character): In the case of DELIM_NONE and
710*181254a7Smrg	namelists, complete the character read using the namelist
711*181254a7Smrg	variable length.
712*181254a7Smrg	* io/open.c (new_unit): Don't set delim status to none if not
713*181254a7Smrg	specified so that DELIM_UNSPECIFIED can be used later.
714*181254a7Smrg	* io/transfer.c (data_transfer_init): For namelist I/O, if the
715*181254a7Smrg	unit delim status is unspecified set the current status to quote.
716*181254a7Smrg	Otherwise, set current status to the unit status.
717*181254a7Smrg	* io/unit.c (get_internel_unit, init_unit): Remember to set
718*181254a7Smrg	flags_delim initially to DELIM_UNSPECIFIED so defaults come out
719*181254a7Smrg	correctly.
720*181254a7Smrg	* io/write.c (write_character): Add a new function argument
721*181254a7Smrg	"mode" to signify that raw output is to be used vs output with
722*181254a7Smrg	delimiters. If the mode is set to DELIM (1) proceed with
723*181254a7Smrg	delimiters. (list_formatted_write_scalar): Write the separator
724*181254a7Smrg	only if a delimiter was previously specified. Update the call to
725*181254a7Smrg	write_character with the mode argument given.
726*181254a7Smrg	(namelist_write_newline): Use the mode argument. (nml_write_obj):
727*181254a7Smrg	Use the mode argument. Remove use of tmp_delim. Write the
728*181254a7Smrg	semi-colon or comma correctly only when needed with using
729*181254a7Smrg	delimiters. Cleanup whitespace.
730*181254a7Smrg	(namelist_write): If delim is not specified in namelist I/O,
731*181254a7Smrg	default	to using quotes. Get rid of the tmp_delim variable and
732*181254a7Smrg	use the new mode argument in write_character.
733*181254a7Smrg
734*181254a7Smrg2014-02-21  Tobias Burnus  <burnus@net-b.de>
735*181254a7Smrg
736*181254a7Smrg	PR fortran/60286
737*181254a7Smrg	* libgfortran/io/inquire.c (yes, no): New static const char vars.
738*181254a7Smrg	(inquire_via_unit): Use them. Use OPEN mode instead of using
739*181254a7Smrg	POSIX's access to query about write=, read= and readwrite=.
740*181254a7Smrg
741*181254a7Smrg2014-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu>
742*181254a7Smrg	    Dominique d'Humieres  <dominiq@lps.ens.fr>
743*181254a7Smrg
744*181254a7Smrg	* io/write_float.def (output_float): Remove inadvertent test
745*181254a7Smrg	code from previous patch.
746*181254a7Smrg
747*181254a7Smrg2014-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu>
748*181254a7Smrg	    Dominique d'Humieres  <dominiq@lps.ens.fr>
749*181254a7Smrg
750*181254a7Smrg	PR libfortran/59771
751*181254a7Smrg	PR libfortran/59774
752*181254a7Smrg	PR libfortran/59836
753*181254a7Smrg	* io/write_float.def (output_float): Fix wrong handling of the
754*181254a7Smrg	Fw.0 format.
755*181254a7Smrg	(output_float_FMT_G_): Fixes rounding issues with -m32.
756*181254a7Smrg
757*181254a7Smrg2014-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
758*181254a7Smrg	    Dominique d'Humieres  <dominiq@lps.ens.fr>
759*181254a7Smrg	    Steven G. Kargl  <kargl@gcc.gnu.org>
760*181254a7Smrg
761*181254a7Smrg	PR libfortran/59700
762*181254a7Smrg	PR libfortran/59764
763*181254a7Smrg	* io/io.h (struct st_parameter_dt): Assign expanded_read flag to
764*181254a7Smrg	unused bit. Define new variable line_buffer_pos.
765*181254a7Smrg	* io/list_read.c (free_saved, next_char, l_push_char,
766*181254a7Smrg	read_logical, read_real): Replace use of item_count with
767*181254a7Smrg	line_buffer_pos for line_buffer look ahead.
768*181254a7Smrg	(read_logical, read_integer, parse_real, read_real, check_type):
769*181254a7Smrg	Adjust location of free_line to after generating error messages
770*181254a7Smrg	to retain the correct item count for the message.
771*181254a7Smrg
772*181254a7Smrg2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
773*181254a7Smrg
774*181254a7Smrg	Update copyright years
775*181254a7Smrg
776*181254a7SmrgCopyright (C) 2014 Free Software Foundation, Inc.
777*181254a7Smrg
778*181254a7SmrgCopying and distribution of this file, with or without modification,
779*181254a7Smrgare permitted in any medium without royalty provided the copyright
780*181254a7Smrgnotice and this notice are preserved.
781