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
21int 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(format: "%s: success", argv[0]);
35 return 0;
36}
37

source code of compiler-rt/test/BlocksRuntime/cast.c