1// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fobjc-arc -fobjc-runtime-has-weak %s -emit-llvm -o - | FileCheck %s 2 3// CHECK: bitcast {{.*}} %self_weak_s_w_s 4// CHECK-NEXT: objc_destroyWeak 5// CHECK-NEXT: bitcast {{.*}} %self_strong_w_s 6// CHECK-NEXT: objc_storeStrong 7// CHECK-NEXT: bitcast {{.*}} %self_weak_s 8// CHECK-NEXT: objc_destroyWeak 9// CHECK-NEXT: bitcast {{.*}} %self_weak_s3 10// CHECK-NEXT: objc_destroyWeak 11// CHECK-NEXT: bitcast {{.*}} %self_strong3 12// CHECK-NEXT: objc_storeStrong 13// CHECK-NEXT: bitcast {{.*}} %self_strong2 14// CHECK-NEXT: objc_storeStrong 15// CHECK-NEXT: bitcast {{.*}} %self_strong 16// CHECK-NEXT: objc_storeStrong 17@interface NSObject 18@end 19@interface A : NSObject 20@end 21@implementation A 22- (void)test { 23 __attribute__((objc_ownership(strong))) __typeof__(self) self_strong; 24 __attribute__((objc_ownership(strong))) __typeof__(self_strong) self_strong2; 25 __attribute__((objc_ownership(strong))) __typeof__(self_strong2) self_strong3; 26 __attribute__((objc_ownership(weak))) __typeof__(self_strong3) self_weak_s3; 27 28 __attribute__((objc_ownership(weak))) __typeof__(self_strong) self_weak_s; 29 __attribute__((objc_ownership(strong))) __typeof__(self_weak_s) self_strong_w_s; 30 __attribute__((objc_ownership(weak))) __typeof__(self_strong_w_s) self_weak_s_w_s; 31} 32@end 33