Commit Graph

24107 Commits

Author SHA1 Message Date
Mark Mitchell
5868eb4e0a decl.c (add_decl_to_level): Remove TREE_PERMANENT assertion.
* decl.c (add_decl_to_level): Remove TREE_PERMANENT assertion.
	(init_decl_processing): Don't set TREE_PERMANENT for the
	error_mark_node.
	(start_decl): Don't rebuild non-permanent ARRAY_TYPEs.
	(grokdeclarator): Likewise.
	(grokparms): Don't check TREE_PERMANENT when building up lists.
	* decl2.c (grokfield): Don't assert TREE_PERMANENT.
	(mark_inline_for_output): Likewise.
	* expr.c (cplus_expand_expr): Don't check TREE_PERMANENT.
	* init.c (build_offset_ref): Don't check TREE_PERMANENT.
	* lex.c (check_newline): Don't check ggc_p; it is always one.
	* pt.c (process_template_parm): Don't check TREE_PERMANENT.
	* spew.c (yylex): Don't copy_node or probe_obstacks for
	non-permanent CONSTANTs and STRINGs.
	* tree.c (build_cplus_array_type_1): Don't fuss with
	TREE_PERMANENT on ARRAY_TYPEs.

From-SVN: r29350
1999-09-12 02:45:30 +00:00
Richard Henderson
1ccbefcef2 Replace recog_foo with recog_data.foo.
From-SVN: r29349
1999-09-11 18:51:28 -07:00
Mark Mitchell
24bef15854 cp-tree.def (CLEANUP_STMT): New node.
* cp-tree.def (CLEANUP_STMT): New node.
	* cp-tree.h (language_function): Add name_declared.
	(current_function_name_declared): New macro.
	(CLEANUP_DECL): New macro.
	(CLEANUP_EXPR): Likewise.
	(emit_local_var): Likewise.
	(finish_decl_cleanup): New function.
	* cvt.c (build_up_reference): Simplify.
	(ocp_convert): Remove dead code.
	* decl.c (start_decl): Remove call to add_decl_stmt.
	(grok_reference_init): Adjust, to handle bindings temporaries to
	references.  Remove dead code.
	(initialize_local_var): Don't generate RTL for
	declarations here, or build cleanups here.  Don't fuss with
	obstacks.  Replace expand_start_target_temps calls with explicit
	setting of stms_are_full_exprs_p.
	(destroy_local_var): New function.
	(emit_local_var): Likewise.
	(cp_finish_decl): Use them, as appropriate.
	(start_function): Announce template functions.
	(store_parm_decls): Don't call declare_function_name here.
	(finish_stmt): Don't start emit base-initialization code when just
	building the statement-tree.
	* init.c (create_temporary_var): Move add_decl_stmt call ...
	(get_temp_regvar): Here.
	* pt.c (tsubst_expr): Make DECL_INITIAL look like what
	cp_finish_decl would expect.  Don't call add_decl_stmt.
	* semantics.c (begin_compound_stmt): Call declare_function_name,
	if appropriate.
	(finish_decl_cleanup): New function.
	(expand_stmt): Use emit_local_var to output variables.
	(expand_body): Set current_funtion_name_declared.

From-SVN: r29348
1999-09-12 01:12:59 +00:00
Alexandre Petit-Bianco
fcf6eeb628 class.c (finish_class): We're now outside a valid method declaration.
Thu Sep  9 17:33:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * class.c (finish_class): We're now outside a valid method
        declaration. Tell the rest of gcc so.

From-SVN: r29347
1999-09-11 15:22:57 -07:00
Craig Burley
697f6b2ff5 New shell scripts to ease dealing with Netlib f2c vis-a-vis g77 libg2c
From-SVN: r29346
1999-09-11 17:53:17 -04:00
Zack Weinberg
07095a8b8f Remove trailing whitespace from lines
From-SVN: r29283
1999-09-11 21:13:01 +00:00
Richard Henderson
a611912f13 Update copyright.
From-SVN: r29282
1999-09-11 12:50:42 -07:00
Alex Samuel
b49a6a907c Alex Samuel <samuel@codesourcery.com>
* ggc.h (rtvec_def): Forward declare.
        (tree_node): Likewise.
        (ggc_root): Define.
        (roots): Declare.
        (ggc_set_mark_rtx): Add prototype.
        (ggc_set_mark_rtvec): Likewise.
        (ggc_set_mark_tree): Likewise.
        * ggc-simple.c (ggc_root): Don't define.
        (roots): Don't declare.
        (ggc_mark_rtx): Remove.
        (ggc_mark_rtvec): Likewise.
        (ggc_mark_tree): Likewise.
        (ggc_mark_varray): Likewise.
        (ggc_mark_tree_hash_table_entry): Likewise.
        (ggc_mark_tree_hash_table): Likewise.
        (ggc_set_mart_rtx): New function.
        (ggc_set_mark_rtvec): Likewise.
        (ggc_set_mark_tree): Likewise.
        (ggc_add_root): Remove.
        (ggc_add_rtx_root): Likewise.
        (ggc_remove_tree_root): Likewise.
        (ggc_add_string_root): Likewise.
        (ggc_add_tree_varray_root): Likewise.
        (ggc_add_tree_hash_table_root): Likewise.
        (ggc_del_root): Likewise.
        (ggc_mark_rtx_ptr): Likewise.
        (ggc_mark_tree_ptr): Likewise.
        (ggc_mark_string_ptr): Likewise.
        (ggc_mark_tree_varray_ptr): Likewise.
        (ggc_mark_tree_hash_table_ptr): Likewise.
        * ggc-common.c: New file.
        * Makefile.in (OBJS): Add ggc-common.o.
        (ggc-common.o): List dependencies.

From-SVN: r29281
1999-09-11 12:48:37 -07:00
Jeff Law
61efc8c246 Daily bump.
From-SVN: r29280
1999-09-11 01:45:09 -06:00
Zack Weinberg
6ee2c97942 cppalloc.c (xstrdup): Use memcpy.
1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>

	* cppalloc.c (xstrdup): Use memcpy.
	* cpperror.c (cpp_print_containing_files): Don't use
	cpp_notice.
	* cpplib.c (conditional_skip): Set temp->lineno.
	(do_endif): Make error message less obscure.
	(if_directive_name): New function.
	(cpp_get_token [case EOF]): Unwind the if stack and generate
	error messages for each unterminated conditional in this file.
	(parse_string):  Do not behave differently if -traditional.

From-SVN: r29279
1999-09-11 05:38:06 +00:00
Tom Tromey
27e934d8ba configure: Rebuilt.
* configure: Rebuilt.
	* configure.in: Build include/Makefile.
	* Makefile.in: Rebuilt.
	* Makefile.am (SUBDIRS): Added gcj and include.
	(install-data-local): New target.
	(extra_headers): New macro.
	* include/Makefile.in: New file.
	* include/Makefile.am: New file.

	* interpret.cc: Don't include gcj/field.h or gcj/cni.h.
	* java/lang/reflect/natField.cc: Don't include gcj/field.h or
	gcj/cni.h.
	* boehm.cc: Don't include java-threads.h or gcj/field.h.
	* resolve.cc: Include config.h.
	* defineclass.cc: Include config.h.
	* include/java-interp.h: Don't include config.h.
	* include/jvm.h: Include java-threads.h, Object.h, java-gc.h,
	cni.h.

	* gcj/javaprims.h: Regenerated namespace decls.
	* classes.pl (scan): Don't put `;' after closing brace.

	* Makefile.in: Rebuilt.
	* Makefile.am (INCLUDES): Added -I for top_srcdir.
	* configure.in: Create gcj/Makefile.
	* gcj/Makefile.in: New file.
	* gcj/Makefile.am: New file.
	* java/lang/Object.h: Don't include any other headers.
	* gcj/array.h: Renamed from include/java-array.h.
	* gcj/field.h: Renamed from include/java-field.h.
	* gcj/method.h: Renamed from include/java-method.h.
	* gcj/cni.h, gcj/javaprims.h: Moved from include/.
	Updated all files to reflect new include structure.

From-SVN: r29278
1999-09-10 22:03:10 +00:00
Tom Tromey
512d594b4f gjavah.c (add_class_decl): Generate include for gcj/array.h, not java-array.h.
* gjavah.c (add_class_decl): Generate include for gcj/array.h, not
	java-array.h.
	(decode_signature_piece): Don't emit "::" in JArray<>.
	(print_namelet): Only print trailing `;' when printing a class.

From-SVN: r29277
1999-09-10 21:45:39 +00:00
Richard Henderson
973a648b87 builtins.c (expand_builtin_va_arg): Cope with an array-type va_list decomposing to pointer-type.
* builtins.c (expand_builtin_va_arg): Cope with an array-type
        va_list decomposing to pointer-type.
        * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
        (rs6000_va_arg): Likewise.

From-SVN: r29276
1999-09-10 14:06:36 -07:00
Jim Wilson
007598f98b Fix too small buffer problem found by ia64 port.
* except.c (start_dynamic_handler): Compute size using
	STACK_SAVEAREA_MODE.

From-SVN: r29275
1999-09-10 13:28:12 -07:00
Kaveh R. Ghazi
ffb9f2f152 protoize.c: Remove various __STDC__ and POSIX hacks.
* protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
	include directory headers.  Don't define strrchr.  Don't provide
	my_* replacement functions.  Prefer PTR over `pointer_type'.
	Don't prototype system functions.  Don't redefine getopt.

	(shortpath, fancy_abort, notice, savestring, dupnstr, substr,
	safe_read, safe_write, save_pointers, restore_pointers,
	is_id_char, in_system_include_dir, directory_specified_p,
	file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
	find_corresponding_lparen, referenced_file_is_newer,
	save_def_or_dec, munge_compile_params, gen_aux_info_file,
	process_aux_info_file, identify_lineno, check_source,
	seek_to_line, forward_to_next_token_char, output_bytes,
	output_string, output_up_to, other_variable_style_function,
	find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
	do_processing, is_syscalls_file, rename_c_file, find_extern_def,
	find_static_definition, connect_defs_and_decs, add_local_decl,
	add_global_decls, needs_to_be_converted, visit_each_hash_node,
	add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
	edit_fn_declaration, edit_formals_lists, edit_fn_definition,
	scan_for_missed_items, edit_file, string_list_cons): Add static
	prototypes.
	(standard_exec_prefix, target_machine, target_version,
	default_syscalls_dir, string_list, string_list_cons, find_file,
	do_cleaning): Constify a char*.
	(safe_read, safe_write): Use PTR, not a char*.
	(is_id_char): Take an int, not a char.
	(main): Add prototype.  Call return, not exit.

From-SVN: r29274
1999-09-10 20:03:36 +00:00
Richard Henderson
944b921044 loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
* loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
        (strength_reduce): Release the varrays from the no-bivs early exit.

        * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
        the loop over the registers.

        * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
        for a new obstack.
        (restore_tree_status): Check that instead when freeing the obstack.

From-SVN: r29273
1999-09-10 11:45:22 -07:00
Mark Mitchell
d11494e9fa Fix missing ChangeLog entry
From-SVN: r29272
1999-09-10 17:55:50 +00:00
Andrew Haley
da48638eff tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields when comparing types.
Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>

        * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
        when comparing types.

From-SVN: r29271
1999-09-10 16:07:18 +00:00
Richard Henderson
69ba6af33e loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
* loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
        (strength_reduce): Release the varrays from the no-bivs early exit.

        * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
        the loop over the registers.

        * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
        for a new obstack.
        (restore_tree_status): Check that instead when freeing the obstack.

From-SVN: r29270
1999-09-10 08:50:22 -07:00
Andrew Haley
a0d8bee96e alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used as pointers.
Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>

        * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
        as pointers.

From-SVN: r29269
1999-09-10 14:12:01 +00:00
Nathan Sidwell
0881d22348 rfg4.C: Revert erroneous change, add -w.
* g++.old-deja/g++.jason/rfg4.C: Revert erroneous change, add -w.
	* g++.old-deja/g++.jason/rfg5.C: Likewise.

From-SVN: r29268
1999-09-10 11:05:30 +00:00
Bernd Schmidt
f6fbeda886 Fix ashlqi3 bug
From-SVN: r29267
1999-09-10 11:01:50 +00:00
Bernd Schmidt
81b3411cdf Move declarations and building code for common tree nodes to tree.[ch]
From-SVN: r29266
1999-09-10 10:36:02 +00:00
Mark Mitchell
ed5511d94e cp-tree.h (language_function): Rename expanding_p to x_expanding_p.
* cp-tree.h (language_function): Rename expanding_p to
	x_expanding_p.  Rename named_label_uses to x_named_label_uses.
	(expanding_p): Adjust accordingly.
	(TREE_VIA_PRIVATE): Fix typo in comment.
	(DECL_REFERENCE_SLOT): Remove.
	(SET_DECL_REFERENCE_SLOT): Likewise.
	* decl.c (named_label_uses): Adjust. Remove chicken comment.
	(push_overloaded_decl): Don't truncate the chain of bindings when
	adding an overloaded function.
	(grok_reference_init): Don't use DECL_REFERENCE_SLOT.
	(initialize_local_var): Fix typo in comment.
	(store_parm_decls): Don't set DECL_REFERENCE_SLOT.  Tidy up.
	* decl2.c (start_objects): Make the fact that we are expanding
	the generated function right away explicit.
	(start_static_storage_duration_function): Likewise.
	(finish_file): Fix typo in comment.
	* init.c (build_vec_init): Correct bugs in handling cleanups.
	* semantics.c (maybe_convert_cond): New function.
	(FINISH_COND): Always store the condition, even if there's
	a declaration.
	(finish_if_stmt_cond): Use maybe_convert_cond.
	(finish_while_stmt_cond): Likewise.
	(finish_do_stmt): Likewise.
	(finish_for_cond): Likewise.
	(expand_cond): Adjust.

From-SVN: r29265
1999-09-10 10:19:47 +00:00
Mark Mitchell
efa8eda3b8 cp-tree.h (finish_cleanup_try_block): New function.
* cp-tree.h (finish_cleanup_try_block): New function.
	* semantics.c (finish_cleanup_try_block): Add comment.

From-SVN: r29264
1999-09-10 09:30:57 +00:00
Mark Mitchell
62409b397b cp-tree.h (FN_TRY_BLOCK_P): New macro.
* cp-tree.h (FN_TRY_BLOCK_P): New macro.
	* init.c (perform_member_init): Remove obstack machinations.
	(expand_cleanup_for_base): Likewise.
	(finish_init_stmts): Mark the statement-expression as used.
	* method.c (emit_thunk): Use tree-generating functions, not
	RTL.
	(do_build_copy_constructor): Likewise.
	(do_build_assign_ref): Likewise.
	(synthesize_method): Likewise.  Keep track of line numbers.
	* pt.c (tsubst_expr): Handle various kinds of try blocks.
	* semantics.c (expand_stmts): Remove.
	(begin_function_try_block): Set FN_TRY_BLOCK_P.
	(finish_function_try_block): Be careful rechaining
	function try blocks.
	(expand_stmt): Loop through all the statements at a given level.
	(exapnd_body): Be careful with line-numbers here too.  Prepare for
	being called directly from the parser.

From-SVN: r29263
1999-09-10 09:21:37 +00:00
Mark Mitchell
ca5b5533e1 cp-tree.h (finish_function): Adjust prototype.
* cp-tree.h (finish_function): Adjust prototype.
	* decl.c (finish_function): Return the function compiled.
	* pt.c (instantiate_decl): Don't play games with obstacks.
	* tree.c (mapcar): Handle OFFSET_REF and BIT_FIELD_REF.
	(search_tree): Likewise.
	* typeck.c: Fix typo in comment.
	* typeck2.c (store_init_value): Add comment.

From-SVN: r29262
1999-09-10 09:10:24 +00:00
Mark Mitchell
4d6abc1c32 cp-tree.h (finish_function): Adjust prototype.
* cp-tree.h (finish_function): Adjust prototype.
	* decl.c (finish_function): Return the function compiled.
	* pt.c (instantiate_decl): Don't play games with obstacks.
	* tree.c (mapcar): Handle OFFSET_REF and BIT_FIELD_REF.
	(search_tree): Likewise.
	* typeck.c: Fix typo in comment.
	* typeck2.c (store_init_value): Add comment.

From-SVN: r29261
1999-09-10 08:52:07 +00:00
Mark Mitchell
f0105ed3b9 cp-tree.h (CPTI_ATEXIT): New macro.
* cp-tree.h (CPTI_ATEXIT): New macro.
	(atexit_node): Likewise.
	* decl.c (destroy_local_static): New function, broken out from ...
	(expand_static_init): Here.

From-SVN: r29260
1999-09-10 08:30:08 +00:00
Mark Mitchell
0bb9c57d22 rtti.c (get_tinfo_var): These should always be global
* rtti.c (get_tinfo_var): These should always be global
	(expand_si_desc): Use tree, not RTL, functions to generate code.
	(expand_class_desc): Likewise.
	(expand_ptr_desc): Likewise.
	(expand_attr_desc): Likewise.
	(expand_generic_desc): Likewise.
	(synthesize_tinfo_fn): Likewise.

From-SVN: r29259
1999-09-10 08:14:16 +00:00
Mark Mitchell
6a26a9ead4 Regenerated
From-SVN: r29258
1999-09-10 08:08:52 +00:00
Jeff Law
9e2e04ccb5 Daily bump.
From-SVN: r29257
1999-09-10 01:45:10 -06:00
Mark Mitchell
cb39191d23 semantics.c (RECHAIN_STMTS): Remove `last' parameter.
* semantics.c (RECHAIN_STMTS): Remove `last' parameter.
	(RECHAIN_STMTS_FROM_LAST): Remove.  Replace all uses with
	RECHAIN_STMTS.
	(RECHAIN_STMST_FROM_CHAIN): Likewise.

From-SVN: r29256
1999-09-10 05:31:24 +00:00
Richard Henderson
f4e5c65b06 c-decl.c (finish_function): When processing a nested function...
* c-decl.c (finish_function): When processing a nested function,
        push and pop GC context around rest_of_compilation.

From-SVN: r29255
1999-09-09 20:16:49 -07:00
Jason Merrill
f74c0f9107 revert:
Thu Sep  9 12:20:34 1999  Nick Clifton  <nickc@cygnus.com>

	* toplev.c (documented_lang_options):

From-SVN: r29253
1999-09-09 21:13:10 -04:00
Mark Mitchell
1bbda43638 * parse.y (simple_stmt): Fix typo in last change.
From-SVN: r29252
1999-09-10 01:09:05 +00:00
Tom Tromey
f1b856d94e configure: Rebuilt.
* configure: Rebuilt.
	* configure.in: Fixed typo; variable is THREADSPEC and not
	THREADSPECS.

From-SVN: r29251
1999-09-10 00:10:04 +00:00
Richard Henderson
5a6ee81974 i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
* i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
        Default ix86_arch to PROCESSOR_I386.
        * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
        (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
        (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
        (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
        __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
        (EXTRA_SPECS): Remove deleted specs.

From-SVN: r29250
1999-09-09 16:45:55 -07:00
Mark Mitchell
a7e4cfa017 cp-tree.h (EXPR_STMT_ASSIGNS_THIS): New macro.
* cp-tree.h (EXPR_STMT_ASSIGNS_THIS): New macro.
	(STMT_IS_FULL_EXPR_P): Likewise.
	(STMT_LINENO_FOR_FN_P): Likewise.
	(prep_stmt): New function.
	(building_stmt_tree): Tweak for safety.
	* pt.c (tsubst_expr): Use prep_stmt throughout.
	(add_tree): Move it to semantics.c
	* semantics.c (add_tree): Move it here.
	(finish_expr_stmt_real): New function.
	(finish_expr_stmt): Use it.
	(finish_if_stmt_cond): Use FINISH_COND.
	(finish_while_stmt_cond): Likewise.
	(finish_for_cond): Likewise.
	(finish_stmt_tree): Tweak line-number handling.
	(prep_stmt): New function.
	(expand_stmt): Use it.

From-SVN: r29249
1999-09-09 23:24:34 +00:00
Richard Henderson
3b71623bf3 function.c (assign_stack_local_1): Allocate from function->x_frame_offset, not frame_offset.
* function.c (assign_stack_local_1): Allocate from
        function->x_frame_offset, not frame_offset.

From-SVN: r29248
1999-09-09 16:04:12 -07:00
Mark Mitchell
f00caf7903 New test
From-SVN: r29247
1999-09-09 22:41:05 +00:00
Mark Mitchell
527f0080b0 cp-tree.h (begin_switch_stmt): Adjust prototype.
* cp-tree.h (begin_switch_stmt): Adjust prototype.
	(finish_switch_cond): Likewise.
	* parse.y (simple_stmt): Adjust accordingly.
	* parse.c: Regenerated.
	* pt.c (tsubst_expr): Adjust accordingly.
	* semantics.c (expand_cond): New function.
	(FINISH_COND): New macro.
	(begin_switch_stmt): Build the SWITCH_STMT here.
	(finish_switch_stmt_cond): Not here.
	(expand_stmt): Adjust calls to begin_switch_stmt and
	finish_switch_cond.  Use expand_cond throughout.

From-SVN: r29246
1999-09-09 22:28:15 +00:00
Mark Mitchell
8a79e5cb72 dump.c (dequeue_and_dump): Dump types for constants.
* dump.c (dequeue_and_dump): Dump types for constants.
	Describe DECL_ARG_TYPE more intuitively.
	Handle ARRAY_REF.

From-SVN: r29245
1999-09-09 21:49:02 +00:00
Mark Mitchell
c27db0df86 decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
* decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
	(lang_cleanup_tree): Remove.
	* lex.c (make_lang_type): Use ggc_alloc to allocate
	TYPE_LANG_SPECIFIC.

From-SVN: r29244
1999-09-09 21:47:28 +00:00
Mark Mitchell
e700c93176 Fix typo in last change.
From-SVN: r29243
1999-09-09 21:45:27 +00:00
Mark Mitchell
96603b4c5a ggc.h (lang_cleanup_tree): Remove.
* ggc.h (lang_cleanup_tree): Remove.
	* gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
	* ggc-callbacks.c (lang_cleanup_tree): Remove.

	* c-decl.c (finish_struct): Use ggc_alloc to allocate
	TYPE_LANG_SPECIFIC when garbage collecting.
	(lang_cleanup_tree): Remove.

From-SVN: r29242
1999-09-09 21:41:38 +00:00
Jason Merrill
31cf01446d defaults.h (EH_FRAME_SECTION, [...]): Define here.
* defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
	* crtstuff.c: Not here.
	* dwarf2out.c: Or here.
	* libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
	info.

From-SVN: r29241
1999-09-09 17:36:20 -04:00
Mark Mitchell
a8f73d4b36 Reorganize per-function data.
* cp-tree.h (saved_scope): Add function_decl, bindings.
	(language_function): Rename binding_level to bindings.
	(cp_function_chain): Use the current_function, not the
	outer_function_chain.
	(current_class_ptr): Make it work, even when there's no
	current function.
	(current_class_ref): Likewise.
	(SF_DEFAULT, SF_PRE_PARSED, SF_INCLASS_INLINE, SF_EXPAND): New
	macros.
	(clear_temp_name): Remove.
	* decl.c (check_function_type): New function, broken out from
	start_function.
	(current_binding_level): Adjust definition.
	(pushlevel): Simplify.
	(poplevel): Don't use named_label_uses when we're outside
	a function scope.
	(mark_saved_scope): Mark function_decl and bindings.
	(maybe_push_to_top_level): Don't unconditionally push a new
	function context.  Save bindings and the current_function_decl.
	Don't clear named_labels.
	(pop_from_top_level): Pop function context if appropriate.
	(init_decl_processing): Set init_lang_status and free_lang_status,
	rather than save_lang_status and restore_lang_status.
	(start_function): Take SF_* flags.  Don't clear per-function data.
	Reorder and simplify to use new per-function data code.  Add
	asserts.
	(store_parm_decls): Don't call init_function_start here.
	(finish_function): Adjust for new handling of per-function data.
	(push_cp_function_context): Simplify.
	(mark_cp_function_context): Change binding_level to bindings.
	* decl2.c (clear_temp_name): Remove.
	(start_objects): Use SF flags to start_function.
	(start_static_storage_duration_function): Likewise.
	* except.c (start_anon_func): Remove redundant calls to
	push_function_context_to.  Use SF flags to start function.
	(end_anon_func): Remove redundant call to pop_function_context
	from.
	* lex.c (reinit_parse_for_function): Don't initialize per-function
	data.
	* method.c (emit_thunk): Clear current_function after calling
	assemble_end_function.  Use SF flags for start_function.
	(synthesize_method): Use SF flags for start_function.
	* parse.c: Regenerated.
	* parse.y (fn.defpen): Likewise.
	(pending_inline): Clear current_function, even if something goes
	wrong.
	* pt.c (instantiate_decl): Use SF flags to start_function.
	Don't save and restore expanding_p.
	(add_tree): Handle the case where we are outside any function.
	(end_tree): Likewise.
	* rtti.c (sythesize_tinfo_fn): Use SF flags to start_function.
	* semantics.c (begin_function_definition): Likewise.
	(expand_body): Likewise.

From-SVN: r29240
1999-09-09 19:02:39 +00:00
Mark Mitchell
0a8a198ceb function.h (free_after_compilation): Remove decl parameter.
* function.h (free_after_compilation): Remove decl parameter.
	(free_varasm_status0: Likewise.
	(free_emit_status): Likewise.
	(free_stmt_status): Likewise.
	(free_after_compilation): Likewise.
	(init_lang_status): New variable.
	(free_lang_status): Likewise.
	* emit-rtl.c (free_emit_status): Make decl parameter implicit.
	* function.c (init_lang_status): New variable.
	(free_lang_status): Likewise.
	(push_function_context_to): Don't set function::decl here.
	(free_after_copmilation): Make decl parameter implicit.  Call
	free_lang_status if defined.
	(prepare_function_start): Call init_lang_status if defined.
	(init_function_start): Set function::decl here.
	* profile.c (output_func_start_profiler): Don't call pushdecl
	until we've actually started the function.
	* stmt.c (free_stmt_status): Make decl parameter implicit.
	* toplev.c (rest_of_compilation): Don't pass decl to
	free_after_compilation.
	* varasm.c (free_varasm_status): Likewise.

From-SVN: r29239
1999-09-09 18:55:37 +00:00
Mark Mitchell
1814b96be2 cp-tree.h (scratch_tree_cons): Remove.
* cp-tree.h (scratch_tree_cons): Remove.
	* call.c: Replace all uses of expr_tree_cons, saveable_tree_cons,
	and perm_tree_cons with plain tree_cons.
	* class.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* init.c: Likewise.
	* lex.c: Likewise.
	* method.c: Likewise.
	* parse.y: Likewise.
	* pt.c: Likewise.
	* repo.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.
	* typeck.c: Likewise.
	* parse.c: Regenerated.
	* tree.c (build_srcloc): Simplify.

From-SVN: r29238
1999-09-09 18:33:45 +00:00