diff options
Diffstat (limited to 'test/FrontendObjC')
-rw-r--r-- | test/FrontendObjC/2007-04-03-ObjcEH.m | 29 | ||||
-rw-r--r-- | test/FrontendObjC/2007-05-02-Strong.m | 23 | ||||
-rw-r--r-- | test/FrontendObjC/dg.exp | 6 |
3 files changed, 58 insertions, 0 deletions
diff --git a/test/FrontendObjC/2007-04-03-ObjcEH.m b/test/FrontendObjC/2007-04-03-ObjcEH.m new file mode 100644 index 0000000..353323d --- /dev/null +++ b/test/FrontendObjC/2007-04-03-ObjcEH.m @@ -0,0 +1,29 @@ +// RUN: %llvmgcc -c %s -o /dev/null + +@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 + + diff --git a/test/FrontendObjC/2007-05-02-Strong.m b/test/FrontendObjC/2007-05-02-Strong.m new file mode 100644 index 0000000..3778fd2 --- /dev/null +++ b/test/FrontendObjC/2007-05-02-Strong.m @@ -0,0 +1,23 @@ +// RUN: %llvmgcc -c %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 diff --git a/test/FrontendObjC/dg.exp b/test/FrontendObjC/dg.exp new file mode 100644 index 0000000..19f41a1 --- /dev/null +++ b/test/FrontendObjC/dg.exp @@ -0,0 +1,6 @@ +load_lib llvm.exp + +if [ llvm_gcc_supports objc ] then { + RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{m}]] +} + |