1. 09 Sep, 1999 29 commits
    • cp-tree.h (begin_switch_stmt): Adjust prototype. · 527f0080
      	* 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
      Mark Mitchell committed
    • dump.c (dequeue_and_dump): Dump types for constants. · 8a79e5cb
      	* dump.c (dequeue_and_dump): Dump types for constants.
      	Describe DECL_ARG_TYPE more intuitively.
      	Handle ARRAY_REF.
      
      From-SVN: r29245
      Mark Mitchell committed
    • decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. · c27db0df
      	* 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
      Mark Mitchell committed
    • Fix typo in last change. · e700c931
      From-SVN: r29243
      Mark Mitchell committed
    • ggc.h (lang_cleanup_tree): Remove. · 96603b4c
      	* 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
      Mark Mitchell committed
    • defaults.h (EH_FRAME_SECTION, [...]): Define here. · 31cf0144
      	* 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
      Jason Merrill committed
    • Reorganize per-function data. · a8f73d4b
      	* 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
      Mark Mitchell committed
    • function.h (free_after_compilation): Remove decl parameter. · 0a8a198c
      	* 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
      Mark Mitchell committed
    • cp-tree.h (scratch_tree_cons): Remove. · 1814b96b
      	* 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
      Mark Mitchell committed
    • Add a missing GC root · 638e6ebc
      From-SVN: r29236
      Bernd Schmidt committed
    • arm.c: Include "ggc.h". · 92a432f4
      * 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
      Richard Earnshaw committed
    • lookup11.C: New test. · 6e9d6189
      	* 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
      Nathan Sidwell committed
    • extend.texi (Volatiles): New node. · 02cac427
      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
      Nathan Sidwell committed
    • Pass -pedantic command line switch on to cpplib · fb3f91c9
      From-SVN: r29232
      Nick Clifton committed
    • ggc-simple.c (IS_MARKED, [...]): New. · 9b1b9cc9
              * 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
      Richard Henderson committed
    • define NO_IMPLICIT_EXTERN_C · 7bfcb180
      From-SVN: r29230
      Scott Bambrough committed
    • * toplev.c (main): Always init_ggc. · d09b562c
      From-SVN: r29229
      Richard Henderson committed
    • Daily bump. · 94d84bab
      From-SVN: r29228
      Jeff Law committed
    • except.c (find_all_handler_type_matches): Free the list if we found no matches. · a9f0664a
              * except.c (find_all_handler_type_matches): Free the list if
              we found no matches.
      
      From-SVN: r29227
      Richard Henderson committed
    • combine.c (SUBST): Break out to a real function do_SUBST. · 76095e2f
              * 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
      Richard Henderson committed
    • cp-tree.h (scratch_tree_cons): Remove. · e1b3e07d
      	* 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
      Mark Mitchell committed
    • Makefile.in (cppexp.o): Depend on cpphash.h. · fc009f96
      	* 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
      Geoff Keating committed
    • cp-tree.h (lang_decl_flags): Remove permanent_attr. · d60f72ae
      	* 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
      Mark Mitchell committed
    • ggc.h (ggc_alloc): New function. · 37b31aef
      	* 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
      Mark Mitchell committed
    • cp-tree.h (saved_scope): Remove old_binding_level and function_decl. · fc0e7bf5
      	* 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
      Mark Mitchell committed
    • decl.c (layout_var_decl): Change prototype. · c82dbd95
      	* 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
      Mark Mitchell committed
    • * xmemdup.c: Include sys/types.h. · 33c5ddcd
      From-SVN: r29218
      Kaveh R. Ghazi committed
  2. 08 Sep, 1999 11 commits