Commit Graph

23831 Commits

Author SHA1 Message Date
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
Richard Henderson
cdf508e83b * g++.old-deja/g++.other/delete6.C: Use size_t with operator new.
From-SVN: r29237
1999-09-09 10:41:45 -07:00
Bernd Schmidt
638e6ebc27 Add a missing GC root
From-SVN: r29236
1999-09-09 16:24:08 +00:00
Richard Earnshaw
92a432f4dd arm.c: Include "ggc.h".
* arm.c: Include "ggc.h".
(arm_add_gc_roots): New function.
(arm_override_options): Call it.
(aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.

* arm.md (define_asm_attributes): Add a pool_range attribute.

From-SVN: r29235
1999-09-09 14:30:54 +00:00
Nathan Sidwell
6e9d618910 lookup11.C: New test.
* g++.old-deja/g++.other/lookup11.C: New test.
	* g++.old-deja/g++.bugs/900428_01.C: Rework now we understand
	what is permitted and what we want.
	* g++.old-deja/g++.jason/rfg4.C: Rework to remove ill-formed
	overload use.
	* g++.old-deja/g++.jason/rfg5.C: Likewise

From-SVN: r29234
1999-09-09 12:11:22 +00:00
Nathan Sidwell
02cac427d5 extend.texi (Volatiles): New node.
gcc/ChangeLog:
	* extend.texi (Volatiles): New node.
gcc/cp/ChangeLog:
	* cp-tree.h (convert_to_void): Prototype new function.
	(require_complete_type_in_void): Remove prototype.
	* cvt.c (convert_to_void): New function.
	(ocp_convert): Use convert_to_void.
	* decl.c (cplus_expand_expr_stmt): Likewise, for complete
	expressions.
	* typeck.c (require_complete_type_in_void): Remove function.
	(build_compound_expr): Use convert_to_void.
	(build_static_cast): Likewise.
	(build_c_cast): Likewise.
	* semantics.c (finish_expr_stmt): Do not decay full expressions.

	* typeck.c (build_x_compound_expr): Add FIXME.

From-SVN: r29233
1999-09-09 12:07:46 +00:00
Nick Clifton
fb3f91c9a8 Pass -pedantic command line switch on to cpplib
From-SVN: r29232
1999-09-09 11:22:50 +00:00
Richard Henderson
9b1b9cc910 ggc-simple.c (IS_MARKED, [...]): New.
* ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
        (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
        (struct ggc_any): Replace `mark' with `magic_mark'.
        (ggc_alloc_string): Use memcpy, not bcopy.
        (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
        (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
        (ggc_free_any): New.
        (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
        (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
        (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
        Use IS_MARKED. Use ggc_free_any.

From-SVN: r29231
1999-09-09 03:43:57 -07:00
Scott Bambrough
7bfcb18070 define NO_IMPLICIT_EXTERN_C
From-SVN: r29230
1999-09-09 09:12:03 +00:00
Richard Henderson
d09b562cb1 * toplev.c (main): Always init_ggc.
From-SVN: r29229
1999-09-09 01:56:16 -07:00
Jeff Law
94d84bab3e Daily bump.
From-SVN: r29228
1999-09-09 01:45:13 -06:00
Richard Henderson
a9f0664a5a except.c (find_all_handler_type_matches): Free the list if we found no matches.
* except.c (find_all_handler_type_matches): Free the list if
        we found no matches.

From-SVN: r29227
1999-09-09 00:17:20 -07:00
Richard Henderson
76095e2f54 combine.c (SUBST): Break out to a real function do_SUBST.
* combine.c (SUBST): Break out to a real function do_SUBST.
        (SUBST_INT): Likewise.
        * gcse.c (free_pre_mem): Free `temp_bitmap'.
        (pre_insert): Free `inserted'.
        * loop.c (basic_induction_var): Always set `location'.

        * function.c (expand_function_end): Add initial_trampoline as a root.
        * rtl.h (init_varasm_once): Declare.
        * toplev.c (compile_file): Call it.
        * ggc-simple.c (ggc_mark_string_ptr): New.
        (ggc_add_string_root): New.
        (ggc_collect): Disable collection avoidance temporarily.
        * ggc.h (ggc_add_string_root): Declare.
        * except.c (create_rethrow_ref): Use ggc_alloc_string.
        * optabs.c (init_libfuncs): Likewise.
        * varasm.c (named_section): Use ggc_alloc_string.
        (make_function_rtl): Likewise.
        (make_decl_rtl): Likewise.
        (assemble_static_space): Likewise.
        (assemble_trampoline_template): Likewise.
        (output_constant_def): Likewise.
        (force_const_mem): Likewise.
        (mark_const_hash_entry): New.
        (mark_pool_sym_hash_table): New.
        (mark_varasm_state): Use it.
        (init_varasm_once): New.

        * expr.h (init_one_libfunc): Declare.
        * optabs.c (init_one_libfunc): New.
        (init_optabs): Use it.
        * config/gofast.h: Likewise.
        * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
        * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.

From-SVN: r29226
1999-09-09 00:07:41 -07:00
Mark Mitchell
e1b3e07d15 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: r29225
1999-09-09 06:17:13 +00:00
Geoff Keating
fc009f966c Makefile.in (cppexp.o): Depend on cpphash.h.
* Makefile.in (cppexp.o): Depend on cpphash.h.
	* cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
	Include cpphash.h.
	* cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
	* cpplib.c (do_define): Generalise to handle poisoned definitions,
	redefining poisoned identifiers, etc.
	(do_undef): Don't allow poisoned identifiers to be undefined.
	(do_pragma): Add #pragma poison.
	(do_xifdef): Handle `#ifdef xxx' for poisoned xxx.

	* cccp.c: Add T_POISON node type.
	(special_symbol): Handle `defined(xxx)' and plain `xxx' for
	poisoned xxx.
	(do_define): Generalise to handle poisoned definitions,
	redefining poisoned identifiers, etc.
	(do_undef): Don't allow poisoned identifiers to be undefined.
	(do_pragma): Add #pragma poison.
	(do_xifdef): Handle `#ifdef xxx' for poisoned xxx.

	* c-pragma.c (handle_pragma_token): Ignore #pragma poison.
	* c-pragma.h: Add ps_poison state.  We now always have generic
	pragmas.

From-SVN: r29224
1999-09-09 04:00:37 +00:00
Mark Mitchell
d60f72aec5 cp-tree.h (lang_decl_flags): Remove permanent_attr.
* cp-tree.h (lang_decl_flags): Remove permanent_attr.
	Remove next.
	(LANG_DECL_PERMANENT): Remove.
	* decl.c (duplicate_decls): Don't mess about with obstacks trying
	to free memory.
	(lang_mark_tree): Mark DECL_LANG_SPECIFIC.
	* lex.c (free_lang_decl_chain): Remove.
	(build_lang_decl): Don't use obstacks.
	(retrofit_lang_decl): Likewise.
	(copy_lang_decl): Likewise.

From-SVN: r29223
1999-09-09 03:31:23 +00:00
Mark Mitchell
37b31aefeb ggc.h (ggc_alloc): New function.
* ggc.h (ggc_alloc): New function.
	(ggc_mark): Likewise.
	* ggc-simple.c (ggc_any): New structure.
	(ggc_status): Add anys.
	(n_anys_collected): New variable.
	(ggc_alloc): Define.
	(ggc_mark): Likewise.
	(ggc_collect): Collect the anys.

From-SVN: r29222
1999-09-09 03:26:58 +00:00
Mark Mitchell
fc0e7bf5d1 cp-tree.h (saved_scope): Remove old_binding_level and function_decl.
* cp-tree.h (saved_scope): Remove old_binding_level and
	function_decl.  Tidy up.
	* decl.c (mark_saved_scope): Don't set them.
	(maybe_push_to_top_level): Clear memory.

From-SVN: r29221
1999-09-09 01:47:02 +00:00
Mark Mitchell
c82dbd9588 decl.c (layout_var_decl): Change prototype.
* decl.c (layout_var_decl): Change prototype.  Don't complete
	types for external objects.
	(check_initializer): Likewise.  Tidy.
	(initialize_local_var): Complete types here.
	(cp_finish_decl): Not here.  Reorganize a little.
	(grokvardecl): Don't complete types here.

From-SVN: r29220
1999-09-09 00:29:22 +00:00
Kaveh R. Ghazi
dbec3d5b8f * c-decl.c (mark_binding_level): Make static to match prototype.
From-SVN: r29219
1999-09-09 00:22:07 +00:00
Kaveh R. Ghazi
33c5ddcd3e * xmemdup.c: Include sys/types.h.
From-SVN: r29218
1999-09-09 00:11:39 +00:00
Richard Henderson
9831d64062 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
From-SVN: r29217
1999-09-08 16:42:18 -07:00
Richard Henderson
b6b4c6c6f9 gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC will use into account.
* gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
        will use into account.  Expand the max width to 5.
        * rtl.c: Likewise.

From-SVN: r29216
1999-09-08 16:09:38 -07:00
Richard Henderson
38792a9487 ggc-simple.c (ggc_free_rtx): Poison the correct amount for the rtx length.
* ggc-simple.c (ggc_free_rtx): Poison the correct amount
        for the rtx length.

From-SVN: r29215
1999-09-08 16:02:12 -07:00
Richard Henderson
3d46d5af21 * alpha.md (call value patterns): Remove the result predicates.
From-SVN: r29214
1999-09-08 15:24:45 -07:00
Mark Mitchell
be91309cda decl.c (start_function): Clear last_dtor_insn and last_parm_cleanup_insn.
* decl.c (start_function): Clear last_dtor_insn and
	last_parm_cleanup_insn.
	(push_cp_function_context): Just copy over a little of
	the old context, not all of it.

From-SVN: r29213
1999-09-08 20:53:47 +00:00
Richard Henderson
2e769ad05c Makefile.in (stmp-fixinc): Remove extraneous exit 1 from last change.
* Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
        last change.

From-SVN: r29212
1999-09-08 13:37:56 -07:00