zpu: basic block iterator in place
[llvm/zpu.git] / test / FrontendObjC / 2008-10-3-EhValue.m
bloba4c0cae075ad7ef097ea2310c12f8a6e5ac50766
1 // RUN: %llvmgcc -w -x objective-c -c %s -o /dev/null
3 @interface Object {
4 @public
5      Class isa;
7 +initialize;
8 +alloc;
9 +new;
10 +free;
11 -free;
12 +(Class)class;
13 -(Class)class;
14 -init;
15 -superclass;
16 -(const char *)name;
17 @end
19 @interface Frob: Object
20 @end
22 @implementation Frob: Object
23 @end
25 static Frob* _connection = ((void *)0);
27 extern void abort(void);
29 void test (Object* sendPort)
31  int cleanupPorts = 1;
32  Frob* receivePort = ((void *)0);
34  @try {
35   receivePort = (Frob *) -1;
36   _connection = (Frob *) -1;
37   receivePort = ((void *)0);
38   sendPort = ((void *)0);
39   cleanupPorts = 0;
40   @throw [Object new];
41  }
42  @catch(Frob *obj) {
43   if(!(0)) abort();
44  }
45  @catch(id exc) {
46   if(!(!receivePort)) abort();
47   if(!(!sendPort)) abort();
48   if(!(!cleanupPorts)) abort();
49  }