blob: c397185e8802c22c60c9884e164acf8108037be9 [file] [log] [blame]
Mike Stump797b6322009-03-05 01:23:13 +00001// RUN: clang %s -emit-llvm -o %t -fblocks -f__block &&
2// RUN: grep "_Block_object_dispose" %t | count 3
Mike Stump58919e12009-03-04 13:17:22 +00003#include <stdio.h>
4
Mike Stump58a85142009-03-04 22:48:06 +00005void test1() {
6 __block int a;
7 int b=2;
8 a=1;
9 printf("a is %d, b is %d\n", a, b);
10 ^{ a = 10; printf("a is %d, b is %d\n", a, b); }();
11 printf("a is %d, b is %d\n", a, b);
12 a = 1;
13 printf("a is %d, b is %d\n", a, b);
14}
15
16
17void test2() {
18 __block int a;
19 a=1;
20 printf("a is %d\n", a);
21 ^{
22 ^{
23 a = 10;
24 }();
25 }();
26 printf("a is %d\n", a);
27 a = 1;
28 printf("a is %d\n", a);
29}
30
Mike Stump58919e12009-03-04 13:17:22 +000031int main() {
Mike Stump58a85142009-03-04 22:48:06 +000032 test1();
33 test2();
34 return 0;
Mike Stump58919e12009-03-04 13:17:22 +000035}