Home | History | Annotate | Line # | Download | only in lint1
msg_117.c revision 1.7
      1  1.7  rillig /*	$NetBSD: msg_117.c,v 1.7 2021/08/15 13:08:20 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_117.c"
      3  1.1  rillig 
      4  1.4  rillig // Test for message: bitwise '%s' on signed value possibly nonportable [117]
      5  1.1  rillig 
      6  1.2  rillig /* lint1-extra-flags: -p */
      7  1.2  rillig 
      8  1.2  rillig int
      9  1.2  rillig shr(int a, int b)
     10  1.2  rillig {
     11  1.3  rillig 	return a >> b;			/* expect: 117 */
     12  1.2  rillig }
     13  1.2  rillig 
     14  1.2  rillig int
     15  1.2  rillig shr_lhs_constant_positive(int a)
     16  1.2  rillig {
     17  1.2  rillig 	return 0x1234 >> a;
     18  1.2  rillig }
     19  1.2  rillig 
     20  1.2  rillig int
     21  1.2  rillig shr_lhs_constant_negative(int a)
     22  1.2  rillig {
     23  1.3  rillig 	return -0x1234 >> a;		/* expect: 120 */
     24  1.2  rillig }
     25  1.2  rillig 
     26  1.2  rillig int
     27  1.2  rillig shr_rhs_constant_positive(int a)
     28  1.2  rillig {
     29  1.5  rillig 	return a >> 0x1234;		/* expect: 117 *//* expect: 122 */
     30  1.2  rillig }
     31  1.2  rillig 
     32  1.2  rillig int
     33  1.2  rillig shr_rhs_constant_negative(int a)
     34  1.2  rillig {
     35  1.5  rillig 	return a >> -0x1234;		/* expect: 117 *//* expect: 121 */
     36  1.2  rillig }
     37  1.6  rillig 
     38  1.6  rillig unsigned int
     39  1.6  rillig shr_unsigned_char(unsigned char uc)
     40  1.6  rillig {
     41  1.7  rillig 	/*
     42  1.7  rillig 	 * Even though 'uc' is promoted to 'int', it cannot be negative.
     43  1.7  rillig 	 * Before tree.c 1.335 from 2021-08-15, lint wrongly warned that
     44  1.7  rillig 	 * 'uc >> 4' might be a bitwise '>>' on signed value.
     45  1.7  rillig 	 */
     46  1.6  rillig 	return uc >> 4;
     47  1.6  rillig }
     48