1// REQUIRES: x86-registered-target,x86-64-registered-target 2// RUN: %clang_cc1 -fblocks -fobjc-gc -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 -S %s -o %t-64.s 3// RUN: FileCheck -check-prefix CHECK-LP64 --input-file=%t-64.s %s 4// RUN: %clang_cc1 -fblocks -fobjc-gc -triple i386-apple-darwin -fobjc-runtime=macosx-fragile-10.5 -S %s -o %t-32.s 5// RUN: FileCheck -check-prefix CHECK-LP32 --input-file=%t-32.s %s 6 7@interface NSObject 8- copy; 9@end 10 11int main() { 12 NSObject *object = 0; 13 __weak __block NSObject* weak_object = object; 14 void (^callback) (void) = [^{ 15 if (weak_object) 16 [weak_object copy]; 17 } copy]; 18 callback(); 19 return 0; 20} 21 22// CHECK-LP64: callq _objc_read_weak 23// CHECK-LP64: callq _objc_read_weak 24 25// CHECK-LP32: calll L_objc_read_weak 26// CHECK-LP32: calll L_objc_read_weak 27