]> granicus.if.org Git - clang/commitdiff
Test case for r131940.
authorDevang Patel <dpatel@apple.com>
Tue, 24 May 2011 00:22:40 +0000 (00:22 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 24 May 2011 00:22:40 +0000 (00:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131941 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGenObjC/debug-info-blocks.m [new file with mode: 0644]

diff --git a/test/CodeGenObjC/debug-info-blocks.m b/test/CodeGenObjC/debug-info-blocks.m
new file mode 100644 (file)
index 0000000..7054857
--- /dev/null
@@ -0,0 +1,54 @@
+// RUN: %clang_cc1 -masm-verbose -S -fblocks -g  -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fobjc-dispatch-method=mixed  %s -o - | FileCheck %s
+
+//Radar 9279956
+//CHECK:       ## DW_OP_deref
+//CHECK-NEXT:  ## DW_OP_plus_uconst
+
+typedef unsigned int NSUInteger;
+
+@protocol NSObject
+@end  
+   
+@interface NSObject <NSObject>
+- (id)init;
++ (id)alloc;
+@end 
+
+@interface NSDictionary : NSObject 
+- (NSUInteger)count;
+@end    
+
+@interface NSMutableDictionary : NSDictionary  
+@end       
+
+@interface A : NSObject {
+@public
+    int ivar;
+}
+@end
+
+static void run(void (^block)(void))
+{
+    block();
+}
+
+@implementation A
+
+- (id)init
+{
+    if ((self = [super init])) {
+      run(^{
+          NSMutableDictionary *d = [[NSMutableDictionary alloc] init]; 
+          ivar = 42 + (int)[d count];
+        });
+    }
+    return self;
+}
+
+@end
+
+int main()
+{
+       A *a = [[A alloc] init];
+       return 0;
+}