1/*
2 * CDDL HEADER START
3 *
4 * This file and its contents are supplied under the terms of the
5 * Common Development and Distribution License ("CDDL"), version 1.0.
6 * You may only use this file in accordance with the terms of version
7 * 1.0 of the CDDL.
8 *
9 * A full copy of the text of the CDDL should have accompanied this
10 * source.  A copy of the CDDL is also available via the Internet at
11 * http://www.illumos.org/license/CDDL.
12 *
13 * CDDL HEADER END
14 */
15
16/*
17 * Copyright (c) 2012 by Delphix. All rights reserved.
18 */
19
20/*
21 * Test execution-time casting between integer types of different size.
22 */
23
24#pragma D option quiet
25
26int64_t x;
27
28BEGIN
29{
30	z = 0xfff0;
31
32	x = (int32_t)(int16_t)z;
33	printf("%16x %20d %20u\n", x, x, x);
34	x = (int32_t)(uint16_t)z;
35	printf("%16x %20d %20u\n", x, x, x);
36	x = (uint32_t)(int16_t)z;
37	printf("%16x %20d %20u\n", x, x, x);
38	x = (uint32_t)(uint16_t)z;
39	printf("%16x %20d %20u\n", x, x, x);
40	printf("\n");
41
42	x = (int16_t)(int32_t)z;
43	printf("%16x %20d %20u\n", x, x, x);
44	x = (int16_t)(uint32_t)z;
45	printf("%16x %20d %20u\n", x, x, x);
46	x = (uint16_t)(int32_t)z;
47	printf("%16x %20d %20u\n", x, x, x);
48	x = (uint16_t)(uint32_t)z;
49	printf("%16x %20d %20u\n", x, x, x);
50
51	exit(0);
52}
53