blob: 8e5a21213200d0c97bec651f50aa763453c13ff7 [file] [log] [blame]
Filipe Cabecinhas090a2372014-10-18 23:47:59 +00001// RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o
2// RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation
Zachary Turner79708b52017-11-21 01:20:28 +00003// RUN: %test_debuginfo %s %t.out
Argyrios Kyrtzidis8f688172012-10-20 01:38:50 +00004
5// REQUIRES: system-darwin
Devang Patel4a14cd92011-04-28 02:23:17 +00006// Radar 9279956
Renato Golin161505f2011-05-28 14:03:16 +00007
Eli Friedman8f630d92011-05-29 03:51:55 +00008// DEBUGGER: break 31
Devang Patel4a14cd92011-04-28 02:23:17 +00009// DEBUGGER: r
10// DEBUGGER: p m2
Adrian Prantl5cd2f3e2014-02-20 19:51:07 +000011// CHECK: ${{[0-9]}} = 1
Devang Patel4a14cd92011-04-28 02:23:17 +000012// DEBUGGER: p dbTransaction
Adrian Prantl5cd2f3e2014-02-20 19:51:07 +000013// CHECK: ${{[0-9]}} = 0
Devang Patel4a14cd92011-04-28 02:23:17 +000014// DEBUGGER: p master
Adrian Prantl5cd2f3e2014-02-20 19:51:07 +000015// CHECK: ${{[0-9]}} = 0
Devang Patel4a14cd92011-04-28 02:23:17 +000016
17#include <Cocoa/Cocoa.h>
18
19extern void foo(void(^)(void));
20
21@interface A:NSObject @end
22@implementation A
23- (void) helper {
24 int master = 0;
25 __block int m2 = 0;
26 __block int dbTransaction = 0;
Zachary Turner79708b52017-11-21 01:20:28 +000027 int (^x)(void) = ^(void) { (void) self;
28 (void) master;
29 (void) dbTransaction;
Devang Patel4a14cd92011-04-28 02:23:17 +000030 m2++;
31 return m2;
32 };
33 master = x();
34}
35@end
36
37void foo(void(^x)(void)) {}
38
39int main() {
40 A *a = [A alloc];
41 [a helper];
42 return 0;
43}