зеркало из 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!"];
|
||||
}
|
Загрузка…
Ссылка в новой задаче