]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenObjC/debug-info-blocks.m
Vendor import of clang release_30 branch r142614:
[FreeBSD/FreeBSD.git] / test / CodeGenObjC / debug-info-blocks.m
1 // REQUIRES: x86-64-registered-target
2 // RUN: %clang_cc1 -masm-verbose -S -fblocks -g  -triple x86_64-apple-darwin10 -fobjc-dispatch-method=mixed  %s -o - | FileCheck %s
3
4 //Radar 9279956
5 //CHECK:        ## DW_OP_deref
6 //CHECK-NEXT:   ## DW_OP_plus_uconst
7
8 typedef unsigned int NSUInteger;
9
10 @protocol NSObject
11 @end  
12    
13 @interface NSObject <NSObject>
14 - (id)init;
15 + (id)alloc;
16 @end 
17
18 @interface NSDictionary : NSObject 
19 - (NSUInteger)count;
20 @end    
21
22 @interface NSMutableDictionary : NSDictionary  
23 @end       
24
25 @interface A : NSObject {
26 @public
27     int ivar;
28 }
29 @end
30
31 static void run(void (^block)(void))
32 {
33     block();
34 }
35
36 @implementation A
37
38 - (id)init
39 {
40     if ((self = [super init])) {
41       run(^{
42           NSMutableDictionary *d = [[NSMutableDictionary alloc] init]; 
43           ivar = 42 + (int)[d count];
44         });
45     }
46     return self;
47 }
48
49 @end
50
51 int main()
52 {
53         A *a = [[A alloc] init];
54         return 0;
55 }