xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_121.c (revision e6298b924c5ba98f3a22919b56dab04a87cdbb1c)
1*e6298b92Srillig /*	$NetBSD: msg_121.c,v 1.7 2023/07/07 19:45:22 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_121.c"
3a0a15c14Srillig 
4a0a15c14Srillig // Test for message: negative shift [121]
5a0a15c14Srillig 
6*e6298b92Srillig /* lint1-extra-flags: -X 351 */
7*e6298b92Srillig 
8af03d2a0Srillig int
example(int x)9af03d2a0Srillig example(int x)
10af03d2a0Srillig {
1165e5c21bSrillig 	/* expect+1: warning: negative shift [121] */
1265e5c21bSrillig 	return x << (3 - 5);
13af03d2a0Srillig }
146e93208eSrillig 
156e93208eSrillig void /*ARGSUSED*/
shift_by_double(int x,double amount)166e93208eSrillig shift_by_double(int x, double amount)
176e93208eSrillig {
186e93208eSrillig 	/*
196e93208eSrillig 	 * This is already caught by typeok_scalar, so it doesn't reach
206e93208eSrillig 	 * typeok_shift via typeok_op.
216e93208eSrillig 	 */
22a8941949Srillig 	/* expect+1: error: operands of '<<' have incompatible types 'int' and 'double' [107] */
2365e5c21bSrillig 	return x << amount;
246e93208eSrillig }
25