1. 04 Feb, 2013 1 commit
  2. 29 Nov, 2012 1 commit
  3. 19 Jul, 2012 1 commit
    • eh_personality.cc (__gxx_personality_seh0): New function. · bf1431e3
      libstdc++-v3/
      	* libsupc++/eh_personality.cc (__gxx_personality_seh0): New function.
      	Adjust for SEH.
      	* config/abi/pre/gnu.ver: Add __gxx_personality_seh0.
      
      libobjc/
      	* exception.c (__gnu_objc_personality_seh0): New function.
      
      libjava/
      	* libgcj.ver: Add __gcj_personality_seh0.
      	* exception.cc (__gcj_personality_seh0): New function.
      	Adjust for SEH.
      
      libgcc/
      	* unwind-seh.c: New file.
      	* unwind-generic.h: Include windows.h for SEH.
      	(_Unwind_Exception): Use 6 private fields for SEH.
      	(_GCC_specific_handler): Declare.
      	* unwind-c.c (__gcc_personality_seh0): New function.
      	Adjust for SEH.
      	* config/i386/libgcc-cygming.ver: New file.
      	* config/i386/t-seh-eh: New file.
      	* config.host (x86_64-*-mingw*): Default to seh.
      
      gcc/
      	* opts.c (finish_options): Handle UI_SEH.
      	* expr.c (build_personality_function): Handle UI_SEH.
      	* dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
      	* coretypes.h (unwind_info_type): Add UI_SEH.
      	* config/i386/winnt.c (i386_pe_seh_emit_except_personality):
      	New function.
      	(i386_pe_seh_init_sections): Likewise.
      	* config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
      	(i386_except_unwind_info): New function.
      
      
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      
      From-SVN: r189644
      Tristan Gingold committed
  4. 13 Sep, 2011 1 commit
    • arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. · 1e874273
      2011-09-13  Paul Brook  <paul@codesourcery.com>
       
      	gcc/
      	* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
      	(ARM_TARGET2_DWARF_FORMAT): Provide default definition.
      	* config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
      	* config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
      	* config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
      	enabling unwind tables.
      	(c6x_debug_unwind_info): New function.
      	(TARGET_ARM_EABI_UNWINDER): Define.
      	(TARGET_DEBUG_UNWIND_INFO): Define.
      	* config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
      	(TARGET_EXTRA_CFI_SECTION): Remove.
      	* config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
      	* ginclude/unwind-arm-common.h: New file.
      
      	libgcc/
      	* config.host (tic6x-*-*): Add c6x/t-c6x-elf.  Set unwind_header.
      	* unwind-c.c (PERSONALITY_FUNCTION): Use UNWIND_POINTER_REG.
      	* unwind-arm-common.inc: New file.
      	* config/arm/unwind-arm.c: Use unwind-arm-common.inc.
      	* config/arm/unwind-arm.h: Use unwind-arm-common.h.
      	(_GLIBCXX_OVERRIDE_TTYPE_ENCODING): Define.
      	* config/c6x/libunwind.S: New file.
      	* config/c6x/pr-support.c: New file.
      	* config/c6x/unwind-c6x.c: New file.
      	* config/c6x/unwind-c6x.h: New file.
      	* config/c6x/t-c6x-elf: New file.
      
      
      	libstdc++-v3/
      	* libsupc++/eh_arm.cc (__cxa_end_cleanup): Add C6X implementation.
      	* libsupc++/eh_call.cc (__cxa_call_unexpected): Set rtti_base.
      	* libsupc++/eh_personality.cc (NO_SIZE_OF_ENCODED_VALUE): Remove
      	__ARM_EABI_UNWINDER__ check.
      	(parse_lsda_header): Check _GLIBCXX_OVERRIDE_TTYPE_ENCODING.
      	(get_ttype_entry): Use generic implementation on ARM EABI.
      	(check_exception_spec): Use _Unwind_decode_typeinfo_ptr and
      	UNWIND_STACK_REG.
      	(PERSONALITY_FUNCTION): Set ttype_base.
      
      From-SVN: r178808
      Paul Brook committed
  5. 05 Aug, 2011 1 commit
    • Makefile.in (UNWIND_H): Remove. · 201cdb74
      	gcc:
      	* Makefile.in (UNWIND_H): Remove.
      	(LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
      	../libgcc/Makefile.in.
      	(LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
      	(LIBUNWINDDEP): Remove.
      	(libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
      	(libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
      	LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
      	(stmp-int-hdrs): Remove $(UNWIND_H) dependency.
      	Don't copy $(UNWIND_H).
      	* config.gcc (ia64*-*-linux*): Remove with_system_libunwind
      	handling.
      	* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
      	unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
      	unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
      	unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
      	* unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
      	* config/arm/libunwind.S, config/arm/pr-support.c,
      	config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
      	../libgcc/config/arm.
      	* config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
      	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
      	* config/frv/t-frv ($(T)frvbegin$(objext)): Use
      	$(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
      	($(T)frvend$(objext)): Likewise.
      	* config/ia64/t-glibc (LIB2ADDEH): Remove.
      	* config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
      	* config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
      	config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
      	../libgcc/config/ia64.
      	* config/ia64/t-hpux (LIB2ADDEH): Remove.
      	* config/ia64/t-ia64 (LIB2ADDEH): Remove.
      	* config/ia64/t-vms (LIB2ADDEH): Remove.
      	* config/ia64/vms.h (UNW_IVMS_MODE,
      	MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
      	* config/picochip/t-picochip (LIB2ADDEH): Remove.
      	* config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
      	* config/rs6000/t-darwin (LIB2ADDEH): Remove.
      	* config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
      	* config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
      	$(srcdir)/../libgcc to refer to unwinder sources.
      	* config/spu/t-spu-elf (LIB2ADDEH): Remove.
      	* config/t-darwin (LIB2ADDEH): Remove.
      	* config/t-freebsd (LIB2ADDEH): Remove.
      	* config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
      	* config/t-libunwind-elf: Move to ../libgcc/config.
      	* config/t-linux (LIB2ADDEH): Remove.
      	* config/t-sol2 (LIB2ADDEH): Remove.
      	* config/xtensa/t-xtensa (LIB2ADDEH): Remove.
      	* system.h (MD_FROB_UPDATE_CONTEXT): Poison.
      
      	gcc/po:
      	* EXCLUDES (unwind-c.c, unwind-dw2-fde-darwin.c)
      	(unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h)
      	(unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h): Remove.
      
      	libgcc:
      	* Makefile.in (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): New
      	variables.
      	(LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): New variables.
      	(LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Add $(srcdir)/emutls.c.
      	(install-unwind_h): New target.
      	(all): Depend on it.
      	* config.host (unwind_header): New variable.
      	(*-*-freebsd*): Set tmake_file to t-eh-dw2-dip.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*): Likewise, also for *-*-kopensolaris*-gnu.
      	(*-*-solaris2*): Add t-eh-dw2-dip to tmake_file.
      	(arm*-*-linux*): Add arm/t-bpabi for arm*-*-linux-*eabi.
      	Set unwind_header.
      	(arm*-*-uclinux*): Add arm/t-bpabi for arm*-*-uclinux*eabi.
      	Set unwind_header.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi for
      	arm*-*-eabi*.
      	Add arm/t-symbian to tmake_file for arm*-*-symbianelf*.
      	Set unwind_header.
      	(ia64*-*-elf*): Add ia64/t-eh-ia64 to tmake_file.
      	(ia64*-*-freebsd*): Likewise.
      	(ia64*-*-linux*): Add ia64/t-glibc, ia64/t-eh-ia64, t-libunwind to
      	tmake_file.
      	Add t-libunwind-elf, ia64/t-glibc-libunwind unless
      	$with_system_libunwind.
      	(ia64*-*-hpux*): Set tmake_file.
      	(ia64-hp-*vms*): Add ia64/t-eh-ia64 to tmake_file.
      	(picochip-*-*): Set tmake_file.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Set
      	md_unwind_header.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
      	(s390x-ibm-tpf*): Add t-eh-dw2-dip to tmake_file.
      	(xtensa*-*-elf*): Set tmake_file.
      	(xtensa*-*-linux*): Likewise.
      	* configure.ac: Include ../config/unwind_ipinfo.m4.
      	Call GCC_CHECK_UNWIND_GETIPINFO.
      	Link unwind.h to $unwind_header.
      	* configure: Regenerate.
      	* emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
      	unwind-dw2-fde-compat.c, unwind-dw2-fde-dip.c, unwind-dw2-fde.c,
      	unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
      	unwind-pe.h, unwind-sjlj.c, unwind.inc: New files.
      	* config/unwind-dw2-fde-darwin.c: New file.
      	* config/arm/libunwind.S, config/arm/pr-support.c,
      	config/arm/t-bpabi, config/arm/t-symbian, config/arm/unwind-arm.c,
      	config/arm/unwind-arm.h,: New files.
      	* config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
      	config/ia64/t-eh-ia64, config/ia64/t-glibc,
      	config/ia64/t-glibc-libunwind, config/ia64/t-hpux,
      	config/ia64/t-vms, config/ia64/unwind-ia64.c,
      	config/ia64/unwind-ia64.h: New files.
      	* config/picochip/t-picochip: New file.
      	* config/rs6000/aix-unwind.h, config/rs6000/darwin-fallback.c: New
      	files.
      	* config/rs6000/t-darwin (LIB2ADDEH): Set.
      	* config/s390/t-tpf (LIB2ADDEH): Remove.
      	* config/t-darwin (LIB2ADDEH): Set.
      	* config/t-eh-dw2-dip: New file.
      	* config/t-libunwind, config/t-libunwind-elf: New files.
      	* config/t-sol2 (LIB2ADDEH): Remove.
      	* config/xtensa/t-xtensa: New file.
      
      	gcc/ada:
      	* gcc-interface/Makefile.in (raise-gcc.o): Search
      	$(srcdir)/../libgcc.
      
      	libgo:
      	* Makefile.am (AM_CFLAGS): Search $(srcdir)/../libgcc.
      	* Makefile.in: Regenerate.
      
      	libjava:
      	* configure.ac (GCC_UNWIND_INCLUDE): Rename to
      	LIBGCC_UNWIND_INCLUDE.
      	Point to $(multi_basedir)/./libjava/../libgcc.
      	* configure: Regenerate.
      	* Makefile.am (GCC_UNWIND_INCLUDE): Reflect this.
      	* Makefile.in: Regenerate.
      
      	libobjc:
      	* Makefile.in (INCLUDES): Search
      	$(srcdir)/$(MULTISRCTOP)../libgcc.
      
      	libstdc++-v3:
      	* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Point TOPLEVEL_INCLUDES
      	to $(toplevel_srcdir)/libgcc.
      	* configure: Regenerate.
      
      From-SVN: r177447
      Rainer Orth committed
  6. 27 Nov, 2009 1 commit
    • i386.c (ix86_emit_restore_sse_regs_using_mov): Remove unused insn variable. · f1ed99cd
      	* config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
      	unused insn variable.
      	* genemit.c (output_peephole2_scratches): Only declare and initialize
      	_regs_allocated if it will be ever used.
      	* cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
      	succ_bb variable.
      	(create_empty_loop_on_edge): Remove unused freq and cnt variables.
      	* unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
      	variable.
      
      From-SVN: r154701
      Jakub Jelinek committed
  7. 09 Apr, 2009 1 commit
  8. 24 Jan, 2007 1 commit
    • unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with _uleb128_t and… · f767122b
      unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t.
      
      2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with 
      	_uleb128_t and _Unwind_SWord with _sleb128_t.
      	* unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
      	uw_frame_state_for, uw_update_context_1): Likewise.
      	* unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
      	* unwind-pe.h (read_uleb128, read_sleb128,
      	read_encoded_value_with_base): Likewise.
      	* unwind-generic.h: Define _sleb128_t and _uleb128_t types.
      
      2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* libsupc++/eh_personality.cc (parse_lsda_header, check_exception_spec,
      	get_ttype_entry, empty_exception_spec, PERSONALITY_FUNCTION): Replaced
      	_Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t.
      
      2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* exception.cc (parse_lsda_header, PERSONALITY_FUNCTION): Replaced
      	_Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t.
      
      From-SVN: r121116
      Andreas Krebbel committed
  9. 09 Oct, 2006 1 commit
  10. 27 Feb, 2006 1 commit
    • re PR other/26208 (Serious problem with unwinding through signal frames) · 754e45a8
      	PR other/26208
      	* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
      	(extract_cie_info): Handle S flag in augmentation string.
      	(execute_cfa_program): If context->signal_frame, execute also
      	fs->pc == context->ra instructions.
      	(uw_frame_state_for): If context->signal_frame, don't subtract one
      	from context->ra to find FDE.
      	(uw_update_context_1): Set context->signal_frame to
      	fs->signal_frame.
      	(_Unwind_GetIPInfo): New function.
      	* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
      	* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
      	of _Unwind_GetIP.
      	* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
      	* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
      	* unwind-compat.c (_Unwind_GetIPInfo): New function.
      	* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
      	* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
      	* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
      	* config/i386/linux-unwind.h (x86_fallback_frame_state,
      	x86_64_fallback_frame_state): Set fs->signal_frame.
      	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
      	(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
      	(frob_update_context): Likewise.  Workaround missing S flag in
      	Linux 2.6.12 - 2.6.16 kernel vDSOs.
      	* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
      	Remove the psw_addr + 1 hack.
      libjava/
      	* exception.cc (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
      	of _Unwind_GetIP.
      	* include/i386-signal.h (MAKE_THROW_FRAME): Change into empty macro.
      	(HANDLE_DIVIDE_OVERFLOW): Don't adjust _res->eip if falling through
      	to throw.
      	* include/x86_64-signal.h (MAKE_THROW_FRAME): Change into empty
      	macro.
      	* include/powerpc-signal.h (MAKE_THROW_FRAME): Change into empty
      	macro.
      libstdc++-v3/
      	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
      	_Unwind_GetIPInfo instead of _Unwind_GetIP.
      
      From-SVN: r111488
      Jakub Jelinek committed
  11. 16 Nov, 2005 1 commit
    • unwind-arm.c (abort): Add prototype here. · 74d9c39f
      gcc/
      	* config/arm/unwind-arm.c (abort): Add prototype here.
      	(UCB_FORCED_STOP_ARG): Correct typo in macro argument.
      	(struct phase1_vrs): Add prev_sp.
      	(unwind_phase2_forced): Save the original core registers instead of
      	modifying entry_vrs.  Take a new flag argument for resuming unwinding
      	and set action flags accordingly.  Always set _US_END_OF_STACK when
      	get_eit_entry fails.  Unwind before calling the stop function.
      	(_Unwind_GetCFA): New function.
      	(__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
      	(__gnu_Unwind_Resume_or_Rethrow): Likewise.
      	(__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
      	just call unwind_phase2_forced.
      	(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
      	* config/arm/unwind-arm.h (abort): Remove prototype.
      	(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
      	prototypes.
      	(_Unwind_GetCFA): New prototype.
      	* config/arm/pr-support.c (abort): Add prototype here.
      	* unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
      	forced unwinding.
      	* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
      	not schedule the prologue with non-call exceptions and EABI.
      gcc/testsuite/
      	* gcc.dg/cleanup-5.c, gcc.dg/cleanup-8.c, gcc.dg/cleanup-9.c,
      	gcc.dg/cleanup-10.c, gcc.dg/cleanup-11.c: Update for ARM EABI.
      
      From-SVN: r107091
      Daniel Jacobowitz committed
  12. 28 Jun, 2005 1 commit
    • Makefile.in: Set and use UNWIND_H. · 617a1b71
      2005-06-28  Paul Brook  <paul@codesourcery.com>
      
      gcc/
      	* Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
      	* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
      	* except.c (add_ehspec_entry): Generate arm eabi filter lists.
      	(assign_filter_values): Ditto.
      	(output_ttype): New function.
      	(output_function_exception_table): Use output_ttype.  Generate arm
      	eabi filter lists.
      	(default_init_unwind_resume_libfunc): New function.
      	* except.h (default_init_unwind_resume_libfunc): Add prototype.
      	* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
      	* opts.c (decode_options): Use targetm.unwind_tables_default.
      	* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
      	(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
      	* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
      	and arm_eabi_unwinder.
      	* unwind-c.c: Support Arm EABI unwinder.
      	* unwind.h: Rename ...
      	* unwind-generic.h: ... To this.
      	* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
      	(TARGET_UNWID_TABLES_DEFAULT): Document.
      
      	* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
      	* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
      	(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
      	Define.
      	(thumb_pushpop, thumb_output_function_prologue): Output unwinding
      	directives.
      	(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
      	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
      	!TARGET_UNWIND_INFO.
      	(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
      	* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
      	* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
      	ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
      	* config/arm/lib1funcs.asm: Include libunwind.S.
      	* config/arm/libgcc-bpabi.ver: Add unwinding routines.
      	* config/arm/libunwind.S: New file.
      	* config/arm/pr-support.c: New file.
      	* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
      	(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
      	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
      	* config/arm/unwind-arm.c: New file.
      	* config/arm/unwind-arm.h: New file.
      	* config/i386/t-netware (USER_H): Remove unwind.h.
      	* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
      
      gcc/cp/
      	* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
      	* except.c: Include target.h.
      	(init_exception_processing): Initialize unwind_resume_libfunc.
      	* doc/tm.texi: Document TARGET_ASM_TTYPE
      gcc/ada/
      	* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
      gcc/java/
      	* decl.c (java_init_decl_processing): Call
      	default_init_unwind_resume_libfunc.
      gcc/objc/
      	* objc-act.c (objc_init_exceptions): Call
      	default_init_unwind_resume_libfunc.
      libstdc++/
      	* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Check for
      	__cxa_end_cleanup.
      	* libsupc++/Makefile.am (sources): Add eh_call.c and eh_arm.c.
      	* libsupc++/eh_arm.cc: New file.
      	* libsupc++/eh_call.cc: New file.
      	* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): Use
      	__gxx_caught_object.
      	(__cxa_begin_catch): Ditto. Use __is_gxx_exception_class. Call
      	_Unwind_Complete when using the ARM EABI.
      	(__cxa_end_catch): Use __is_gxx_exception_class.
      	* libsupc++/eh_personality.cc: Define NO_SIZE_OF_ENCODED_VALUE when
      	using the ARM EABI.
      	(save_caught_exception, restore_caught_exception): New functions.
      	(_throw_typet): New typedef.
      	(get_ttype_entry, get_adjusted_ptr, check_exception_spec): Add ARM
      	EABI implementations.
      	(PERSONALITY_FUNCTION): Use new functions.  Addd support for ARM EABI
      	unwinding libary.
      	(__cxa_unexpected): Disable when using the ARM EABI.
      	* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
      	(__cxa_rethrow): Use __is_gxx_exception_class.  Call
      	_Unwind_RaiseException when using the ARM EABI.
      	* libsupc++/unwind-cxx.h (struct __cxa_exception): Add fields for ARM
      	EABI semantics.
      	(struct __cxa_eh_globals): Ditto.
      	(__cxa_call_terminate): Add prototype.
      	(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Add
      	prototypes.
      	(__get_exception_header_from_obj, __get_exception_header_from_ue):
      	Move earlier in file.
      	(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS,
      	__gxx_caught_object): New functions.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* libmath/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* src/Makefie.in: Regenerate.
      	* testsuite/makefile.in: Regenerate.
      
      From-SVN: r101385
      Paul Brook committed
  13. 25 Jun, 2005 1 commit
  14. 19 Aug, 2003 1 commit
  15. 28 Jun, 2003 1 commit
  16. 14 Jun, 2003 1 commit
  17. 04 Jun, 2003 1 commit
    • c-common.c (handle_cleanup_attribute): New. · 0bfa5f65
              * c-common.c (handle_cleanup_attribute): New.
              (c_common_attributes): Add it.
              * c-decl.c (finish_decl): Honor the cleanup attribute.
              * doc/extend.texi (Variable Attributes): Document it.
      
              * unwind-c.c: New file.
              * Makefile.in (LIB2ADDEH): Add it.
              * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
              config/ia64/t-ia64: Likewise.
      
              * gcc.dg/cleanup-1.c: New.
              * gcc.dg/cleanup-2.c: New.
              * gcc.dg/cleanup-3.c: New.
              * gcc.dg/cleanup-4.c: New.
              * gcc.dg/cleanup-5.c: New.
              * gcc.dg/cleanup-6.c: New.
              * gcc.dg/cleanup-7.c: New.
      
      From-SVN: r67449
      Richard Henderson committed