gcc/libio
Mark Mitchell ae499ccea4 Move statement-tree facilities from C++ to C front-end.
* c-common.h (c_tree_index): Add CTI_VOID_ZERO.
	(void_zero_node): New macro.
	(struct stmt_tree_s): New type.
	(stmt_tree): New typedef.
	(struct language_function): New type.
	(last_tree): New macro.
	(last_expr_type): Likewise.
	(walk_tree_fn): New typedef.
	(current_stmt_tree): New function.
	(begin_stmt_tree): Likewise.
	(add_stmt): Likewise.
	(finish_stmt_tree): Likewise.
	(statement_code_p): Likewise.
	(lang_statement_code_p): New variable.
	(walk_stmt_tree): New function.
	(STMT_IS_FULL_EXPR_P): New macro.
	* c-common.c (lang_statement_code_p): New variable.
	(c_common_nodes_and_builtins): Initialize void_zero_node.
	(statement_code_p): New function.
	(walk_stmt_tree): Likewise.
	* c-decl.c (language_function): Rename to ...
	(c_language_function): ... this.  Include language_function.
	(push_c_function_context): Adjust accordingly.
	(pop_c_function_context): Likewise.
	(mark_c_function_context): Likewise.
	(current_stmt_tree): Define.
	* c-semantics.c (begin_stmt_tree): New function.
	(add_stmt): Likewise.
	(prune_unused_decls): Likewise.
	(finish_stmt_tree): Likewise.

	Move statement-tree facilities from C++ to C front-end.
	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
	(void_zero_node): Remove.
	(stmt_tree): Likewise.
	(scope_chain): Adjust.
	(language_function): Rename to cp_language_function.
	(cp_function_chain): Adjust.
	(current_stmt_tree): Remove.
	(last_tree): Likewise.
	(last_expr_type): Likewise.
	(struct lang_decl): Adjust.
	(STMT_IS_FULL_EXPR_P): Remove.
	(add_tree): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(walk_tree_fn): Likewise.
	(walk_stmt_tree): Likewise.
	* class.c (finish_struct): Replace use of add_tree with add_stmt.
	* decl.c (mark_stmt_tree): Adjust type.
	(init_decl_processing): Don't build void_zero_node.
	(initialize_local_var): Adjust usage of current_stmt_tree.
	(finish_enum): Use add_stmt, not add_tree.
	(save_function_data): Adjust use of language_function.
	(finish_constructor_body): Use add_stmt, not add_tree.
	(finish_destructor_body): Likewise.
	(push_cp_function_context): Adjust use of language_function.
	(pop_cp_function_context): Likewise.
	(mark_lang_function): Likewise.
	(mark_cp_function_context): Likewise.
	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
	(build_vec_init): Likewise.
	* semantics.c (SET_LAST_STMT): Remove.
	(RECHAIN_STMTS): Don't use it.
	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
	(current_stmt_tree): Define.
	(add_tree): Remove.
	(finish_goto_stmt): Use add_stmt, not add_tree.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(finish_then_clause): Likewise.
	(begin_while_stmt): Likewise.
	(begin_do_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_break_stmt): Likewise.
	(finish_continue_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_case_label): Likewise.
	(begin_try_block): Likewise.
	(begin_function_try_block): Likewise.
	(begin_handler): Likewise.
	(begin_catch_block): Likewise.
	(begin_compound_stmt): Likewise.
	(begin_asm_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	(finish_label_stmt): Likewise.
	(add_decl_stmt): Likewise.
	(finish_subobject): Likewise.
	(finish_decl_cleanup): Likewise.
	(finish_named_return_value): Likewise.
	(setup_vtbl_ptr): Likewise.
	(add_scope_stmt): Likewise.
	(finish_stmt_expr): Likewise.
	(prune_unused_decls): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(prep_stmt): Adjust use of current_stmt_tree.
	(lang_expand_stmt): Likewise.
	* tree.c (statement_code_p): Remove.
	(cp_statement_code_p): New function.
	(walk_stmt_tree): Remove.
	(init_tree): Set lang_statement_code_p.

From-SVN: r36221
2000-09-07 01:36:11 +00:00
..
config
dbz
include
stdio
tests
testsuite
builtinbuf.cc
builtinbuf.h
ChangeLog editbuf.h (edit_streambuf): Fix syntax error in friend-declaration. 2000-08-18 10:20:52 +00:00
cleanup.c
config.shared
configure.in
depend
editbuf.cc
editbuf.h Move statement-tree facilities from C++ to C front-end. 2000-09-07 01:36:11 +00:00
filebuf.cc
filedoalloc.c
fileops.c
floatconv.c
floatio.h
fstream.cc
fstream.h
gen-params
genops.c
indstream.cc
indstream.h
ioassign.cc
ioextend.cc
iofclose.c
iofdopen.c
iofeof.c
ioferror.c
iofflush_u.c
iofflush.c
iofgetpos.c
iofgets.c
iofopen.c
iofprintf.c
iofputs.c
iofread.c
iofscanf.c
iofsetpos.c
ioftell.c
iofwrite.c
iogetc.c
iogetdelim.c
iogetline.c
iogets.c
ioignore.c
iolibio.h
iomanip.cc
iomanip.h
iopadn.c
ioperror.c
iopopen.c
ioprims.c
ioprintf.c
ioputc.c
ioputs.c
ioscanf.c
ioseekoff.c
ioseekpos.c
iosetbuffer.c
iosetvbuf.c
iosprintf.c
iosscanf.c
iostdio.h
iostream.cc
iostream.h
iostream.texi
iostreamP.h
iostrerror.c
ioungetc.c
iovfprintf.c
iovfscanf.c
iovsprintf.c
iovsscanf.c
isgetline.cc
isgetsb.cc
isscan.cc
istream.h
libio.h
libioP.h
Makefile.in
NEWS
osform.cc
ostream.h
outfloat.c
parsestream.cc
parsestream.h
peekc.c
pfstream.cc
pfstream.h
PlotFile.cc
PlotFile.h
procbuf.cc
procbuf.h
README
sbform.cc
sbgetline.cc
sbscan.cc
SFile.cc
SFile.h
stdfiles.c
stdiostream.cc
stdiostream.h
stdstrbufs.cc
stdstreams.cc
stream.cc
stream.h
streambuf.cc
streambuf.h
strfile.h
strops.c
strstream.cc
strstream.h

This is libio, the GNU C/C++ input/output library.

By default, the library is configured to build the C++ iostream
facility (in $libdir/libiostream.a).

The library can be configured to build the C stdio facility
that is part of a C run-time library.

This library is distributed with libg++; see ../libg++/README
for installation instructions, and where to send bug reports
and questions.

* Copyright restrictions

The files in this directory are generally covered by the GNU Public
License (which is in the file ../COPYING), but modified with the
following:

    As a special exception, if you link this library with files
    compiled with a GNU compiler to produce an executable, this does not cause
    the resulting executable to be covered by the GNU General Public License.
    This exception does not however invalidate any other reasons why
    the executable file might be covered by the GNU General Public License.

A few source files and subroutines are covered by other (but
less restrictive) copyright conditions.  E.g. some code (such
as iovfprintf.c) is based on software that was developed by the
University of California, Berkeley, for the Berkeley Software
Distribution (BSD-4.4), and bears their copyright;  and one
file (floatconv.c) is derived from ("free") code copyrighted AT&T.