• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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
2// 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.
16  // CHECK: !DILocalVariable(name: "weakSelf",
17  // CHECK-SAME:             line: [[@LINE+2]]
18  // CHECK-SAME:             type: ![[SELFTY:[0-9]+]]
19  __attribute__((objc_ownership(weak))) __typeof(self) weakSelf = self;
20  Block = [^{
21  // CHECK: !DILocalVariable(name: "strongSelf",
22  // CHECK-SAME:             line: [[@LINE+2]]
23  // CHECK-SAME:             type: ![[SELFTY]]
24      __attribute__((objc_ownership(strong))) __typeof(self) strongSelf = weakSelf;
25    } copy];
26}
27@end
28