Migrate, update and FileCheckize:

2008-11-25-Blocks.m
2009-01-26-WriteBarrier-2.m
2009-02-05-VolatileProp.m
2009-08-05-utf16.m

from llvm/test/FrontendObjC.

llvm-svn: 138175
This commit is contained in:
Eric Christopher 2011-08-20 00:49:25 +00:00
parent baf5538da9
commit 19de6c75fd
4 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,17 @@
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o /dev/null
// rdar://6394879
@interface bork
- (id)B:(void (^)())blk;
- (void)C;
@end
@implementation bork
- (id)B:(void (^)())blk {
__attribute__((__blocks__(byref))) bork* new = ((void *)0);
blk();
}
- (void)C {
__attribute__((__blocks__(byref))) id var;
[self B:^() {}];
}
@end

View File

@ -0,0 +1,19 @@
// RUN: %clang_cc1 -fblocks -emit-llvm %s -fobjc-gc -o - | FileCheck %s
// CHECK: objc_assign_strongCast
// rdar://5541393
typedef __SIZE_TYPE__ size_t;
void * malloc(size_t size);
typedef struct {
void (^ivarBlock)(void);
} StructWithBlock_t;
int main(int argc, char *argv[]) {
StructWithBlock_t *swbp = (StructWithBlock_t *)malloc(sizeof(StructWithBlock_t*));
__block int i = 10;
// assigning a Block into an struct slot should elicit a write-barrier under GC
swbp->ivarBlock = ^ { ++i; };
return 0;
}

View File

@ -0,0 +1,10 @@
// RUN: %clang -fexceptions -S -emit-llvm %s -o /dev/null -pedantic-errors
// rdar://6551276
void foo(const unsigned short *);
void bar() {
unsigned short *s[3];
int i;
@try { } @catch (id anException) { }
foo(2+s[i]);
}

View File

@ -0,0 +1,5 @@
// RUN: %clang_cc1 -emit-llvm -w -x objective-c %s -o - | FileCheck %s
// rdar://7095855 rdar://7115749
// CHECK: internal unnamed_addr constant [12 x i8]
void *P = @"iPod™";