mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 22:28:18 +00:00
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57023 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
50
test/FrontendObjC++/2008-10-3-EhValue.mm
Normal file
50
test/FrontendObjC++/2008-10-3-EhValue.mm
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
// RUN: %llvmgcc -w -x objective-c++ -c %s -o /dev/null
|
||||||
|
|
||||||
|
@interface Object {
|
||||||
|
@public
|
||||||
|
Class isa;
|
||||||
|
}
|
||||||
|
+initialize;
|
||||||
|
+alloc;
|
||||||
|
+new;
|
||||||
|
+free;
|
||||||
|
-free;
|
||||||
|
+(Class)class;
|
||||||
|
-(Class)class;
|
||||||
|
-init;
|
||||||
|
-superclass;
|
||||||
|
-(const char *)name;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface Frob: Object
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation Frob: Object
|
||||||
|
@end
|
||||||
|
|
||||||
|
static Frob* _connection = ((void *)0);
|
||||||
|
|
||||||
|
extern void abort(void);
|
||||||
|
|
||||||
|
void test (Object* sendPort)
|
||||||
|
{
|
||||||
|
int cleanupPorts = 1;
|
||||||
|
Frob* receivePort = ((void *)0);
|
||||||
|
|
||||||
|
@try {
|
||||||
|
receivePort = (Frob *) -1;
|
||||||
|
_connection = (Frob *) -1;
|
||||||
|
receivePort = ((void *)0);
|
||||||
|
sendPort = ((void *)0);
|
||||||
|
cleanupPorts = 0;
|
||||||
|
@throw [Object new];
|
||||||
|
}
|
||||||
|
@catch(Frob *obj) {
|
||||||
|
if(!(0)) abort();
|
||||||
|
}
|
||||||
|
@catch(id exc) {
|
||||||
|
if(!(!receivePort)) abort();
|
||||||
|
if(!(!sendPort)) abort();
|
||||||
|
if(!(!cleanupPorts)) abort();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user