Home | History | Annotate | Line # | Download | only in lint1
msg_129.c revision 1.2
      1  1.2  rillig /*	$NetBSD: msg_129.c,v 1.2 2021/01/30 22:38:54 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_129.c"
      3  1.1  rillig 
      4  1.1  rillig // Test for message: expression has null effect [129]
      5  1.1  rillig 
      6  1.2  rillig /* lint1-extra-flags: -h */
      7  1.2  rillig 
      8  1.2  rillig typedef unsigned char uint8_t;
      9  1.2  rillig typedef unsigned int uint32_t;
     10  1.2  rillig 
     11  1.2  rillig /*
     12  1.2  rillig  * XXX: The message 129 looks wrong in this case.  There are several comma
     13  1.2  rillig  * operators, each of them has an assignment as operand, and an assignment
     14  1.2  rillig  * has side effects.
     15  1.2  rillig  *
     16  1.2  rillig  * Nevertheless, when stepping through check_null_effect, the operator ','
     17  1.2  rillig  * in line 17 says it has no side effect, which is strange.
     18  1.2  rillig  */
     19  1.2  rillig void
     20  1.2  rillig uint8_buffer_write_uint32(uint8_t *c, uint32_t l)
     21  1.2  rillig {
     22  1.2  rillig 	(*(c++) = (uint8_t)(l & 0xff),
     23  1.2  rillig 	    *(c++) = (uint8_t)((l >> 8L) & 0xff),
     24  1.2  rillig 	    *(c++) = (uint8_t)((l >> 16L) & 0xff),
     25  1.2  rillig 	    *(c++) = (uint8_t)((l >> 24L) & 0xff));	/* expect: 129 */
     26  1.2  rillig }
     27