Commit Graph

31 Commits

Author SHA1 Message Date
Jason Merrill
07b2f2fd6e c-common.h (RETURN_NULLIFIED_P): Lose.
* c-common.h (RETURN_NULLIFIED_P): Lose.
        * c-semantics.c (genrtl_return_stmt): Don't check it.

        Support named return value optimization for inlines, too.
        * decl.c (finish_function): Nullify returns here.
        * semantics.c (genrtl_start_function): Not here.
        (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
        (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
        Also nullify the CLEANUP_STMT for the nrv.
        * cp-tree.h: Declare it.
        * optimize.c (declare_return_variable): Replace the nrv with the
        return variable.
        * typeck.c (check_return_expr): Be more flexible on alignment check.
        Ignore cv-quals when checking for a matching type.

From-SVN: r44762
2001-08-10 10:01:33 -04:00
Jason Merrill
45dcf5727c * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
From-SVN: r44684
2001-08-07 07:21:24 -04:00
Kazu Hirata
ec5c56db8b alias.c: Fix comment formatting.
* alias.c: Fix comment formatting.
	* bitmap.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-dump.c: Likewise.
	* c-lex.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppfiles.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cppmacro.c: Likewise.
	* cppspec.c: Likewise.
	* c-pragma.c: Likewise.
	* crtstuff.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r44547
2001-08-01 17:57:27 +00:00
Jason Merrill
0d97bf4c2c Implement the Named Return Value optimization.
* c-common.h (RETURN_NULLIFIED_P): New macro.
        * c-semantics.c (genrtl_return_stmt): Check it.
        * cp-tree.h (struct cp_language_function): Add x_return_value.
        (current_function_return_value): Now a macro.
        * decl.c: Don't define it.
        (define_label, finish_case_label): Don't clear it.
        (init_decl_processing): Don't register it with GC.
        * semantics.c (genrtl_finish_function): Don't check it for
        no_return_label.  Copy the RTL from the return value to
        current_function_return_value and walk, calling...
        (nullify_returns_r): ...this new fn.
        * typeck.c (check_return_expr): Set current_function_return_value.

        * expr.c (clear_storage): Set TREE_NOTHROW on the decl for memset.
        (emit_block_move): Likewise.

From-SVN: r43445
2001-06-18 12:15:12 -04:00
Jason Merrill
91088ddb81 stmt.c (current_nesting_level): New fn.
* stmt.c (current_nesting_level): New fn.
        * tree.h: Declare it.
        * c-semantics.c (genrtl_compound_stmt): Use it.

        * dbxout.c (dbxout_symbol): Use DECL_RTL_SET_P.

From-SVN: r43037
2001-06-08 14:12:54 -04:00
Mark Mitchell
7b2b3f29e5 c-semantics.c (genrtl_scope_stmt): Write out nested inline functions here, instead of ...
* c-semantics.c (genrtl_scope_stmt): Write out nested inline
	functions here, instead of ...
	* c-decl.c (c_expand_body): ... here.

From-SVN: r42930
2001-06-06 03:08:21 +00:00
Nathan Sidwell
de8e49f383 c-semantics.c (add_scope_stmt): Don't call current_scope_stmt_stack multiple times.
* c-semantics.c (add_scope_stmt): Don't call
	current_scope_stmt_stack multiple times.

From-SVN: r41521
2001-04-24 08:25:56 +00:00
Nathan Sidwell
0ba8a114c7 Lazy __FUNCTION__ generation.
gcc:
	Lazy __FUNCTION__ generation.
	* c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
	RID_C99_FUNCTION_NAME): New _RIDs.
	(CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
	(CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
	CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
	global tree slots.
	(function_id_node, pretty_function_id_node, func_id_node): Remove.
	(c99_function_name_decl_node, function_name_decl_node,
	pretty_function_name_decl_node, saved_function_name_decls):
	Declare.
	(struct language_function): Remove x_function_name_declared_p.
	(make_fname_decl): Remove a parameter.
	(declare_function_names): Remove prototype.
	(start_fname_decls, finish_fname_decls): Prototype.
	(fname_as_string): Likewise.
	(fname_string, fname_decl): Likewise.
	* c-common.c (make_fname_decl): Adjust.
	(struct fname_var_t): New struct.
	(fname_vars): New static array.
	(declare_function_name): Remove.
	(start_fname_decls, finish_fname_decls): New functions.
	(fname_as_string): New function from remnants of
	declare_function_name.
	(fname_string, fname_decl): New functions.

	* c-decl.c (c_function_name_declared_p): Remove.
	(init_decl_processing): Don't generate __FUNCTION__ et al ids,
	don't call declare_function_name. Call start_fname_decls.
	(c_make_fname_decl): Adjust parameters. Generate the name. Don't
	clobber the line number. Call finish_decl.
	(start_function): Call start_fname_decls.
	(finish_function): Call finish_fname_decls.
	Remove c_function_name_declared_p.
	(push_c_function_context): Don't push c_function_name_declared_p.
	(pop_c_function_context): Don't pop c_function_name_declared_p.
	(c_begin_compound_stmt): Don't check c_function_name_declared_p.
	* c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
	(program): Call finish_fname_decls for C.
	(primary): Add VAR_FUNC_NAME.
	(reswords): Add slots for __FUNCTION__ et al.
	(rid_to_yy): Add mappings for __FUNCTION__ et al.
	(yylexname): If it's a STRING_FUNC_NAME generate the function name
	now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
	* c-semantics.c (prune_unused_decls): Remove.
	(finish_stmt_tree): Don't call prune_unused_decls.
	(genrtl_decl_stmt): Don't prune unused decls here.
cp:
	Lazy __FUNCTION__ generation.
	* cp-tree.def (FUNCTION_NAME): Remove.
	* cp-tree.h (function_name_declared_p): Remove.
	(cp_fname_init): Prototype.
	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
	don't call declare_function_name. Call start_fname_decls.
	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
	clobber the line number.
	(cp_fname_init): New function.
	(start_function): Call start_fname_decls.
	(finish_function): Call finish_fname_decls.
	* lex.c (reswords): Add slots for __FUNCTION__ et al.
	(rid_to_yy): Add mappings for __FUNCTION__ et al.
	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
	* parse.y (VAR_FUNC_NAME): New token.
	(primary): Add VAR_FUNC_NAME.
	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
	generation.
	(tsubst, FUNCTION_NAME case): Remove.
	(tsubst_copy, FUNCTION_NAME case): Remove.
	(tsubst_expr, DECL_STMT case): Be careful with a
	DECL_PRETTY_FUNCTION_P.
	(instantiate_decl): Remove function_name_declared_p.
	* semantics.c (begin_compound_statement): Don't call
	declare_function_name here.
	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
	(finish_translation_unit): Call finish_fname_decls.
	(expand_body): Remove function_name_declared_p.
	* typeck2.c (digest_init): Allow any ERROR_MARK.
testsuite:
	* gcc.dg/c99-func-2.c: Remove xfail.
	* gcc.dg/c99-func-3.c: Remove xfail.
	* gcc.dg/c99-func-4.c: Remove xfail.

From-SVN: r41520
2001-04-24 08:22:06 +00:00
Kaveh R. Ghazi
d6684bc856 Makefile.in (ifcvt.o): Depend on toplev.h.
* Makefile.in (ifcvt.o): Depend on toplev.h.

	* c-semantics.c: Include expr.h.

	* ifcvt.c: Include toplev.h.

	* expr.h (rtx_equal_p): Delete prototype.

	* rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
	protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
	eliminate_constant_term, expand_complex_abs, find_single_use,
	make_tree, init_expr_once, init_optabs, supports_one_only):
	Likewise.

	* tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
	rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
	expand_assignment, store_expr, emit_line_note_after,
	emit_line_note_force, split_specs_attrs, label_rtx): Likewise.

	* toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.

cp:
	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).

	* semantics.c: Include expr.h.

java:
	* Make-lang.in (java/boehm.o): Depend on toplev.h.

	* boehm.c: Include toplev.h.

From-SVN: r41256
2001-04-11 15:51:55 +00:00
Mark Mitchell
b850de4faa c-common.h (DECL_NUM_STMTS): New macro.
* c-common.h (DECL_NUM_STMTS): New macro.
	* c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
	DECL_FRAME_SIZE.
	(pushdecl): Likewise.
	* c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
	* integrate.c (expand_inline_function): Don't check
	DECL_FRAME_SIZE.
	* print-tree.c (print_node): Don't print it.
	* toplev.c (rest_of_compilation): Don't try to inline when
	flag_no_inline is on.
	* tree.h (DECL_FRAME_SIZE): Remove.
	(tree_decl): Adjust accordingly.

	* Makefile.in (optimize.o): Depend on params.h.
	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
	(init_decl_processing): Set flag_no_inline when doing
	inlining-on-trees.
	* optimize.c: Include params.h.
	(struct inline_data): Improve documentation of FNS.  Add
	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
	(INSNS_PER_STMT): New macro.
	(remap_block): Use CLONING_P.
	(inlinable_function_p): Don't inline big functions.
	(expand_call_inline): Keep track of how much inlining we've done.
	(optimize_function): Set FIRST_INLINED_FN.
	(maybe_clone_body): Set CLONING_P.
	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
	tree nodes.
	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
	rest_of_compilation.  Clear DECL_RTL for local variables
	afterwards.
	(clear_decl_rtl): New function.

	* com.c (duplicate_decls): Don't copy DECL_FRAME_SIZE.

	* parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.

From-SVN: r40859
2001-03-27 02:17:48 +00:00
Mark Mitchell
19e7881c81 varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME...
* varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the
	contents of the RTL, to determine the name of the object.

	* tree.h (DECL_RTL): Allocate RTL lazily.
	(SET_DECL_RTL): New macro.
	(DECL_RTL_SET_P): Likewise.
	(COPY_DECL_RTL): Likewise.
	(DECL_RTL_IF_SET): Likewise.
	* varasm.c (make_decl_rtl): Add assertions about the kind of
	declaration we are processing.
	* c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
	(start_decl): Likewise.
	(finish_decl): Likewise.
	* c-semantics.c (emit_local_var): Likewise.
	* calls.c (expand_call): Likewise.
	* dbxout.c (dbxout_symbol): Likewise.
	* emit-rtl.c (unshare_all_rtl): Likewise.
	(unshare_all_decls): Likewise.
	(reset_used_decls): Likewise.
	* expr.c (store_constructor): Likewise.
	(safe_from_p): Likewise.
	(expand_expr): Likewise.
	* function.c (put_var_into_stack): Likewise.
	(instantiate_decls_1): Likewise.
	(assign_parms): Likewise.
	(expand_function_start): Likewise.
	(expand_function_end): Likewise.
	* ggc-common.c (gcc_mark_trees): Likewise.
	* integrate.c (function_cannot_inline_p): Likewise.
	(copy_decl_for_inlining): Likewise.
	(expand_inline_function): Likewise.
	(integrate_parm_decls): Likewise.
	(integrate_decl_tree): Likewise.
	* print-tree.c (print_node): Likewise.
	* reg-stack.c (stack_result): Likewise.
	* stmt.c (label_rtx): Likewise.
	(expand_return): Likewise.
	(expand_decl): Likewise.
	(expand_decl_cleanup): Likewise.
	(expand_anon_union_decl): Likewise.
	* toplev.c (check_global_declarations): Likewise.
	(rest_of_decl_compilation): Likewise.
	* tree.c (simple_cst_equal): Likewise.
	* objc/objc-act.c (generate_static_references): Likewise.

	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
	* decl.c (duplicate_decls): Likewise.
	(builtin_function): Likewise.
	(build_library_fn): Likewise.
	(build_cp_library_fn): Likewise.
	(check_initializer): Likewise.
	(cp_finish_decl): Likewise.
	* decl2.c (grokfield): Likewise.
	(grok_function_init): Remove #if 0'd code.
	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
	* friend.c (do_friend): Likewise.
	* init.c (get_temp_regvar): Likewise.
	* method.c (make_thunk): Likewise.
	* pt.c (tsubst_friend_function): Likewise.
	(tsubst_decl): Likewise.
	(regenerate_decl_from_template): Likewise.
	* semantics.c (genrtl_named_return_value): Likewise.
	(expand_body): Likewise.
	(genrtl_finish_function): Likewise.
	* tree.c (cp_tree_equal): Likewise.

	* com.c (ffecom_member_phase_2): Use COPY_DECL_RTL,
	DECL_RTL_SET_P, etc.
	(duplicate_decls): Likewise.
	(start_decl): Likewise.

	* class.c (build_static_field_ref): Likewise.
	(make_method_value): Likewise.
	(get_dispatch_table): Likewise.

	* decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.

From-SVN: r40482
2001-03-15 02:51:03 +00:00
Richard Kenner
e92044c316 Whitespace change
From-SVN: r40292
2001-03-07 08:55:30 -05:00
Diego Novillo
5aa709ad7e c-semantics.c (prune_unused_decls): Return error_mark_node instead of (tree) 1 to stop traversing the tree chain.
2001-03-01  Diego Novillo  <dnovillo@redhat.com>

	* c-semantics.c (prune_unused_decls): Return error_mark_node
	instead of (tree) 1 to stop traversing the tree chain.

From-SVN: r40166
2001-03-01 18:11:05 -05:00
Diego Novillo
87aee676f2 c-common.c (walk_stmt_tree): Visit the chain of the current tree even if walk_subtrees is 0.
2001-02-27  Diego Novillo  <dnovillo@redhat.com>

	* c-common.c (walk_stmt_tree): Visit the chain of the current tree
	even if walk_subtrees is 0.
	* c-semantics.c (prune_unused_decls): Return a non-null value to
	stop traversing the tree chain.

From-SVN: r40106
2001-02-27 20:25:42 -05:00
Richard Henderson
4f78b9a896 c-common.h (ASM_INPUT_P): New.
* c-common.h (ASM_INPUT_P): New.
        * c-parse.in (asm): Set it when needed.
        * c-semantics.c (genrtl_asm_stmt): Test it instead of the
        existance of an operand.

        * cp/parse.y (asm): Set ASM_INPUT_P.

From-SVN: r38638
2001-01-02 15:49:45 -08:00
Richard Henderson
64094f6a65 c-typeck.c (build_asm_stmt): New, broken out from ...
* c-typeck.c (build_asm_stmt): New, broken out from ...
        (c_expand_asm_operands): ... here.  Just do rtl expansion.
        (c_expand_return): Return the new stmt node.
        (c_start_case, do_case): Likewise.
        * c-common.c (c_expand_expr_stmt): Likewise.
        * c-common.h: Update declarations.
        * c-tree.h: Likewise.
        * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
        * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace.
        (nested_function, notype_nested_function): Likewise.
        (compstmt): Return the compound statement not the binding level.
        (lineno_labeled_stmt): Simplify.
        (lineno_stmt, lineno_label): Set STMT_LINENO.
        (stmt, label): Return the new stmt node.

From-SVN: r38402
2000-12-20 10:18:24 -08:00
Richard Henderson
3645c4dc1c c-common.h (DECL_C_HARD_REGISTER): New.
* c-common.h (DECL_C_HARD_REGISTER): New.
        * c-decl.c (finish_decl): Set it for asm register variables.
        * c-semantics.c (emit_local_var): Test it when instantiating one.

From-SVN: r37748
2000-11-25 16:40:46 -08:00
Mark Mitchell
0a7394bc1a Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
* Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
	(c-dump.o): New target.
	* c-common.h (flag_dump_translation_unit): New variable.
	(C_TYPE_QUALS): New macro.
	(strip_array_types): New function.
	(DECL_C_BIT_FIELD): New macro.
	(SET_DECL_C_BIT_FIELD): Likewise.
	(CLEAR_DECL_C_BIT_FIELD): Likewise.
	(dump_info_p): New typedef.
	(dump_tree_fn): Likewise.
	(lang_dump_tree): New variable.
	(dump_node_to_file): New function.
	* c-common.c (flag_dump_translation_unit): Define it.
	(strip_array_types): New function.
	* c-decl.c (c_decode_option): Handle -fdump-translation-unit.
	* c-lang.c (finish_file): Call dump_node_to_file if
	flag_dump_translation_unit.
	* c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
	* c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
	* c-dump.c: New file.

	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
	(dump.o): Update dependency list.
	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
	(flag_dump_translation_unit): Likewise.
	(CP_TYPE_QUALS): Adjust definition.
	(DECL_C_BIT_FIELD): Remove.
	(SET_DECL_C_BIT_FIELD): Likewise.
	(CLEAR_DECL_C_BIT_FIELD): Likewise.
	(add_maybe_template): Likewise.
	(strip_array_types): Likewise.
	(dump_node_to_file): Likewise.
	(cp_dump_tree): New function.
	* decl.c (init_decl_processing): Set lang_dump_tree.
	* decl2.c (flag_dump_translation_unit): Remove.
	* dump.c: Move most of it to ../c-dump.c.
	(cp_dump_tree): New function.
	* pt.c (add_maybe_template): Remove.
	* typeck.c (strip_array_types): Likewise.

From-SVN: r37358
2000-11-10 04:29:45 +00:00
Richard Henderson
f0de0c5d17 stmt.c (expand_start_null_loop): New.
* stmt.c (expand_start_null_loop): New.
        (expand_end_null_loop): New.
        * c-semantics.c (genrtl_do_stmt): Use them.
        * tree.h: Declare them.

From-SVN: r37186
2000-11-01 02:28:32 -08:00
Richard Henderson
5f10ef5bac c-semantics.c (genrtl_do_stmt): Use integer_zerop instead of integer_zero_node.
* c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
        of integer_zero_node.

From-SVN: r37178
2000-10-31 17:48:12 -08:00
Richard Henderson
d599b81f46 * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
From-SVN: r37177
2000-10-31 17:31:06 -08:00
Mark Mitchell
2c21b2473c c-semantics.c (make_rtl_for_local_static): Don't clobber DECL_ASSEMBLER_NAME.
* c-semantics.c (make_rtl_for_local_static): Don't clobber
	DECL_ASSEMBLER_NAME.

From-SVN: r37112
2000-10-29 02:26:16 +00:00
Mark Mitchell
8f17b5c5cb splay-tree.c (splay_tree_predecessor): Fix typo in comment.
* splay-tree.c (splay_tree_predecessor): Fix typo in comment.

	Convert the C front-end to use function-at-a-time mode.
	* c-common.h: Include splay-tree.h.
	(C_DECLARED_LABEL_FLAG): New macro.
	(struct language_function): Add x_scope_stmt_stack and
	x_function_name_declared_p.
	(RECHAIN_STMTS): Move definition.
	(lang_statment_code_p): Likewise.
	(lang_expand_stmt): Likewise.
	(lang_expand_decl_stmt): New variable.
	(lang_expand_function_end): Likewise.
	(current_scope_stmt_stack): New function.
	(add_decl_stmt): Likewise.
	(add_scope_stmt): Likewise.
	(mark_stmt_tree): Likewise.
	(struct c_lang_decl): New structure.
	(DECL_SAVED_TREE): Define.
	(c_mark_lang_decl): New function.
	(c_expand_start_cond): Change prototype.
	(c_finish_then): New function.
	(c_finish_else): Likewise.
	(current_function_name_declared): Remove.
	(set_current_function_name_declared): Likewise.
	(mark_c_language_function): Declare.
	(case_compare): Likewise.
	(c_add_case_label): Likewise.
	(c_expand_expr): Likewise.
	(c_safe_from_p): Likewise.
	* c-common.c (lang_expand_function_end): New variable.
	(struct if_elt): Add if_stmt.
	(c_expand_start_cond): Add the if-statement to the statement-tree,
	rather than generating RTL.
	(c_finish_then): New function.
	(c_expand_start_else): Don't generate RTL.
	(c_finish_else): New function.
	(c_expand_expr_stmt): Don't generate RTL.
	(statement_code_p): Add SCOPE_STMT.
	(case_compare): New function.
	(c_add_case_label): Likewise.
	(mark_stmt_tree): Likewise.
	(c_mark_lang_decl): Likewise.
	(mark_c_language_function): Likewise.
	(c_expand_expr): Likewise.
	(c_safe_from_p): Likewise.
	* c-decl.c (c_stmt_tree): New variable
	(c_scope_stmt_stack): Likewise.
	(c_function_name_declared_p): Likewise.
	(lang_expand_expr_stmt): Remove.
	(poplevel): Don't call output_inline_function for nested
	functions.
	(pushdecl): Don't set DECL_CONTEXT for a local declaration of an
	`extern' function.
	(redeclaration_error_message): Change means of computing whether
	or not a function is nested.
	(lookup_label): Don't call label_rtx.
	(init_decl_processing): Add more GC roots.
	(start_decl): Add DECL_STMTs to the statement-tree, rather than
	calling rest_of_decl_compilation.
	(finish_decl): Don't call expand_decl.
	(store_parm_decls): Begin the statement-tree, but don't generate
	RTL.
	(finish_function): Tie off the statement-tree.  Call c_expand_body
	if appropriate.
	(c_expand_body): New function.
	(push_c_function_context): Save more information.
	(pop_c_function_contxt): Likewise.
	(copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
	(lang_mark_tree): Mark it.
	(current_stmt_tree): Adjust.
	(current_scope_stmt_stack): New function.
	(do_case): Remove.
	(set_current_name_declared): Likewise.
	(c_begin_compound_stmt): Define.
	(c_expand_decl_stmt): Likewise.
	* c-lang.c: Include rtl.h and expr.h.
	(lang_init): Set more language-specific hooks.
	* c-lex.c: Include expr.h.
	* c-parse.in: Changes throughout to add statements to the
	statement-tree, rather than generating RTL after every statement.
	* c-semantics.c (lang_expand_decl_stmt): Define.
	(add_decl_stmt): New function.
	(add_scope_stmt): Likewise.
	(finish_stmt_tree): Tweak.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Handle local labels, and call
	lang_expand_decl_stmt if required.
	(genrtl_for_stmt): Fix line-number handling.
	(genrtl_case_label): Handle cleanups.
	(genrtl_asm_stmt): Don't call combine_strings.
	(genrtl_compound_stmt): Simplify.
	(expand_stmt): Handle SCOPE_STMTs.
	* c-tree.h (struct lang_decl): New structure.
	(C_DECLARED_LABEL_FLAG): Remove.
	(c_begin_compound_stmt): Declare.
	(c_expand_decl_stmt): Likewise.
	(c_expand_start_case): Rename to c_start_case.
	(c_finish_case): New function.
	* c-typeck.c (start_init): Tweak setting of
	constructor_incremental.
	(c_expand_asm_operands): Tweak error-handling.  Add to the
	statement-tree.
	(c_expand_return): Add to the statement-tree.
	(c_expand_start_case): Rename to ...
	(c_start_case): ... this.
	(struct c_switch): New type.
	(switch_stack): New variable.
	(do_case): Simplify.
	(c_finish_case): New function.
	* dependence.c: Include expr.h.
	(enum dependence_type): Change spelling of enumerals.
	(check_node_dependence): Adjust.
	* expr.h (lang_safe_from_p): Declare.
	(safe_from_p): Likewise.
	* expr.c (lang_safe_from_p): New variable.
	(safe_from_p): Give it external linkage.  Use lang_safe_from_p.
	* stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
	* toplev.c (rest_of_decl_compilation): Robustify.
	* tree.c (contains_placeholder_p): Likewise.
	* Makefile.in: Update dependencies.
	* objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
	* objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
	(objc_expand_function_end): New function.
	(finish_method_def): Use it.
	(init_objc): Initialize more language-specific hooks.
	* objc/Make-lang.in: Update dependencies.

	* cp-tree.h (struct cp_language_function): Remove
	x_scope_stmt_stack and name_declared.
	(current_scope_stmt_stack): Remove.
	(function_name_declared_p): New macro.
	(struct lang_decl_flags): Use c_lang_decl as a base class.
	(context): Remove.
	(struct lang_decl): Replace saved_tree with context.
	(DECL_FRIEND_CONTEXT): Adjust accordingly.
	(SET_DECL_FRIEND_CONTEXT): Likewise.
	(DECL_VIRTUAL_CONTEXT): Likewise.
	(DECL_SAVED_TREE): Remove.
	(C_DECLARED_LABEL_FLAG): Likewise.
	(cplus_expand_expr_stmt): Don't declare.
	(add_decl_stmt): Likewise.
	(add_scope_stmt): Likewise.
	* decl.c (mark_stmt_tree): Remove.
	(case_compare): Likewise.
	(finish_case_label): Use c_add_case_label.
	(init_decl_processing): Set more language-specific hooks.
	(build_enumerator): Fix typo in comment.
	(cplus_expand_expr_stmt): Remove.
	(mark_lang_function): Use mark_c_language_function.
	(lang_mark_tree): Use c_mark_lang_decl.
	* decl2.c: Change order of inclusion.
	* except.c: Likewise.
	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
	back on c_expand_expr.
	* friend.c: Include expr.h.
	* init.c: Change order of inclusion.
	* Makefile.in: Update dependencies.
	* lex.h (free_lang_decl_chain): Remove.
	* optimize.c (maybe_clone_body): Use function_name_declared_p.
	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
	it doesn't exist.
	(instantiate_decl): Use function_name_declared_p.
	* semantics.c (lang_expand_expr_stmt): Remove.
	(set_current_function_name_declared): Likewise.
	(current_function_name_declared): Likewise.
	(begin_compound_stmt): Use function_name_declared_p.
	(add_decl_stmt): Remove.
	(setup_vtbl_ptr): Use function_name_declared_p.
	(add_scope_stmt): Remove.
	(current_scope_stmt_stack): New function.
	(cp_expand_stmt): Don't handle SCOPE_STMTs.
	(expand_body): Use function_name_declared_p.
	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
	* typeck.c: Change order of includes.
	(convert_sequence): Remove.

From-SVN: r36464
2000-09-17 07:38:23 +00:00
Mark Mitchell
57939159aa c-common.h (genrtl_clear_out_block): Remove.
* c-common.h (genrtl_clear_out_block): Remove.
	* c-semantics.c (genrtl_clear_out_block): Remove.
	(genrtl_while_stmt): Don't call it.
	(genrtl_for_stmt): Likewise.

From-SVN: r36360
2000-09-12 14:29:45 +00:00
Mark Mitchell
56cb97339b c-common.h (add_stmt): Change prototype.
* c-common.h (add_stmt): Change prototype.
	(RECHAIN_STMTS): New macro.
	(CASE_LABEL_DECL): Likewise.
	(genrtl_case_label): Change prototype.
	(c_expand_start_case): Remove prototype.
	(build_case_label): Change prototype.
	(decl_constant_value): Declare.
	* c-common.c (check_case_value): Handle C++'s extensions to C
	semantics.
	* c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
	field.
	* c-parse.in (stmt): Adjust handling of return statements and case
	laels.
	* c-semantics.c (add_stmt): Return the new statement.
	(genrtl_return_stmt): Take the RETURN_STMT as input, not the
	returned expression.  Directly generate RTL, rather than calling
	c_expand_return.
	(genrtl_switch_stmt): Don't call c_expand_start_case.
	(build_case_label): Take the LABEL_DECL as input, too.
	(genrtl_case_label): Just call add_case_node.
	(expand_stmt): Adjust calls to genrtl_return_stmt and
	genrtl_case_label.
	* c-tree.h (c_expand_start_case): Declare.
	* c-typeck.c (decl_constant_value): Give it external linkage.
	(c_expand_return): Don't call expand_return or expand_null_return;
	use genrtl_return_stmt instead.
	* stmt.c (struct nesting): Remove num_ranges field.
	(add_case_node): Give it external linkage.
	(expand_start_case): Don't set num_ranges.
	(expand_start_case_dummy): Don't clear it.
	(pushcase): Rely on add_case_node to handle `default' labels.
	(add_case_node): Handle `default' labels.
	* tree.c (tree_int_cst_compare): New function.
	* tree.h (tree_int_cst_compare): Declare.
	(add_case_node): Likewise.

	* cp-tree.h (push_switch): Change prototype.
	(check_cp_case_value): Remove declaration.
	(decl_constant_value): Likewise.
	* decl.c (struct cp_switch): Add switch_stmt and cases.
	(case_compare): New function.
	(push_switch): Set switch_stmt.  Initialize cases.
	(pop_switch): Clean up cases.
	(define_case_label): Rename to ...
	(finish_case_label): ... this.  Do semantic analysis for case
	labels here.
	(start_function): Correct comment.
	* decl2.c (check_cp_case_value): Remove.
	* expr.c (do_case): Remove.
	* pt.c (tsubst_expr): Adjust call to finish_case_label.
	* semantics.c (genrtl_do_poplevel): Remove declaration.
	(RECHAIN_STMTS): Remove.
	(finish_break_stmt): Use build_break_stmt.
	(finish_continue_stmt): Use build_continue_stmt.
	(finish_switch_cond): Adjust condition here, rater than in
	c_expand_start_case.
	(finish_case_label): Remove.
	* typeck.c (c_expand_return): Remove.
	(c_expand_start_case): Likewise.

From-SVN: r36305
2000-09-10 21:34:41 +00:00
Mark Mitchell
54f7877c8b c-common.h (prep_stmt): Declare.
* c-common.h (prep_stmt): Declare.
	(lang_expand_stmt): Likewise.
	* c-decl.c (lang_expand_stmt): Remove.
	* c-semantics.c (lang_expand_stmt): Define.
	(prep_stmt): New function.
	(expand_stmt): Handle common statement types here.

	* cp-tree.h (init_cp_semantics): Declare.
	(genrtl_try_block): Don't declare.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	* lex.c (init_parse): Call init_cp_semantics.
	* semantics.c (genrtl_try_block): Give it internal linkage.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	(lang_expand_stmt): Rename to ...
	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
	(init_cp_semantics): Define.

From-SVN: r36229
2000-09-07 06:55:51 +00:00
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
Mark Mitchell
95ee998ceb c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN to figure out whether or not a variable has already been...
* c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
	to figure out whether or not a variable has already been emitted.

	* decl.c (make_rtl_for_nonlocal_decl): Rework.

	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
	correctly.

From-SVN: r35215
2000-07-23 19:59:41 +00:00
Benjamin Chelf
0dfdeca6e0 c-common.h (build_stmt): Declare.
2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>

	* c-common.h (build_stmt): Declare.
	(build_continue_stmt): Likewise.
	(build_break_stmt): Likewise.
	(build_return_stmt): Likewise.

	* c-decl.c (do_case): Rewrite to do what previously done in
	c-parse.in.

	* c-semantics.c (build_stmt): Define.
	(build_return_stmt): Likewise.
	(build_break_stmt): Likewise.
	(build_continue_stmt): Likewise.
	(build_case_label): Likewise.

	* c-parse.in (BREAK): Change to build tree, then generate RTL.
	(CONTINUE): Likewise.
	(RETURN): Likewise.
	(CASE): Likewise.
	(DEFAULT): Likewise.

	* c-parse.y: Regenerate.
	* c-pasre.c: Likewise.

	* cp/semantics.c (finish_for_stmt): Remove call to emit_line_note.
	(finish_continue_stmt): Likewise.
	(begin_for_stmt): Remove call to note_level_for_for.
	(finish_goto_stmt): Change call from build_min_nt
	to build_stmt.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(begin_while_stmt): Likewise.
	(finish_while_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_for_stmt): Likewise.
	(finish_break_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_case_label): Likewise.
	(genrtl_try_block): Likewise.
	(begin_try_block): Likewise.
	(begin_handler): Likewise.
	(begin_compound_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.
	* cp/decl.c (finish_constructor_body): Likewise.
	(finish_destructor_body): Likewise.
	* cp/optimize.c (copy_body_r): Likewise.
	(initialize_inlined_parameters): Likewise.
	(declare_return_variable): Likewise.
	(expand_call_inline): Likewise.

From-SVN: r34943
2000-07-10 03:56:23 -07:00
Benjamin Chelf
4cf88f570a c-common.h (genrtl_begin_compound_stmt): Remove declaration.
2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>

	* c-common.h (genrtl_begin_compound_stmt): Remove declaration.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Change to return void.

	* c-semantics.c (genrtl_begin_compound_stmt): Remove function and
	move code from here to ...
	(genrtl_compound_stmt): ... here.
	(genrtl_finish_compound_stmt): Remove.
	(expand_stmt): Add comment.

	* cp/cp-tree.h (genrtl_goto_stmt): Remove declaration.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.

	* cp/init.c (begin_init_stmts): Remove call to
	genrtl_begin_compound_stmt.
	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.

	* cp/semantics.c (lang_expand_stmt): Changed call to
	genrtl_compound_stmt to ignore return value.

From-SVN: r34837
2000-07-02 20:55:23 -07:00
Ben Chelf
f2c5f623b0 Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>

	* Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
	(c-semantics.o): New target.

	* c-common.h (TREE_LANG_FLAG_?): Added documentation.
	(genrtl_do_pushlevel): Moved from cp/cp-tree.h.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(gerntl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(DECL_ANON_UNION_ELEMS): Likewise.
	(emit_local_var): Likewise.
	(make_rtl_for_local_static): Likewise.
	(expand_cond): Likewise.
	(expand_stmt): Likewise.
	(c_expand_return): Likewise.
	(c_expand_start_case): Likewise.
	(do_case): Likewise.
	(COMPOUND_STMT_NO_SCOPE): Likewise.
	(c_expand_asm_operands): Likewise.
	(NEW_FOR_SCOPE_P): New macro.
	(expand_expr_stmt_fn): New type.

	(set_current_function_name_declared): Likewise.
	(current_function_name_declared): Likewise.
	(lang_expand_stmt): Likewise.
	(stmts_are_full_exprs_p): Likewise.
	(anon_aggr_type_p): Likewise.
	(lang_expand_expr_stmt): Likewise.
	(build_case_label): Likewise.

	* c-decl.c (lang_expand_expr_stmt): Initialize.
	(stmts_are_full_exprs_p): Define.
	(current_function_name_declared): Likewise.
	(do_case): Likewise.
	(lang_expand_stmt): Likewise.
	(set_current_function_name_declared): Likewise.
	(anon_aggr_type_p): Likewise.
	(build_case_label): Likewise.

	* c-semantics.c: New file.
	(expand_cond): Moved from cp/semantics.c.
	(genrtl_do_pushlevel): Likewise.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(make_rtl_for_local_static): Moved from cp/decl.c.
	(emit_local_var): Likewise.
	(expand_stmt): Define.

	* c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
	(c_expand_return): Likewise.
	(c_expand_start_case): Likewise.

        * cp/Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.

	* cp/Makefile.in (OBJS): Added ../c-semantics.o.
	(OBJDEPS): Likewise.

	* cp/cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
	../c-common.h.
	(struct stmt_tree): Added comment.
	(current_function_name_declared): Removed.
	(stmts_are_full_exprs_p): Likewise.
	(genrtl_do_pushlevel): Likewise.
	(genrtl_clear_out_block): Likewise.
	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
	(DECL_ANON_UNION_ELEMS): Likewise.
	(emit_local_var): Likewise.
	(make_rtl_for_local_static): Likewise.
	(do_case): Likewise.
	(expand_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(c_expand_asm_operands): Likewise.
	(c_expand_return): Likewise.
	(c_expand_start_case): Likewise.

	* cp/decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
	(emit_local_var): Likewise.
	(initialize_local_var): Change reference to
	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
	Change reference to stmts_are_full_exprs_p to
	current_stmt_tree->stmts_are_full_exprs_p.
	(push_cp_function_context): Likewise.

	* cp/expect.c (expand_throw): Change reference to
	stmts_are_full_exprs_p.

	* cp/init.c (build_aggr_init): Change reference to
	stmts_are_full_exprs_p.
	(build_vec_init): Likewise.

	* cp/optimize.c (maybe_clone_body): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared.

	* cp/pt.c (instantiate_decl): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared.

	* cp/semantics.c (expand_cond): Moved declaration to c-common.h.
	(genrtl_do_pushlevel): Moved to c-semantics.c.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(gerntl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(expand_cond): Likewise.
	(expand_stmt): Renamed to ...
	(lang_expand_stmt): ... this.
	(lang_expand_expr_stmt): Initialize.
	(set_current_function_name_declared): Likewise.
	(stmts_are_full_exprs_p): Likewise.
	(current_function_name_declared): Likewise.
	(anon_aggr_type_p): Likewise.
	(do_poplevel): Change reference to
	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
	Change reference to stmts_are_full_exprs_p to
	current_stmt_tree->stmts_are_full_exprs_p.
	(add_tree): Likewise.
	(finish_expr_stmt): Likewise.
	(prep_stmt): Likewise.
	(lang_expand_stmt): Likewise.
	(begin_compound_stmt): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared and call to
	current_function_name_declared().
	(setup_vtbl_ptr): Likewise.
	(genrtl_do_poplevel): Removed.

From-SVN: r34827
2000-07-01 22:23:01 -07:00