Migrate, FileCheckize and update:

2007-04-03-ObjcEH.m
2007-05-02-Strong.m
2007-10-18-ProDescriptor.m
2007-10-23-GC-WriteBarrier.m
2008-10-3-EhValue.m
2008-11-12-Metadata.m
2008-11-24-ConstCFStrings.m

from llvm/test/FrontendObjC.

llvm-svn: 138172
This commit is contained in:
Eric Christopher 2011-08-20 00:37:56 +00:00
parent d6641af80c
commit fde9786b44
7 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,27 @@
// RUN: %clang -fexceptions -S -emit-llvm %s -o -
@interface B
-(int)bar;
@end
@interface A
-(void) Foo:(int) state;
@end
@implementation A
- (void) Foo:(int) state {
int wasResponded = 0;
@try {
if (state) {
B * b = 0;
@try { }
@finally {
wasResponded = ![b bar];
}
}
}
@finally {
}
}
@end

View File

@ -0,0 +1,23 @@
// RUN: %clang_cc1 -S %s -fobjc-gc -o /dev/null
typedef int NSInteger;
typedef struct _NSRect {
int origin;
int size;
} NSRect;
__attribute__((objc_gc(strong))) NSRect *_cachedRectArray;
extern const NSRect NSZeroRect;
@interface A{
}
-(void)bar:(NSInteger *)rectCount;
@end
@implementation A
-(void)bar:(NSInteger *)rectCount {
NSRect appendRect = NSZeroRect;
_cachedRectArray[*rectCount - 1] = NSZeroRect;
}
@end

View File

@ -0,0 +1,18 @@
// RUN: %clang_cc1 -emit-llvm %s -o /dev/null
@protocol O
@end
@interface O < O > {
}
@end
struct A {
};
@protocol AB
- (unsigned) ver;
@end
@interface AGy:O < AB > {
}
@end
@implementation AGy
- (unsigned) ver {
}
@end

View File

@ -0,0 +1,9 @@
// RUN: %clang_cc1 -emit-llvm %s -o /dev/null -fobjc-gc
// rdar://5541393
typedef unsigned int NSUInteger;
__attribute__((objc_gc(strong))) float *_scores;
void foo(int i, float f) {
_scores[i] = f;
}

View File

@ -0,0 +1,50 @@
// RUN: %clang -fexceptions -S -emit-llvm %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();
}
}

View File

@ -0,0 +1,14 @@
// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin %s -o /dev/null
@interface A
@end
@protocol P
@end
@interface B : A <P>
{
}
@end
@implementation B
- (void)test {
}
@end

View File

@ -0,0 +1,13 @@
// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin %s -o - | FileCheck %s
// CHECK: _unnamed_cfstring_
@class NSString;
@interface A
- (void)bork:(NSString*)msg;
@end
void func(A *a) {
[a bork:@"Hello world!"];
}