1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27/*
28 * ASSERTION:
29 *
30 * Test different inline assignments by various expressions.
31 *
32 * SECTION: Type and Constant Definitions/Inlines
33 *
34 * NOTES: The commented lines for the floats and doubles should be uncommented
35 * once the functionality is implemented.
36 *
37 */
38
39#pragma ident	"%Z%%M%	%I%	%E% SMI"
40
41#pragma D option quiet
42
43
44inline char new_char = 'c' + 2;
45inline short new_short = 10 * new_char;
46inline int new_int = 100 + new_short;
47inline long new_long = 1234567890;
48inline long long new_long_long = 1234512345 * new_long;
49inline int8_t new_int8 = 'p';
50inline int16_t new_int16 = 20 / new_int8;
51inline int32_t new_int32 = 200;
52inline int64_t new_int64 = 2000000 * (-new_int16);
53inline intptr_t new_intptr = 0x12345 - 129;
54inline uint8_t new_uint8 = 'q';
55inline uint16_t new_uint16 = 30 - new_uint8;
56inline uint32_t new_uint32 = 300 - 0;
57inline uint64_t new_uint64 = 3000000;
58inline uintptr_t new_uintptr = 0x67890 / new_uint64;
59
60/* inline float new_float = 1.23456;
61inline double new_double = 2.34567890;
62inline long double new_long_double = 3.567890123;
63*/
64
65inline int * pointer = &`kmem_flags;
66inline int result = 3 > 2 ? 3 : 2;
67
68BEGIN
69{
70	printf("new_char: %c\nnew_short: %d\nnew_int: %d\nnew_long: %d\n",
71	    new_char, new_short, new_int, new_long);
72	printf("new_long_long: %d\nnew_int8: %d\nnew_int16: %d\n",
73	    new_long_long, new_int8, new_int16);
74	printf("new_int32: %d\nnew_int64: %d\n", new_int32, new_int64);
75	printf("new_intptr: %d\nnew_uint8: %d\nnew_uint16: %d\n",
76	    new_intptr, new_uint8, new_uint16);
77	printf("new_uint32:%d\nnew_uint64: %d\nnew_uintptr:%d\nresult:%d",
78	    new_uint32, new_uint64, new_uintptr, result);
79	exit(0);
80}
81