xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_120.c (revision e6298b924c5ba98f3a22919b56dab04a87cdbb1c)
1*e6298b92Srillig /*	$NetBSD: msg_120.c,v 1.7 2023/07/07 19:45:22 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_120.c"
3a0a15c14Srillig 
473fb62d3Srillig // Test for message: bitwise '%s' on signed value nonportable [120]
5a0a15c14Srillig 
6*e6298b92Srillig /* lint1-extra-flags: -p -X 351 */
7e3ae774eSrillig 
8e3ae774eSrillig int
shr(int a,int b)9e3ae774eSrillig shr(int a, int b)
10e3ae774eSrillig {
1165e5c21bSrillig 	/* expect+1: warning: bitwise '>>' on signed value possibly nonportable [117] */
1265e5c21bSrillig 	return a >> b;
13e3ae774eSrillig }
14e3ae774eSrillig 
15e3ae774eSrillig int
shr_lhs_constant_positive(int a)16e3ae774eSrillig shr_lhs_constant_positive(int a)
17e3ae774eSrillig {
18e3ae774eSrillig 	return 0x1234 >> a;
19e3ae774eSrillig }
20e3ae774eSrillig 
21e3ae774eSrillig int
shr_lhs_constant_negative(int a)22e3ae774eSrillig shr_lhs_constant_negative(int a)
23e3ae774eSrillig {
2465e5c21bSrillig 	/* expect+1: warning: bitwise '>>' on signed value nonportable [120] */
2565e5c21bSrillig 	return -0x1234 >> a;
26e3ae774eSrillig }
27e3ae774eSrillig 
28e3ae774eSrillig int
shr_rhs_constant_positive(int a)29e3ae774eSrillig shr_rhs_constant_positive(int a)
30e3ae774eSrillig {
3165e5c21bSrillig 	/* expect+2: warning: bitwise '>>' on signed value possibly nonportable [117] */
3265e5c21bSrillig 	/* expect+1: warning: shift amount 4660 is greater than bit-size 32 of 'int' [122] */
3365e5c21bSrillig 	return a >> 0x1234;
34e3ae774eSrillig }
35e3ae774eSrillig 
36e3ae774eSrillig int
shr_rhs_constant_negative(int a)37e3ae774eSrillig shr_rhs_constant_negative(int a)
38e3ae774eSrillig {
3965e5c21bSrillig 	/* expect+2: warning: bitwise '>>' on signed value possibly nonportable [117] */
4065e5c21bSrillig 	/* expect+1: warning: negative shift [121] */
4165e5c21bSrillig 	return a >> -0x1234;
42e3ae774eSrillig }
43