Go to file
Janne Blomqvist 9e544d738a PR libfortran/25561 libfortran/37754
2009-03-22  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/25561 libfortran/37754
	* io/io.h (struct stream): Define new stream interface function
	pointers, and inline functions for accessing it.
	(struct fbuf): Use int instead of size_t, remove flushed element.
	(mem_alloc_w): New prototype.
	(mem_alloc_r): New prototype.
	(stream_at_bof): Remove prototype.
	(stream_at_eof): Remove prototype.
	(file_position): Remove prototype.
	(flush): Remove prototype.
	(stream_offset): Remove prototype.
	(unit_truncate): New prototype.
	(read_block_form): Change to return pointer, int* argument.
	(hit_eof): New prototype.
	(fbuf_init): Change prototype.
	(fbuf_reset): Change prototype.
	(fbuf_alloc): Change prototype.
	(fbuf_flush): Change prototype.
	(fbuf_seek): Change prototype.
	(fbuf_read): New prototype.
	(fbuf_getc_refill): New prototype.
	(fbuf_getc): New inline function.
        * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
	(fbuf_debug): New function.
	(fbuf_reset): Flush, and return position offset.
	(fbuf_alloc): Simplify, don't flush, just realloc.
	(fbuf_flush): Make usable for read mode, salvage remaining bytes.
	(fbuf_seek): New whence argument.
	(fbuf_read): New function.
	(fbuf_getc_refill): New function.
	* io/file_pos.c (formatted_backspace): Use new stream interface.
	(unformatted_backspace): Likewise.
	(st_backspace): Make sure format buffer is reset, use new stream
	interface, use unit_truncate.
	(st_endfile): Likewise.
	(st_rewind): Likewise.
	* io/intrinsics.c: Use new stream interface.
	* io/list_read.c (push_char): Don't use u.p.scratch, use realloc
	to resize.
	(free_saved): Don't check u.p.scratch.
	(next_char): Use new stream interface, use fbuf_getc() for external files.
	(finish_list_read): flush format buffer.
	(nml_query): Update to use modified interface:s
	* io/open.c (test_endfile): Use new stream interface.
	(edit_modes): Likewise.
	(new_unit): Likewise, set bytes_left to 1 for stream files.
	* io/read.c (read_l): Use new read_block_form interface.
	(read_utf8): Likewise.
	(read_utf8_char1): Likewise.
	(read_default_char1): Likewise.
	(read_utf8_char4): Likewise.
	(read_default_char4): Likewise.
	(read_a): Likewise.
	(read_a_char4): Likewise.
	(read_decimal): Likewise.
	(read_radix): Likewise.
	(read_f): Likewise.
	* io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
	usage of u.p.line_buffer.
	(read_block_form): Update interface to return pointer, use
	fbuf_read for direct access.
	(read_block_direct): Update to new stream interface.
	(write_block): Use mem_alloc_w for internal I/O.
	(write_buf): Update to new stream interface.
	(formatted_transfer_scalar): Don't use u.p.line_buffer, use
	fbuf_seek for external files.
	(us_read): Update to new stream interface.
	(us_write): Likewise.
	(data_transfer_init): Always check if we switch modes and flush.
	(skip_record): Use new stream interface, fix comparison.
	(next_record_r): Check for and reset u.p.at_eof, use new stream
	interface, use fbuf_getc for spacing.
	(write_us_marker): Update to new stream interface, don't inline.
	(next_record_w_unf): Likewise.
	(sset): New function.
	(next_record_w): Use new stream interface, use fbuf for printing
	newline.
	(next_record): Use new stream interface.
	(finalize_transfer): Remove sfree call, use new stream interface.
	(st_iolength_done): Don't use u.p.scratch.
	(st_read): Don't check for end of file.
	(st_read_done): Don't use u.p.scratch, use unit_truncate.
	(hit_eof): New function.
	* io/unit.c (init_units): Always init fbuf for formatted units.
	(update_position): Use new stream interface.
	(unit_truncate): New function.
	(finish_last_advance_record): Use fbuf to print newline.
	* io/unix.c: Remove unused SSIZE_MAX macro.
	(BUFFER_SIZE): Make static const variable rather than macro.
	(struct unix_stream): Remove dirty_offset, len, method,
	small_buffer. Order elements by decreasing size.
	(struct int_stream): Remove.
	(move_pos_offset): Remove usage of dirty_offset.
	(reset_stream): Remove.
	(do_read): Rename to raw_read, update to match new stream
	interface.
	(do_write): Rename to raw_write, update to new stream interface.
	(raw_seek): New function.
	(raw_tell): New function.
	(raw_truncate): New function.
	(raw_close): New function.
	(raw_flush): New function.
	(raw_init): New function.
	(fd_alloc): Remove.
	(fd_alloc_r_at): Remove.
	(fd_alloc_w_at): Remove.
	(fd_sfree): Remove.
	(fd_seek): Remove.
	(fd_truncate): Remove.
	(fd_sset): Remove.
	(fd_read): Remove.
	(fd_write): Remove.
	(fd_close): Remove.
	(fd_open): Remove.
	(fd_flush): Rename to buf_flush, update to new stream interface
	and unix_stream.
	(buf_read): New function.
	(buf_write): New function.
	(buf_seek): New function.
	(buf_tell): New function.
	(buf_truncate): New function.
	(buf_close): New function.
	(buf_init): New function.
	(mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
	(mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
	(mem_read): Change to match new stream interface.
	(mem_write): Likewise.
	(mem_seek): Likewise.
	(mem_tell): Likewise.
	(mem_truncate): Likewise.
	(mem_close): Likewise.
	(mem_flush): New function.
	(mem_sfree): Remove.
	(empty_internal_buffer): Cast to correct type.
	(open_internal): Use correct type, init function pointers.
	(fd_to_stream): Test whether to open file as buffered or raw.
	(output_stream): Remove mode set.
	(error_stream): Likewise.
	(flush_all_units_1): Use new stream interface.
	(flush_all_units): Likewise.
	(stream_at_bof): Remove.
	(stream_at_eof): Remove.
	(file_position): Remove.
	(file_length): Update logic to use stream interface.
	(flush): Remove.
	(stream_offset): Remove.
	* io/write.c (write_utf8_char4): Use int instead of size_t.
	(write_x): Extra safety check.
	(namelist_write_newline): Use new stream interface.

[[Split portion of a mixed commit.]]

From-SVN: r144993.2
2009-03-22 12:51:05 +02:00
boehm-gc backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
config mh-cygwin (LDFLAGS): Add linker option to increase stack limit up to 8MB. 2009-02-11 11:50:50 +01:00
contrib check_warning_flags.sh: Update flag exceptions. 2009-03-01 11:24:03 +00:00
fixincludes fix ChangeLog date 2009-03-03 00:35:19 +00:00
gcc extend.texi (Function Attributes, [...]): Fix typos. 2009-03-22 08:16:31 +00:00
gnattools Add PR ref. 2009-02-27 09:56:42 +00:00
include decl.c (grokfndecl): Set DECL_CONTEXT on parms. 2009-03-17 19:31:18 -04:00
INSTALL
intl Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libada re PR ada/5911 (Support for multilib in Ada) 2008-09-21 11:45:23 +00:00
libcpp dse.c (struct group_info): Reorder fields for 64-bit hosts. 2009-03-18 18:04:26 +01:00
libdecnumber * Makefile.in (clean): Don't remove makedepend$(EXEEXT). 2009-02-10 14:56:10 +00:00
libffi backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
libgcc * libgcc/config/i386/t-cygming: Remove executable property. 2009-03-10 11:37:33 +01:00
libgfortran PR libfortran/25561 libfortran/37754 2009-03-22 12:51:05 +02:00
libgomp backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
libiberty decl.c (grokfndecl): Set DECL_CONTEXT on parms. 2009-03-17 19:31:18 -04:00
libjava configure.ac: Detect xulrunner-1.9. 2009-03-16 12:08:23 +00:00
libmudflap backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
libobjc re PR libobjc/27466 (RFE: Support for libobjc equivalent of std::set_unexpected) 2009-03-12 22:28:15 +00:00
libssp backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
libstdc++-v3 appendix_contributing.xml: Add docbook style sheet version information. 2009-03-17 22:09:26 +00:00
maintainer-scripts update_version_svn (ADD_BRANCHES): Remove autovect-branch and document format. 2009-02-21 11:12:28 +00:00
zlib backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
ABOUT-NLS
ChangeLog configure: Rebuild. 2009-03-18 23:32:36 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess * config.sub, config.guess: Update from upstream sources. 2008-12-18 14:27:27 +11:00
config.rpath
config.sub * config.sub, config.guess: Update from upstream sources. 2008-12-18 14:27:27 +11:00
configure configure: Rebuild. 2009-03-18 23:32:36 +00:00
configure.ac configure: Rebuild. 2009-03-18 23:32:36 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4 backport: Support GNU/kOpenSolaris. 2009-03-01 17:49:31 +00:00
lt~obsolete.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltgcc.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltmain.sh libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltoptions.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltsugar.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltversion.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
MAINTAINERS * MAINTAINERS: Move myself into the write after approval list. 2009-03-12 12:57:32 +00:00
Makefile.def configure: Rebuild. 2009-03-18 23:32:36 +00:00
Makefile.in configure: Rebuild. 2009-03-18 23:32:36 +00:00
Makefile.tpl Makefile.tpl (stage_last): Define $r and $s before using $(RECURSE_FLAGS_TO_PASS). 2009-02-05 15:29:52 +00:00
missing
mkdep
mkinstalldirs
move-if-change
README
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.