diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-14 00:58:26 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-14 00:58:26 +0000 |
commit | 6aca96ad04cfec3416b0624c30ed49e515dfd45b (patch) | |
tree | dbb2889dc5d46c61bf823c40e6158007c0be1169 /gcc/testsuite/objc.dg | |
parent | d9487d809dc833cd06dd57c8c00461a669e670a8 (diff) | |
download | gcc-6aca96ad04cfec3416b0624c30ed49e515dfd45b.tar.gz |
* objc/execute/exceptions/exceptions.exp: New exp for the exceptions
testsuite.
* objc/execute/exceptions/trivial.m: New test.
* objc.dg/try-catch-11.m: Move to ...
* objc/execute/exceptions/foward-1.m: Here.
* objc.dg/try-catch-2.m: Move to ...
* objc/execute/exceptions/catchall-1.m: Here.
* objc.dg/try-catch-8.m: Move to ...
* objc/execute/exceptions/local-variables-1.m: Here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103071 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/objc.dg')
-rw-r--r-- | gcc/testsuite/objc.dg/try-catch-11.m | 42 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/try-catch-2.m | 79 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/try-catch-8.m | 65 |
3 files changed, 0 insertions, 186 deletions
diff --git a/gcc/testsuite/objc.dg/try-catch-11.m b/gcc/testsuite/objc.dg/try-catch-11.m deleted file mode 100644 index 745deca7c1d..00000000000 --- a/gcc/testsuite/objc.dg/try-catch-11.m +++ /dev/null @@ -1,42 +0,0 @@ -/* Check that throwing an exception from a -forward:: works. */ -/* Developed by Marcin Koziej <creep@desk.pl>. */ - -/* { dg-do run } */ -/* { dg-options "-fobjc-exceptions -w" } */ - -#import <objc/Object.h> -#import <objc/objc-api.h> -#include <stdlib.h> - -static int i; - -@interface Thrower : Object -- forward: (SEL) s : (void*) a; -@end - -@implementation Thrower -- forward: (SEL) s : (void*) a -{ - i++; - @throw [Object new]; -} -@end -int -main() -{ - id t = [Thrower new]; - @try - { - [t doesnotexist]; - } - @catch (id error) - { - i++; - [error free]; - } - - if (i != 2) - abort (); - - return 0; -}
\ No newline at end of file diff --git a/gcc/testsuite/objc.dg/try-catch-2.m b/gcc/testsuite/objc.dg/try-catch-2.m deleted file mode 100644 index 35d60e96c00..00000000000 --- a/gcc/testsuite/objc.dg/try-catch-2.m +++ /dev/null @@ -1,79 +0,0 @@ -/* Test out '@catch(id foo) {...}', which should catch all uncaught - exceptions. */ -/* Developed by Ziemowit Laski <zlaski@apple.com>. */ - -/* { dg-options "-fobjc-exceptions" } */ -/* { dg-do run } */ - -#include <objc/Object.h> -#include <stdio.h> - -/* The following is not required in actual user code; we include it - here to check that the compiler generates an internal definition of - _setjmp that is consistent with what <setjmp.h> provides. */ -#include <setjmp.h> - -extern void abort(void); -#define CHECK_IF(expr) if(!(expr)) abort() - -@interface Frob: Object -@end - -@implementation Frob: Object -@end - -static Frob* _connection = nil; - -//-------------------------------------------------------------------- - - -void test (Object* sendPort) -{ - int cleanupPorts = 1; - Frob* receivePort = nil; - - @try { - printf ("receivePort = %p\n", receivePort); - printf ("sendPort = %p\n", sendPort); - printf ("cleanupPorts = %d\n", cleanupPorts); - printf ("---\n"); - - receivePort = (Frob *) -1; - _connection = (Frob *) -1; - printf ("receivePort = %p\n", receivePort); - printf ("sendPort = %p\n", sendPort); - printf ("cleanupPorts = %d\n", cleanupPorts); - printf ("---\n"); - - receivePort = nil; - sendPort = nil; - cleanupPorts = 0; - - printf ("receivePort = %p\n", receivePort); - printf ("sendPort = %p\n", sendPort); - printf ("cleanupPorts = %d\n", cleanupPorts); - printf ("---\n"); - - @throw [Object new]; - } - @catch(Frob *obj) { - printf ("Exception caught by incorrect handler!\n"); - CHECK_IF(0); - } - @catch(id exc) { - printf ("Exception caught by correct handler.\n"); - printf ("receivePort = %p (expected 0x0)\n", receivePort); - printf ("sendPort = %p (expected 0x0)\n", sendPort); - printf ("cleanupPorts = %d (expected 0)\n", cleanupPorts); - printf ("---"); - CHECK_IF(!receivePort); - CHECK_IF(!sendPort); - CHECK_IF(!cleanupPorts); - } -} - -int main (void) { - - test((Object *)-1); - return 0; -} diff --git a/gcc/testsuite/objc.dg/try-catch-8.m b/gcc/testsuite/objc.dg/try-catch-8.m deleted file mode 100644 index 384faa38114..00000000000 --- a/gcc/testsuite/objc.dg/try-catch-8.m +++ /dev/null @@ -1,65 +0,0 @@ -/* Check that local variables that get modified inside the @try - block survive until the @catch block is reached. */ -/* Developed by Ziemowit Laski <zlaski@apple.com>. */ - -/* { dg-options "-fobjc-exceptions -O2" } */ -/* { dg-do run } */ - -#include <objc/Object.h> -#include <stdlib.h> -#include <stdio.h> - -int gi1 = 9, gi2 = 19; -float gf1 = 9.0, gf2 = 19.0; -id obj2 = nil; - -void foo (int arg1, float *arg2) -{ - int *pi = &gi1; - float *pf = &gf1; - id obj1 = nil; - int local1 = 45, local2 = 47; - float local3 = 3.0, local4 = 4.0; - register int local5 = 15; - static float local6 = 16.0; - - @try { - local1 = 123; - local2 = 345; - local3 = 5.0; - local4 = 6.0; - local5 = 17; - local6 = 18.0; - pi = &gi2; - pf = &gf2; - obj2 = obj1 = [Object new]; - arg1 = 17; - arg2 = &gf2; - - @throw [Object new]; - } - @catch (Object *obj) { - if (local1 != 123 || local2 != 345 || local3 != 5.0 || local4 != 6.0 - || local5 != 17 || local6 != 18.0) { - printf("Abort 1\n"); - abort(); - } - if(pi != &gi2 || pf != &gf2) { - printf("Abort 2\n"); - abort(); - } - if(!obj1 || obj1 != obj2) { - printf("Abort 3\n"); - abort(); - } - if(arg1 != 17 || arg2 != &gf2) { - printf("Abort 4\n"); - abort(); - } - } -} - -int main(void) { - foo(15, &gf1); - return 0; -} |