aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
AgeCommit message (Collapse)AuthorFilesLines
1999-03-29except.c (start_dynamic_handler): Force jmp_buf address to and operand ↵Richard Henderson1-1/+1
before moving to memory. * except.c (start_dynamic_handler): Force jmp_buf address to and operand before moving to memory. From-SVN: r26058
1999-02-25Flow rewrite to use basic block structures and edge lists.Richard Henderson1-2/+8
From-SVN: r25450
1999-02-14except.c (start_catch_handler): Use emit_cmp_and_jump_insns.Jeffrey A Law1-3/+3
* except.c (start_catch_handler): Use emit_cmp_and_jump_insns. * explow.c (probe_stack_range): Likewise. * expmed.c (do_cmp_and_jump): Likewise. * expr.c (store_expr, expand_expr, expand_builtin): Likewise. (do_tablejump): Likewise. * stmt.c (expand_expr_stmt, expand_end_case): Likewise. (do_jump_if_equal, emit_case_nodes): Likewise. * optabs.c (emit_cmp_and_jump_insns): Clarify comments. If UNSIGNEDP, then convert comparison to an unsigned code before emitting the jump. (expand_float, expand_fix): Use emit_cmp_and_jump_insns. From-SVN: r25205
1998-12-23Warning fixes:Kaveh R. Ghazi1-1/+0
* alias.c (record_alias_subset): Remove ignored `&'. (init_alias_once): Likewise. * c-lex.c (UNGETC): Cast first argument of comma expression to void. * config/mips/mips.c (mips_asm_file_end): Cast the result of fwrite to `int' when comparing against one. * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. * cse.c (rehash_using_reg): Change type of variable `i' to unsigned int. * dwarf2out.c (initial_return_save): Cast -1 to unsigned before assigning it to one. * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. * final.c (final_scan_insn): Likewise for variable `i'. (output_asm_insn): Cast a char to unsigned char when used as an array index. * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when assigning it to one. * loop.c (strength_reduce): Remove unused variables `count' and `temp'. * recog.c (preprocess_constraints): Cast a char to unsigned char when used as an array index. * regmove.c (find_matches): Likewise. * reload1.c (calculate_needs): Add default case in switch. (eliminate_regs_in_insn): Initialize variable `offset'. (set_offsets_for_label): Change type of variable `i' to unsigned. (reload_as_needed): Wrap variable `i' in macro check on AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t when comparing against one. * stor-layout.c (layout_decl): Cast maximum_field_alignment to unsigned when comparing against one. Likewise for GET_MODE_ALIGNMENT(). (layout_record): Cast record_align to int when comparing against a signed value. (layout_type): Cast TYPE_ALIGN() to int when comparing against a signed value. * tree.c (get_identifier): Cast variable `len' to unsigned when comparing against one. (maybe_get_identifier): Likewise From-SVN: r24403
1998-12-09except.c (duplicate_eh_handlers, [...]): Function pointer parameters changed ↵Kaveh R. Ghazi1-2/+2
to use the PARAMS() macro. * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function pointer parameters changed to use the PARAMS() macro. From-SVN: r24204
1998-12-09except.h (struct handler_info): Add handler_number fieldAndrew MacLeod1-7/+6
* except.h (struct handler_info): Add handler_number field * except.c (gen_exception_label): EH labels no longer need to be on the permanent obstack. (get_new_handler): Set the label number field. (output_exception_table_entry): Regenerate handler label reference from the label number field. (init_eh): Remove a blank line * integrate.c (get_label_from_map): Labels no longer need to be on the permanent obstack. From-SVN: r24203
1998-12-08See ChangeLog..Andrew MacLeod1-27/+201
Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com> See ChangeLog.. These are the files that were changed: * eh-common.h (struct eh_context): Add table_index for rethrows. * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. * rtl.c (reg_note_name): Add strings for new reg_note enums. * expr.h (rethrow_libfunc): New library decl. * optabs.c (rethrow_libfunc): Initialize. * except.h (struct eh_entry): Add new field 'rethrow_label'. * except.c (create_rethrow_ref): New function to create a single * flow.c (make_edges): Add different edges for rethrow calls, * integrate.c (save_for_inline_eh_labelmap): New callback routine to * libgcc2.c (find_exception_handler): Generalize to enable it to * cp/except.c * cp/exception.cc From-SVN: r24194
1998-12-03* except.c (set_exception_version_code): Argument is an "int".Jeffrey A Law1-1/+1
From-SVN: r24085
1998-11-29except.c (add_new_handler): Complain about additional handlers after one ↵Jason Merrill1-2/+7
that catches everything. * except.c (add_new_handler): Complain about additional handlers after one that catches everything. From-SVN: r23990
1998-11-11Fix x86 __throw -O0 -fpic compiler abort.Jim Wilson1-1/+3
* except.c (expand_eh_return): Readd force_operand call lost in Sept 15 change. From-SVN: r23606
1998-11-05except.c (expand_fixup_region_end): Make sure outer context labels are not ↵Andrew MacLeod1-0/+22
issued in an inner context during cleanups. Thu Nov 5 07:57:45 EST 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (expand_fixup_region_end): Make sure outer context labels are not issued in an inner context during cleanups. From-SVN: r23538
1998-10-29except.c (emit_eh_context): Make the EH context register stay alive at -O0 ↵Andrew MacLeod1-0/+8
so stupid.c doesn't get confused. Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (emit_eh_context): Make the EH context register stay alive at -O0 so stupid.c doesn't get confused. From-SVN: r23423
1998-09-21expr.h (eh_rtime_match_libfunc): New extern declaration.Andrew MacLeod1-3/+2
Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * expr.h (eh_rtime_match_libfunc): New extern declaration. * optabs.c (init_optabs): Set eh_rtime_match_libfunc. * except.c (start_catch_handler): Use eh_rtime_match_libfunc. * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is NULL. Only include <stdio.h> if inhibit_libc is not defined. From-SVN: r22532
1998-09-17[multiple changes]Andrew MacLeod1-4/+4
Thu Sep 17 16:42:16 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and re-align some code. * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>. 1998-09-17 Andrew MacLeod <amacleod@cygnus.com> * exception.cc (__cplus_type_matcher): realign some code. From-SVN: r22462
1998-09-15tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.Richard Henderson1-121/+121
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill. (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill. (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill. (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New. * c-decl.c (init_decl_processing): Update accordingly. * expr.c (expand_builtin): Likewise. * cp/decl.c (init_decl_processing): Likewise. * rtl.h (global_rtl): Add cfa entry. (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New. (LAST_VIRTUAL_REGISTER): Update. * emit-rtl.c (global_rtl): Add cfa entry. (init_emit): Initialize it. * function.c (cfa_offset): New. (instantiate_virtual_regs): Initialize it. (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx. (expand_function_end): Call expand_eh_return. * tm.texi (ARG_POINTER_CFA_OFFSET): New. * except.c (current_function_eh_stub_label): Kill. (current_function_eh_old_stub_label): Likwise; update all references. (expand_builtin_set_return_addr_reg): Kill. (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill. (expand_builtin_set_eh_regs): Kill. (eh_regs): Produce a third reg for the actual handler address. (eh_return_context, eh_return_stack_adjust): New. (eh_return_handler, eh_return_stub_label): New. (init_eh_for_function): Initialize them. (expand_builtin_eh_return, expand_eh_return): New. * except.h: Update prototypes. * flow.c (find_basic_blocks_1): Update references to the stub label. * function.h (struct function): Kill stub label elements. * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the register number is one that would be in the previous window. Provide a dummy definition for non-windowed targets. (get_reg_addr): New function. (get_reg, put_reg, copy_reg): Use it. (__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa. * alpha.c (alpha_eh_epilogue_sp_ofs): New. (alpha_init_expanders): Initialize it. (alpha_expand_epilogue): Use it. * alpha.h: Declare it. * alpha.md (eh_epilogue): New. * m68h.h (ARG_POINTER_CFA_OFFSET): New. * sparc.h (ARG_POINTER_CFA_OFFSET): New. From-SVN: r22436
1998-09-15[multiple changes]Andrew MacLeod1-3/+52
Tue Sep 15 14:10:54 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.h (struct eh_entry): Add false_label field. (end_catch_handler): Add prototype. * except.c (push_eh_entry): Set false_label field to NULL_RTX. (start_catch_handler): When using old style exceptions, issue runtime typematch code before continuing with the handler. (end_catch_handler): New function, generates label after handler if needed by older style exceptions. (expand_start_all_catch): No need to check for new style exceptions. (output_exception_table_entry): Only output the first handler label for old style exceptions. * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching mechanism into one function, if a runtime matcher is provided. 1998-09-15 Andrew MacLeod <amacleod@cygnus.com> * cp/except.c (expand_start_catch_block): No need to check for new exception model. (process_start_catch_block_old): Deleted. (process_start_catch_block): Add call to start_decl_1(). (expand_end_catch_block): Add call to end_catch_handler(). * cp/exception.cc (__cplus_type_matcher): Only check the exception language if there is an exception table. From-SVN: r22425
1998-09-09except.h (current_function_eh_stub_label): Declare.Bernd Schmidt1-0/+16
* except.h (current_function_eh_stub_label): Declare. (current_function_eh_old_stub_label): Declare. * function.h (struct function): New members eh_stub_label and eh_old_stub_label. * except.c (current_function_eh_stub_label): New variable. (current_function_eh_old_stub_label): New variable. (init_eh_for_function): Clear them. (save_eh_status): Save them. (restore_eh_status): Restore them. (expand_builtin_eh_stub): Set current_function_eh_stub_label. (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label. * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't make an edge from the block that contains it to the block starting with the label if this label is one of the eh stub labels. If eh stub labels exist, show they are reachable from the last block in the function. From-SVN: r22369
1998-08-17c-decl.c (init_decl_processing): Remove unneeded &.Kaveh R. Ghazi1-11/+5
* c-decl.c (init_decl_processing): Remove unneeded &. * alpha.h (alpha_initialize_trampoline): Provide prototype. * except.c (set_exception_lang_code, set_exception_version_code): Change parameter from `short' to `int' to avoid using a gcc extension. * except.h (set_exception_lang_code, set_exception_version_code): Likewise for prototypes. * flow.c (count_reg_references): Remove unused variables `regno' and `i'. * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. * prefix.c (translate_name): Cast the result of `alloca'. * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r21781
1998-08-11except.c (set_exception_lang_code, [...]): Use prototype-style definition if ↵John Carr1-0/+8
__STDC__, to match declaration in except.h. * except.c (set_exception_lang_code, set_exception_version_code): Use prototype-style definition if __STDC__, to match declaration in except.h. * genemit.c: Change FAIL and DONE macros not to use loops. From-SVN: r21675
1998-06-29Warning fixes:Kaveh R. Ghazi1-1/+2
* Makefile.in (fix-header): Don't needlessly depend on cpperror.o. * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to void since it is evaluated in a comma list. * mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM' argument as a long and cast `NUM' to long to ensure it is of the proper width. Wrap macro arguments in parens when they appear in the expansion. * sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. * sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. (ASM_DECLARE_RESULT): Fix fprintf format specifier to match function argument return type. (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P, REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'. * cpplib.c (cpp_message_from_errno): Remove unneeded argument to cpp_message. * dbxout.c: Fix the comments after an #endif to reflect the actual condition tested in the preceding #if. * except.c (find_all_handler_type_matches): Switch to old-style function definition. * expr.c (expand_builtin): Remove unused variable `type' twice. * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it to an unsigned long. * haifa-sched.c (print_insn_chain): Remove unused function. * objc/objc-act.c (build_msg_pool_reference): Hide prototype and definition. * toplev.c: When testing whether to include dbxout.h, also include it when XCOFF_DEBUGGING_INFO is defined. * unroll.c (unroll_loop): Add parentheses around assignment used as truth value. From-SVN: r20801
1998-06-25[multiple changes]Andrew MacLeod1-1/+65
Thu Jun 25 16:59:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. (find_all_handler_type_matches): Add function prototype. * eh-common.h (CATCH_ALL_TYPE): Definition added. * except.c (find_all_handler_type_matches): Add function to find all runtime type info in the exception table. (output_exception_table_entry): Special case for CATCH_ALL_TYPE. 1998-06-25 Andrew MacLeod <amacleod@cygnus.com> * cp-tree.h (mark_all_runtime_matches): Add function prototype. * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED flag for all function decls which are in the exception table. * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. * decl2.c (finish_file): Call mark_all_runtime_matches to make sure code is emitted for any referenced rtti function. From-SVN: r20718
1998-06-24except.c (start_catch_handler): Do nothing if EH is not on.Andrew MacLeod1-3/+10
Wed Jun 24 09:14:04 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (start_catch_handler): Do nothing if EH is not on. From-SVN: r20695
1998-06-23Have -fnew-exceptions actually use the runtime field, and not generate ↵Andrew MacLeod1-2/+6
runtime checking code inside each handler. Have -fnew-exceptions actually use the runtime field, and not generate runtime checking code inside each handler. THis works at low opt, but not with optimization at the moment. Tue Jun 23 10:06:07 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) * eh-common.h (struct __eh_info): Remove coerced value field. * libgcc2.c (find_exception_handler): Don't set coerced_value field. * except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use POINTER_SIZE instead of Pmode. (expand_start_all_catch): Call start_catch_handler() if we are not using new style exceptions. 1998-06-22 Andrew MacLeod (amacleod@cygnus.com) * parse.y (function_try_block): Don't call start_catch_handler. * except.c (call_eh_info): Remove coerced field from declaration. (build_eh_type_type_ref): New function to create an address of a rtti function for the new style exception tables. (expand_start_catch_block): Split function, this contains the common part. (process_start_catch_block_old): New function to perform the rest of expand_start_catch_block under old style exceptions. (process_start_catch_block_old): New function to perform the rest of expand_start_catch_block under new style exceptions. (expand_end_catch_block): Only pop the false label off the stack under the old style of exceptions. * semantics.c (finish_try_block): Don't call start_catch_handler. * exception.cc (struct cp_eh_info): Add original_value field. (__cplus_type_matcher): Perform type matching on the original exception value, and if we have a match, set the current value. (__cp_push_exception): Set the original expcetion value. From-SVN: r20671
1998-06-19except.c (jumpif_rtx): Put declaration and definition inside a suitable #ifdef.Jeffrey A Law1-12/+4
* except.c (jumpif_rtx): Put declaration and definition inside a suitable #ifdef. (jumpifnot_rtx): Delete dead function. From-SVN: r20626
1998-06-19except.c (jumpif_rtx): Make static and add prototype.Jeffrey A Law1-2/+5
* except.c (jumpif_rtx): Make static and add prototype. (jumpifnot_rtx): Likewise. From-SVN: r20622
1998-06-18Warning fixes:Kaveh R. Ghazi1-1/+1
* Makefile.in (c-lang.o): Depend on output.h. * c-lang.c: Include output.h. * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. * genrecog.c (write_subroutine): When writing insn-recog.c, mark variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' with ATTRIBUTE_UNUSED. * regmove.c (copy_src_to_dest): Make function static to match its prototype. * reload1.c Include hard-reg-set.h before rtl.h to get macro HARD_CONST. Include machmode.h before hard-reg-set.h. * rtl.h: Prototype `retry_global_alloc' and wrap with macro HARD_CONST to protect usage of typedef HARD_REG_SET. * tree.c: Prototype `_obstack_allocated_p'. * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro BSS_SECTION_ASM_OP. From-SVN: r20556
1998-06-17except.c (add_new_handler): fix bug in finding last region handler.Andrew MacLeod1-1/+2
Wed Jun 17 16:25:38 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) * except.c (add_new_handler): fix bug in finding last region handler. * libgcc2.c (find_exception_handler): Pass exception table pointer to runtime type matcher, not the match info field. From-SVN: r20541
1998-06-17eh-common.h (struct eh_context): Add comment for hidden use of field ↵Andrew MacLeod1-1/+4
dynamic_handler_chain. * eh-common.h (struct eh_context): Add comment for hidden use of field dynamic_handler_chain. * except.c (get_dynamic_handler_chain): Comment on, and use the correct offset of the dynamic_handler_chain field. From-SVN: r20540
1998-06-11Fix m68k build failure.Jim Wilson1-2/+2
* except.c (expand_builtin_eh_stub): Call emit_move_insn rather than calling gen_rtx_SET. From-SVN: r20431
1998-06-09Minor tweaks.Andrew MacLeod1-11/+6
* except.c (expand_start_catch): Rename to start_catch_handler. (expand_end_catch): Delete function. (expand_end_all_catch): Remove catch status that expand_end_catch use to do. * except.h (expand_start_catch): Rename prototype. (expand_end_catch): Delete prototype. * semantics.c (finish_try_block): Rename expand_start_catch, and delete expand_end_catch. * parse.y (function_try_block): Rename expand_start_catch, and delete expand_end_catch. * except.c (expand_end_eh_spec): Rename expand_start_catch, and delete expand_end_catch. From-SVN: r20379
1998-06-08[multiple changes]Andrew MacLeod1-40/+50
Thu Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with flag_new_exceptions runtime flag. (struct old_exception_table): New struct which represents what the exception table looks like without the new model. (NEW_EH_RUNTIME): New value used as a tag in the exception table to flag that this is a new style table. * except.h: Remove compile time flag NEW_EH_MODEL. (expand_builtin_eh_stub_old): New prototype. * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD. * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD. * c-decl.c (init_decl_processing): Add new builtin function __builtin_eh_stub_old. * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL. * flags.h (flag_new_exceptions): New runtime flag. * toplev.c (flag_new_exceptions): Initialize default to 0, -fnew-exceptions sets to 1. * except.c (output_exception_table_entry): Output New style exception identifier into table, and replace compile time flag NEW_EH_MODEL with runtime flag flag_new_exceptions. (output_exception_table): Replace compile time flag NEW_EH_MODEL. (expand_builtin_eh_stub_old): Duplicates original functionality of expand_builtin_eh_stub. (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL. * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs. (old_find_exception_handler): New func, same as find_exception_handler except it works on the old style exception table. (__throw): Replace NEW_EH_MODEL. Detect new model based on presence of identifier in the exception table, and call appropriate routines. 1998-06-08 Andrew MacLeod <amacleod@cygnus.com> * except.c (init_exception_processing): Remove NEW_EH_MODEL compile time flag. Call __cp_eh_info instead of __cp_exception_info. * exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag. (__cp_exception_info): Return offset into cp_eh_info structure to match what use to be the start of this structure. (__cp_eh_info): New function to return a pointer to cp_eh_info struct. (__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL compile time flag. (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call __cp_eh_info instead of __cp_exception_info. From-SVN: r20336
1998-05-28Flow now removes exception regions when their handlers are all removed.Andrew MacLeod1-0/+28
From-SVN: r20115
1998-05-19Fix logic on when to generate a new handler labelAndrew MacLeod1-1/+1
From-SVN: r19868
1998-05-19Warning Fixes:Kaveh R. Ghazi1-1/+0
* Makefile.in (print-rtl.o): Depend on bitmap.h. (dbxout.o): Depend on toplev.h. ($(SCHED_PREFIX)sched.o): Likewise. ($(out_object_file)): Likewise for system.h and toplev.h. (cppmain.o): Depend on gansidecl.h. (cpplib.o): Likewise. (cpperror.o): Likewise. (cppexp.o): Likewise. (cpphash.o): Likewise. (cppalloc.o): Likewise. (fix-header.o): Depend on cpplib.h and cpphash.h. (scan-decls.o): Depend on gansidecl.h. * basic-block.h (free_regset_vector): Add prototype. * cccp.c (check_precompiled): Mark parameter `fname' with ATTRIBUTE_UNUSED. (do_assert): Likewise for `op' and `keyword'. (do_unassert): Likewise. (do_line): Likewise for `keyword'. (do_error): Likewise for `op' and `keyword'. (do_warning): Likewise. (do_ident): Likewise for `keyword'. (do_pragma): Likewise for `limit', `op' and `keyword'. (do_sccs): Likewise. (do_if): Likewise for `keyword'. (do_elif): Likewise. (do_else): Likewise. (do_endif): Likewise. * collect2.c (getenv): Remove redundant prototype. (collect_exit, collect_execute, dump_file): Likewise. (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. (dump_prefix_list): Hide prototype and definition. * sparc.c: Include toplev.h. (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. (symbolic_memory_operand): Likewise. (sp64_medium_pic_operand): Likewise. (data_segment_operand): Likewise. (text_segment_operand): Likewise. (splittable_symbolic_memory_operand): Likewise. (splittable_immediate_memory_operand): Likewise. (eq_or_neq): Likewise. (normal_comp_operator): Likewise. (noov_compare_op): Likewise. (v9_regcmp_op): Likewise. (v8plus_regcmp_op): Likewise. (extend_op): Likewise. (cc_arithop): Likewise. (cc_arithopn): Likewise. (small_int): Likewise. (uns_small_int): Likewise. (clobbered_register): Likewise. (legitimize_pic_address): Likewise. (delay_operand): Likewise. (sparc_builtin_saveregs): Remove unused variable `stdarg'. * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, sparc_issue_rate, v8plus_regcmp_p): Add prototypes. * sparc.md (cmpdi_v8plus): Add abort for default case in switch. * cppalloc.c: Include gansidecl.h. * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. (cpp_file_line_for_message): Mark parameter `pfile' with ATTRIBUTE_UNUSED. (v_cpp_message): New function. (cpp_message): Use it. Also convert to variable arguments. (cpp_fatal): Likewise. (cpp_pfatal_with_name): Constify parameter `name'. * cppexp.c: Move gansidecl.h before cpplib.h. * cpphash.c: Likewise. * cpphash.h (hashf, delete_macro): Add prototypes. * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before cpplib.h. Don't include errno.h. (update_path): Add arguments to prototype. (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, cpp_print_containing_files): Remove redundant prototypes. (cpp_hash_cleanup, add_import, append_include_chain, make_assertion, path_include, initialize_builtins, initialize_char_syntax, finclude, validate_else, comp_def_part, lookup_import, redundant_include_p, is_system_include, read_name_map, read_filename_string, open_include_file, check_macro_name, compare_defs, compare_token_lists, eval_if_expression, change_newlines): Add prototype arguments. (hashf): Remove redundant prototype. (read_token_list, free_token_list, safe_read, xcalloc, savestring, conditional_skip, skip_if_group): Add prototype arguments. (fdopen): Remove redundant prototype. (do_define, do_line, do_include, do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, do_once, do_assert, do_unassert, do_warning): Add prototype arguments. (struct directive): Add prototype arguments to function pointer member `func'. (handle_directive): Add missing arguments to call to `do_line'. (do_include): Mark parameters `unused1' and `unused2' with ATTRIBUTE_UNUSED. (do_line): Likewise for `keyword' and new parameters `unused1' and `unused2'. (do_error): Likewise for `keyword'. (do_warning): Likewise. Also add missing argument `pfile' in call to cpp_pedwarn. (do_once): Mark parameter `keyword', `unused1' and `unused2' with ATTRIBUTE_UNUSED. (do_ident): Likewise for `keyword', `buf' and `limit'. (do_pragma): Likewise. Also add missing arguments in call to do_once. (do_sccs): Mark parameter `keyword', `buf' and `limit' with ATTRIBUTE_UNUSED. (do_if): Likewise for `keyword'. (do_elif): Likewise. (eval_if_expression): Likewise for `buf' and `length'. (do_xifdef): Likewise for `unused1' and `unused2'. (do_else): Likewise for `keyword', `buf' and `limit'. (do_endif): Likewise. (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. (cpp_handle_options): Remove superfluous NULL argument in call to cpp_fatal. (cpp_handle_options): Likewise. (do_assert): Mark parameter `keyword', `buf' and `limit' with ATTRIBUTE_UNUSED. (do_unassert): Likewise. (cpp_print_file_and_line): Add missing argument `pfile' in call to cpp_file_line_for_message. (v_cpp_error): New function. (cpp_error): Use it. Also accept variable arguments. (v_cpp_warning): New function. (cpp_warning): Use it. Also accept variable arguments. (cpp_pedwarn): Accept variable arguments. (v_cpp_error_with_line): New function (cpp_error_with_line): Use it. Accept variable arguments. (v_cpp_warning_with_line): New function. (cpp_warning_with_line): Use it. Accept variable arguments. Hide definition. (cpp_pedwarn_with_line): Accept variable arguments. (cpp_pedwarn_with_file_and_line): Likewise. (cpp_error_from_errno): Constify parameter `name'. Add missing argument `pfile' in call to cpp_file_line_for_message. (cpp_perror_with_name): Constify parameter `name'. * cpplib.h: Define PARAMS() in terms of PROTO(). (fatal): Remove redundant prototype. (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, cpp_fatal, cpp_message, cpp_pfatal_with_name, cpp_file_line_for_message, cpp_print_containing_files): Add arguments to prototypes. (scan_decls, cpp_finish): Add prototypes. * cppmain.c: Include gansidecl.h. (main): Remove unused variable `i'. * dbxout.c: Include toplev.h. * demangle.h (do_tlink, collect_execute, collect_exit, collect_wait, dump_file, file_exists): Add prototype. * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide prototype and definition. (gen_unspecified_parameters_die): Don't assign results of call to function new_die() to unused variable `parm_die'. (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. (dwarf2out_define): Likewise for `lineno' and `buffer'. * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide prototype and definition. (output_die): Add prototype arguments to function pointer arg. (output_unspecified_parameters_die): Mark parameter `arg' with ATTRIBUTE_UNUSED. * except.c (output_exception_table_entry): Remove unused variable `eh_entry'. * except.h (expand_fixup_region_start, expand_fixup_region_end): Add prototypes. * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. * expr.h (do_jump_by_parts_equality_rtx): Add prototype. * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h before cpplib.h, include cpphash.h, remove redundant prototype of cpp_fatal, don't define `const', add a prototype for `fatal'. (cpp_file_line_for_message): Add missing arguments `pfile'. (v_cpp_message): New function. (cpp_message): Use it. (v_fatal): New function. (fatal, cpp_fatal): Use it. (cpp_pfatal_with_name): Constify parameter `name'. * flow.c (free_regset_vector): Remove redundant prototype. * function.c (round_down): Wrap prototype and definition with macro ARGS_GROW_DOWNWARD. (record_insns): Wrap prototype and definition with defined (HAVE_prologue) || defined (HAVE_epilogue). * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. * gen-protos.c: Include gansidecl.h. (hashf): Don't make it static, constify parameter `name'. * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match specifier %s in calls to function `fatal'. * haifa-sched.c: Include toplev.h. (find_rgns): Remove unused variable `j'. * integrate.c (note_modified_parmregs): Mark parameter `x' with ATTRIBUTE_UNUSED. (mark_stores): Likewise. * jump.c (mark_modified_reg): Likewise. * output.h (insn_current_reference_address): Add prototype. (eh_frame_section): Likewise. * print-rtl.c: Include bitmap.h. * reload1.c (reload): Wrap variables `note' and `next' in macro PRESERVE_DEATH_INFO_REGNO_P. (forget_old_reloads_1): Mark parameter `ignored' with ATTRIBUTE_UNUSED. (choose_reload_regs): Remove unused variable `in'. (reload_cse_invalidate_mem): Mark parameter `ignore' with ATTRIBUTE_UNUSED. (reload_cse_check_clobber): Likewise. * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. (mark_elimination): Fix typo in prototype. * scan-decls.c: Include gansidecl.h. * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. From-SVN: r19867
1998-05-14First cut of changes to utilize the new exception handling modelAndrew MacLeod1-140/+422
From-SVN: r19746
1998-05-06typo typo fixes fixesJeff Law1-4/+4
From-SVN: r19601
1998-05-06toplev.h: New file.Robert Lipe1-0/+1
Wed May 6 06:35:38 1998 Robert Lipe <robertl@dgii.com> * toplev.h: New file. Protypes for functions in toplev.c. * tree.h, rtl.h: Deleted protos for functions in toplev.c. * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, varasm.c: include it. From-SVN: r19564
1998-04-16except.c (push_eh_entry): Add prototype.Jeffrey A Law1-2/+15
* except.c (push_eh_entry): Add prototype. (pop_eh_entry, enqueue_eh_entry, dequeu_eh_entry): Likewise. (call_get_eh_context, start_dynamic_cleanup): Likewise. (start_dynamic_handler, can_throw): Likewise. (output_exception_table_entry, scan_region): Likewise. (eh_regs, set_insn_eh_region): Likewise. Also fix typo in previous dwarfout change. From-SVN: r19249
1998-04-04* Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12Jeff Law1-1/+1
for details. * haifa-sched.c: Mirror recent changes from gcc2. From-SVN: r18984
1998-03-20Major cutover to using system.h:Kaveh R. Ghazi1-5/+1
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, expr.o, final.o, flow.o, function.o, getpwd.o, global.o, integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend on system.h. * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, xcoffout.c: Include system.h. Organize include ordering so that stdarg/varargs comes before other system headers. Remove spurious casts of functions assured of a prototype in system.h. From-SVN: r18726
1998-03-19except.c (init_eh): Do nothing.Jason Merrill1-4/+1
* except.c (init_eh): Do nothing. (save_eh_status): Call init_eh_for_function, not init_eh. * function.c (push_function_context_to): Don't call init_emit. From-SVN: r18710
1998-03-16except.c (insn_eh_region, [...]): New static variables.Andrew Macleod1-0/+106
* except.c (insn_eh_region, maximum_uid): New static variables. (set_insn_eh_region): New static function to set region numbers. (free_insn_eh_region): New function to free EH region table. (init_insn_eh_region): New function to initialize EH region table. (in_same_eh_region): New function used to determine if two rtl instructions are in the same exception region or not. From-SVN: r18624
1998-03-12dManfred Hollstein1-1/+1
In gcc/: * bitmap.c (bitmap_element_allocate): Remove unused parameter; change callers accordingly. * cplus-dem.c (arm_special): Remove unused parameter work in prototype and definition; change all callers accordingly. * except.c (init_eh): Avoid assignment of unused return value of build_pointer_type; cast it to void, instead, and remove unused variable type. * gcc.c (lang_specific_driver): Define prototype only #ifdef LANG_SPECIFIC_DRIVER. (temp_names): Define only #ifdef MKTEMP_EACH_FILE. * genoutput.c (output_epilogue): Initialize next_name to 0. * real.c (efrexp): #if 0 prototype and function definition. (eremain): Likewise. (uditoe): Likewise. (ditoe): Likewise. (etoudi): Likewise. (etodi): Likewise. (esqrt): Likewise. * reload.c (push_secondary_reload): Define prototype only #ifdef HAVE_SECONDARY_RELOADS. * varasm.c (assemble_static_space): Define rounded only #ifndef ASM_OUTPUT_ALIGNED_LOCAL. In gcc/cp/: * call.c (default_parm_conversions): Remove prototype definition. (build_method_call): Remove unused variable result. * cvt.c (ocp_convert): Remove unused variable conversion. * decl2.c (ambiguous_decl): Add explicit parameter definition for name. * except.c (do_unwind): #if 0 definition of unused variables fcall and next_pc. * expr.c (extract_scalar_init): #if 0 prototype and function definition. * init.c (expand_aggr_init_1): Remove unused variable init_type. (build_new_1): Remove unused variable t. * pt.c (instantiate_class_template): Remove unused variable newtag; cast called function return value to void. (do_decl_instantiation): Remove unused variables name and fn. * tree.c (get_type_decl): Add default return to shut up compiler from complaining control reaches end of non-void function. * typeck.c (build_x_conditional_expr): Remove unused variable rval. From-SVN: r18498
1998-02-13* except.c (emit_throw): Lose throw_used.Jason Merrill1-8/+0
From-SVN: r17966
1998-02-10except.c (start_dynamic_cleanup): Remove unused variable 'dhc'.Robert Lipe1-19/+3
* except.c (start_dynamic_cleanup): Remove unused variable 'dhc'. (expand_eh_region_start_tree): Remove unused variable 'note'. (exception_optimize): Remove unused variable 'regions'. (expand_builtin_eh_stub): Remove unused variable 'temp'. (copy_eh_entry): Deleted. Dead function. * expr.c (move_block_to_reg) Bracket declaration of 'pat' and 'last' with same #if HAVE_load_multiple as use of it. (move_block_from_reg): Likewise. (emit_move_insn_1): Remove unused variable 'insns'. (store_constructor): Bracket declaration of startb, endb with #if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size' 'target', and 'xtarget'. (expand_builtin_setjmp): Remove unused variables 'op0', 'next_arg_reg', 'old_inhibit_defer_pop'. (expand_builtin): Remove unused variable 'offset'. (do_store_flag): Remove unused variables 'pattern', 'jump_pat'. (emit_queue): Add parens for assignment used as conditional. (expand_expr): case TARGET_EXPR: Remove unused variable 'temp'. From-SVN: r17843
1998-02-07c-common.c: Include <stdlib.h> and <string.h>/<strings.h>.Robert Lipe1-0/+4
* c-common.c: Include <stdlib.h> and <string.h>/<strings.h>. * calls.c (expand_call): Remove unused variables funtree, n_regs, and tmpmode. * dbxout.c, except.c: Include <string.h>/<strings.h>. * explow.c: (plus_constant_for_output_wide) Removed unused variable all_constant. * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c, genrecog.c, global.c, integrate.c , stupid.c : Include <stdlib.h>. * genextract.c: (walk_rtx) Remove unused variable link. * genrecog.c: (concat) Remove unreferenced static function. * prefix.c: Include <string.h>/<strings.h>, <stdlib.h> * stmt.c: Include <stdlib.h>. (expand_asm_operands): Remove unused variable val1. (expand_return): Remove unused variable block. (pushcase): Remove unused variables l and n. (pushcaserange): Likewise. * unroll.c (unroll_loop): Remove unused variable temp. From-SVN: r17766
1998-02-02expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to ↵Richard Henderson1-6/+9
branch to on first and subsequent... * expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent executions. Don't play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', and provide it with the jmp_buf. Use only one of `builtin_setjmp_receiver' or `nonlocal_goto_receiver', and provide the former with the target label. (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' insn to replace all of the normal nonlocal_goto code. Don't play with __dummy. Correct arguments to nonlocal_goto. * expr.h (expand_builtin_setjmp): Update prototype. * except.c (start_dynamic_handler): When using builtin_setjmp, generate more accurate flow information. * alpha.md (nonlocal_goto_receiver_osf): Delete. (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. (builtin_longjmp, builtin_setjmp_receiver): New. * sparc.md (update_return): Disambiguate unspec number. (nonlocal_goto): Rearrange arguments to match caller in except.c. (builtin_setjmp_setup): Rename from setjmp. Match and ignore the jmp_buf operand. * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. (builtin_setjmp_setup*, builtin_longjmp): New. From-SVN: r17602
1998-01-26except.c (check_exception_handler_labels): Disable warning when ↵Benjamin Kosnik1-1/+1
flag_syntax_only. * except.c (check_exception_handler_labels): Disable warning when flag_syntax_only. From-SVN: r17493
1998-01-14alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO...Richard Henderson1-23/+21
* alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO; change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). * caller-save.c, calls.c, combine.c, cse.c: Likewise. * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise. * profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise. * reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise. * unroll.c, varasm.c: Likewise. * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. From-SVN: r17357
1997-12-18except.c: Remove register_exception_table{,_p}.Jason Merrill1-24/+0
* except.c: Remove register_exception_table{,_p}. * decl2.c (finish_file): Remove call to register_exception_table. * cp-tree.def: Add AGGR_INIT_EXPR. * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with AGGR_INIT_EXPR where appropriate. * expr.c (cplus_expand_expr): Likewise. Simplify. From-SVN: r17132