* 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 |
||
---|---|---|
.. | ||
config | ||
dbz | ||
include | ||
stdio | ||
tests | ||
testsuite | ||
ChangeLog | ||
Makefile.in | ||
NEWS | ||
PlotFile.cc | ||
PlotFile.h | ||
README | ||
SFile.cc | ||
SFile.h | ||
builtinbuf.cc | ||
builtinbuf.h | ||
cleanup.c | ||
config.shared | ||
configure.in | ||
depend | ||
editbuf.cc | ||
editbuf.h | ||
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.c | ||
iofflush_u.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 | ||
osform.cc | ||
ostream.h | ||
outfloat.c | ||
parsestream.cc | ||
parsestream.h | ||
peekc.c | ||
pfstream.cc | ||
pfstream.h | ||
procbuf.cc | ||
procbuf.h | ||
sbform.cc | ||
sbgetline.cc | ||
sbscan.cc | ||
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 |
README
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.