Home | History | Annotate | Line # | Download | only in lint1
msg_267.c revision 1.5
      1  1.5  rillig /*	$NetBSD: msg_267.c,v 1.5 2022/08/19 19:13:04 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_267.c"
      3  1.1  rillig 
      4  1.1  rillig // Test for message: shift equal to size of object [267]
      5  1.1  rillig 
      6  1.3  rillig int
      7  1.3  rillig shr32(unsigned int x)
      8  1.3  rillig {
      9  1.4  rillig 	/* expect+1: warning: shift equal to size of object [267] */
     10  1.4  rillig 	return x >> 32;
     11  1.3  rillig }
     12  1.3  rillig 
     13  1.3  rillig int
     14  1.3  rillig shl32(unsigned int x)
     15  1.3  rillig {
     16  1.4  rillig 	/* expect+1: warning: shift equal to size of object [267] */
     17  1.4  rillig 	return x << 32;
     18  1.3  rillig }
     19  1.5  rillig 
     20  1.5  rillig /*
     21  1.5  rillig  * As of 2022-08-19, lint ignores the GCC-specific 'mode' attribute, treating
     22  1.5  rillig  * the tetra-int as a plain single-int, thus having width 32.
     23  1.5  rillig  *
     24  1.5  rillig  * https://gcc.gnu.org/onlinedocs/gccint/Machine-Modes.html
     25  1.5  rillig  */
     26  1.5  rillig unsigned
     27  1.5  rillig function(unsigned __attribute__((mode(TI))) arg)
     28  1.5  rillig {
     29  1.5  rillig 	/* XXX: The 'size' usually means the size in bytes, not in bits. */
     30  1.5  rillig 	/* expect+1: warning: shift equal to size of object [267] */
     31  1.5  rillig 	return (arg >> 32) & 3;
     32  1.5  rillig }
     33