18c1441f8SAlexey Samsonov // 2*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 3*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 4*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 58c1441f8SAlexey Samsonov 68c1441f8SAlexey Samsonov // testfilerunner CONFIG 78c1441f8SAlexey Samsonov 88c1441f8SAlexey Samsonov #import <stdio.h> 98c1441f8SAlexey Samsonov #import <Block.h> 108c1441f8SAlexey Samsonov 118c1441f8SAlexey Samsonov int global; 128c1441f8SAlexey Samsonov 138c1441f8SAlexey Samsonov void (^gblock)(int) = ^(int x){ global = x; }; 148c1441f8SAlexey Samsonov main(int argc,char * argv[])158c1441f8SAlexey Samsonovint main(int argc, char *argv[]) { 168c1441f8SAlexey Samsonov gblock(1); 178c1441f8SAlexey Samsonov if (global != 1) { 188c1441f8SAlexey Samsonov printf("%s: *** did not set global to 1\n", argv[0]); 198c1441f8SAlexey Samsonov return 1; 208c1441f8SAlexey Samsonov } 218c1441f8SAlexey Samsonov void (^gblockcopy)(int) = Block_copy(gblock); 228c1441f8SAlexey Samsonov if (gblockcopy != gblock) { 238c1441f8SAlexey Samsonov printf("global copy %p not a no-op %p\n", (void *)gblockcopy, (void *)gblock); 248c1441f8SAlexey Samsonov return 1; 258c1441f8SAlexey Samsonov } 268c1441f8SAlexey Samsonov Block_release(gblockcopy); 278c1441f8SAlexey Samsonov gblock(3); 288c1441f8SAlexey Samsonov if (global != 3) { 298c1441f8SAlexey Samsonov printf("%s: *** did not set global to 3\n", argv[0]); 308c1441f8SAlexey Samsonov return 1; 318c1441f8SAlexey Samsonov } 328c1441f8SAlexey Samsonov gblockcopy = Block_copy(gblock); 338c1441f8SAlexey Samsonov gblockcopy(5); 348c1441f8SAlexey Samsonov if (global != 5) { 358c1441f8SAlexey Samsonov printf("%s: *** did not set global to 5\n", argv[0]); 368c1441f8SAlexey Samsonov return 1; 378c1441f8SAlexey Samsonov } 388c1441f8SAlexey Samsonov printf("%s: Success!\n", argv[0]); 398c1441f8SAlexey Samsonov return 0; 408c1441f8SAlexey Samsonov } 418c1441f8SAlexey Samsonov 42