123b5c241Stomee /*
223b5c241Stomee  * CDDL HEADER START
323b5c241Stomee  *
423b5c241Stomee  * The contents of this file are subject to the terms of the
523b5c241Stomee  * Common Development and Distribution License (the "License").
623b5c241Stomee  * You may not use this file except in compliance with the License.
723b5c241Stomee  *
823b5c241Stomee  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
923b5c241Stomee  * or http://www.opensolaris.org/os/licensing.
1023b5c241Stomee  * See the License for the specific language governing permissions
1123b5c241Stomee  * and limitations under the License.
1223b5c241Stomee  *
1323b5c241Stomee  * When distributing Covered Code, include this CDDL HEADER in each
1423b5c241Stomee  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1523b5c241Stomee  * If applicable, add the following below this CDDL HEADER, with the
1623b5c241Stomee  * fields enclosed by brackets "[]" replaced with your own identifying
1723b5c241Stomee  * information: Portions Copyright [yyyy] [name of copyright owner]
1823b5c241Stomee  *
1923b5c241Stomee  * CDDL HEADER END
2023b5c241Stomee  */
2123b5c241Stomee 
2223b5c241Stomee /*
23*73427c57Sahl  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
2423b5c241Stomee  * Use is subject to license terms.
2523b5c241Stomee  */
2623b5c241Stomee 
2723b5c241Stomee typedef void f(char *);
2823b5c241Stomee 
2923b5c241Stomee static void
f_a(char * a)3023b5c241Stomee f_a(char *a)
3123b5c241Stomee {
3223b5c241Stomee }
3323b5c241Stomee 
3423b5c241Stomee static void
f_b(char * a)3523b5c241Stomee f_b(char *a)
3623b5c241Stomee {
3723b5c241Stomee }
3823b5c241Stomee 
3923b5c241Stomee static void
f_c(char * a)4023b5c241Stomee f_c(char *a)
4123b5c241Stomee {
4223b5c241Stomee }
4323b5c241Stomee 
4423b5c241Stomee static void
f_d(char * a)4523b5c241Stomee f_d(char *a)
4623b5c241Stomee {
4723b5c241Stomee }
4823b5c241Stomee 
4923b5c241Stomee static void
f_e(char * a)5023b5c241Stomee f_e(char *a)
5123b5c241Stomee {
5223b5c241Stomee }
5323b5c241Stomee 
5423b5c241Stomee static void
fN(f func,char * a,int i)5523b5c241Stomee fN(f func, char *a, int i)
5623b5c241Stomee {
5723b5c241Stomee 	func(a);
5823b5c241Stomee }
5923b5c241Stomee 
6023b5c241Stomee static void
fN2(f func,char * a,int i)6123b5c241Stomee fN2(f func, char *a, int i)
6223b5c241Stomee {
6323b5c241Stomee 	func(a);
6423b5c241Stomee }
6523b5c241Stomee 
6623b5c241Stomee int
main()6723b5c241Stomee main()
6823b5c241Stomee {
6923b5c241Stomee 	/*
7023b5c241Stomee 	 * Avoid length of 1, 2, 4, or 8 bytes so DTrace will treat the data as
7123b5c241Stomee 	 * a byte array.
7223b5c241Stomee 	 */
7323b5c241Stomee 	char a[] = {(char)-7, (char)201, (char)0, (char)0, (char)28, (char)1};
7423b5c241Stomee 	char b[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)0};
7523b5c241Stomee 	char c[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)1};
7623b5c241Stomee 	char d[] = {(char)-7, (char)201, (char)0, (char)0, (char)29, (char)0};
7723b5c241Stomee 	char e[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)0};
7823b5c241Stomee 
7923b5c241Stomee 	fN(f_a, a, 1);
8023b5c241Stomee 	fN(f_b, b, 0);
8123b5c241Stomee 	fN(f_d, d, 102);
8223b5c241Stomee 	fN2(f_e, e, -2);
8323b5c241Stomee 	fN(f_c, c, 0);
8423b5c241Stomee 	fN(f_a, a, -1);
8523b5c241Stomee 	fN(f_d, d, 101);
8623b5c241Stomee 	fN(f_e, e, -2);
8723b5c241Stomee 	fN(f_e, e, 2);
8823b5c241Stomee 	fN2(f_e, e, 2);
89*73427c57Sahl 
90*73427c57Sahl 	return (0);
9123b5c241Stomee }
92