зеркало из https://github.com/microsoft/clang-1.git
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138172 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
baa15d6b53
Коммит
7bc54e543f
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
||||||
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
|
@ -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!"];
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче