blob: 668af631a376d9b0ca299eb6c29900ea66ad0598 [file] [log] [blame]
Douglas Katzman3459ce22015-10-08 04:24:12 +00001// RUN: %clang_cc1 -triple arm-apple-ios -emit-llvm -debug-info-kind=limited -fblocks -fobjc-runtime=ios-7.0.0 -fobjc-arc %s -o - | FileCheck %s
Adrian Prantl179af902013-09-26 21:35:50 +00002// rdar://problem/14990656
3@protocol NSObject
4- (id)copy;
5@end
6@class W;
7@interface View1
8@end
9@implementation Controller {
10 void (^Block)(void);
11}
12- (void)View:(View1 *)View foo:(W *)W
13{
14 // The debug type for these two will be identical, because we do not
15 // actually emit the ownership qualifier.
Duncan P. N. Exon Smith38a7f112015-07-31 18:59:37 +000016 // CHECK: !DILocalVariable(name: "weakSelf",
Duncan P. N. Exon Smithf04be1f2015-03-03 17:25:55 +000017 // CHECK-SAME: line: [[@LINE+2]]
18 // CHECK-SAME: type: ![[SELFTY:[0-9]+]]
Adrian Prantl179af902013-09-26 21:35:50 +000019 __attribute__((objc_ownership(weak))) __typeof(self) weakSelf = self;
20 Block = [^{
Duncan P. N. Exon Smith38a7f112015-07-31 18:59:37 +000021 // CHECK: !DILocalVariable(name: "strongSelf",
Duncan P. N. Exon Smithf04be1f2015-03-03 17:25:55 +000022 // CHECK-SAME: line: [[@LINE+2]]
23 // CHECK-SAME: type: ![[SELFTY]]
Adrian Prantl179af902013-09-26 21:35:50 +000024 __attribute__((objc_ownership(strong))) __typeof(self) strongSelf = weakSelf;
25 } copy];
26}
27@end