llvm-project
40 строк · 764.0 Байт
1//
2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
3// See https://llvm.org/LICENSE.txt for license information.
4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5
6//
7// byrefcopystack.m
8// testObjects
9//
10// Created by Blaine Garst on 5/13/08.
11//
12
13
14
15#include <stdio.h>16#include <Block.h>17
18// CONFIG rdar://6255170
19
20void (^bumpi)(void);21int (^geti)(void);22
23void setClosures() {24int __block i = 10;25bumpi = Block_copy(^{ ++i; });26geti = Block_copy(^{ return i; });27}
28
29int main(int argc, char *argv[]) {30setClosures();31bumpi();32int i = geti();33
34if (i != 11) {35printf("*** %s didn't update i\n", argv[0]);36return 1;37}38printf("%s: success\n", argv[0]);39return 0;40}
41