Commit Graph

22 Commits

Author SHA1 Message Date
Kai Tietz
3e67692874 exception.c: Add check for SjLj to SEH blocks.
2013-07-04  Kai Tietz  <ktietz@redhat.com>

	* exception.c: Add check for SjLj to SEH blocks.

From-SVN: r200663
2013-07-04 11:03:31 +02:00
Richard Sandiford
ad2466aee4 Update copyright years in libobjc.
From-SVN: r195693
2013-02-03 11:16:21 +00:00
Tristan Gingold
bf1431e359 eh_personality.cc (__gxx_personality_seh0): New function.
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
2012-07-19 07:29:24 +00:00
Paul Brook
eb405c4669 exception.c (parse_lsda_header): hardcode ttype_encoding for older ARM EABI toolchains.
2011-10-17  Paul Brook  <paul@codesourcery.com>
            Matthias Klose  <doko@ubuntu.com>

        * exception.c (parse_lsda_header): hardcode ttype_encoding for older
        ARM EABI toolchains.
        (get_ttype_entry) Remove __ARM_EABI_UNWINDER__ variant.

Co-Authored-By: Matthias Klose <doko@ubuntu.com>

From-SVN: r180255
2011-10-20 13:57:21 +00:00
Nicola Pero
309ce401bc In libobjc/: 2011-06-03 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Makefile.in (OBJC_DEPRECATED_H): Removed objc_valloc.h,
	objc_malloc.h and objc_unexpected_exception.h.
	(exception.lo): Do not use -Wno-deprecated-declarations.
	(exception_gc.lo): Likewise.
	* objc/objc-api.h: Do not include deprecated/objc_valloc.h,
	deprecated/objc_malloc.h and
	deprecated/objc_unexpected_exception.h.
	* objc/deprecated/objc_valloc.h: Removed.
	* objc/deprecated/objc_malloc.h: Removed.
	* objc/deprecated/objc_unexpected_exception.h: Removed.
	* exception.c (_objc_unexpected_exception): Removed.
	(objc_exception_throw): Do not check for
	_objc_unexpected_exception.
	* memory.c (objc_valloc, _objc_malloc, _objc_atomic_malloc,
	_objc_valloc, _objc_realloc, _objc_calloc, _objc_free): Removed.	
	* libobjc.def (_objc_unexpected_exception, objc_valloc): Removed.

From-SVN: r174615
2011-06-03 19:15:23 +00:00
Nicola Pero
575584a982 In libobjc/: 2010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* class.c: Tidied up comments and indentation.  No code changes.
	* error.c: Same.
	* exception.c: Same.
	* init.c: Same.
	* ivars.c: Same.
	* memory.c: Same.
	* objc-foreach.c: Same.
	* objc-sync.c: Same.
	* objects.c: Same.
	* protocols.c: Same.
	* sarray.c: Same.
	* thr.c: Same.

From-SVN: r168022
2010-12-18 12:22:59 +00:00
Nicola Pero
be05b0f599 In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * class.c: Include objc/runtime.h and objc-private/module-abi-8.h
        instead of objc/objc-api.h.
        (objc_get_unknown_class_handler): Do not define.
        (class_isMetaClass): New.
        (class_getSuperclass): New.
        (class_getVersion): New.
        (class_setVersion): New.
        (class_getInstanceSize): New.
        * exceptions.c: Include objc/runtime.h instead of objc/objc-api.h.
        (is_kind_of_exception_matcher): Use objc_getSuperclass instead of
        objc_get_super_class.
        (get_ttype_entry): Use objc_getRequiredClass instead of
        objc_get_class.
        * ivars.c (class_getClassVariable): New.
        * objects.c: Include objc/runtime.h, objc/thr.h and
        objc-private/module-abi-8.h instead of objc/objc-api.h
        * objc/runtime.h (class_getClassVariable): New.
        (class_isMetaClass): New.
        (class_getSuperclass): New.
        (class_getVersion): New.
        (class_setVersion): New.
        (class_getInstanceSize): New.
        * objc-private/module-abi-8.h (HOST_BITS_PER_LONG): New (from
        objc/objc-api.h)
        (__CLS_INFO): Same.
        (__CLS_ISINFO): Same.
        (__CLS_SETINFO): Same.
        (CLS_ISMETA): Same.
        (CLS_ISCLASS): Same.
        (CLS_ISRESOLV): Same.
        (CLS_SETRESOLV): Same.
        (CLS_ISINITIALIZED): Same.
        (CLS_SETINITIALIZED): Same.
        (CLS_GETNUMBER): Same.
        (CLS_SETNUMBER): Same.

From-SVN: r165392
2010-10-12 18:43:54 +00:00
Nicola Pero
2461ab4bb7 In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (OBJC_DEPRECATED_H): Added struct_objc_category.h,
        struct_objc_ivar.h, struct_objc_ivar_list.h, struct_objc_method.h,
        struct_objc_method_list.h, struct_objc_module.h,
        struct_objc_protocol_list.h, struct_objc_symtab.h.
        * objc/deprecated/struct_objc_category.h: New.
        * objc/deprecated/struct_objc_ivar.h: New.
        * objc/deprecated/struct_objc_ivar_list.h: New.
        * objc/deprecated/struct_objc_method.h: New.
        * objc/deprecated/struct_objc_method_list.h: New.
        * objc/deprecated/struct_objc_module.h: New.
        * objc/deprecated/struct_objc_protocol_list.h: New.
        * objc/deprecated/struct_objc_symtab.h: New.
        * objc/deprecated/struct_objc_static_instances.h: New.
        * objc/objc-api.h: Definitions of deprecated structures moved into
        the above header fragment files in objc/deprecated/.  Include the
        files instead of definition the structures here.  Updated
        comments.
        * objc/runtime.h: Updated comments.  Do not include objc-api.h.
        (objc_set_enumeration_mutation_handler): Renamed to
        objc_setEnumerationMutationHandler.
        * objc-foreach.c (objc_set_enumeration_mutation_handler): Renamed
        to objc_setEnumerationMutationHandler.
        * objc/objc-exception.h (objc_set_exception_matcher): Renamed to
        objc_setExceptionMatcher.
        (objc_set_uncaught_exception_handler): Renamed to
        objc_setUncaughtExceptionHandler.
        * exception.c: Same changes.

From-SVN: r165249
2010-10-10 11:18:57 +00:00
Nicola Pero
5be9cdc112 In libobjc/:
* objc/hash.h: Moved into objc/deprecated/hash.h; objc/hash.h
        replaced with a placeholder including the file from the
        deprecated/ directory.
        * objc/objc-api.h: Updated includes.
        * objc/typedstream.h: Updated includes.
        * objc-private/hash.h: New file (private copy of hash.h).
        * objc/objc-list.h: Moved into objc/deprecated/objc-list.h;
        objc/objc-list.h replaced with a placeholder including the file
        from the deprecated/ directory.
        * objc-private/objc-list.h: New file (private copy of objc-list.h).
        * init.c: Include objc-private/hash.h and objc-private/objc-list.h
        instead of objc/hash.h and objc/objc-list.h.
        * selector.c: Same change.
        * class.c: Added include <string.h>, which used to be implicitly included
        when hash.h was included.
        * exception.c: Same change.
        * objects.c: Same change.
        * sarray.c: Same change.
        * sendmsg.c: Same change.
        * Makefile.in (OBJC_DEPRECATED_H): Added hash.h and objc-list.h.
        (OBJC_H): Removed hash.h and objc-list.h

From-SVN: r164373
2010-09-17 16:35:15 +00:00
Nicola Pero
6dead247c9 In libobjc/:
* objc/objc.h (__GNU_LIBOBJC__): New #define providing an easy way
        to check the API version.  Added some comments.

        * objc-private/common.h: New file.
        * NXConstStr.m: Include objc-private/common.h.
        * Object.m: Same change.
        * Protocol.m: Same change.
        * archive.c: Same change.
        * class.c: Same change.
        * encoding.c: Same change.
        * exception.c: Same change.
        * gc.c: Same change.
        * hash.c: Same change.
        * init.c: Same change.
        * libobjc_entry.c: Same change.
        * linking.m: Same change.
        * misc.c: Same change (and added a comment).
        * nil_method.c: Same change.
        * objects.c: Same change.
        * sarray.c: Same change.
        * selector.c: Same change.
        * sendmsg.c: Same change.
        * thr.c: Same change.

From-SVN: r164218
2010-09-11 22:47:14 +00:00
Nicola Pero
e30511ed4b objc-exception.h: New file.
* objc/objc-exception.h: New file.
	* exception.c (objc_set_uncaught_exception_handler): Implemented.
	(objc_set_exception_matcher): Implemented.
	(objc_exception_throw): Use the uncaught exception handler if set.
	(PERSONALITY_FUNCTION): Use the exception matcher instead of the
	hardcoded isKindOf.
	(isKindOf): Renamed to is_kind_of_exception_matcher.  Tidied code
	up.  Removed segmentation fault when value is 'nil'.
	* objc/objc-api.h (_objc_unexpected_exception): Mark as
	deprecated.
	* Makefile.in (exception.lo, exception_gc.lo): Use
	-Wno-deprecated-declarations when compiling.
	(OBJC_H): Added objc-exception.h

From-SVN: r164023
2010-09-08 21:03:09 +00:00
Jakub Jelinek
748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
David Ayers
faef499bdf re PR libobjc/27466 (RFE: Support for libobjc equivalent of std::set_unexpected)
libobjc/

2009-03-12  Richard Frith-Macdonald  <rfm@gnu.org>
	    David Ayers  <ayers@fsfe.org>

	PR libobjc/27466
	* objc/objc-api.h (_objc_unexpected_exception): Declare
	new hook.  Update copyright dates.
	* exception.c (objc_exception_throw): Use hook.  Update
	copyright dates.
	* libobjc.def (_objc_unexpected_exception): Export hook.
	Update copyright dates.
	
gcc/testsuite/

2009-03-12  David Ayers  <ayers@fsfe.org>

	PR libobjc/27466
	* objc/execute/exceptions/handler-1.m. New test.

From-SVN: r144826
2009-03-12 22:28:15 +00:00
Kai Tietz
b01bd5fe12 exception.c (PERSONALITY_FUNCTION): Remove extra decrement if HAVE_GETIPINFO is not defined.
2008-06-14  Kai Tietz  <kai.tietz@onevision.com>

	* exception.c (PERSONALITY_FUNCTION): Remove extra decrement
	if HAVE_GETIPINFO is not defined.

From-SVN: r136782
2008-06-14 12:58:22 +02:00
Julian Brown
3f6383d38b configure.ac (arm*-*-linux-gnueabi): Don't disable building of libobjc for ARM EABI Linux.
* configure.ac (arm*-*-linux-gnueabi): Don't disable building
    of libobjc for ARM EABI Linux.
    * configure: Regenerate.

    libobjc/
    * exception.c (__objc_exception_class): Initialise as constant
    array for ARM EABI. Change macro to static const for non-ARM EABI.
    (ObjcException): Add note about structure layout. Remove landingPad
    and handlerSwitchValue for ARM EABI.
    (get_ttype_entry): Add __ARM_EABI_UNWINDER__ version
    of function.
    (CONTINUE_UNWINDING): Define for ARM EABI/otherwise cases.
    (PERSONALITY_FUNCTION): Use ARM EABI-specific arguments, and add
    ARM EABI unwinding support.
    (objc_exception_throw): Use memcpy to initialise exception class.

From-SVN: r136215
2008-05-30 18:21:31 +00:00
Andrew Pinski
30cad60d51 re PR libobjc/30731 (Warnings while compiling libobjc with the uleb128 changes)
2007-08-06  Andrew Pinski  <pinskia@gmail.com>

        PR libobjc/30731
        * exception.c (parse_lsda_header): Use _uleb128_t/_sleb128_t instead
        of _Unwind_Word for variables which are used in
        read_uleb128/read_sleb128.
        (PERSONALITY_FUNCTION): Likewise.

From-SVN: r127242
2007-08-06 07:17:59 -07:00
Kelley Cook
f9d09c4359 All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103197
2005-08-17 03:21:42 +00:00
Marcin Koziej
ee1658f343 re PR libobjc/22492 ([PATCH] Abort after @finally: libobjc passing exception value instead of exception.)
libobjc/ChangeLog:

2005-08-13  Marcin Koziej  <creep@desk.pl>
            Andrew Pinski  <pinskia@physics.uc.edu>

	PR libobjc/22492
	* exception.c (PERSONALITY_FUNCTION): Fix the PC with finally.

testsuite/ChangeLog:
2005-08-13  Marcin Koziej  <creep@desk.pl>
            Andrew Pinski  <pinskia@physics.uc.edu>

	PR libobjc/22492
	* execute/exceptions/finally-1.m: New test.

Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>

From-SVN: r103073
2005-08-13 19:01:52 -07:00
Richard Henderson
4419e3438b * exception.c: Revert last change.
From-SVN: r100003
2005-05-19 18:26:56 -07:00
David Ayers
2e8a88f0b2 exception.c: Include tsystem.h for unwind.h.
2005-05-19  David Ayers  <d.ayers@inode.at>

	* exception.c: Include tsystem.h for unwind.h.

From-SVN: r99978
2005-05-19 12:22:21 +00:00
Andrew Pinski
049bc40445 re PR libobjc/16448 (FAIL: objc/execute/IMP.m compilation, -O0)
2004-09-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR libobjc/16448
        * exception.c: Include config.h
        (objc_exception_throw): Change _GLIBCXX_SJLJ_EXCEPTIONS to
        SJLJ_EXCEPTIONS.
        * configure.ac: Find out what exception handling code we use.
        * configure: Regenerate.
        * config.h.in: New file, regenerate.

From-SVN: r88379
2004-09-30 20:46:39 -07:00
Richard Henderson
a776161b8b exception.c: New file.
* exception.c: New file.
        * Makefile.in (exception.lo): New.
        (OBJS): Add it.

From-SVN: r83331
2004-06-17 18:00:28 -07:00