2014-02-21  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	Backport from mainline
	PR libfortran/59700
	PR libfortran/59764
	* io/io.h (struct st_parameter_dt): Assign expanded_read flag to
	unused bit. Define new variable line_buffer_pos.
	* io/list_read.c (free_saved, next_char, l_push_char,
	read_logical, read_real): Replace use of item_count with
	line_buffer_pos for line_buffer look ahead.
	(read_logical, read_integer, parse_real, read_real, check_type):
	Adjust location of free_line to after generating error messages
	to retain the correct item count for the message. 

2014-02-15  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	Backport from mainline
	PR libfortran/59771
	PR libfortran/59774
	PR libfortran/59836
	* io/write_float.def (output_float): Fix wrong handling of the
	Fw.0 format.
	(output_float_FMT_G_): Fixes rounding issues with -m32.

2013-10-16  Release Manager

	* GCC 4.8.2 released.

2013-10-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/55469
	* io/list_read (parse_repeat, read_integer, read_character,
	parse_real, read_real, check_type, list_formatted_read_scalar,
	finish_list_read): Call list_free.

2013-06-21  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/fpu-387.h (_FPU_MASK_ALL): New.
	(_FPU_EX_ALL): Ditto.
	(set_fpu): Use fstcw to store x87 FPU control word. Use fnclex to
	clear stalled exception flags.  Correctly clear stalled SSE
	exception flags.  Simplify code.

	Backport from mainline
	2013-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/fpu-387.h: Use __asm__ and __volatile__ consistently.

2013-05-31  Release Manager

	* GCC 4.8.1 released.

2013-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backport from mainline:
	2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

	PR libfortran/51825
	* io/list_read.c (nml_read_obj): Don't end the component loop on a
	nested derived type, but continue with the next loop iteration.
	(nml_get_obj_data): Don't move the first_nl pointer further in the
	list if a qualifier was found.

2013-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backport from mainline:

	PR libfortran/56786
	* io/list_read.c (nml_parse_qualifier): Remove spurious next_char call
	when checking for EOF. Use error return mechanism when EOF detected.
	Do not return FAILURE unless parse_err_msg and parse_err_msg_size have
	been set. Use hit_eof.
	(nml_get_obj_data): Likewise use the correct error mechanism.
	* io/transfer.c (hit_eof): Do not set AFTER_ENDFILE if in namelist
	mode.

2013-04-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backport from mainline:
	2013-03-25  Tilo Schwarz  <tilo@tilo-schwarz.de>

	PR libfortran/52512
	* io/list_read.c (nml_parse_qualifier): To check for a derived type
	don't use the namelist head element type but the current element type.
	(nml_get_obj_data): Add current namelist element type to
	nml_parse_qualifier call.

2013-04-02  Tobias Burnus  <burnus@net-b.de>

	Backport from mainline:
	2013-03-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/56735
	* io/list_read.c (nml_query): Only abort when
	an error occured.
	(namelist_read): Add goto instead of falling through.

2013-04-02  Tobias Burnus  <burnus@net-b.de>

	Backport from mainline:
	2013-03-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/56737
	* io/format.c (parse_format): With caching, copy
	dtp->format string.
	(save_parsed_format): Use dtp->format directly without
	copying.

	2012-03-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/56737
	* io/format.c (parse_format_list): Also cache FMT_STRING.
	(parse_format): Update call.

2013-03-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/56696
	* io/list_read.c (read_real): Fix EOF diagnostic.

2013-03-22  Release Manager

	* GCC 4.8.0 released.

2013-03-11  Tobias Burnus  <burnus@net-b.de>

	* io/transfer.c (read_block_direct): Correct condition.
	* intrinsics/execute_command_line.c (execute_command_line):
	Remove dead code for the HAVE_FORK case.

2013-02-21  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/30162
	* io/open.c (test_endfile): Call stell only if size != 0.
	* io/unix.c (raw_tell): Revert r194679.
	(raw_size): Return size field only for regular files, otherwise 0.

2013-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/56347
	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): Remove check for
	broken powf.
	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Likewise.
	* intrinsics/c99_functions.c: Likewise.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.

2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
	NULL.

2013-01-23  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX
	instead of reverse_memcpy.
	* io/io.h (reverse_memcpy): Remove prototype.
	* io/transfer.c (reverse_memcpy): Make static, move towards
	beginning of file.
	(bswap_array): New function.
	(unformatted_read): Use bswap_array to byte swap the data
	in-place.
	(unformatted_write): Use a larger temp buffer and bswap_array.
	(us_read): Use __builtin_bswapXX instead of reverse_memcpy.
	(write_us_marker): Likewise.

2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years.

2013-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/54678
	* intrinsics/env.c (get_environment_variable_i8): Don't use
	uninitialized variable.

2013-01-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/55818
	* io/list_read.c (read_real): Do not call hit_eof when EOF can be
	treated as a value separator.
	(parse_real): Likewise.
	(read_logical): Likewise.
	(read_character): Likewise.
	(read_complex): Likewise.

Copyright (C) 2013 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
