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  *  cast.c
8  *  testObjects
9  *
10  *  Created by Blaine Garst on 2/17/09.
11  *
12  */
13 
14 // PURPOSE should allow casting of a Block reference to an arbitrary pointer and back
15 // CONFIG open
16 
17 #include <stdio.h>
18 
19 
20 
main(int argc,char * argv[])21 int main(int argc, char *argv[]) {
22 
23     void (^aBlock)(void);
24     int *ip;
25     char *cp;
26     double *dp;
27 
28     ip = (int *)aBlock;
29     cp = (char *)aBlock;
30     dp = (double *)aBlock;
31     aBlock = (void (^)(void))ip;
32     aBlock = (void (^)(void))cp;
33     aBlock = (void (^)(void))dp;
34     printf("%s: success", argv[0]);
35     return 0;
36 }
37